第2章进程同步与通信-3汇总.pptVIP

  • 1
  • 0
  • 约1.02万字
  • 约 33页
  • 2016-11-29 发布于湖北
  • 举报
4、在单处理机上,如果系统中有n个进程,则就绪队列中的进程个数最多是多少个? A. 1个 B. n+1个 C. n个 D. n-1个 5、在单处理机上,如果系统中有n个进程,则等待队列中的进程个数最多是多少个? A. 1个 B. n+1个 C. n个 D. n-1个 6、在单处理机上,如果系统中有n个进程,则运行队列中的进程个数最多是多少个? A. 1个 B. n+1个 C. n个 D. n-1个 7、在由9个生产者,6个消费者,共享容量为8的缓冲器组成的生产者与消费者问题中,互斥使用缓冲器的信号量的初值应该为() ? A.1 B. 6 C. 8 D. 9 DCAA B 进程通信的类型   *   3.管道通信   所谓“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件。向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;而接受管道输出的接收进程(即读进程),则从管道中接收(读)数据。由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信。这种方式首创于UNIX系统,由于它能有效地传送大量数据,因而又被引入到许多其它的操作系统中。 *   为了协调双方的通信,管道机制必须提供以下三方面的协调能力:   (1) 互斥,即当一个进程正在对pipe执行读/写操作时,其它(另一)进程必须等待。   (2) 同步,指当写(输入)进程把一定数量(如4 KB)的数据写入pipe,便去睡眠等待,直到读(输出)进程取走数据后,再把它唤醒。当读进程读一空pipe时,也应睡眠等待,直至写进程将数据写入管道后,才将之唤醒。   (3) 确定对方是否存在,只有确定了对方已存在时,才能进行通信。 * 2.消息传递系统   消息传递系统(Message passing system)是当前应用最为广泛的一种进程间的通信机制。在该机制中,进程间的数据交换是以格式化的消息(message)为单位的;在计算机网络中,又把message称为报文。程序员直接利用操作系统提供的一组通信命令(原语),不仅能实现大量数据的传递,而且还隐藏了通信的实现细节,使通信过程对用户是透明的,从而大大减化了通信程序编制的复杂性,因而获得了广泛的应用。   特别值得一提的是,在当今最为流行的微内核操作系统中,微内核与服务器之间的通信,无一例外地都采用了消息传递机制。又由于它能很好地支持多处理机系统、分布式系统和计算机网络,因此它也成为这些领域最主要的通信工具。消息传递系统的通信方式属于高级通信方式。又因其实现方式的不同而进一步分成直接通信方式和间接通信方式两种。 * 消息传递通信的实现方法   1.直接通信方式   这是指发送进程利用OS所提供的发送命令,直接把消息发送给目标进程。此时,要求发送进程和接收进程都以显式方式提供对方的标识符。通常,系统提供下述两条通信命令 (原语): Send(Receiver,message); 发送一个消息给接收进程; Receive(Sender,message); 接收Sender发来的消息;   例如,原语Send(P2,m1)表示将消息m1发送给接收进程P2;而原语Receive(P1,m1)则表示接收由P1发来的消息m1。   在某些情况下,接收进程可与多个发送进程通信,因此,它不可能事先指定发送进程。例如,用于提供打印服务的进程,它可以接收来自任何一个进程的“打印请求”消息。对于这样的应用,在接收进程接收消息的原语中,表示源进程的参数,也是完成通信后的返回值,接收原语可表示为:   Receive (id,message);   我们还可以利用直接通信原语来解决生产者—消费者问题。当生产者生产出一个产品(消息)后,便用Send原语将消息发送给消费者进程;而消费者进程则利用Receive原语来得到一个消息。如果消息尚未生产出来,消费者必须等待,直至生产者进程将消息发送过来。生产者—消费者的通信过程可分别描述如下: * repeat            produce an item in nextp;            send(consumer,nextp);    until false;    repeat     receive(producer,nextc);            consume the item in nextc;   until false; *   2.间接通信方式   间接通信方式指进程之间的通信需要通过作为共享数据

文档评论(0)

1亿VIP精品文档

相关文档