您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 48进程通信习题-共30页
第4章进程通信习题【例】在消息缓冲通信中,系统应提供若干(),用以存放信息。A队列缓冲区B消息缓冲区C容量的大缓冲区D容量小的缓冲区【分析】解决进程间的通信问题基本上有3种方案:共享存储区,消息系统,共享文件其中为了实现消息缓冲通信,在发送进程的工作区中开辟一个发送区,有3个数据项:接收进程标识号,消息大小,消息正文。在接收进程的工作区中开辟一个接受区,也有3个数据项:发送进程标识号,消息大小,消息正文为了支持这种通信,系统提供若干消息缓冲区,用以存放信息,每当一个进程向另一个进程发送消息时,便向系统申请一个缓冲区并把已准备好的消息从发送区复制到该缓冲区,然后插入到接收进程的消息链中,所有发送给同一进程的消息构成接收进程的消息链,进程PCB中有指针指向消息链的链头【答案】B【例】用信箱实现进程间相互信息的通信机制要有两个通信原语,它们是()。A“发送”原语和“执行”原语B”就绪“原语和”执行“原语C”发送“原语和”接收“原语D”就绪“原语和”接收“原语【分析】用信箱实现进程间相互通信的通信机制要有两个通信原语,它们是”发送(send)”和”接收(receive)”为避免信件的丢失和错误索取信件,要遵循如下原则:×若发送信件时信箱已满,则发送信件的进程应被置成“等信箱”状态,直到信箱有空才能释放×若取信件时信箱中无信,则接收信件的进程被置成“等信件”状态,直到有信件才能释放Send(N,M)把信件M送到指定的信箱N中Receive(N,Z)从指定信箱M中取出一封信,存放在指定的地址Z中【答案】C【例】在消息缓冲通信中,消息队列属于_____资源。A临界B共享C永久D可剥夺【答案】A【例】信箱通信是一种______通信方式A直接通信B间接通信C低级通信D信号量【答案】B【例】UNIX系统通信速度最高的一种通信机制是()A共享存储区B信号量C管道D消息机制【答案】A【例】在进程直接通信方式中,系统提供两条如下通信原语,请选择正确参数来替换之。send((),());receive((),());AsenderBreceiverCtextDmessageEmailbox【答案】BDAD【例】在消息缓冲通信机制中,使用的临界资源是()A信箱B消息队列中的某个消息缓冲区C管道D整个消息队列【答案】D【例】在进程通信中,______方案要求通信进程之间共享某些变量,并通过这些变量交换信息。【分析】共享存储区方案要求通信进程之间共享某些变量,通过这些变量交换信息。共享变量一定要在多个进程之间互斥使用,否则就会导致不确定性错误。在共享存储区方案中,无论是设置共享变量还是处理进程间的互斥关系都是程序员的责任,操作系统除了提供共享存储空间外,不需要提供其他支持【共享存储区】【例】UNIX系统V中,系统向用户提供的用于建立无名管道的系统调用是();用于建立有名管道的系统调用是()【答案】PIPEMKNOD【例】UNIX系统中,()管道只能用于同族进程之间的通信,而()管道则可以用于()所有进程间的通信【答案】无名有名,知道该管道名字的【例】通过专门的通信机制来实现进程间交换大量信息的通信方式称为进程通信。进程是用()来交换信息的,最基本的通信原语包括()和()。【解答】消息Send发送消息原语Receive接受消息原语【例】每个信箱可以由_____和____量部分组成。【分析】若干进程都可向同一进程发送信件,接收信件的进程可以设立一个信箱。信箱的大小取决信箱中容纳的信件数,为了便于了解信箱中的情况,每个信箱可以有“信箱说明”和“信箱体”两部分组成【例】为实现消息缓冲通信机制,系统除应该在PCB中增加消息队列头指针外,还应该增加()和()信号量,以实现进程之间的正确通信。【解答】消息队列的互斥消息队列的消息个数。【例】消息缓冲机制中,发送进程和接收进程之间存在有用来存放被传送消息的缓冲区,所以,它们之间存在对临界资源的使用问题。()【答案】正确。【解析】使用消息缓冲机制传送数据时,这两个通信进程必须满足如下条件:a.在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该缓冲区消息队列的访问。同理,当接收进程正从消息队列中取消息缓冲时,也应禁止其他进程对该队列的访问。b当缓冲区中无消息时,接收进程不能接收到消息。【例】试比较直接通信和间接通信方式【答案】可以从一下几个方面来比较直接通信方式和间接通信方式1发送和接收原语,直接通信原语通常为send(receiver,message),receive(sender,message);间接通信原语通常为send(mailbox,message),receive(mailbox,message),而且它还需要提供有关信箱创建和撤销的原语2提供对方的标识符,直接通信要求发送双发显示地提供对方的标识符,对接收进程,如果允许它同时接收多个进程发来的消息,则接收原语中的发送进程标识符可以是通信完成后返回的值;间接通信则不用要求它们显示地提供对方的标识符,只需要提供信箱标识3通信链路。直接通信时,进程只需要提供对方的标识符便可以进行通信,在收发双方之间建立通信链路与系统自动完成,并且在收发双发之间有且仅有一条通信链路;间接通信时,仅当一对进程共享某个信箱时,它们之间才有通信链路,而且一条链路可对应多个进程,4实时性。直接通信通常只能提供实时通信,间接通信则既可实现实时通信,也可实现非实时通信【例】进程通信方式有两种即:直接通信、间接通信,给出各自使用的原语形式。【解析】直接通信:这种通信是固定在一对进程之间。例如,进程A把信件只发送给进程B,而进程B也只接收进程A的信件。那么,“send”和“receive”两条原语的形式如下:send(B,M)把信件M发送给进程Breceive(A,X)接收来自进程A的信件且存入X中进程A和进程B通过“send”和“receive”操作而自动建立了一种联结。间接通信:这种通信是以信箱为媒体来实现通信的,只要接收信件的进程设立一个信箱,那么,若干个进程都可向同一个进程发送信件。利用信箱通信时,“send”,“receive”原语中应给出信箱名,即:send(N,M)把信件M送入信箱N中receive(N,X)从信箱N中取出一封信存入X【例】进程之间有哪些基本的通信方式?它们分别有什么特点?适用于哪些场合?【答案】进程通信根据交换信息量的多少分为高级通信和低级通信。低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如PV操作);高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息。高级进程通信方式大致归为3类:共享存储器,管道文件,消息传递共享存储器:在内存中分配一片空间作为共享存储区。需要进行通信的进程把它附加到自己的地址空间中,不需要则把它取消管道文件:连接两个命令的一个打开文件。一个命令向该文件中写入数据,另一个命令从该文件中读出数据消息传递:以消息为单位在进程间进行数据交换【例】试说明信号与中断两种机制间的异同处?【答案】a.相似处:b.信号和中断都采用了相同的异步通信方式;c.当检测出有信号或中断请求时,都是暂停正在执行的程序而转去执行相应的处理程序;d.两者都是在处理完毕后返回到原来的断点;对信号或中断都可进行屏蔽;b.差异处:中断有优先级,而信号没有优先级,即所有信号都是平等的;信号处理程序是在用户态下运行的,而中断处理程序则是在核心态下运行的;中断响应是及时的,而信号响应通常都有较大的时间延迟.【例】请回答1高级通信机制与低级通信机制P,V源于操作的主要区别2给出消息缓冲机制(有限缓冲)的基本工作原理【解答】1PV操作是进程间通过共享变量实现信息传递;而高级通信机制是由系统提供发送与接受两个操作,进程间通过这两个操作进行通信,无需共享任何变量2基本原理:操作系统管理一个用于进程通信的缓冲池,其中的每一个缓冲区单元存放一条信息。欲发送消息,发送者从中申请一个可用缓冲区,接受者取出一条消息时再释放该缓冲区,每个进程设置一条消息队列,任何发送给该进程的消息均暂存在其消息队列中。【例】在UNIX系统中,当一个进程向另一个进程发送信号后,接收信号的进程如何处理信号?【解答】当一个进程接收到某一个信号后,处理方式与硬中断非常类似。即它立即暂停自己正在执行的程序,转去执行事先规定的对该信号的处理程序FUNC,完成后再返回原先正在执行的程序。所不同的知识信号的设置检查都是由软件来实施的,所有又称为软中断。【例】有名管道和无名管道的主要区别是什么?【解答】有名管道利用系统调用PIPE建立一个无名临时文件,只有调用PIPE的进程及其子孙进程才能利用该管道进行通信有名管道利用系统调用MKNOD建立一个可以在文件系统中长期存在的,具有路径名的文件,凡是知道该路径名的进程都可以利用该路程名来访问管道文件,实现彼此之间的通信。【例】读,写管道时应遵循哪些规则?【解答】进程对管道的读写应该按照有界缓冲区的生产者,消费者方式来实施对读,写操作的同步控制。彼此要随时检查检查通信的对方是否还存在,以决定以后的行动。谢谢你的阅读知识就是财富丰富你的人生
本文标题:48进程通信习题-共30页
链接地址:https://www.777doc.com/doc-3661017 .html