处理机调度与死锁1
- 格式:doc
- 大小:68.50 KB
- 文档页数:6
第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块JCB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU 繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
第三章处理机调度与死锁1、时间片轮转调度算法是为了()。
A、多个用户能及时干预系统B、使系统变得高效C、优先级较高的进程得到及时响应D、需要CPU时间最少的进程最先做2、()有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。
A、时间片轮转调度算法B、先来先服务调度算法C、短作业(进程)优先算法D、优先权调度算法3、下面有关选择进程调度算法的准则中不正确的是()。
A、尽快响应交互式用户的请求B、尽量提高处理器利用率C、尽可能提高系统吞吐量D、适当增长进程就绪队列的等待时间4、设有4个作业同时到达,每个作业的执行时间均为2h,它们的一台处理器上按单道式运行,则平均周转时间为()。
A、1hB、5hC、2.5hD、8h5、若每个作业只能建立一个进程,为了照顾短作业用户,应采用();为了照顾紧急作业用户,应采用();为了能实现人机交互,应采用();而能使短作业、长作业和交互作业用户都满意,应采用()。
A、FCFS调度算法B、短作业优先调度算法C、时间片轮转调度算法D、多级反馈队列调度算法E、剥夺式优先级调度算法6、()优先级是在创建进程时确定的,确定之后在整个运行期间不在改变。
A、先来先服务B、动态C、短作业D、静态7、现在有三个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2、T3,且T1<T2<T3。
系统按单道方式运行且采用短作业优先调度算法,则平均周转时间是()A、T1+T2+T3 B、(3×T1+2×T2+T3)/3C、(T1+T2+T3)/3D、(T1+2×T2+3×T3)/38、设有三个作业,其运行时间分别是2h、5h、3h,假定它们同时达到,并在同一个处理器上以单道方式运行,则平均周转时间最小的执行顺序是()A、J1,J2,J3B、 J3 ,J2,J1C、J2,J1,J3D、 J1 ,J3 ,J29、采用时间片轮转调度算法分配CPU时,当处于运行状态的进程用完一个时间片后,它的状态是()状态。
第3章处理机调度与死锁-选择题参考答案一、选择题1.时间片轮转调度算法是为了()A.多个用户能及时干预系统B.使系统变得高效C.优先级较高的进程得到及时响应D.需要CPU时间最少的进程最先做2.在单处理器多进程系统中,进程什么时候占用处理器及决定占用时间的长短是由()决定的A.进程相应的代码长度B.进程总共需要运行的时间C.进程特点和进程调度策略D.进程完成什么功能3.()有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。
A.时间片轮转调度算法B.先来先服务调度算法C.短作业(进程)优先算法D.优先权调度算法4.下面有关选择进程调度算法的准则中,不正确的是()A.尽快响应交互式用户的请求B.尽量提高处理器利用率C.尽可能提高系统吞吐量D.适当增长进程就绪队列的等待时间5.设有4个作业同时到达,每个作业的执行时间均为2h,它们在一台处理器上按单道式运行,则平均周转时间为()A.1hB.5hC.2.5hD.8h6.若每个作业只能建立一个进程,为了照顾短作业用户,应采用();为了照顾紧急作业用户,应采用();为了能实现人机交互,应采用();而能使短作业、长作业和交互作业用户都满意,应采用()BECDA.FCFS调度算法B.短作业优先调度算法C.时间片轮转调度算法D.多级反馈队列调度算法E.剥夺式优先级调度算法7.()优先级是在创建进程时确定的,确定之后在整个运行期间不再改变A.先来先服务B.动态C.短作业D.静态8.现在有三个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2、T3且T1<T2<T3。
系统按单道方式运行且采用短作业优先调度算法,则平均周转时间是()A.T1+T2+T3B.(3T1+2T2+T3)/3C.(T1+T2+T3)/3D.(T1+2T2+3T3)/39.设有三个作业,其运行时间分别是2h、5h、3h,假定它们同时到达,并在同一台处理器上以单道方式运行,则平均周转时间最小的执行顺序是()A.J1,J2,J3B.J3,J2,J1C.J2,J1,J3D.J1,J3,J210. 【2013统考真题】某系统正在执行三个进程P1、P2和P3,各进程的计算(CPU时间和I/O 时间比例如下表所示进程计算时间I/O时间P1 90% 10%P2 50% 50%P3 15% 85%提高系统资源利用率,合理的进程优先级设置应为()A.P1>P2>P3B. P3>P2>P1C. P2>P1=P3D. P1>P2=P311.采用时间片轮转调度算法分配CPU时,当处于运行态的进程完一个时间片后,它的状态是()状态A.阻塞B.运行C.就绪D.消亡12.一个作业8:00到达系统,估计运行时间为1h。
第三章处理机调度与死锁•选择题下列算法中,操作系统用于作业调度的算法是A. 先来先服务算法 C.最先适应算法 在批处理系统中,周转时间是指 ___________________________________ A. 作业运行时间 B .作业等待时间和运行时间之和 C.作业的相对等待时间 D .作业被调度进入内存到运行完毕的时间 在作业调度中,排队等待时间最长的作业被优先调度,这是指 ____________ 调度算法。
A. 先来先服务 B .短作业优先 C.响应比高优先D .优先级下列算法中,用于进程调度的算法是 A. 最先适应 C.均衡资源调度 两个进程争夺同一个资源 A. —定死锁 C.只要互斥就不会死锁下列各项中,不是进程调度时机的是 ___________________________________________ 。
A. 现运行的进程正常结束或异常结束 B .现运行的进程从运行态进入就绪态C.现运行的进程从运行态进入等待态 D .有一进程从等待态进入就绪态进程调度算法有多种, _______ 不是进程调度算法。
A.先来先服务调度算法 B .最短查找时间优先调度算法 C.静态优先数调度算法 D .时间片轮转调度算法 作业调度程序从 _____ 状态的队列中选取适当的作业投入运行。
A.就绪B .提交 C.等待 D .后备 在实时操作系统中,经常采用 ______ 调度算法来分配处理器。
A •先来先服务B •时间片轮转C 最高优先级D •可抢占的优先级.采用时间片轮转调度算法主要是为了 _________ A. 多个终端都能得到系统的及时响应 B. 先来先服务C. 优先权高的进程及时得到调度D. 需要CPU 寸间最短的进程先做.下面关于优先权大小的论述中,不正确的论述是 _________ 。
A.计算型作业的优先权,应低于 I/O 型作业的优先权B. 系统进程的优先权应高于用户进程的优先权C. 资源要求多的作业,其优先权应高于资源要求少的作业D. 在动态优先权时,随着进程运行时间的增加,其优先权降低 .产生死锁的原因是 有关。
第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块J CB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
考研操作系统-处理机调度与死锁(一)(总分84,考试时间90分钟)一、选择题1. 为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配。
这项工作是由( )完成的。
A.作业调度 B.中级调度 C.进程调度 D.设备调度2. 为了照顾紧迫型作业,应采用( )。
A.先来先服务调度算法 B.短作业优先调度算法C.时间片轮转调度算法 D.优先权调度算法3. 一个作业8:00到达系统,估汁运行时间为1小时。
若10:00开始执行该作业,其响应比是( )。
A.2 B.1 C.3 D.44. 现有3个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2和T3,且T1<T2<T3。
系统按单道方式运行且采用短作业优先算法,则平均周转时间是( )。
A.T1+T2+T3 B.(T1+T2+T3)/3C.(3T1+2T2+T3)/3 D.(T1+2T2+3T3)/35. 有3个作业J1、J2和J3,其运行时间分别是2、5和3小时,假定它们同时到达,并在同一台处理机上以单道方式运行,则平均周转时间最小的执行序列是( )。
A.J1,J2,J3 B.J3,J2,J1C.J2,J1,J3 1).J1,J3,J26. 下面有关选择进程调度算法的准则错误的是( )。
A.尽量提高处理器利用率B.尽可能提高系统吞吐量C.适当增长进程在就绪队列中的等待时间D.尽快响应交互式用户的请求假设就绪队列中有10个进程,以时间片轮转方式进行进程调度,时间片大小为300ms,CPU 进行进程切换要花费10ms,则系统开销所占的比率约为 (7) ;若就绪队列中进程个数增加到20个,其余条件不变,则系统开销所占的比率将为 (8) 。
7. A.1% B.3% C.5% D.10%8. A.增加B.减少C.不变D.不确定9. 下列调度算法中,( )调度算法是绝对可抢占的。
A.先来先服务 B.时间片轮转C.优先级 D.短进程优先10. 在操作系统中,死锁出现指的是( )。
处理机调度与死锁Operating System3.4 死锁死锁定义多个进程在运行过程中因争夺资源而造成的僵局称为死锁,当进程处于这种僵持状态时,若无外力作用,它们都将无法向前推进3.5.1 产生死锁的原因竞争资源进程间推进顺序非法竞争资源引起死锁共享资源数目难以满足各进程的需求时,诸进程会竞争资源,导致死锁♋资源分类:可剥夺资源和非可剥夺资源;永久性资源和临时性资源۩竞争非剥夺资源:进程对非剥夺资源的长期占用或争夺导致死锁产生۩竞争临时性资源:临时性资源由一个进程产生,被另一个进程使用很短时间后失效死锁环路(竞争非剥夺资源)方块代表非剥夺资源,圆圈代表进程;箭头从进程指向资源时,表示进程申请该资源;箭头从资源指向进程时,表示该资源已经分配给该进程;若形成环路,则出现死锁死锁环路(竞争临时资源)若S1、S2、S3均为临时资源,分别由进程P1、P2、P3生成,且P1申请S3、P2申请S1、P3申请S2,则按照下述顺序进行时会产生不同结果♋P1:release(S1);request(S3);P2:release(S2);request(S1);P3:release(S3);request(S2);♋P1:request(S3);release(S1);P2:request(S1);release(S2);P3:request(S2);release(S3);进程推进顺序不当引起死锁进程运行过程中请求和释放资源的顺序不当会导致死锁进程运行具有异步性特征,使得进程推进顺序可能有合法与非法两种情况产生♋合法推进顺序:不会产生死锁的推进顺序♋非法推进顺序:可能导致死锁的推进顺序进程推进顺序导致死锁产生死锁的必要条件互斥条件进程对得到的资源进行排他性使用,只有本身完成对资源的使用才释放请求和保持条件某进程无法得到所请求的资源时阻塞自身且不放弃对已获取的其他资源的控制权不剥夺条件进程已获得资源在自身没有主动释放时不可被他人剥夺环路等待条件发生死锁时,必然存在一个进程-资源的环形等待链,即进程集合{P0,P1,…,P n }中的P0等待P1占用的资源,P1等待P2占用的资源,……,P n等待P0占用的资源产生死锁的必要条件设某系统中现有20个进程竞争65个同类资源,其申请方式是逐个进行的,一旦某进程完成工作就立即释放所有占用的资源,且每个进程最多使用3个该类资源,则这个系统是否会在该资源上产生死锁?产生死锁的必要条件设某系统中有一类资源的总数目为8,它们由N个进程竞争,每个进程最多需要3台该资源,则N为多少时不会产生死锁?处理死锁的基本方法预防死锁避免死锁检测死锁解除死锁预防死锁通过设置限制条件破坏产生死锁的四个必要条件中的一个或几个来预防死锁的产生该方法实现简单,应用广泛,但限制条件的过于严格会导致系统资源利用率和系统吞吐量的降低避免死锁在资源动态分配过程中使用某种方法防止系统进入不安全状态以避免死锁发生该方法只需采取较弱的限制,便可获得较高的资源利用率和系统吞吐量,但实现较麻烦检测死锁此方法允许系统运行过程中产生死锁,但系统中设置的检测机构可以及时检测出死锁的发生,并精确确定与其有关的进程和资源,以便采取适当的措施清除死锁解除死锁当检测机构发现系统中存在死锁时,须将进程从死锁状态中解脱出来♋挂起或撤销某些进程以回收资源,以便将其分配给等待这些资源的其他阻塞进程,使之能够转为就绪态,进而获得执行死锁的检测和解除措施实现难度最大,但系统资源利用率和吞吐量较好3.5.2 预防和避免死锁的方法预防死锁产生死锁的四个条件中,互斥条件是系统自身需求,不可改变♋摒弃“请求和保持”条件♋摒弃“不剥夺”条件♋摒弃“环路等待”条件避免死锁使系统始终处于安全状态来避免死锁产生摒弃“请求和保持”条件采用此方法的系统规定所有进程在开始运行之前,都必须一次性地申请其在整个运行过程中所需的全部资源♋摒弃请求条件:进程运行时不必再提出资源申请♋摒弃保持条件:只要有一个资源不能得到,其他资源也不会分配给它,在等待期间并不占有资源优点:简单易行、安全性高缺点:资源严重浪费、进程延迟执行摒弃“不剥夺”条件采用此方法的OS规定进程逐个提出对资源的要求,当已经保持了一定资源的进程无法立即得到新申请的资源时,必须释放它所保持的其他所有资源,待以后需要时再进行申请此方法实现复杂且代价较大对当前资源的被迫释放可能会导致前期工作的失效或前后两次运行信息的不连续性,反复的申请与释放资源会延误进程执行,增加系统开销摒弃“环路等待”条件采用此方法的OS将所有资源按类型线性排队,并赋予不同序号,所有进程对资源的请求必须严格按照资源序号递增的次序提出,以避免环路出现此方法中总有一个进程占据了较高序号的资源,以后它所申请的资源必然是空闲的,因此可以正常进行摒弃“环路等待”条件此方法对资源利用率和系统吞吐量都有较明显改善缺点♋各类资源的序号相对稳定,限制了新类型设备的增加♋作业使用各类型资源的顺序与系统规定的顺序不符,造成资源浪费♋增加用户编程复杂性避免死锁在避免死锁方法中,允许进程动态的申请资源,但每次系统进行资源分配前,应先计算此次资源分配是否会导致系统进入不安全状态,若不会产生不安全,则为其分配所需资源;否则,令进程等待安全状态系统能按某种进程的安全序列为每个进程P i分配其所需资源,直至满足每个进程对资源的最大需求,使其全部能顺利完成;若不存在这样的序列,则称系统处于不安全状态处于不安全状态的系统可能会产生死锁,避免死锁就是避免系统进入不安全状态如果某状态是非安全的,仅表示资源管理器“失去控制”,死锁与否将由进程以后的活动来决定安全状态Eg:系统中有进程P1、P2、P3和12台磁带驱动器,各进程对此资源的需求和分配情况如下表所示,此时按照安全序列< P2, P1, P3 >分配资源可以保证各进程都顺利完成安全状态分配资源时若不按照安全序列的顺序,可能会导致OS由安全状态进入不安全状态eg:在上例中,为进程P3分配一台磁带机,系统进入不安全状态,此时再也找不到一个安全序列避免死锁的利器——银行家算法银行家算法中的数据结构♋可利用资源向量Available۩含有m个元素的数组,每个元素代表一类可利用资源的数目,其初值为系统中该类资源的全部可用数目,“资源R j的当前可用数目为K”可表示为Available[j]=K ♋最大需求矩阵Max۩一个n*m的矩阵,表示n个进程分别对m类资源的最大需求量,“进程i需要R j类资源的最大数目为K”可以表示为Max[i,j]=K避免死锁的利器——银行家算法银行家算法中的数据结构♋分配矩阵Allocation۩n*m的矩阵,表示当前n个进程分别获得的m类资源的数目,“进程i当前已分得R j类资源的数目为K”可以表示为Allocation[i,j]=K♋需求矩阵Need۩n*m的矩阵,表示n个进程还需要的各类资源数目,“进程i还需要R j类资源K个”可以表示为Need[i,j]=K这些数据结构存在下列关系Need[i,j]=Max[i,j]-Allocation[i,j]银行家算法设Request i是进程P i的请求向量,“进程P i需要K个R j类资源”表示为Request i[j]=K。
当P i发出资源请求后,系统按下述步骤进行检查1)若Request i[j] ≤Need[i,j],转向步骤2;否则进程所需资源数已超过它所宣布的最大值,出错2)若Request i[j] ≤Available[j],转向步骤3;否则表示系统中无足够资源,进程P i需要等待银行家算法3)系统尝试把资源分配给进程P i,并按照下式修改数据结构中的相应数值:Available[j]:= Available[j]- Request i[j]Allocation[i,j]:= Allocation[i,j] + Request i[j]Need[i,j]:= Need[i,j]-Request i[j]4) 系统执行安全性检查,若系统在此次分配后处于安全状态,正式将资源分配给请求进程;否则,本次分配作废,恢复原来的系统状态,进程P i等待安全性算法算法描述♋设置向量W ork:array[1,2,…,m] of integerFinish:array[1,2,…,n] of boolean安全性算法算法步骤1)Work[j]:=Available[j],Finish[j]:=false2)寻找满足Finish[j]=false和Need[i,j]≤Work[j]的进程,若找到转向3,否则转向43)当进程P i获得资源后,可顺利执行到完成并释放分配到的资源,其执行序列为Work[j] := Work[j] + Allocation[i,j];Finish[j] := true;go to step 2;4)若所有进程的Finish[j]=true均满足,则系统处于安全状态,否则为不安全状态银行家算法说明性实例设系统中有五个进程{P, P1, P2, P3, P4}和三类资源{A,B,C},各资源数量分别为10、5、7,在T0时刻的资源分配如下银行家算法说明性实例T0时刻的安全性:使用安全性算法对T0时刻的资源情况分析可知存在安全序列{P1, P3, P4, P2, P0},故系统安全银行家算法说明性实例设T1时刻有Request1(1,0,2),按银行家算法要求可知1)Request1(1,0,2) ≤Need1(1,2,2)2)Request1(1,0,2) ≤Available1(3,3,2)3)按P1请求尝试性分配资源后,资源变化如后表所示4)再利用安全性算法检查此时系统是否安全银行家算法说明性实例T1时刻的系统安全性:存在安全序列{P1, P3, P4, P2, P0},因此可以将P1申请的资源分配给它银行家算法说明性实例设T2时刻有Request4(3,3,0),按银行家算法要求可知1)Request4(3,3,0) ≤Need4(4,3,1)2)Request4(3,3,0) >Available1(2,3,0),P4等待银行家算法说明性实例设T时刻有Request0(0,2,0)按银行家算法要求可知31)Request0(0,2,0) ≤Need1(7,4,3)2)Request1(0,2,0) ≤Available1(2,3,0)3)按P0请求尝试性分配资源后,资源变化如后表所示4)再利用安全性算法检查此时系统是否安全银行家算法说明性实例T时刻的系统安全性:不存在安全序列,因此系统不会为它分配资源3结论安全序列并不唯一银行家算法的每一轮运算应该包括:根据进程提出的资源请求判断是否可以尝试为其分配资源、安全性检查、真正分配资源并纪录新的资源分配状态作业:将P0发出的请求向量改为Request0(0,1,0) ,系统是否可以分配资源?死锁的检测与解除使用检测和解除死锁机制的OS应♋保存资源请求和分配信息♋提供死锁检测算法回顾♋资源分配图资源分配图该图用来精确的描述死锁问题图中有一个节点集合V和一个边的集合E,其中V又分为表示系统活动进程的集合P和表示系统所有资源类型的集合R有向边P i→R j表示进程P i已经申请了资源类型R j的一个实例,并正在等待资源,称为申请边;有向边R j→P i表示资源R j的一个实例已经分配给进程P i,称为分配边资源分配图图中的方块和圆圈分别表示资源和进程,资源的实例以方块中的圆点表示资源分配图死锁定理若资源分配图中没有环出现,则不会产生进程死锁;如果有环,可能存在死锁♋若每个资源类型均只有一个实例,有环一定有死锁♋若每个资源类型有多个实例,有环并不意味着已经出现了死锁资源分配图进程P3申请资源R2,此时系统中有两个最小环,进程P1、P2、P3死锁资源分配图本图中存在环,但是没有死锁,进程P4不必等待,可以顺利执行至任务完成并释放资源,最终打破环路死锁检测算法在资源分配图中找到一个即占用资源又不阻塞的进程结点P i,当该进程顺利完成后,释放资源,图中与之相连的所有边均可消去,使之成为孤立结点寻找因获取进程P i释放出的资源而得以执行的进程,继续上一步操作,直至无法再消除若此时图中所有结点均为孤立结点,则称该图为可完全简化的,否则为不可完全简化的死锁检测算法死锁定理可表述为“当且仅当某状态的资源分配图是不可完全简化的时,才有可能产生死锁”死锁检测算法的数据结构与银行家算法类似♋Available:表示各类资源的可用数目♋L:记录不占用资源的进程死锁检测算法算法步骤♋将不占用资源的进程计入L♋从进程集合中找到一个Request≤Work的进程,将其资源分配图简化,释放出资源,i增加可用资源数量Work:=Work+Allocation i,并将该进程计入L中♋若所有的进程都计入了L,表明该图可完全简化,不会发生死锁;否则,该系统状态将发生死锁死锁检测算法的应用死锁检测算法的应用取决于两个因素♋死锁发生的频率:经常发生死锁的系统需要经常调用检测算法♋死锁影响的进程数量:参与死锁循环的进程数量可能会不断增加经常性的调用死锁检测算法会增加系统计算开销,另一个不太昂贵的方法是在一个不频繁的时间间隔中调用或由人工方式确定激活策略死锁解除检测到死锁后可以采用多种措施解除♋进程终止۩终止所有死锁进程:代价大,被终止进程的前期工作必须放弃۩一次终止一个进程直到取消死锁循环为止:系统开销大,每次终止进程时都要调用死锁检测算法确定进程是否仍处于死锁♋资源抢占۩逐步从进程中抢占资源给其他进程使用,直到死锁环被打破为止,此方法需要考虑选择最小代价牺牲品、如何回滚至安全状态、如何避免饥饿等问题教学重点知道处理机调度的分类熟练掌握常用调度算法思想及其性能评价方式知道实时调度算法掌握死锁产生的必要条件。