死锁
1、死锁
死锁是指多个进程因竞争资源而造成的一种互相等待的僵局,若无外力作用都将无法推进,这种情况就是死锁。
2、死锁产生的原因
a、系统资源的竞争导致资源不足,以及资源分配不当;
b、进程在运行过程中,请求和释放资源的顺序不当。
3、产生死锁的四个必要条件
a、互斥条件:一个资源每次只能被一个进程使用,即在某一段时间内某资源仅为一个资源所占有,此时若有其它进程请求该资源,则请求进程只能等待。
b、请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。
c、不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
d、环路等待条件:若干进程之间形成首尾相连,循环等待资源的关系。
这四个条件是产生死锁的必要条件,只要系统发生死锁,绝对满足这四个条件,而只要上述条件之一不满足,就不会发生死锁。
预防死锁的方法是使四个必要条件中的b,c,d条件不能成立,来避免发生死锁。至于a,是由设备的固有特征所决定的,不仅不能改变,还应加以保证。