首页 > 其他 > 详细

死锁及死锁的四个必要条件

时间:2019-09-18 22:26:47      阅读:119      评论:0      收藏:0      [点我收藏+]

死锁是多个线程在运行过程中互相竞争资源发生的僵局,若无外力作用,它们都无法推进下去。

死锁的四个必要条件

  1. 互斥条件:一个资源每次只能被一个进程使用。
  2. 请求和保持条件:一个进程因为请求资源而阻塞时,对已获得的资源保持不放。
  3. 不剥夺条件:进程已经获得的资源在没有使用完之前,不能强行剥夺。
  4. 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

解决死锁的基本方法

预防死锁:

1)资源一次性分配:一次性分配所有资源,这样就不会有请求了(破坏请求条件)

2)只要有一个资源得不到分配,就不给这也进程分配其他的资源(破坏保持条件)

3)可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不剥夺条件)

4)资源有序分配法:系统给每个资源赋予一个编号,每一个进程按照编程递增的顺序请求资源,释放则相反(破坏环路等待条件)

解除死锁:

常用的有:

1)剥夺资源:从其他进程剥夺足够数量的资源给死锁进程,以解除死锁状态;

2)撤销进程:可以直接撤销死锁进程或撤销代价最小的进程,直至有足够的资源可用;

 

死锁及死锁的四个必要条件

原文:https://www.cnblogs.com/lhh666/p/11545460.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!