西安邮电大学操作系统课件第三章精选.ppt
文本预览下载声明
图3-19 每类资源有多个时的情况 2.死锁定理 我们可以利用把资源分配图加以简化的方法图3-19,来检测当系统处于S状态时,是否为死锁状态。简化方法如下: 1 在资源分配图中,找出一个既不阻塞又非独立的进程结点Pi。在顺利的情况下,Pi可获得所需资源而继续运行,直至运行完毕,再释放其所占有的全部资源,这相当于消去Pi的请求边和分配边,使之成为孤立的结点。在图3-20a中,将P1的两个分配边和一个请求边消去,便形成图b所示的情况。 图3-20 资源分配图的简化 2 ?P1释放资源后,便可使P2获得资源而继续运行,直至P2完成后又释放出它所占有的全部资源,形成图c所示的情况,即将P2的两条请求边和一条分配边消去。 3 在进行一系列的简化后,若能消去图中所有的边,使所有的进程结点都成为孤立结点,则称该图是可完全简化的;若不能通过任何过程使该图完全简化,则称该图是不可完全简化的。 3.死锁检测中的数据结构 死锁检测中的数据结构类似于银行家算法中的数据结构: 1 可利用资源向量Available,它表示了m类资源中每一类资源的可用数目。 2 把不占用资源的进程向量Allocation0记入L表中,即Li∪L。 3 从进程集合中找到一个Requesti≤Work的进程,做如下处理:① 将其资源分配图简化,释放出资源,增加工作向量Work Work + Allocation i。② 将它记入L表中。 4 若不能把所有进程都记入L表中,便表明系统状态S的资源分配图是不可完全简化的。因此,该系统状态将发生死锁。 3.8.2 死锁的解除 1. 终止进程的方法 1 终止所有死锁进程 这是一种最简单的方法,即是终止所有的死锁进程,死锁自然也就解除了,但所付出的代价可能会很大。因为其中有些进程可能已经运行了很长时间,已接近结束,一旦被终止真可谓“功亏一篑”,以后还得从头再来。还可能会有其它方面的代价,在此不再一一列举。 2 逐个终止进程 稍微温和的方法是,按照某种顺序,逐个地终止进程,直至有足够的资源,以打破循环等待,把系统从死锁状态解脱出来为止。但该方法所付出的代价也可能很大。因为每终止一个进程,都需要用死锁检测算法确定系统死锁是否已经被解除,若未解除还需再终止另一个进程。另外,在采取逐个终止进程策略时,还涉及到应采用什么策略选择一个要终止的进程。选择策略最主要的依据是,为死锁解除所付出的“代价最小”。但怎么样才算是“代价最小”,很难有一个精确的度量。 2. 付出代价最小的死锁解除算法 一种付出代价最小的死锁解除算法如图3-21所示。 图3-21 付出代价最小的死锁解除算法习 题1. 高级调度与低级调度的主要任务是什么? 为什么要引入中级调度2. 处理机调度算法的共同目标是什么? 批处理系统的调度目标又是什么3. 何谓作业、作业步和作业流4. 在什么情况下需要使用作业控制块JCB,其中包含了哪些内容5. 在作业调度中应如何确定接纳多少个作业和接纳哪些作业? 6. 为什么要引入高响应比优先调度算法? 它有何优点7. 试说明低级调度的主要功能。 8. 在抢占调度方式中,抢占的原则是什么9. 在选择调度方式和调度算法时,应遵循的准则是什么10. 在批处理系统、分时系统和实时系统中,各采用哪几种进程作业调度算法11. 何谓静态和动态优先级? 确定静态优先级的依据是什么12. 试比较FCFS和SJF两种进程调度算法。 13. 在时间片轮转法中,应如何确定时间片的大小14. 通过一个例子来说明通常的优先级调度算法为什么不能适用于实时系统15. 为什么说多级反馈队列调度算法能较好地满足各方面用户的需要16. 为什么说传统的几种调度算法都不能算是公平调度算法17. 保证调度算法是如何做到调度的公平性的18. 公平分享调度算法又是如何做到调度的公平性的19. 为什么在实时系统中,要求系统尤其是CPU具有较强的处理能力20. 按调度方式可将实时调度算法分为哪几种? 21. 什么是最早截止时间优先调度算法? 举例说明之。 22. 什么是最低松弛度优先调度算法? 举例说明之。 23. 何谓“优先级倒置”现象,可采取什么方法来解决24. 试分别说明可重用资源和可消耗资源的性质。 25. 试举例说明竞争不可抢占资源所引起的死锁。 26. 为了破坏“请求和保持”条件而提出了两种协议,试比较这两种协议。 27. 何谓死锁? 产生死锁的原因和必要条件是什么28. 在解决死锁问题的几个方法中,哪种方法最易于实现? 哪种方法使资源利用率最高29. 请详细说明可通过哪些途径预防死锁。 30. 在银行家算法的例子中,如果P0发出的请求向量由Request0, 2
显示全部