操作系统全真试题分类解析(答案)

操作系统全真试题分类解析(答案)

ID:37356142

大小:568.98 KB

页数:79页

时间:2019-05-22

操作系统全真试题分类解析(答案)_第1页
操作系统全真试题分类解析(答案)_第2页
操作系统全真试题分类解析(答案)_第3页
操作系统全真试题分类解析(答案)_第4页
操作系统全真试题分类解析(答案)_第5页
资源描述:

《操作系统全真试题分类解析(答案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统硕士研究生入学考试全真试题分类解析一、与时间有关错误类二、进程管理及调度类三、同步和互斥类四、死锁问题类五、存储管理类六、文件管理类七、设备管理类79一、与时间有关错误类北航2001与时间有关错题有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。试问P1、P2并发执行后,x、y、z的值各为多少?P1:P2:beginbeginy:=1;x:=1;y:=y+2;x:=x+1;V(S1);P(S1);z:=y+1;x:=x+y;P(S2);V(S2);y:=z+yz:=z+x;end.end.答:现对进程语句进行编号

2、,以方便描述。P1:P2:beginbeginy:=1;①x:=1;⑤y:=y+2;②x:=x+1;⑥V(S1);P(S1);z:=y+1;③x:=x+y;⑦P(S2);V(S2);y:=z+y④z:=z+x;⑧end.end.①、②、⑤和⑥是不相交语句,可以任何次序交错执行,而结果是唯一的。接着无论系统如何调度进程并发执行,当执行到语句⑦时,可以得到x=5,y=3。按Bernstein条件,语句③的执行结果不受语句⑦的影响,故语句③执行后得到z=4。最后,语句④和⑧并发执行,最后结果为:语句④先执行,再执行⑧:x=5,y=7,z=9。语句⑧先执行,再

3、执行④:x=5,y=12,z=9。华中科技大2000、国防科大1999与时间有关错题79进程P0,P1共享变量flag和turn。若flag和turn单元内容的修改和访问是互斥的,它们如下进入临界区:varflag:array[0…1]ofBoolean;turn:0…1;flag[0]:=flag[1]:=false;turn:=0;processi(i=0or1)whiletruedobeginflag[i]:=true;…………………………….①whileturn≠i…………………………….②dobeginwhileflag[j]==falsed

4、oskip;turn:=i……………………..③end;临界区;flag[i]:=false;出临界区;end.该算法能正确实现互斥吗?应如何修改?解:不能。若P0执行到①,flag[0]:=true;这时P0被打断,P1开始执行,首先执行.①,使得flag[1]的值为true。接着执行②,由于turn的初值为0,故进入内循环时turn置为1。这时调度转向P0,P0也进入内循环,由于flag[1]的值己为true,故P0再次把turn值置为0。重复上述两个操作,没有进程能进临界区。修改算法如下:varflag:array[0…1]ofBoolean;t

5、urn:0…1;flag[0]:=flag[1]:=false;turn:=0or1;process0whiletruedobeginflag[0]:=true;turn:=1;whileflag[1]andturn=1doskip;临界区;flag[0]:=false;出临界区;end;79process1whiletruedobeginflag[1]:=true;turn:=0;whileflag[0]andturn=0doskip;临界区;flag[1]:=false;出临界区;end;此算法能保证互斥,讨论:1没有进程在临界区,显然,任一进程能

6、进入。2有一个进程己在临界区,另一个必将在whileflag[k]andturn=k(k=0or1)上做空操作等待进入。3进程交叉执行时,有一个也必将在whileflag[k]andturn=k(k=0or1)上做空操作等待进入。复旦大学1999、浙江大学1997与时间有关错题下述流程是解决两进程互斥访问临界区问题的一种方法。试从“互斥”(mutualexclusion)、“空闲让进”(progress)、“有限等待”(boundedwaiting)等三方面讨论它的正确性。如果它是正确的,则证明之;如果它不正确,请说明理由。programattemp;

7、varc1,c2:integer;procedurep1;(/*对第一个进程p1*/)beginrepeatRemainSection1;repeatc1:=1-c2untilc2<>0;CriticalSection;(/*临界区*/)c1:=1untilfalseend;procedurep2;(/*对另一个进程p2*/)begin79repeatRemainSection2;repeatc2:=1-c1untilc1<>0;CriticalSection;(/*临界区*/)c2:=1untilfalseend;begin(/*主程序*/)c1:=

8、1;c2:=1;cobeginp1;p2(/*两进程p1,p2开始执行*/)coendend.

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

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

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