-
Notifications
You must be signed in to change notification settings - Fork 1.3k
导致系统出现死锁的情况
cxuan edited this page Jun 25, 2020
·
1 revision
死锁的出现需要同时满足下面四个条件
-
互斥(Mutual Exclusion)
:一次只能有一个进程使用资源。如果另一个进程请求该资源,则必须延迟请求进程,直到释放该资源为止。 -
保持并等待(Hold and Wait)
:必须存在一个进程,该进程至少持有一个资源,并且正在等待获取其他进程当前所持有的资源。 -
无抢占(No Preemption)
:资源不能被抢占,也就是说,在进程完成其任务之后,只能由拥有它的进程自动释放资源。 -
循环等待(Circular Wait)
:必须存在一组 {p0,p1,..... pn} 的等待进程,使 p0 等待 p1 持有的资源,p1 等待由 p2 持有的资源, pn-1 正在等待由 pn 持有的资源,而 pn 正在等待由 p0 持有的资源。