一、进程通信
进程通信是进程之间的信息交换。主要有三种方式:
- 管道通信
e.g ps -aux | grep exp (左边只能写,右边只能读,半双工管道,管道在内核)
管道的实质是一个用于连接读写进程的一个共享文件,固定大小的缓冲区。数据一旦被读出,则从管道中丢弃。没写满不读,没读空不写。
- 消息传递(可以实现多进程通信)
- 直接通信方式
消息直接挂到接收进程的消息缓冲队列上
消息=消息头(发送进程ID、接受进程ID、消息类型、消息长度等)+消息体
- 间接通信方式
消息先发送至中间实体(信箱)
- 共享存储(共享空间互斥访问,也叫做临界区,内容称为临界资源)
- 基于数据结构的共享
通信时指定数据结构,低级通信方式
- 基于存储区的共享
指定内存中的一块存储区域直接进行读写,高级通信方式
二、进程互斥
涉及共享存储的时候,进程互斥可以解决并发进程对临界区的使用问题。当某一进程在访问临界区的时候,其他进程不可读出或者修改该存储区域的内容。
一般通过锁机制来实现。通过设置标识来表明临界区是否可用。可以实现多个进程互斥访问。
标签:存储,通信,---,互斥,临界,进程,共享 From: https://www.cnblogs.com/mylight/p/17750304.html