造成死锁的四个必要条件

来源:互联网 发布:计算机二级c语言好考吗 编辑:程序博客网 时间:2024/05/21 17:20

死锁:是指系统中两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。


造成死锁的三个原因:

1、系统资源不足;

2、进程运行推进的顺序不合适;

3、资源分配不当;


产生死锁的四个必要条件:

1、资源独占(互斥性):一个资源每次只能有一个进程占用。

2、占有且等待(请求和保持):一个进程因请求资源而阻塞时,对已获得的资源保持不放。

3、不可强行占有:进程已获得的资源,在未使用完之前,不能强行剥夺。

4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源(存在一个进程等待队列,{ p1, p2, ... ,pn },其中p1等待p2占有的资源,p2等待p3占有的资源, ...... pn等待p1占有的资源,形成一个进程等待环路)。


死锁要求这四个条件必须满足,只要其中有一个条件不满足,就不会发生死锁。

0 0