死锁

1、死锁                                                                  

死锁是指多个进程竞争资源而造成的一种互相等待的僵局若无外力作用都将无法推进,这种情况就是死锁。

2、死锁产生的原因                                                   

a、系统资源的竞争导致资源不足,以及资源分配不当;

b、进程在运行过程中,请求和释放资源的顺序不当。

3、产生死锁的四个必要条件                                       

a、互斥条件:一个资源每次只能被一个进程使用,即在某一段时间内某资源仅为一个资源所占有,此时若有其它进程请求该资源,则请求进程只能等待。

b、请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

c、不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

d、环路等待条件:若干进程之间形成首尾相连,循环等待资源的关系。

 

这四个条件是产生死锁的必要条件,只要系统发生死锁,绝对满足这四个条件,而只要上述条件之一不满足,就不会发生死锁。

预防死锁的方法是使四个必要条件中的b,c,d条件不能成立,来避免发生死锁。至于a,是由设备的固有特征所决定的,不仅不能改变,还应加以保证。

 

posted @ 2017-08-23 15:23  fankongkong  阅读(281)  评论(0编辑  收藏  举报