操作系统--并发进程死锁

Posted 皇问天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统--并发进程死锁相关的知识,希望对你有一定的参考价值。

死锁概念:

 

是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

 

死锁产生的条件:

(最关键的为第四个条件)

技术分享           技术分享

 

 

解决死锁的方法:

 

 

预防死锁:指进程申请资源必须遵循某些预先制定的限制条件,以破坏产生死锁的四个必要条件中的一个或者几个,防止死锁的发生。

 

避免死锁:指当进程申请资源时,需要首先判断(预测),如果满足这次资源请求是否会导致死锁,可可导致死锁的资源请求将会被拒绝,让请求资源进程的进程阻塞等待,直到其所需要的资源可分配位为止。

了解学习银行家算法(http://blog.csdn.net/dk_zhe/article/details/7239376)

哲学家进餐问题(http://book.51cto.com/art/200907/138168.htm)

 

检测并解除死锁:指当进程申请资源时,不进行任何限制,即允许死锁发生。但要求系统定期或者不定期检测是否有死锁发生。当检测到死锁时,在力求解除死锁。

 

以上是关于操作系统--并发进程死锁的主要内容,如果未能解决你的问题,请参考以下文章

python 并发编程 多线程 死锁现象与递归锁

百万年薪python之路 -- 并发编程之 多线程 二

操作系统-死锁

多线程,并发,异步,死锁

python并发编程之多线程2------------死锁与递归锁,信号量等

day10-python并发编程之多线程协程及MySQL