1 / 17
文档名称:

操作系统第3章处理机调度与死锁-习题.ppt

格式:ppt   大小:1,379KB   页数:17页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统第3章处理机调度与死锁-习题.ppt

上传人:小可爱 2022/12/2 文件大小:1.35 MB

下载得到文件列表

操作系统第3章处理机调度与死锁-习题.ppt

相关文档

文档介绍

文档介绍:该【操作系统第3章处理机调度与死锁-习题 】是由【小可爱】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【操作系统第3章处理机调度与死锁-习题 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。操作系统第3章处理机调度与死锁****题
采用⑴方案,我们增加一位服务生(信号量room),让他只允许四位哲学家同时进入餐厅。
varchopstick:array[0,…,4]ofsemaphore:=(1,1,1,1,1);
room:semaphore:=4;
i:=integer;
procedurephilosopher(i:integer);
begin
repeat
think;
wait(room);
wait(chopstick[i]);
wait(chopstick[(i+1)mod5]);
eat;
signal(chopstick[(i+1)mod5]);
signal(chopstick[i]);
signal(room);
untilfalse;
end
begin
parbegin
philosopher(0);
philosopher(1);
philosopher(2);
philosopher(3);
philosopher(4);
parend
end
另一种方法:
varchopstick:array[0,…,4]ofsemaphore:=(1,1,1,1,1);
mutex:semaphore:=1;
i:=integer;
procedurephilosopher(i:integer);
begin
repeat
think;
wait(mutex);
wait(chopstick[i]);
wait(chopstick[(i+1)mod5]);
signal(mutex);
eat;
signal(chopstick[(i+1)mod5]);
signal(chopstick[i]);
untilfalse;
end
,如果P0发出的请求向量由Request(0,2,0)改为Request(0,1,0),问系统可否将资源分配给它?
答:P0请求资源:P0发出请求向量Requst0(0,1,0),系统按银行家算法进行检查:
①Request0(0,1,0)≤Need0(7,4,3);
②Request0(0,1,0)≤Available(2,3,0);
③系统暂时先假定可为P0分配资源,并修改有关数据,Available=(2,3,0)-(0,1,0)=(2,2,0)
进程
Allocation
Need
Available
P0
020
733
220
P1
302
020
P2
302
600
P3
211
011
P4
002
431
进程
Work
Need
Allocation
Work+
Allocation
Finish
P1
220
020
302
522
true
P3
522
011
211
733
true
P0
733
733
020
753
true
P2
753
600
302
1055
true
P4
1055
431
002
1057
true
进行安全性检查,可以找到一个安全序列{P1,P3,P0,P2,P4}。可以将P0所申请的资源分配给它。
答:(2)P2请求资源:请求向量Requst(1,2,2,2),系统按银行家算法进行检查:
①Request(1,2,2,2)≤Need2(2,3,5,6);
②Request(1,2,2,2)≤Available(1,6,2,2);
③系统暂时先假定可为P2分配资源,并修改有关数据,Available=(1,6,2,2)-(1,2,2,2)=(0,4,0,0)