操作系统复习——进程通信

本文深入探讨了进程间通信(IPC)的各种方式,包括信号、管道、消息队列和共享内存等。详细解析了信号和消息队列的工作机制,以及相关的系统调用函数,如raise、kill、msgget、msgsnd等,为读者提供了全面的IPC知识。
摘要由CSDN通过智能技术生成

1.  进程之间通信的方式有:信号,管道 https://www.cnblogs.com/Carrie-0173/p/6425202.html ,消息队列,共享内存。较熟悉一下两种。

2.  信号通信机制:

   信号可以在任何时候发送给某一进程,而无须知道该进程的状态。如果进程未处于执行状态则信号被内核保存,知道恢复执行然后传递给它。在Linux中有几十种信号分别代表着不同的含义,依靠着信号值的不同来区别。

   比方说有raise 函数,kill 函数,pause 函数,sigsuspend 函数。

   并且用户可以通过signal 函数来修改信号的相应动作。

3.  消息队列通信机制

   消息队列就是一个消息的链表,是一系列保存在内核中消息的列表。用户进程可以向消息队列添加消息,也可以向消息队列读取消息。

   消息队列与管道通信相比,其优势是对每个消息指定特定的消息类型,接收的时候不需要按照队列次序,而是可以根据自定义条件接收特定类型的消息。

   可以把消息看做一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息,对消息队列有读权限的进程可以从消息队列中读取消息。

   消息队列常用的一些函数有:msgget 创建或者打开消息队列,msgsnd 添加消息,msgrcv 读取消息,msgctl 控制消息队列,ftok 由于文件路径工程ID生成的标准key。

   进程间通过消息队列通信,主要是:创建或打开消息队列,添加消息,读取消息和控制消息队列。

 

转载于:https://www.cnblogs.com/jkzr/p/10487923.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值