操作系统(第三版)孙钟秀主编 课后习题3应用题参考答案.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:13 大小:145KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

操作系统(第三版)孙钟秀主编 课后习题3应用题参考答案.doc

操作系统(第三版)孙钟秀主编课后习题3应用题参考答案.doc

预览

免费试读已结束,剩余 3 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《操作系统教程》(第三版)CH3应用题参考答案CH3应用题参考答案有三个并发进程:R负责从输入设备读入信息块,M负责对信息块加工处理;P负责打印输出信息块。今提供;一个缓冲区,可放置K个信息块;二个缓冲区,每个可放置K个信息块;试用信号量和P、V操作写出三个进程正确工作的流程。答:varB:array[0,k-1]ofitem;sread:semaphore:=k;smanage:semaphore:=0;swrite:semaphore:=0;rptr:integer:=0;mptr:integer:=0;wptr:integer:=0;x:itemcobeginprocessreader;beginL1:readamessageintox;P(sread);B[rptr]:=x;rptr:=(rptr+1)modk;V(smanage);gotoL1;end;processmanager;beginL2:P(smanage);x:=B[mptr];mptr:=(mptr+1)modk;managethemessageinx;B[mptr]:=x;V(swrite);gotoL2;end;processwriter;beginL3:P(swrite);x:=B[wptr];wptr:=(wptr+1)modk;V(sread);Printthemessageinx;gotoL3;end;coendvarA,B:array[0,k-1]ofitem;sput1:semaphore:=k;sput2:semaphore:=k;sget1:semaphore:=0;sget2:semaphore:=0;put1:integer:=0;put2:integer:=0;get1:integer:=0;get2:integer:=0;cobeginprocessreader;beginL1:readamessageintox;P(sput1);A[put1]:=x;put1:=(put1+1)modk;V(sget1);GotoL1;end;processmanager;beginL2:P(sget1);x:=A[get1];get1:=(get1+1)modk;V(sput1);Managethemessageintox;P(sput2);B[put2]:=x;put2:=(put2+1)modk;V(sget2);GotoL2;end;processwriter;beginL3:P(sget2);x:=B[get2];get2:=(get2+1)modk;V(sput2);Printthemessageinx;GotoL3;end;coend设有n个进程共享一个互斥段,如果:(1)每次只允许一个进程进入互斥段;(2)每次最多允许m个进程(m≤n)同时进入互斥段。试问:所采用的信号量初值是否相同?信号量值的变化范围如何?答:所采用的互斥信号量初值不同。互斥信号量初值为1,变化范围为[-n+1,1]。当没有进程进入互斥段时,信号量值为1;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为0;当有1个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1;最多可能有n-1个进程等待进入互斥段,故此时信号量的值应为-(n-1)也就是-n+1。互斥信号量初值为m,变化范围为[-n+m,m]。当没有进程进入互斥段时,信号量值为m;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为m-1;当有m个进程进入互斥段且没有一个进程等待进入互斥段时,信号量值为0;当有m个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1;最多可能有n-m个进程等待进入互斥段,故此时信号量的值应为-(n-m)也就是-n+m。有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。试问P1、P2并发执行后,x、y、z的值各为多少?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+yz:=z+x;end.end.答:现对进程语句进行编号,以方便描述。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;⑧end.end.①、②、