【正确答案】系统进程之间通信的主要方法有信号、信号量、管道、消息和共享内存。信号量和信号主要用于触发,而不是用于传递数据。所以,数据通信的主要方法是管道、消息和共享内存,以下将分别对这些方式进行具体分析。
(1)管道
管道是由内核管理的一个环形缓冲区,类似于放入内存中的一个纸条,它允许两个进程以生产者/消费者的模型进行通信。如图所示,当两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程,写进程通过写端(发送端)往管道文件中写入信息,读进程通过读端(接收端)从管道文件中读取信息,两个进程协调不断地进行写、读,便会构成双方通过管道传递信息的流水线。当管道中没有信息时,从管道中读取的进程会等待,直到另一端的进程放入信息。当管道被放满信息时,尝试放入信息的进程会等待,直到另一端的进程取出信息。当两个进程都终结的时候,管道也自动消失。
【答案解析】