如何预防系统进程死锁

   预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在。下面来分析一下破坏这些条件的可能性。

  破坏互斥条件

  破坏互斥条件即允许多个进程同时访问资源。由于多数资源的必须互斥访问这一固有特性不能改变,因此,死锁的预防通过破坏这个必要条件实现在很多场合是行不通的。例如,打印机资源必须互斥使用,否则几个进程同时使用,每个进程各打印一行,这种输出信息的方式显然是不能被用户接受的。

  破坏占有和等待条件

  采用资源静态分配法可破坏这一条件,该方法是指在进程运行前,一次性地_请分配它运行所需的全部资源。若系统有足够的资源分配给某一进程,则一次性地将其所需资源分配给该进程,这样,在进程运行期间便不会再提出任何资源请求,从而使等待条件不成立。如果分配时有一种资源要求不能满足,则进程需要的其他资源也先不分配给进程,从而避免进程在等待期间占用任何资源,破坏了占用条件,从而避免死锁的发生。

  该方法控制简单且容易实现,但由于进程运行期间对所需资源的全部占用,使得某些使用时间很短的资源被长时间占用,这样会严重影响系统资源的充分利用,导致资源利用率降低,同吋也影响到未获得全部资源的进程推迟运行。

  破坏不剥夺条件

  采用剥夺式控制方法可以破坏该条件,该方法是使一个已保持了某些资源的进程,由于新的资源要求目前得不到满足,它必须先暂时释放巳保持的所有资源(一种剥夺式),然后去等待,以后再一起向系统提出巾请,这样也能防止死锁。这种方法实现起来相对W难,为了保护进程自动放弃资源的现场以及后来的再次恢复,需要付出高昂的代价,并且这种方法只适用于处理机和存储器资源,对其他资源,此法不宜使用。

  破坏循环等待条件

  采用资源顺序分配法可破坏该条件。这种分配方法的基本思想是:把系统的全部资源分成多个层次,一个进程得到某一层的一个资源后,它只能再_请较高一层的资源;当一个进程要释放某层的一个资源时,必须先释放所占有的较高层的资源;当一个进程获得了某一层的一个资源后,它想再申请该层中的另一个资源,就必须先释放在该层中巳占有的资源。或者说,进程释放资源的顺序是按照中请资源的相反顺序进行的。这样可以预防循环等待现象的发生,因此不会发生死锁。使用该方法要特別注意的问题是对资源所处层次的安排。在通常情况下,把各进程经常用到的、比较普遍的资源安排在较低的层次上,把重要且相对匮乏的资源安排在较高的层次上,以便实现对各资源的最大限度的利用。该方法相对于前面介绍的方法,在资源利用率和系统吞吐量上都有明显的改善。但也存在一些缺陷。

  (1)低层次的资源必须在进程请求分配髙层次的资源之前提前申请,这对于暂时不需使用的低层次资源来说,会因空闲等待而产生浪费。

  (2)各类设备的资源层次一经设定,便不能经常随意改动,这就限制了新类型设备的增加。

  (3)各资源的层次是按照大多数进程使用资源的顺序设置的。对于资源使用与此层次相闪配的进程,资源能得到有效的利用,否则,资源的浪费现象将仍然存在。

时间: 2024-07-28 22:01:11

如何预防系统进程死锁的相关文章

系统进程死锁的预防措施有什么

  预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在.下面来分析一下破坏这些条件的可能性. 破坏互斥条件 破坏互斥条件即允许多个进程同时访问资源.由于多数资源的必须互斥访问这一固有特性不能改变,因此,死锁的预防通过破坏这个必要条件实现在很多场合是行不通的.例如,打印机资源必须互斥使用,否则几个进程同时使用,每个进程各打印一行,这种输出信息的方式显然是不能被用户接受的. 破坏占有和等待条件 采用资源静态分配法可破坏这一条件,该方法是指在进程运行前,一次性地_请分配它运行所需的全部资源.若

系统进程死锁的预防措施

  预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在.下面来分析一下破坏这些条件的可能性. 破坏互斥条件 破坏互斥条件即允许多个进程同时访问资源.由于多数资源的必须互斥访问这一固有特性不能改变,因此,死锁的预防通过破坏这个必要条件实现在很多场合是行不通的.例如,打印机资源必须互斥使用,否则几个进程同时使用,每个进程各打印一行,这种输出信息的方式显然是不能被用户接受的. 破坏占有和等待条件 采用资源静态分配法可破坏这一条件,该方法是指在进程运行前,一次性地_请分配它运行所需的全部资源.若

系统进程死锁产生的原因

  1.有限资源的竞争引起进程死锁 当系统中为多个进程所共享的资源不能同吋满足它们的需求时,引起它们对资源的竞争而产生死锁.在通常情况下,系统中的资源分为可剥夺.非剥夺和临时性资源,不同类型的资源在发生死锁时的处理方式不同. (1)可剥夺资源如CPU和主存等,在系统中优先权高的进程可剥夺优先权低的进程对这些资源的占用. (2)非剥夺资源如打印机.读卡机和磁带机等是属于吋顺序重复使用的资源.这类资源的特点是,当系统把某资源分配给某进程后,不能再强行收回,只能在进程用完后自动释放.图1所示是多个进程

操作系统概念学习笔记 13 死锁(一)

操作系统概念学习笔记 13 死锁(一) 所有申请的资源都被其他等待进程占有,那么该等待进程有可能在无法改变其状态,这种情况称为死锁(deadlock). 系统模型 进程在使用资源之前必须先申请资源,在使用资源之后要释放资源.进程所申请的资源数量不能超过系统所有资源的总量. 在正常操作模式下,进程只能按如下顺序使用资源: ①申请:如果申请不能立即被允许,那么申请进程必须等待,直到它获得该资源为止. ②使用:进程对资源进行操作. ③释放:进程释放资源 资源的申请与释放为系统调用.其他资源的申请与释放

并发编程死锁的产生与范例分析

1.关于死锁 当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,这种状况,就称为死锁.在多任务操作系统中,操作系统为了协调不同进程,能否获取系统资源时,为了让系统运作,就必须要解决这个问题. 进程死锁是操作系统或软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其它进程占用时,就形成了死锁. 2.死锁范例   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

什么是死锁及死锁的必要条件和解决方法【转】

转自:http://blog.csdn.net/abigale1011/article/details/6450845/ 来自:http://blog.163.com/yanenshun@126/blog/static/128388169200982444858590/?fromdm&fromSearch&isFromSearchEngine=yes   进程死锁及解决办法 操作系统 2009-09-24 16:48:58 阅读767 评论1   字号:大中小 订阅  一.要点提示 (1)

Java基础资料整理

 1.LocalThread的应用场景,数据传输适合用LocalThread么 2.linux的基本命令    软链接.更改用户组和名.查看磁盘IO.查看内存.查看磁盘大小 3.网络安全(攻防有哪几种类型) 4.JVM的包括哪几种,画图表示,JVM的垃圾回收算法有哪几种 5.年轻代.持久代.老年代 6.session和cookie的区别,在分布式环境中,如何保持session共享,例如两台tomcat中,其中一台挂了,剩下的如何保持会话. 7.HashMap的数据结构,画图, Concurren

排它锁 共享锁的区别

排它锁又称为写锁((eXclusive lock,简记为X锁)),若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁.它防止任何其它事务获取资源上的锁,直到在事务的末尾将资源上的原始锁释放为止.在更新操作(INSERT.UPDATE 或 DELETE)过程中始终应用排它锁. 相对于共享锁的区别: 共享锁又称为读锁(Share lock,简记为S锁),若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上

2010年计算机基础综合 考试大纲

2010年计算机基础综合 考试大纲 2010年计算机基础综合 考试大纲请大家支持高教正版图书! 任何组织和个人无权将其用于任何商业赢利为目的的 2010年计算机基础综合考试大纲 2010年计算机基础综合考试大纲 计算机学科专业基础综合考试涵盖数据机构.计算机组成原理.操作系统和计算机网络等学科专业基础课程.要求考生比较系统地掌握上述专业基础课程的概念.基本原理和方法,能够运用所学的基本原理和基本方法分析.判断和解决有关理论问题和实际问题. Ⅱ考试形式和试卷结构 一.试卷满分及考试时间本试卷满分为