进程间的通信

本文详细介绍了进程间通信的各种机制,包括低级通信如信号通信机制、信号量等,以及高级通信如管道通信、共享存储区通信和消息通信机制。特别讨论了管道通信的工作原理及其类型,共享存储区的应用场景,以及消息通信机制的两种方式。

低级通信:交换信息量少且控制复杂,对用户不透明。

主要有信号通信机制、信号量和原语操作。

高级通信:用户直接用操作系统提供的通信命令传输大量数据,通信细节由操作系统完成,对用户透明。

主要有管道通信(共享文件通信机制)、共享存储区通信机制、信箱的收发信原语的消息传递通信机制;

1、信号通信机制

别名软中断,通过发送一个指定的信号通知进程某个异常事件发生,并进行适当处理。

2、管道机制

what's this?

管道是连接读写进程,实现他们之间通信的一个特殊文件。属于一种共享文件通信机制;

管道是一个共享文件,连接读写进程实现通信。写进程在管道一端写入信息,读进程在另一端读信息。

管道借助于文件系统的机制实现,包括管道文件的创建、打开、关闭、读写。

又分为匿名管道和命名管道;

匿名管道是父子进程之间或者两个子进程之间传输数据的无名字的单向通道。

命名管道是服务器进程和一个或者多个客户进程之间通信的单向或者双向通道

命名管道可以在不相关的进程之间和不同计算机之间使用。

why this?

管道机制应该具备以下协调功能:

互斥:一次仅允许一个进程读写。

确定对方是否存在?

同步:进程在关闭管道的读出或写入时,应唤醒等待写或读次管道的进程。

管程和管道的区别:管程是存在于进程同步的概念,管道是存在于进程通信的概念。进程同步也属于一种进程通信,但进程通信消息量比进程同步大得多。管程是进程同步中管理临界资源的辅助程序,而管道是连接读写进程的一个文件

3、共享存储区通信

操作系统在内存中开辟一个共享存储区,各个进程通过该共享存储区实现通信。进程通信前,从共享存储区申请一个分区段,后申请的进程只能得到该分区段的一个标识符。

4、消息通信机制

send和receive两个原语,细节由操作系统实现。

消息通信机制还有进程同步的功能。通过消息通信传递来的消息来决定阻塞或释放进程。

直接通信方式:接受或发送消息的进程必须指出消息发给哪个进程或从哪个进程接收消息。

间接通信方式:进程间发送或接受消息通过信箱进行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值