~为了便于收藏,让我转贴吧
产生死锁的原因
产生死锁的主要原因可归结为以下两点。
(1)竞争资源
(2)进程推进顺序不当
产生死锁的必要条件
(1)互斥条件
一个资源在一段时间内只能被一个进程所使用,具有排它性。
(2)请求和保持条件
一个进程在请求新资源而阻塞时,对已获得资源又保持不放。
(3)不剥夺条件
进程已获得的资源,在未使用完之前不能被剥夺,只能在使用完时由自己释放。
(4)环路等待条件
在发生死锁时,必然存在一个进程--资源的环形链。即进程集合{P1,P2,...,Pn}中的P1正在等待P2占用的资源,P2正在等待P3占用的资源,...,Pn正在等待P1占用的资源。
只要同时具备上述4个必要条件,系统就会发生死锁,只要上述条件之一不满足,系统就不会发生死锁。
www.chinaEDA.cn