操作系统习题答案第 (3)

上传人:cl****1 文档编号:489326461 上传时间:2023-10-24 格式:DOC 页数:85 大小:421KB
返回 下载 相关 举报
操作系统习题答案第 (3)_第1页
第1页 / 共85页
操作系统习题答案第 (3)_第2页
第2页 / 共85页
操作系统习题答案第 (3)_第3页
第3页 / 共85页
操作系统习题答案第 (3)_第4页
第4页 / 共85页
操作系统习题答案第 (3)_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《操作系统习题答案第 (3)》由会员分享,可在线阅读,更多相关《操作系统习题答案第 (3)(85页珍藏版)》请在金锄头文库上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流操作系统习题答案第 (3).精品文档.CH3 应用题参考答案1、 有三个并发进程:R 负责从输入设备读入信息块,M 负责对信息块加工处理;P 负责打印输出信息块。今提供;l )一个缓冲区,可放置K 个信息块;2 )二个缓冲区,每个可放置K 个信息块;试用信号量和P 、V 操作写出三个进程正确工作的流程。答:1 ) var B : array 0 , k-1 of item ; sread : semaPhore : = k ; smanage : semaPhore : = 0 ; swrite : semaphore : = 0 ; rpt

2、r : integer : = O ; mptr : integer : = O ; wptr :integer : = 0 ; x : item cobegin process reader ; process manager ; process writer ; begin begin begin LI : read a message intox ; L2 : P ( smanage ) ; L3 : P ( swnte ) ; P ( sread ) ; x:=Bmptr; x:=Bswrite;Brptr:=x; mptr:=(mptr+1) mod k; wptr:=(wptr+1

3、) mod k;Rptr:=(rptr+1) mod k; manage the message in x; V(sread);V(smanage); Bmptr:=x; print the message in x;Goto L1; V(swrite); goto L3;End; goto L2; end;End;coend2 ) var A , B :array 0 , k -l of item ; sPut1 : semaphore:=k; SPut2: semaPhore:=k; sget1 : semaPhore : = 0 ; sget2 : semaphore : = 0 ; p

4、ut1 :integer :=O ; put2:integer : = 0 ; get1 :integer :=O ; get2 : integer : = O ; cobegin process reader ; processn manager; process Writer ; begin begin begin Ll : read a message into x ; L2 : P ( sgetl ) ; L3 : P ( sgetZ ) ; P ( SPut1 ) ; x : = A get1 ; x : = B get2; A put1:=x ; get1 :(get1+1 ) m

5、od k ; get2:=(get2 + l ) mod k ;Put1:=(put1+1) mod k; V(sput1); V(sput2);V(sget1); manage the message into x; print the message in x;Goto L1; P(sput2); goto L3; Put2:=(put2+1) mod k; V(sget2); Goto L2; End;Coend2 设有n 个进程共享一个互斥段,如果:( 1 )每次只允许一个进程进入互斥段;( 2 )每次最多允许m 个进程(m 簇n )同时进入互斥段。试问:所采用的信号量初值是否相同?信

6、号量值的变化范围如何?答:所采用的互斥信号量初值不同。1 )互斥信号量初值为1 ,变化范围为-nl , 1 。当没有进程进入互斥段时,信号量值为1 ;当有1 个进程进入互斥段但没有进程等待进入互斥段时,信号量值为O ;当有1 个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1 ;最多可能有n -1 个进程等待进入互斥段,故此时信号量的值应为-(n - 1 )也就是-n+1 。2 )互斥信号量初值为m ,变化范围为-nm , m 。当没有进程进入互斥段时,信号量值为m ;当有1 个进程进入互斥段但没有进程等待进入互斥段时,信号量值为m - 1 :当有m 个进程进入互斥段且没有一个进程等

7、待进入互斥段时,信号量值为0 :当有m 个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为一l ;最多可能有n - m 个进程等待进入互斥段,故此时信号量的值应为-(n-m)也就是-n+m.3 有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。试问Pl 、P2 并发执行后,x 、y 、z 的值各为多少? P1: P2:Begin beginY:=1; x:=1;Y:=y+3; x:=x+5;V(S1); P(S1);Z:=Y+1; X:X+Y;P(s2); V(S2);Y:=z+y; z:=z+x;End end 答:现对进程语句进行编号,以方便描述P1

8、: P2 : begin begin y : = 1 ; x :=1 ; y :=y+3 ; x :x+5 ; V(S1); P(S1); Z:Y+1 ; x :XY ;P(s2); V(S2);Y:=z+y; z:=Z+X; End end 、 、 和 是不相交语句,可以任何次序交错执行,而结果是唯一的。接着无论系统如何调度进程并发执行,当执行到语句 时,可以得到x = 10 , y = 4 。按Bernstein 条件,语句 的执行结果不受语句 的影响,故语句 执行后得到z = 5 。最后,语句 和 并发执行,这时得到了两种结果为:语句 先执行:x =10 , y =9 , z= 150

9、语句 先执行:x =10 , y =19 , z =15此外,还有第三种情况,语句 被推迟,直至语句 后再执行,于是依次执行以下三个语句:7 :二z + X : z : = y + 1 ; y : Z十y ; 这时z 的值只可能是y 1=5 ,故y =ZY=5 + 4=9,而x = 10 。第三种情况为:x = 10 ,Y=9 , Z = 5 。4 有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有100 个座位。试用:l )信号量和P 、V 操作;2 )管程,来实现用户进程的同步算法。答:1 )使用信号量和P 、v 操作:var name :array l 100of A ; A = record number :integer ; name:string ; end for i : = 1 to 100 do A i .number :i;A i .name :null; mutex , seatcount : semaphore ; i : integer ;mutex : = l ; seatcount : = 100 ; cobegin process readeri ( var readename:string ) (i=1 , 2 ) P ( se

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号