- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
每个作业的运行将经历两级调度作业调度和进程调度作业调度采用
操作系统硕士研究生入学考试
全真试题分类解析
与时间有关错误类
进程管理及调度类
同步和互斥类
死锁问题类
存储管理类
文件管理类
设备管理类
与时间有关错误类
北航2001与时间有关错题
有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。试问P1、P2并发执行后,x、y、z的值各为多少?
P1: P2:
begin begin
y:=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.
答:现对进程语句进行编号,以方便描述。
P1: P2:
begin begin
y:=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。
语句⑧先执行,再执行④:x=5 ,y=12,z=9。
华中科技大2000、国防科大1999与时间有关错题
进程P0,P1共享变量flag和turn。若flag和turn单元内容的修改和访问是互斥的,它们如下进入临界区:
var flag:array[0…1] of Boolean;
turn:0…1;flag[0]:=flag[1]:=false;turn:=0;
process i (i=0 or 1)
while true
do begin
flag[i]:=true;…………………………… .①
while turn≠i…………………………… . ②
do begin
while flag[j]==false
do skip;
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。重复上述两个操作,没有进程能进临界区。修改算法如下:
var flag:array[0…1] of Boolean;
turn:0…1;flag[0]:=flag[1]:=false;turn:=0 or 1;
process 0
while true
do begin
flag[0]:=true;
turn:=1;
while flag[1] and turn=1 do skip;
临界区;
flag[0]:=false;
出临界区;
e
原创力文档


文档评论(0)