Linux 进程通信
来源:互联网 发布:蓝科型材优化注册码 编辑:程序博客网 时间:2024/05/21 17:05
进程通信
通信(Communication)意味着在进程间传送数据。也把进程间控制信息的交换称为低级通信,而把进程间大批量数据的交换称为高级通信。
进程通信的类型
(1)共享存储器系统(内存)
共享存储器系统为了传送大量数据,在存储器中划出一块共享存储区,诸进程可通过对共享存储区进行读数据或写数据以实现通信。
(2)消息传递系统
分为两种
A、直接通信方式
发送进程可将消息直接发送给接收进程,即将消息挂在接收进程的消息缓冲队列上,而接收进程可从自己的消息缓冲队列中取得消息。
B、间接通信方式
发送进程将消息发送到指定的信箱中,而接收进程从信箱中取得消息。
(3)管道通信系统
在UNIX操作系统中,开创了一种借助文件和文件系统形成的一种通信方式。所谓管道是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称PIPE文件。向管道提供输入的发送进程,以字符流方式将大量的数据送入管道,而接收进程从管道中接收数据。由于发送进程和接收进程是利用管道进行通信,故称为管道能信系统。
(4)消息缓冲队列通信机制
A、消息缓冲队列通信机制简介
由于消息缓冲机制中所使用的缓冲区为公用缓冲区,因此使用消息缓冲机制传送数据时,两通信进程必须满足如下条件:
第一、在发送进程把写入消息的缓冲区挂入消息队列是,应禁止其他进程对该消息队列的访问,否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息时,也应禁止其他进程对该队列的访问。
第二、当缓冲区中无消息存在时,接收进程不能接收到任何消息;而发送进程是否可以发送消息,则只由发送进程是否能够申请到缓冲区决定。
消息缓冲队列通信机制中的数据结构
(1)消息缓冲区
typedefstruct message buffer
{
sender;//发送者进程标识符
size;//消息长度
text;//消息正文
next;//指向下一个消息缓冲区的指针
}
B、PCB中有关进程通信的数据项
typedefstruct message bolck
{
.....
mq;//消息队列队首指针
mutex;//消息队列互斥信号量,初值为1
sm;//消息队列资源信号量,用于消息队列中的消息计数,初值为0
......
}
- Linux进程间通信
- Linux进程通信
- Linux进程间通信
- Linux 进程通信
- Linux进程间通信
- Linux进程通信(1)
- Linux进程通信(2)
- Linux进程通信--信号
- Linux进程间通信
- 关于Linux进程通信
- Linux进程通信--信号量
- linux 进程间通信
- linux 进程信号通信
- linux 进程信号通信
- linux 进程间通信
- Linux下进程通信
- linux 进程通信
- Linux进程通信
- 搜索引擎与社会责任
- 自己建了个博客
- 一些比较使用的网址
- 关键词/词组->分类识别系统 设计+实现
- Linux 进程管理 -------进程互斥和同步
- Linux 进程通信
- Java编程那些事儿80——集合框架简述
- Mac OS X: 如何实现子网间NetBoot
- Flex3 cookbook
- 不使用图片创建CSS圆角效果
- Item项目中添加对象
- 我的MiliEarth终于升级到可应用版本啦!!!看看截图
- GTK+2.0类组织结构
- C#学习记录