码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统简要总结之死锁

时间:2015-07-13 13:47:28      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

死锁的概念

  死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺互斥资源而造成的一种互相等待的现象

死锁产生的原因

  -----竞争资源

  -----进程推进顺序不合理

 

产生死锁的四个必要条件

  -----互斥条件:一个资源每次只能被一个进程(线程)使用。

  -----不可剥夺条件:一个进程(线程)因请求资源而阻塞时,对已获得的资源保持不放。

  -----请求保持条件条件: 此进程(线程)已获得的资源,在末使用完之前,不能强行剥夺。

  -----循坏等待条件: 多个进程(线程)之间形成一种头尾相接的循环等待资源关系。

注:这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之 一不满足,就不会发生死锁。

 

解决死锁的方法

  -----预防死锁

  -----避免死锁(银行家算法)

  -----检测死锁(资源分配图)

  -----解除死锁

注:第三条与第四条一般联合使用

 

预防死锁的策略

  -----破坏互斥条件(SPOOLing)

  -----剥夺其他进程的资源(破坏不可剥夺条件)

  -----一次性分配所有的资源(破坏请求与保持条件

  -----有序分配资源(破坏请求与保持条件

 

解除死锁的策略

  -----撤消陷于死锁的全部进程

  -----逐个撤消陷于死锁的进程,直到死锁不存在

  -----从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失

  -----从另外一些进程那里强行剥夺足够数量的资源分配给死锁进程,以解除死锁状态

操作系统简要总结之死锁

标签:

原文地址:http://www.cnblogs.com/changyaohua/p/4642526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!