操作系统(7)---进程通信、进程互斥

发布时间 2023-10-08 22:59:49作者: 小光翎

一、进程通信

进程通信是进程之间的信息交换。主要有三种方式:

  • 管道通信

  e.g ps -aux | grep exp (左边只能写,右边只能读,半双工管道,管道在内核

  管道的实质是一个用于连接读写进程的一个共享文件,固定大小的缓冲区。数据一旦被读出,则从管道中丢弃。没写满不读,没读空不写。

  • 消息传递(可以实现多进程通信
    • 直接通信方式

      消息直接挂到接收进程的消息缓冲队列

      消息=消息头(发送进程ID、接受进程ID、消息类型、消息长度等)+消息体

    • 间接通信方式

      消息先发送至中间实体(信箱)

  • 共享存储(共享空间互斥访问,也叫做临界区,内容称为临界资源)
    • 基于数据结构的共享

      通信时指定数据结构,低级通信方式

    • 基于存储区的共享

      指定内存中的一块存储区域直接进行读写,高级通信方式

二、进程互斥

涉及共享存储的时候,进程互斥可以解决并发进程对临界区的使用问题。当某一进程在访问临界区的时候,其他进程不可读出或者修改该存储区域的内容。

                                                                 

一般通过锁机制来实现。通过设置标识来表明临界区是否可用。可以实现多个进程互斥访问