计算机操作系统资源java3y第2章进程管理.pptxVIP

  • 3
  • 0
  • 约2.79千字
  • 约 24页
  • 2021-11-12 发布于四川
  • 举报

计算机操作系统资源java3y第2章进程管理.pptx

第2章 进程管理;2.7 进程通信 ;进程通信,是指进程之间的信息交换,其所交换的信息量大小不一。 ???般来说,进程间的通信根据通信的内容可以划分为两种:控制信息的传送与大批量数据传送。 低级进程通信:进程之间的互斥和同步,由于其所交换的信息量少而被归结为低级通信。 信号量机制在通信方面的缺点:1) 效率低;2) 通信对用户不透明。; 高级进程通信是指用户可直接利用操作系统所提供的一组通信命令,高效地传送大量数据的一种通信方式。 操作系统隐藏了进程通信的细节。 或者说???通信过程对用户是透明的。 这样,就大大减少了通信程序编制上的复杂性。;1 共享存储器系统 在共享存储器系统中,相互通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信。可分为两类。 (1)基于共享数据结构的通信方式 在该方式下,要求诸进程公用某些数据结构,借以实现诸进程间的信息交换。如生产者—消费者问题中有使用有界缓冲区这种数据结构来实现通信的。 (2)基于共享存储区的通信方式 ;1 共享存储器系统 在共享存储器系统中,相互通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信。可分为两类。 (1)基于共享数据结构的通信方式 (2)基于共享存储区的通信方式 为了传输大量数据,在存储器中划出了一块共享存储区,诸进程可通过对共享存储区中数据的读或写来实现通信。这种方式属于高级通信。;2 消息传递系统 消息传递机制是使用最广泛的一种进程间通信的机制。程序员直接利用系统提供的一组通信命令(原语)进行通信。操作系统隐藏了通信的细节,简化了通信程序的编制。 3管道通信 管道是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。图2-7所示为管道示意图。;3管道通信 管道是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又??pipe文件。图2-7所示为管道示意图。;在进程之间通信时,源进程可以直接或间接地将消息传送给目标进程,由此将进程通信分为直接通信和间接方式。 1直接通信方式 直接通信方式指发送进程利用OS所提供的发送命令,直接把消息发送给目标进程。此时,要求发送进程和接收进程都以显式方式提供对方的标识符。 ; 1直接通信方式 通常,系统提供下述两条通信命令(原语): 1) 发送原语:Send(Receiver,message);发送一个消息给接收进程 2) 接收原语:Receive(Sender,message);接收Sender发来的消息; 2 间接通信方式 (1)信箱:指进程之间的通信,需要通过作为共享数据结构的实体。该实体用来暂存发送进程发送给目标进程的消息;接收进程则从实体中取出对方发送给自己的消息,通常称这种中间实体为信箱。;(2)信箱操作原语 1)信箱的创建和撤消 进程可利用信箱创建原语来建立一个新信箱。创建者进程应给出信箱名字、信箱属性(公用、私用或共享); 对于共享信箱,还应给出共享者的名字。当进程不再需要读信箱时,可用信箱撤消原语将之撤消。 2)消息的发送和接收 当进程之间要利用信箱进行通信时,必须使用共享信箱,并利用系统提供的下述通信原语进行通信。 Send(mailbox, message); 将一个消息发送到指定信箱; Receive(mailbox, message); 从指定信箱中接收一个消息。;(3)信箱的种类 信箱可由操作系统创建,也可由用户进程创建,创建者是信箱的拥有者。据此,可把信箱分为以下三类。 1)私用信箱 用户进程可为自己建立一个新信箱 信箱的拥有者有权从信箱中读取消息,其他用户则只能将自己构成的消息发送到该信箱中。 可采用单向通信链路的信箱来实现。 当拥有该信箱的进程结束时,信箱也随之消失。 ;2)公用信箱 由操作系统创建,并提供给系统中的所有核准进程使用。 核准进程既可把消息发送到该信箱中,也可从信箱中读取发送给自己的消息。 公用信箱应采用双向通信链路的信箱来实现。 通常,公用信箱在系统运行期间始终存在。 3)共享信箱 由某进程创建,在创建时或创建后,指明它是可共享的,同时须指出共享进程(用户)的名字。 信箱的拥有者和共享者,都有权从信箱中取走发送给自己的消息。;(4)在利用信箱通信时,在发送进程和接收进程之间存在的四种关系 1)一对一关系 ??时可为发送进程和接收进程建立一条两者专用的通信链路,使两者之间的交互不受其他进程的干扰。 2)多对一关系。 允许提供服务的进程与多个用户进程之间进行交互 也称为客户/服务器交互(client/server interaction)。; 3)一对多关系。允许一个发送进程与多个接收进程进行交互,使发送进程可用广播方式,向接收者(多个)发送消息。

文档评论(0)

1亿VIP精品文档

相关文档