摘要: 一、概述 共享内存用于用于进程间的数据共享, 开辟一块物理内存空间, 各个进程将同一块物理内存空间映射到自己的虚拟地址空间中, 通过虚拟地址进行访问, 进而实现数据共享 共享内存是最快的进程间通信方式, 因为通过虚拟地址空间映射后, 直接通过虚拟地址访问物理内存, 相较于其他方式少了两步数据拷贝的操 阅读全文
posted @ 2022-04-27 18:18 轻轻的吻 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 一、概述 1.信号量 信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进 阅读全文
posted @ 2022-04-27 16:48 轻轻的吻 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 相关链接:消息队列 一、概述 1、什么是消息队列 消息队列是进程间通信的一种,它是由操作系统维护的以字节序列为基本单位的间接通信机制,遵循先进先出的原则,它提供了一个进程向另一个进程发送一个带类型的数据块的方法。 2、特点: 消息队列是进程或线程间通讯的其中一种方式。遵循先进先出的原则,保证了时间的 阅读全文
posted @ 2022-04-27 09:53 轻轻的吻 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 1、信号 (1)概述 信号是软件中断,进程接收信号后做出相应响应,它提供了一种处理异步事件的方法。每个信号都有名字,这些名字以SIG开头,信号都定义在<signal.h>头文件中,并且都是正整数常量。 (2)怎么产生信号 硬件 执行非法指令 访问非法内存 驱动程序 软件 Ctrl + C:中断信号。 阅读全文
posted @ 2022-04-27 09:10 轻轻的吻 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 命名管道 可用于没有亲缘关系的进程间进行数据传输,数据只能单向流动。 (1)创建管道 #include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *filename,mode_t mode) filename:用户读写的FIF 阅读全文
posted @ 2022-04-27 09:09 轻轻的吻 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1、无名管道 用于具有亲缘关系的进程间通信(常见的就是父子进程),数据只能单向流动。 (1)创建管道 #include<unistd.h> int pipe(int pipefd[2]); 参数: pipefd[2]:参数为两个文件描述符,一个读文件描述符,一个写文件描述符。 返回值: 成功返回0 阅读全文
posted @ 2022-04-27 09:08 轻轻的吻 阅读(70) 评论(0) 推荐(0) 编辑