20170925_死锁的产生和消除
1、死锁的概念:
所谓的“ 死锁 ”,是指多个进程因为竞争资源而造成的一种僵持状态(互相等待状态),若无外力作用,这些进程都无法继续向前推进。
2、死锁产生的原因:
一个是系统资源的竞争,一个是进程向前推进的顺序非法。
3、死锁产生的四个必要条件:
死锁产生的四个必要条件,只要其中之一不满足,死锁就不会发生。
(1)互斥条件。
进程要求对所分配的资源进行排他性访问,即在一段时间内某资源仅为某一个进程所占有,此时若有其他的进程来访问该资源,则这个请求进程会被阻塞(等待)在这个资源上。
(2)不可剥夺条件。
进程所拥有的资源在自己没有使用完毕之前,其他进程不能够把该资源强行夺走,即只能由获得该资源的进程主动释放掉才可以被其他进程使用。
(3)请求和保持条件。
进程每次在请求它需要的新资源的时候,在等待这个新资源被分配给自己的这个过程中,该进程一直占有它已经得到的其他资源。
(4)循环等待条件。
存在一种进程资源的循环等待链,链中每个进程已获得的资源同时被链中下一个进程所请求。