教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 小学教育 >

《计算机操作系统教程第三版》答案作者左万历 周长林(5)

来源:网络收集 时间:2026-08-27
导读: 循环等待进程序列p1,p2,p3 pn,进程p1正等待资源类rk1中唯一的一个实例,而rk1又被进程p2所占用;进程p2正等待资源类rk2中唯一的一个实例,而rk2又被进程p3所占用; ; 进程pn正等待资源类rkn 中唯一的一个实例,而rk

循环等待进程序列<p1,p2,p3 pn>,进程p1正等待资源类rk1中唯一的一个实例,而rk1又被进程p2所占用;进程p2正等待资源类rk2中唯一的一个实例,而rk2又被进程p3所占用; ; 进程pn正等待资源类rkn

中唯一的一个实例,而rkn又被进程p1所占用。能看出,画出的资源分配图存在环路。

3. 什么叫饥饿?什么叫饿死?什么叫活锁?举例说明之.答:在一个动态系统中,资源请求与释放是经常性发生的进程行为.对于每类系统资源,操作系统需要确定一个分配策略,当多个进程同时申请某类资源时,由分配策略确定资源分配给进程的次序。 资源分配策略可能是公平的(fair),能保证请求者在有限的时间内获得所需资源;资源分配策略也可能是不公平的(unfair),即不能保证等待时间上界的存在。 在后一种情况下,即使系统没有发生死锁,某些进程也可能会长时间等待.当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿(starvation),当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死(starve to death)。在忙式等待条件下发生的饥饿,称为活锁.考虑一台打印机分配的例子,当有多个进程需要打印文件时,系统按照短文件优先的策略排序,该策略具有平均等待时间短的优点,似乎非常合理,但当短文件打印任务源源不断时,长文件的打印任

务将被无限期地推迟,导致饥饿以至饿死。

4. 死锁与饿死之间有何相同点和不同点?答:饿死与死锁有一定联系:二者都是由于竞争资源而引起的,但又有明显差别,主要表现在如下几个方面:(1) 从进程状态考虑,死锁进程都处于等待状态,忙式等待(处于运行或就绪状态)的进程并非处于等待状态,但却可能被饿死;(2) 死锁进程等待永远不会被释放的资源,饿死进程等待会被释放但却不会分配给自己的资源,表现为等待时限没有上界(排队等待或忙式等待);(3) 死锁一定发生了循环等待,而饿死则不然。这也表明通过资源分配图可以检测死锁存在与否,但却不能检测是否有进程饿死;(4) 死锁一定涉及多个进程,而饥饿或被饿死的进程可能只有一个。饥饿和饿死与资源分配策略(policy)有关,因而防止饥饿与饿死可从公平性考虑,确保所有进程

不被忽视,如FCFS分配算法。

5. 何谓银行家算法的保守性? 举例说明之.答:银行家算法的保守性是指银行家算法只给出了进程需要资源的最大量,而所需资源的具体申请和释放顺序仍是未知的,因而银行家只能往最坏处设想.例如:

书中举例p119页。例5.5。

6. 能否给出避免死锁的充要性算法? 为什么?答:目前关于避免死锁的算法,如银行家算法是充分性算法,即确保系统时刻处于安全状态,这是在系统已知每个进程所需资源最大量的条件下可以给出的最好结果。如果系统不仅知道每个进程所需资源的最大量,而且知道进程有关资源的活动序列,在这个更强的条件下,则可以给出避免死锁的充要性算法(读者可以证明),但其复杂度是很高(NP完全)的。而

且由于程序中分支和循环的存在,事先给出进程有关资源的命令序列一般是不可能的。

7. 设有一个T型路口, 其中A、B、C、D处各可容纳一辆车,车行方向如下图所示,试找出死锁并用有

序分配法消除之. 要求资源编号合理.解:(1)E方向两台车分别位于A和B;S方向一台车位于C;W方向一台车位于D。(2)S方向两台车分别位于B和C;E方向一台车位于A;W方向一台车位于D。 设位置资源

C、B、A、D的编号从低到高依次为1、2、3、4,管理四个位置的信号量分别为s1,s2,s3,s4,信号量的初值均为1。车辆活动如下:

semaphore s1=1,s2=1,s3=1,s4=1;

W :直行 P(s1); // 按序申请 P(s4); E :左转 P(s2); 驶入 B; P(s3) ; 驶S :左转 P(s1); 驶入 C; P(s2) ; 驶驶入 D; 驶入 C; V(s4); 驶出 C; 入 A; V(S2) P(s4) ; 驶入 D; 入 B; V(S1) P(s3) ; 驶入 A; V(s1); V(s3) ; 驶出 D; V(s4); V(s2) ; 驶出 A; V(s3);

8. 设系统中仅有一个资源类, 其中共有M个资源实例, 使用此类资源的进程个数共有N个, 它们所需资源最大量总和为 , 试证明发生死锁的必要条件是 M+N.答:证明:假定发生死锁,那么Alloc(1)+Alloc(2)+ +Alloc(N)=M,(Alloc(i)表示第i进程已分配的资源量)。Need(1)+Need(2)+ Need(N) N。(Need(i)表示第i进程还需要的资源量)所以,发生死锁时,所有进程所需资源的总量 M+N。

9. 在银行家算法中,若出现如下资源分配情况: Allocation Need A B C D A B C D A B C D P0: 0 0 3 2 0 0 1 2 1 6 2 3 P1: 1 0 0 0 1 7 5 0 P2: 1 3 5 4 2 3 5 6 P3: 0 3 3 2 0 6 5 2 P4: 0 0 1 4 0 6 5 6试问:(1)当前状态是否安全? (2)如果进程P2提出安全请求Request[2]=(1,2,2,2),系统能否将资源分配给它?说明原因.解:(1)当前状态是安全状态。运行安全性检查算法如下: 1)Work = Available;Finish = false; 2)寻找满足如下条件的i: Finish[i]==false并且Need[i]≤Work[i]; 如果不存在,则转步骤4); 3)Work = Work + Allocation[i];Finish[i] = true; 转步骤2)4)如果对于所有i,Finish[i] = true,则系统处于安全状态,否则处于不安全状态。 令Work = Available=(1, 6, 2, 3)运行安全性检测算法,Finish[0]=false并且Need[0]=(0 0 1 2)<Work,则Work = Work + Allocation[0]=(1, 6, 2, 3)+(0, 0, 3, 2)=(1, 6, 5, 5);Finish[0] = true;Finish[3]=false并且Need[3]=(0, 6, 5, 2)<Work,则Work = Work + Allocation[3]=(1, 6, 5, 5)+(0, 3, 3, 2)=(1, 9, 8, 7);Finish[3] = true;Finish[4]=false并且Need[4=(0, 6, 5, 6)<Work,则Work = Work + Allocation[4]=(1, 9, 8, 7)+(0, 0, 1, 4 )=(1, 9, 9,

11);Finish[4] = true;Finish[1]=false并且Need[1]=(1, 7, 5, 0)<Work,则Work = Work + Allocation[4]=(1, 9, 9, 11)+(1, 0, 0, 0 )=(2, 9, 9, 11);Finish[1] = true;Finish[2]=false并且Need[2]=(2, 3, 5, 6)<Work,则Work = Work + Allocation[4]=(2, 9, 9, 11)+(1, 3, 5, 4 )=(3, 12, 14, 15);Finish[2] = true; 可以找到一个安全进程序列<p0 ,p3 ,p4 ,p1 ,p2>,它使Finish=true,对于所有0≤i≤4,因而可以断言系统当前处于安全状态.(2)运行银行家算法,由于Request[2]=(1, 2, 2, 2)£Need[2]=(2, 3, 5, 6),因而请求合法。进一步,Request[2]=(1, 2, 2, 2)£Available=(1, 6, 2,

3),故该请求是可以满足的。假设将资源分配给p2,则系统状态变为: Allocation A B C D A B C D A B C D P0: 0 0 3 2 0 0 1 2 0 4 0 1 P1: 1 0 0 0 1 7 5 0 P2: 2 5 7 6 1 1 3 4 P3: 0 3 3 2 0 6 5 2 P4: 0 0 1 4 0 6 5 6运行安全性检测算法,Work=Available=(0, 4, 0, 1),

Finish=false,此时所有Need£Work均不成立,结果Finish[i[均为false,不存在安全进程序列,系统处于不安全状态。系统将取消资源分配并恢复原来状态,进程p2等待。

10.某系统采用死锁检测手段发现死锁,设系统中资源类集合为{A,B,C},资源类A中共有 …… 此处隐藏:3727字,全部文档内容请下载后查看。喜欢就下载吧 ……

《计算机操作系统教程第三版》答案作者左万历 周长林(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/42380.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)