操作系统习题问题详解第 (3).doc

操作系统习题问题详解第 (3).doc

ID:57380662

大小:154.50 KB

页数:87页

时间:2020-08-14

操作系统习题问题详解第 (3).doc_第1页
操作系统习题问题详解第 (3).doc_第2页
操作系统习题问题详解第 (3).doc_第3页
操作系统习题问题详解第 (3).doc_第4页
操作系统习题问题详解第 (3).doc_第5页
资源描述:

《操作系统习题问题详解第 (3).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CH3应用题参考答案1、有三个并发进程:R负责从输入设备读入信息块,M负责对信息块加工处理;P负责打印输出信息块。今提供;l)一个缓冲区,可放置K个信息块;2)二个缓冲区,每个可放置K个信息块;试用信号量和P、V操作写出三个进程正确工作的流程。答:1)varB:array[0,k-1]ofitem;sread:semaPhore:=k;smanage:semaPhore:=0;swrite:semaphore:=0;rptr:integer:=O;mptr:integer:=O;wptr:integer:=0;x:itemcobeginprocessr

2、eader;processmanager;processwriter;beginbeginbeginLI:readamessageintox;L2:P(smanage);L3:P(swnte);P(sread);x:=B[mptr];x:=B[swrite];B[rptr]:=x;mptr:=(mptr+1)modk;wptr:=(wptr+1)modk;Rptr:=(rptr+1)modk;managethemessageinx;V(sread);V(smanage);B[mptr]:=x;printthemessageinx;GotoL1;V(sw

3、rite);gotoL3;End;gotoL2;end;End;coend2)varA,B:array[0,k-l]ofitem;sPut1:semaphore:=k;SPut2:semaPhore:=k;sget1:semaPhore:=0;sget2:semaphore:=0;put1:integer:=O;put2:integer:=0;get1:integer:=O;get2:integer:=O;cobeginprocessreader;processnmanager;processWriter;beginbeginbeginLl:reada

4、messageintox;L2:P(sgetl);L3:P(sgetZ);P(SPut1);x:=A[get1];x:=B[get2];A[put1]:=x;get1:(get1+1)modk;get2:=(get2+l)modk;Put1:=(put1+1)modk;V(sput1);V(sput2);V(sget1);managethemessageintox;printthemessageinx;GotoL1;P(sput2);gotoL3;Put2:=(put2+1)modk;V(sget2);GotoL2;End;Coend2设有n个进程共享

5、一个互斥段,如果:(1)每次只允许一个进程进入互斥段;(2)每次最多允许m个进程(m簇n)同时进入互斥段。试问:所采用的信号量初值是否相同?信号量值的变化围如何?答:所采用的互斥信号量初值不同。1)互斥信号量初值为1,变化围为[-n+l,1]。当没有进程进入互斥段时,信号量值为1;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为O;当有1个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1;最多可能有n-1个进程等待进入互斥段,故此时信号量的值应为-(n-1)也就是-n+1。2)互斥信号量初值为m,变化围为[-n+m,m]。当没有进

6、程进入互斥段时,信号量值为m;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为m-1:当有m个进程进入互斥段且没有一个进程等待进入互斥段时,信号量值为0:当有m个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为一l;最多可能有n-m个进程等待进入互斥段,故此时信号量的值应为-(n-m)也就是-n+m.3有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。试问Pl、P2并发执行后,x、y、z的值各为多少?P1:P2:BeginbeginY:=1;x:=1;Y:=y+3;x:=x+5;V(S1);P(S1);

7、Z:=Y+1;X:X+Y;P(s2);V(S2);Y:=z+y;z:=z+x;Endend答:现对进程语句进行编号,以方便描述.P1:P2:beginbeginy:=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;⑧Endend①、②、⑤和⑥是不相交语句,可以任何次序交错执行,而结果是唯一的。接着无论系统如何调度进程并发执行,当执行到语句⑦时,可以得到x=10,y=4。按Bernstein条件,语句③的执行结果不受语句⑦的影响,故语句③执行后得到z

8、=5。最后,语句④和⑧并发执行,这时得到了两种结果为:语句④先执行:x=10,y=9,z=15

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。