进程控制理论<五>--进程通信方式对比
来源:互联网 发布:ubuntu卸载搜狗 编辑:程序博客网 时间:2024/06/07 08:49
对于7种进程通信方式做综合比较。
1、无名管道:使用fd[2]表示管道建立后创建的两个文件描述符,可以直接操作这两个文件描述符实现无名管道的读写。其中
fd[0]用于读管道(管道头部),fd[1]用于写管道(管道尾部)。
使用注意事项:1、只适用于血缘进程即父子进程。
2、数据流单向性。读管道fd[0]时,关闭写管道fd[1];写管道fd[1]时,关闭读管道fd[0];
2、有名管道:适用任意进程间通信。如何实现的?因为创建有名管道int mkfifo(const char *pathname ,mode_t mode) 时,创建pathname对应路径下文件,任意进程都可以访问文件即实现进程通信。
3、信号处理:主要用于信号通知,信号类型必须是系统支持的命令。
进程用kill函数将信号发送给另一个进程;
信号的处理方式:1、忽略信号 2、执行用户希望动作 3、执行系统默认动作
4、共享内存:在物理内存开辟一段内存区,作为共享区域。任意进程访问该段共享内存区步骤:
(1)创建共享内存使用shmget函数,返回共享内存标识符shmid。
(2)映射共享内存将这段创建的共享映射到具体的进程空间去,使用shmat函数。
完成上述两步,进程可以对标识符shmid的共享内存访问了
5、消息队列:就是一个消息的链表。可以把消息看做一个记录,具有特定的格式。进程可以向其中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息。
消息格式:
Struct msgbuf
{
long mtype; //消息类型>0
char mtext[1]; //消息数据的首地址
}
6、信号量:主要用于控制进程(执行顺序等)
7、socket
- 进程控制理论<五>--进程通信方式对比
- 进程控制理论<二>----进程通信
- 进程间通信方式对比
- 进程控制理论
- 06-进程控制理论
- 进程控制与进程通信
- 2-11 进程控制理论
- 进程间通信方式
- 进程间通信方式
- 进程间通信方式
- 进程通信方式
- 进程间通信方式
- 进程的通信方式
- 进程通信方式介绍
- 进程通信方式简介
- 进程间通信方式
- 进程间通信方式
- 进程通信方式介绍
- 新项目与旧项目的比较-1
- CodeForces Round 218 E Subway Innovation
- loadrunner 监控linux资源
- HRBUST 1908 A+B+C 高精度加法
- uikit 类图
- 进程控制理论<五>--进程通信方式对比
- 线程
- Java的不定长度参数
- Spring mvc 注释 + ibatis 整合
- POJ 1751 Highways (ZOJ 2048 ) MST
- QTabWidget实现类似QQ聊天窗口
- Python的包管理工具Pip
- android listView 点击无响应的解决方法
- DNP3执行漏洞