预防死锁的根本办法就是要使死锁产生的4个必要条件之一不存在。下面来分析一下破坏这些条件的可能性。
破坏互斥条件
破坏互斥条件即允许多个进程同时访问资源。由于多数资源的必须互斥访问这一固有特性不能改变,因此,死锁的预防通过破坏这个必要条件实现在很多场合是行不通的。例如,打印机资源必须互斥使用,否则几个进程同时使用,每个进程各打印一行,这种 输出 信息的方式显然是不能被 用户 接受的。
破坏占有和等待条件
采用资源静态分配法可破坏这一条件,该 方法 是指在进程运行前,一次性地_请分配它运行所需的全部资源。若系统有足够的资源分配给某一进程,则一次性地将其所需资源分配给该进程,这样,在进程运行期间便不会再提出任何资源请求,从而使等待条件不成立。如果分配时有一种资源要求不能满足,则进程需要的其他资源也先不分配给进程,从而避免进程在等待期间占用任何资源,破坏了占用条件,从而避免死锁的发生。
该 方法 控制简单且容易实现,但由于进程运行期间对所需资源的全部占用,使得某些使用时间很短的资源被长时间占用,这样会严重影响系统资源的充分利用,导致资源利用率降低,同?家灿跋斓轿椿竦萌?孔试吹慕?掏瞥僭诵小?/p>
破坏不剥夺条件
采用剥夺式控制 方法 可以破坏该条件,该 方法 是使 一个 已保持了某些资源的进程,由于新的资源要求目前得不到满足,它必须先暂时释放巳保持的所有资源(一种剥夺式),然后去等待,以后再一起向系统提出巾请,这样也能防止死锁。这种 方法 实现起来相对W难,为了保护进程 自动 放弃资源的现场以及后来的再次恢复,需要付出高昂的代价,并且这种 方法 只适用于处理机和存储器资源,对其他资源,此法不宜使用。
破坏循环等待条件
采用资源顺序分配法可破坏该条件。这种分配 方法 的基本思想是:把系统的全部资源分成多个层次, 一个 进程得到某一层的 一个 资源后,它只能再_请较高一层的资源;当 一个 进程要释放某层的 一个 资源时,必须先释放所占有的较高层的资源;当 一个 进程获得了某一层的 一个 资源后,它想再申请该层中的另 一个 资源,就必须先释放在该层中巳占有的资源。或者说,进程释放资源的顺序是按照中请资源的相反顺序进行的。这样可以预防循环等待现象的发生,因此不会发生死锁。使用该 方法 要特?e注意的问题是对资源所处层次的安排。在通常情况下,把各进程经常用到的、比较普遍的资源安排在较低的层次上,把重要且相对匮乏的资源安排在较高的层次上,以便实现对各资源的最大限度的利用。该 方法 相对于前面介绍的 方法 ,在资源利用率和系统吞吐量上都有明显的改善。但也存在一些缺陷。
(1)低层次的资源必须在进程请求分配?层次的资源之前提前申请,这对于暂时不需使用的低层次资源来说,会因空闲等待而产生浪费。
(2)各类设备的资源层次一经设定,便不能经常随意改动,这就限制了新类型设备的 增加 。
(3)各资源的层次是按照大多数进程使用资源的顺序设置的。对于资源使用与此层次相闪配的进程,资源能得到有效的利用,否则,资源的浪费现象将仍然存在。
(window.slotbydup = window.slotbydup || []).push({ id: "u6900636", container: "_lzu4spjrog", async: true });版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。
相关推荐
无法登录微软账户详细教程
一些电脑用户在重装了系统之后出现微软账户无法登录的情况,而且指纹和面部识别也都没法录入了,其实大家可以通过计算机中的管理建立新用户并禁用原用户来完成。
mtu怎么获取
电脑上的mtu最好是与我们的真实网络mtu保持一致,这样才可以发挥出最大的网速水平,那么我们应该如何查看自己的mtu,并获取到最佳mtu设置标准呢,就需要在cmd中一个个排查了。
7zip解压软件怎么用
7zip解压工具许多用户喜欢在手机上使用,但是这个软件对于新手来说操作还是有点难度的,要解压的话,大家可以通过右击你的压缩包,然后进行解压,但是前提是一定要有压缩包哟。
鸿蒙3.1升级名单一览
去年9月份华为开启了鸿蒙3.0系统公测升级更新,向许多机型都推送3.0,而本月鸿蒙3.1系统也将出现在大家面前,正式开启公测招募。
appdata文件夹有什么用
appdata是每一个Windows系统中几乎都有的文件夹,而且它通常会默认在c盘中,并占用了几十个G的内存空间,但是很多朋友并不知道这个appdata文件夹有什么用。
appdata文件夹可以移到d盘吗
我们在系统检查的时候经常会发现appdata文件夹非常大,而且因为它默认是在c盘,所以会占用大量的c盘空间非常令人头疼,这时候我们可以将appdata文件夹移动到d盘解放c盘吗,其实理论上是可行的。
wmiproviderhost怎么禁用
wmiproviderhost进程如果占用了用户很大内存空间的话,其实是可以直接进行禁用的,大家只需要进入系统服务界面,然后将相关的应用直接的进行禁用就好了。
wmi provider host可以结束进程吗
清理后台的时候,肯定很多的伙伴在任务管理器里面看到了wmi provider host进程吧,大家最好奇的莫过于是不是可以去结束这个进程,其实可以结束进程,但是非常不建议哟~