- 博客(6)
- 收藏
- 关注
原创 Linux 多进程模型(二):进程通信
本文摘要: 进程通信主要介绍了管道通信和信号量通信及其它两种方式。管道通信分为匿名管道和命名管道,匿名管道使用pipe或socketpair创建,适用于关联进程间的单向/双向通信;命名管道通过mkfifo创建,以FIFO文件形式存在。信号量通信用于进程同步与互斥,核心API包括semget创建信号量集、semctl控制信号量属性、semop执行PV操作。信号量通过ftok生成唯一key,支持初始化、状态获取和删除等操作。两种通信机制各有特点,管道适合数据传递,信号量更适合协调进程同步。
2025-07-14 17:20:20
913
原创 Linux 多进程模型(一):fork()与父子进程之间的资源共享
本文介绍了Linux系统中的多进程模型,重点分析了进程描述符task_struct的关键字段及其含义,包括进程ID、状态、内存管理等。详细说明了进程创建机制,特别是fork()系统调用的工作原理及其父子进程间的资源关系,如代码共享和写时复制机制。此外,还探讨了进程内存管理中的页表结构,如PGD、PUD、PMD和PTE四级页表的作用。通过代码示例展示了多进程创建流程,并对比了父子进程的核心标识、调度策略和内存管理差异。文章为理解Linux进程管理机制提供了技术参考。
2025-07-07 17:35:47
687
原创 计算机网路:传输层-TCP协议详解
传输层关键功能与TCP协议详解 传输层核心功能包括:提供进程间端到端通信、复用与分用机制(通过端口号区分不同进程)、差错检测(CRC校验)。TCP作为重要传输协议,其头部包含端口号、序号/确认号、控制标志位(SYN、ACK等)及窗口大小等字段,支持可靠传输。 TCP可靠传输机制: 采用序号、确认号实现数据排序 累计确认减少ACK数量 超时重传结合指数退避算法保障可靠性 连接管理: 三次握手建立连接(SYN/SYN-ACK/ACK) 四次挥手释放连接(FIN/ACK机制) TIME_WAIT状态防止旧报文干扰
2025-06-29 21:37:48
985
原创 Windows删除“指定的文件名无效或太长”等文件
当删除一个文件时,系统提示“指定的文件名无效或太长”,而无法删除,使用del指令时又提示文件无法被找到,此时,因为不喜欢下载360,便去网上找了个较为简单的方法,同时也能删除其它的无效文件,具体操作如下:通过管理员身份运行cmd,输入chkdsk D: /f ,(只能对整个盘进行操作,这里是针对D盘):回车后可能会出现提示:由于该卷正在被另一个过程使用,Chkdsk不能运行。如果先卸下该卷,Chkdsk也许可以运行。该卷所有一打开的句柄将会无效。要强制卸下该卷嘛?(Y/N)这个只是提
2021-03-14 19:29:18
4370
1
原创 C++数组构建以及容器vector的相关操作
一、静态数组基本性质: 数组长度固定,不可增加元素;1、一维数组的构建①长度为一个常数整型 char a[3];②长度为一个已经赋值过的变量 int n; cin>>n; char *a=new char[n]; int m=3; float *b=new float[n];2、二维数组的构建类似于一种嵌套关系,二维数组的每个元素都相当于一个一维数组;以下为n*m二维数组的构建①已知二维数组的长宽int g[3][2] = { {1,2},{2,4
2021-01-25 19:17:18
871
1
原创 C++关于map自定义键值对所出现的问题
自定义value提示缺乏默认构造函数错误代码:#include<iostream>#include<map>#include<string>#include<vector>using namespace std;class node {public: int x; node(int x) { this->x = x; }};int main() { map<int, node> my; node s(0)
2021-01-07 22:44:20
602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人