死锁第四章4
第四章进程调度与死锁习题及答案

第四章一.选择题1.预防死锁不可以去掉以下__A__条件。
A.互斥 B.请求与保持 C.不可剥夺 D.环路2.资源分配图是否可以完全简化是判断死锁的_C__。
A.充分条件 B.必要条件 C.充分必要条件 D.什么也不是3.设有4个作业同时到达,每个作业的执行时间是2min,它们在一台处理机上按单道方式运行,则平均周转时间为_B__。
A.1min B.5min C.2.5min D.8min4.若系统中有8台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许_C__各进程参与竞争,而不会发生死锁。
A.5 B .6 C .7 D .85.响应比高者优先作业调度算法除了考虑进程在CPU上的运行时间,还考虑以下__D_因素。
A.输入时间B.完成时间C.周转时间D.等待时间6.产生系统死锁的原因可能是_B__。
A.一个进程进入死循环B.多个进程竞争资源出现了循环等待C.进程释放资源D.多个进程竞争共享型设备7.以下_B__方法可以解除死锁。
A.挂起进程B.剥夺资源C.提高进程优先级D.降低进程优先级8.采用有序分配资源的策略可以破坏产生死锁的__D_。
A.互斥条件B.请求与保持条件C.不可剥夺条件D.环路条件9.连个进程争夺同一个资源_B__。
A.一定死锁B.不一定死锁C.不死锁D.以上说法都不对10.以下解决死锁的方法中,属于预防策略的是_C__。
A.化简资源分配图B.银行家算法C.资源的有序分配D.死锁检测法11.下面__D_说法是对可剥夺系统的正确描述。
A.时间片轮转法是一种可剥夺式调度B.进程因等待某一事件而引起系统调度是一种可剥夺式调度C.实时系统采用可剥夺式调度D.优先级低的进程放弃CPU,让优先级高的进程运行12.以下关于调度的说法__A__正确。
A.进程通过调度得到CPUB.优先级是进程调度的主要依据,一旦确定就不能改变C.在单CPU的系统中,任何时刻都有一个进程处于运行状态D.进程申请CPU得不到时,其状态为阻塞13.既考虑进程的等待时间,又考虑进程的执行时间的调度算法是__A__。
解决死锁的4种基本方法

解决死锁的4种基本方法
1、预防死锁:通过审慎的资源分配来避免发生死锁,比如,准备一个资源分配算法,在当前的可分配资源范围内,根据一定的规则——比如比较进程运行时间、锁等待时间以及优先级等,合理地分配资源,将可能发生死锁的场景排除在外。
2、避免死锁:在资源分配时,允许部分回收和重新分配,以避免发生死锁,比如,可以指定资源分配算法中,定量来回收资源,以确保充分利用资源,同时也避免死锁问题。
3、解除死锁:当死锁发生时,就需要手动进行解除,比如忽略某些进程的要求,或强行回收其已经获得的资源,以便解除死锁,其技术较为复杂。
4、检测死锁:检测进程是否发生了死锁,如果发生,就需要采取措施来解决,比如,可以使用“图方法”,根据存储器使用情况,示意存储器分配情况,检测是否存在循环等待,以此来检测发生死锁的情况,进而采取措施解决。
操作系统第4章习题带答案

第四章一、问答题1、同步机制应遵循的准则是什么?2、死锁产生的4个必要条件是什么?它们是彼此独立的吗?3、简述死锁的定义和死锁产生的原因。
4、简述死锁定理和解除死锁的方法。
5、什么是安全状态?怎么判断系统是否处于安全状态?6、同步机制应遵循的准则是什么?7、死锁产生的4个必要条件是什么?它们是彼此独立的吗?二、计算题(共20分)1、当前系统中出现下述资源分配情况:利用银行家算法,试问如果进程P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?答:Request(1,2,2,2)<=(2,3,5,6)申请合法Request(1,2,2,2)<=Available,开始试探性分配,Available=(0,4,0,0) 测试系统是否安全:work= Available,finish=1没有进程的need满足<=work系统处于不安全状态,系统拒绝此次资源分配。
2、当前某系统有同类资源7个,进程P,Q所需资源总数分别为5,4。
它们向系统申请资源的次序和数量如表所示。
回答:问:采用死锁避免的方法进行资源分配,请你写出系统完成第3次分配后各进程占有资源量,在以后各次的申请中,哪次的申请要求可先得到满足?答:第1次申请,Q申请资源2,系统安全,分配第2次申请,P申请资源1,系统安全,分配第3次申请,Q申请资源1,系统安全,分配资源剩余3个,P占有1个资源,Q占有3个资源,第4次分配不安全,拒绝,第5分配系统安全,满足。
3、一个计算机系统有6个磁带驱动器和4个进程。
每个进程最多需要n个磁带驱动器。
问当n为什么值时,系统不会发生死锁?并说明理由答:n=2理由同第4题(进程资源最大需求-1)×进程数量+1≤系统资源数量4、若系统有某类资源m×n+1个,允许进程执行过程中动态申请该类资源,但在该系统上运行的每一个进程对该资源的占有量任何时刻都不会超过m+1个。
计算机操作系统-陆丽娜-课后答案第四章

14. 设 N 为整型数,初始值为 3,两个并发进程 A 和 B 的程序如下:
process A
process B
do{ N=N+5; }
do{ print(N);
N=0;
} 若 process A 先执行了三个循环后,process A 和 process B 又并发执
行了一个循环,写出可能出现的打印值。请用 P、V 操作实现同步, 使两并发进程能正确执行。
量 S1 和 S2 初值均为 0。试问 P1、P2 并发执行后,x、y 的值各为多 少?
P1:
P2:
begin
begin
y:=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
end
z:=z+x;
end 答:x=10 y=9 z=15
9. 列举死锁的各种预防策略。 答: 静态分配资源策略:要求每一个进程在开始执行前就要申请它所需要 的全部资源,仅当系统能满足进程的资源申请要求时才把资源分配给 进程,该进程才能开始执行(注意,所有并发执行的进程要求的资源 总和不能超过系统拥有的资源数)。(破坏第二个条件)
按序分配资源策略:把系统中所有资源排一个顺序,对每一个资源给 一个确定的编号,规定任何一个进程申请两个以上资源时总是先申请 编号小的资源,后申请编号大的资源(或者先申请编号大的,后申请 编号小的资源)。系统按进程对资源的申请顺序来分配资源。按序分 配策略将阻止死锁 的第四个条件(循环等待条件)的出现。
end
Ⅱ 单项选择题
操作系统第四章进程调度和死锁习题及答案

第四章一、单项选择题1.为了根据进程的紧迫性做进程调度,应采用(B )。
A.先来先服务调度算法 B. 优先数调度算法 C.时间片轮转调度法 D.分级调度算法2.采用时间片轮转法调度是为了( A)。
A.多个终端都能得到系统的及时响应 B.先来先服务C. 优先数高的进程先使用处理器 D.紧急事件优先处理3.采用优先数调度算法时,对那些具有相同优先数的进程再按( A )的次序分配处理器。
A 先来先服务 B. 时间片轮转 C. 运行时间长短 D.使用外围设备多少4. 当一进程运行时,系统强行将其撤下,让另一个更高优先数的进程占用处理器,这种调度方式是( B )。
A. 非抢占方式B.抢占方式 C. 中断方式 D.查询方式5.( B)必定会引起进程切换。
A.一个进程被创建后进入就绪态B.一个进程从运行态变成阻塞态C.一个进程从阻塞态变成就绪态6.( B)只考虑用户估计的计算机时间,可能使计算时间长的作业等待太久。
A.先来先服务算法B.计算时间短的作业优先算法C.响应比最高者优先算法 D.优先数算法7.先来先服务算法以( A )去选作业,可能会使计算时间短的作业等待时间过长。
A.进入的先后次序 B.计算时间的长短 C.响应比的高低 D.优先数的大小8.可以证明,采用( C )能使平均等待时间最小。
A.优先数调度算法 B.均衡调度算法C.计算时间短的作业优先算法 D.响应比最高者优先算法9.在进行作业调度时.要想兼顾作业等待时间和计算时间,应选取(D )。
A均衡调度算法 B.优先数调度算法C.先来先服务算法D.响应比最高者优先算法10.作业调度算法提到的响应比是指( B )。
A.作业计算时间与等待时间之比B.作业等待时间与计算时间之比C.系统调度时间与作业等待时间之比 D.作业等待时间与系统调度时间之比11.作业调度选择一个作业装入主存后,该作业能否占用处理器必须由( D )来决定。
A.设备管理 B.作业控制 C.驱动调度D.进程调度12.系统出现死锁的根本原因是( D )。
习题解答第4章概要

习题解答第四章并发进程的同步与互斥1、进程间同步和互斥的含义是什么?答:同步:并发进程之间存在的相互制约和相互依赖的关系。
互斥:若干进程共享一资源时,任何时刻只允许一个进程使用。
2、用文字描述银行家算法的基本思想?答:银行家算法的基本思想是:将系统中的所有资源比做银行家的资金,每进行一次资源的分配,银行家都要从当前的资源分配情况出发,计算这种分配方案的安全性,如果是安全的,则进行分配,否则选择其它可能的分配方案。
这样,每次分配都计算安全性,从而可以避免死锁的发生。
3、简述死锁的防止与死锁的避免的区别。
答:死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。
而死锁的避免是当进程提出资源申请时系统测试资源分配,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。
4、试说明资源的静态分配策略能防止死锁的原因。
答:资源静态分配策略要求每个进程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。
这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“占有并等待条件”,从而防止死锁的发生。
5、有三个进程P1,P2和P3并发工作。
进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。
回答:(1)若对资源分配不加限制,会发生什么情况?为什么?(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?答:.(1)可能会发生死锁例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待(2分),这是循环等待。
(或进程在等待新源时均不释放已占资源)(2)可有几种答案:A.采用静态分配由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。
或B.采用按序分配不会出现循环等待资源现象。
或C.采用银行家算法因为在分配时,保证了系统处于安全状态。
操作系统部分习题参考答案(ch4-ch6)

第四章死锁(续)9. 答:第五章 存储管理 P192M=3 时刻 1 2 3 4 5 6 7 8 9 10 11 12 P 4 3 2 1 4 3 5 4 3 2 1 5 4+ 3+ 2+ 1+ 4+ 3+ 5+ 4 3 2+ 1+ 5+ 4 3 2 1 4 3 5 4 3 2 1 M 4- 3- 2- 1- 4 3 5- 4- 3- 2 F+ + + + + + + + + +缺页次数位10,缺页率为10/12=83.3%M=4 时刻 1 2 3 4 5 6 7 8 9 10 11 12 P4 3 2 1 4 35 4 3 2 1 5 4+ 3+ 2+ 1+ 4 3 5+ 4 3 2+ 1+ 5+ 4 3 2 1 4 3 5 4 3 2 1 4 3 2 1 4 3 5 4 3 2 M4 3 2- 1 1 1- 5- 4- 3 F+ + + + + + + +缺页次数位8,缺页率为8/12=66.7%说明对LRU 算法来说增加主存容量不会增加缺页中断次数,【但这一结论对FIFO 算法不成力】16.答: (1)段表控制寄存器(2)[0,340]=219+340[1,10]=3300+10[2,500]越界[3,400]=1237+400(3)需要访问主存两次18.答:(1) J2的页面映象表页号块号0 31 42 63 8(2) MOV 2100 3100逻辑地址2100->虚页号为2(2100/1024=2.05)页内偏移地址为物理地址=2100-2048=52->块6对应的物理地址为6*1024=6144—>2100的物理地址为=6144+52=6196地址变换图页表控制寄存器2100逻辑地址页表同理3100的物理地址为:8*1024+28=8220,地址变换图略20.答:页号块号状态0 24 01 26 02 32 03 - 14 - 1(1) 每一块为4k=4*1024=4096bit->9016/4096 = 2.2->所以在第2页中(页号从0开始),页内偏移量为9016-4096*2=824bit根据页表映射关系,其物理地址为:内存块32的起始地址+824=4×4096+834=131906;(2) 12300->属于第12300/4096= 3.002,所以其页号为3,此时该页不在内存,引起缺页中断,待3号页面装入类存后(假设3号页面对应的内存块号为x ),则逻辑地址12300的物理地址为= x ×4096+12(注12是页内偏移量=12300-4096*3)第六章 文件管理 P262 1.答:(直接盘块指的是直接存放文件内容的盘块,间接盘块指索引节点)(1)由已知知一个物理快的大小为256×4=1024(Byte)=210则2M 的文件需要221/210=211个直接盘块。
操作系统原理-第四章 处理机调度(有答案)

第四章处理机调度4.3 习题4.3.1 选择最合适的答案1.某系统采用了银行家算法,则下列叙述正确的是()。
A.系统处于不安全状态时一定会发生死锁B.系统处于不安全状态时可能会发生死锁C.系统处于安全状态时可能会发生死锁D.系统处于安全状态时一定会发生死锁2.银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项正确的是()。
A.Max[i,j]=Allocation[i,j]+Need[i,j]B.Need[i,j]= Allocation[i,j]+ Max[i,j]C.Max[i,j]= Available[i,j]+Need[i,j]D.Need[i,j]= Available[i,j]+ Max[i,j]3.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。
A.非抢占式静态优先权法B.抢占式静态优先权法C.时间片轮转调度算法D.非抢占式动态优先权法4.在下列选项中,属于预防死锁的方法是()。
A.剥夺资源法B.资源分配图简化法C.资源随意分配D.银行家算法5.在下列选项中,属于检测死锁的方法是()。
A.银行家算法B.消进程法C.资源静态分配法D.资源分配图简化法6.在下列选项中,属于解除死锁的方法是()。
A.剥夺资源法 B.资源分配图简化法C.银行家算法 D.资源静态分配法7.为了照顾紧迫型作业,应采用()。
A.先来服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.优先权调度算法8.在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。
A.先来先服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.长作业优先调度算法9.作业从后备作业到被调度程序选中的时间称为()。
A.周转时间B.响应时间C.等待调度时间D.运行时间10.资源静态分配法可以预防死锁的发生,它们使死锁四个条件中的()不成立。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.3
避免死锁
银行家算法实例:(P126-128)
补充例题:见WORD文件“死锁试题”
4.2.4 检测和解除死锁
一、RAG图
二、死锁定理
三、利用RAG图化简法判断死锁的实例
4.2 死锁
4.2.1 死锁的概念 4.2.2 预防死锁 4.2.3 避免死锁 4.2.4 检测和解除死锁ຫໍສະໝຸດ .2.1 死锁的概念一、死锁
多个进程因竞争资源而造成的一种僵局, 若无外力作用,这些进程都无法向前推进。 二、产生死锁的原因
1.竞争 非剥夺性资源。
2.进程间推进顺序非法。
4.2.1 死锁的概念
4.2.3
避免死锁
避免死锁:它允许三个必要条件,但通过明智的 选择,确保永远不会到达死锁点,因此避免比预 防允许更多的并发; 思想:系统在进行资源分配之前,应先计算此 次资源分配后状态的安全性。若此次分配后的状 态是安全状态,则将资源分配给进程;否则,令 进程等待。 避免死锁的算法:银行家算法
安全状态 银行家算法
4.2.3
避免死锁
安全状态:所谓安全状态,是指系统能按某种进程 顺序(P1, P2, …,Pn)(称〈P1, P2, …, Pn〉序 列为安全序列),来为每个进程Pi分配其所需资源, 直至满足每个进程对资源的最大需求,使每个进程 都可顺利地完成。如果系统无法找到这样一个安全 序列,则称系统处于不安全状态。
可能出现反复申请、释放资源而被无限延迟执行的现象;
4.2.2 预防死锁
三、破坏“环路等待条件”---有序资源分配法
1.思想: 资源编号; 进程以递增顺序申请资源; 2.缺点: 资源编号难以确定; 后用的资源先申请,资源利用率低; 限制编程的独立性;
结论:
在预防死锁中,通过破坏产生死锁的必要条件,排除 发生死锁的可能性,但都会导致低效的资源使用率和低效 的进程执行。
三、产生死锁的必要条件
1.互斥条件
2.请求和保持条件 3.不剥夺条件 4.环路等待条件
4.2.1 死锁的概念
四、处理死锁的基本方法
1.预防死锁:通过破坏产生死锁的四个必要条件之一
2.避免死锁:不破坏死锁产生的四个必要条件,在资 源的动态分配中,防止进程进入可能发生死锁的不安 全状态。 3.检测死锁 4.解除死锁 允许系统出现死锁,但系统设臵了检测机制, 及时检测出死锁;检测出死锁后,系统将采取措施 解除死锁。
Finish [ i] = true
y
返回安全状态
返回不安全状态
4.2.3
三、银行家算法
避免死锁
设进程i申请资源,表示为:Request i
1. 2. 3.
4.
若request i ≤ need i,转2,否则出错。 若request i ≤ Available,转3,否则进程阻塞。 试分配: Available =Available-Request i Allocation i= Allocation i+Request i Need i=Need i-Request i 调用安全检查算法 若为安全状态,则正式分配 若为不安全状态,则不分配,进程i阻塞。恢复系统状态
4.2.2 预防死锁
---静态资源分配法 一、破坏“请求和保持条件” 1.思想:资源调度时,若资源全满足,则调度,否则等待。 2.缺点: 资源浪费;
进程延迟运行,降低进程的并发性;
二、破坏“不剥夺条件”
1.思想:进程新申请资源得不到满足时,必须释放已占有资源 2.缺点: 保存放弃资源时的现场及以后的现场恢复;
4.2.3
安全状态之例:
进 程 最大需求
避免死锁
已分配
尚需
可用
P1 P2 P3
10 4 9
5 2 2
5 2
3
7
该状态安全性: 安全 ,安全序列P2、 P1、 P3 若此时,P3请求一台磁带机,能否分配?
不能,因为分配后状态不安全
4.2.3
避免死锁
一、银行家算法中的数据结构 设系统中有n个进程,提供m类资源: 1.Available[m]:可利用资源向量。
Available[j]=K,则表示系统中现有Rj类资源K 个,初值是系统中所配臵的该类全部可用资源的数目。
2.Max[n][m]:最大需求矩阵。
3.Allocation [n][m]:分配矩阵。
4.Need[n][m]:需求矩阵。
Need[i][j]=Max[i][j]-Allocation[i][j]
二、安全性算法
2.安全性检测
4.2.3
避 免 死 锁
Work=Available Finish 根据Need赋值
寻找进程i,满足 Finish [ i]= false 且Need i<=work 找到
没找到
n
所有进程的 Finish [ i] = true?
Work=work+Allocation i
4.2.3
二、安全性算法 1.设臵两个向量:
避免死锁
(1) 工作向量 Work[m]: 它表示系统可提供 给进程继续运行所需的各类资源数目, Work初∶=Available; (2) Finish[n]: 它表示系统是否有足够的资 源分配给进程,使之运行完成。 false表示 未完成, true表示完成。