操作系统--进程通信

来源:互联网 发布:炒菜致癌知乎 编辑:程序博客网 时间:2024/05/22 05:25

进程通信

进程通信是指进程之间的信息交换。进程的互斥和同步是一种低级的进程通信机制,所能够传递的信息非常有限。

1、进程通信机制:

(1)共享存储器系统

通过共享数据结构或者共享存储区进行进程之间的通信。

  • (a)通过共享数据结构。

比如生产者-消费者问题中的有界的缓冲区。由于数据结构的设置以及同步的处理都是人工的,强度大,是一种比较低级的通信机制。

  • (b)通过共享存储区。

在处理器中划分一块共享的存储区域,所有共享该区域的进程通过对共享区域的数据进行读写来进行通信,是一种能够传输较大数量的通行方式。

(2)消息传递系统

各需要通信的进程通过格式化的消息进行信息交换。这是最重要的一种进程通信方式。

  • (a)直接通信方式。

利用操作系统的原语进行通信,发送方直接指定消息的接收方;消息接收方也指定消息的来源。

  • (b)间接通信方式。

需要借助作为共享数据结构的实体进行通信。该实体一般被称为信箱。

消息传递系统中的主要问题:通信链路、消息格式、进程同步方式。通信链路的建立可以利用系统的“建立链接”原语建立通信链路并显式拆除,也可以利用系统的“发送原语”由系统自动建立通信链路。对于单机系统消息格式则是简单固定,而对于复杂系统的进程通信(比如网络)则可能要将消息分为消息头和消息正文等。进程同步方式主要有3种:发送进程和接受进程都阻塞(两者之间无缓冲区)、发送进程不阻塞接受进程   阻塞(打印进程一直阻塞直到有打印请求)、发送进程和接受进程都不阻塞(两者之间带有缓冲区)。

(3)管道通信系统

管道通信主要借助于管道文件。管道文件是用来连接一个输入进程和输出进程并实现他们输入的一个共享文件。利用管道进行通信时需要注意管道文件的互斥、对管道文件操作的同步以及输入和输出进程必须同时存在。

 

0 0
原创粉丝点击