所以死锁,是指多个进程循环等待它放占有的资源而无限的僵持下去的局面。在计算机系统中,设计软件、硬件资源都可以发生死锁。
死锁产生的必要条件:在计算机系统中同时具备以下四个必要条件时,系统就会发生死锁。
(1)互斥条件。即某个资源一段时间内只能由一个进程占有,不能同时被两个或者两个以上的进程占有。
(2)不可强占条件。进程所获得的资源在未使用完毕前,资源申请者不能强行的从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放。
(3)占有且申请条件。进程至少已经占有一个资源,但又恩情新的资源;由于该资源已经被另外进程占有,此时该进程阻塞;但是它在等待新资源之时,仍继续占用已占有的资源。
(4)循环条件等待。存在一个进程等待序列{P1,P2,P3,'''Pn},其中P1等待P2所占用的某一资源,P2等待P3所占用的某一资源,而Pn等待P1所占用的某一资源。形成一个进程循环等待环。
注:以上条件必须同时满足才能够发生死锁。某一条件不满足,则不会发生死锁现象。 |