4.8 进程通信习题_第1页
4.8 进程通信习题_第2页
4.8 进程通信习题_第3页
4.8 进程通信习题_第4页
4.8 进程通信习题_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章 进程通信习题【例】在消息缓冲通信中,系统应提供若干( ),用以存放信息。A 队列缓冲区B 消息缓冲区C 容量的大缓冲区D 容量小的缓冲区【分析】解决进程间的通信问题基本上有3种方案:共享存储区,消息系统,共享文件其中为了实现消息缓冲通信,在发送进程的工作区中开辟一个发送区,有3个数据项:接收进程标识号,消息大小,消息正文。在接收进程的工作区中开辟一个接受区,也有3个数据项:发送进程标识号,消息大小,消息正文为了支持这种通信,系统提供若干消息缓冲区,用以存放信息,每当一个进程向另一个进程发送消息时,便向系统申请一个缓冲区并把已准备好的消息从发送区复制到该缓冲区,然后插入到接收进程的消息链

2、中,所有发送给同一进程的消息构成接收进程的消息链,进程PCB中有指针指向消息链的链头【答案】B【例】用信箱实现进程间相互信息的通信机制要有两个通信原语,它们是( )。A “发送”原语和“执行”原语B ”就绪“原语和”执行“原语C ”发送“原语和”接收“原语D ”就绪“原语和”接收“原语【例】信箱通信是一种_通信方式A 直接通信B 间接通信C 低级通信D 信号量【答案】B【例】在进程直接通信方式中,系统提供两条如下通信原语,请选择正确参数来替换之。 send(),(); receive(),();A senderB receiverC textD messageE mailbox【答案】B D

3、A D【例】在进程通信中,_方案要求通信进程之间共享某些变量,并通过这些变量交换信息。【分析】共享存储区方案要求通信进程之间共享某些变量,通过这些变量交换信息。共享变量一定要在多个进程之间互斥使用,否则就会导致不确定性错误。在共享存储区方案中,无论是设置共享变量还是处理进程间的互斥关系都是程序员的责任,操作系统除了提供共享存储空间外,不需要提供其他支持【共享存储区】【例】通过专门的通信机制来实现进程间交换大量信息的通信方式称为进程通信。进程是用()来交换信息的,最基本的通信原语包括()和()。【解答】消息Send发送消息原语Receive接受消息原语【例】每个信箱可以由_和_量部分组成。【分析

4、】若干进程都可向同一进程发送信件,接收信件的进程可以设立一个信箱。信箱的大小取决信箱中容纳的信件数,为了便于了解信箱中的情况,每个信箱可以有“信箱说明”和“信箱体”两部分组成【例】为实现消息缓冲通信机制,系统除应该在PCB中增加消息队列头指针外,还应该增加()和()信号量,以实现进程之间的正确通信。【解答】消息队列的互斥消息队列的消息个数。【例】消息缓冲机制中,发送进程和接收进程之间存在有用来存放被传送消息的缓冲区,所以,它们之间存在对临界资源的使用问题。 ( ) 【答案】正确。 【解析】使用消息缓冲机制传送数据时,这两个通信进程必须满足如下条件: a在发送进程把消息写入缓冲区和把缓冲区挂入消

5、息队列时,应禁止其他进程对该缓冲区消息队列的访问。同理,当接收进程正从消息队列中取消息缓冲时,也应禁止其他进程对该队列的访问。 b当缓冲区中无消息时,接收进程不能接收到消息。 【例】试比较直接通信和间接通信方式【答案】可以从一下几个方面来比较直接通信方式和间接通信方式1 发送和接收原语,直接通信原语通常为send(receiver,message), receive(sender,message); 间接通信原语通常为 send(mailbox,message), receive(mailbox,message),而且它还需要提供有关信箱创建和撤销的原语2 提供对方的标识符,直接通信要求发送双

6、发显示地提供对方的标识符,对接收进程,如果允许它同时接收多个进程发来的消息,则接收原语中的发送进程标识符可以是通信完成后返回的值; 间接通信则不用要求它们显示地提供对方的标识符,只需要提供信箱标识3 通信链路。直接通信时,进程只需要提供对方的标识符便可以进行通信,在收发双方之间建立通信链路与系统自动完成,并且在收发双发之间有且仅有一条通信链路;间接通信时,仅当一对进程共享某个信箱时,它们之间才有通信链路,而且一条链路可对应多个进程,4 实时性。直接通信通常只能提供实时通信,间接通信则既可实现实时通信,也可实现非实时通信【例】进程通信方式有两种即:直接通信、间接通信,给出各自使用的原语形式。 【

7、解析】 直接通信: 这种通信是固定在一对进程之间。例如,进程A把信件只发送给进程B,而进程B也只接收进程A的信件。那么,“send”和“receive”两条原语的形式如下: send(B,M) 把信件M发送给进程B receive(A,X) 接收来自进程 A的信件且存入 X中进程A和进程B通过“send”和“receive”操作而自动建立了一种联结。 间接通信: 这种通信是以信箱为媒体来实现通信的,只要接收信件的进程设立一个信箱,那么,若干个进程都可向同一个进程发送信件。利用信箱通信时,“send”,“receive”原语中应给出信箱名,即: send(N,M) 把信件M送入信箱N中 rece

8、ive(N,X) 从信箱N中取出一封信存入X【例】进程之间有哪些基本的通信方式?它们分别有什么特点?适用于哪些场合?【答案】进程通信根据交换信息量的多少分为高级通信和低级通信。低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如PV操作);高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息。高级进程通信方式大致归为3类:共享存储器,管道文件,消息传递共享存储器:在内存中分配一片空间作为共享存储区。需要进行通信的进程把它附加到自己的地址空间中,不需要则把它取消管道文件:连接两个命令的一个打开文件。一个命令向该文件中写入数据,另一个命令从该文件中读出数据

9、消息传递:以消息为单位在进程间进行数据交换【例】试说明信号与中断两种机制间的异同处?【答案】相似处: 信号和中断都采用了相同的异步通信方式;当检测出有信号或中断请求时,都是暂停正在执行的程序而转去执行相应的处理程序; 两者都是在处理完毕后返回到原来的断点; 对信号或中断都可进行屏蔽; b. 差异处: 中断有优先级,而信号没有优先级,即所有信号都是平等的; 信号处理程序是在用户态下运行的,而中断处理程序则是在核心态下运行的; 中断响应是及时的,而信号响应通常都有较大的时间延迟. 【例】请回答1 高级通信机制与低级通信机制P,V源于操作的主要区别2 给出消息缓冲机制(有限缓冲)的基本工作原理【解答

10、】1 PV操作是进程间通过共享变量实现信息传递;而高级通信机制是由系统提供发送与接受两个操作,进程间通过这两个操作进行通信,无需共享任何变量2 基本原理:操作系统管理一个用于进程通信的缓冲池,其中的每一个缓冲区单元存放一条信息。欲发送消息,发送者从中申请一个可用缓冲区,接受者取出一条消息时再释放该缓冲区,每个进程设置一条消息队列,任何发送给该进程的消息均暂存在其消息队列中。【例】在UNIX系统中,当一个进程向另一个进程发送信号后,接收信号的进程如何处理信号?【解答】当一个进程接收到某一个信号后,处理方式与硬中断非常类似。即它立即暂停自己正在执行的程序,转去执行事先规定的对该信号的处理程序FUNC,完成后再返回原先正在执行的程序。所不同的知识信号的设置检查都是由软件来实施的,所有又称为软中断。【例】有名管道和无名管道的主要区别是什么?【解答】有名管道利用系统调用PIPE建立一个无名临时文件,只有调用PIPE的进程及其子孙进程才能利用该管道进行通信有名管道利用系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论