死锁特征


死锁发生在操作系统中,当两个或多个进程需要某些资源来完成其执行,而这些资源被其他进程持有时。

如果四个Coffman条件都成立,则会发生死锁。但是这些条件不是相互排斥的。它们如下所示:

互斥

应该有一个资源,一次只能被一个进程持有。在下图中,只有一个实例的资源1,并且它仅由进程1持有。

Mutual Exclusion

持有并等待

一个进程可以持有多个资源,并且仍然可以向持有它们的其它进程请求更多资源。在下图中,进程2持有资源2和资源3,并请求由进程1持有的资源1。

Hold and Wait

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

不可抢占

资源不能被强制从进程中抢占。进程只能自愿释放资源。在下图中,进程2不能从进程1抢占资源1。它只有在进程1在执行完成后自愿放弃它时才会被释放。

No Preemption

循环等待

一个进程正在等待第二个进程持有的资源,而第二个进程正在等待第三个进程持有的资源,以此类推,直到最后一个进程正在等待第一个进程持有的资源。这形成了一个循环链。例如:进程1被分配了资源2,并且它正在请求资源1。同样,进程2被分配了资源1,并且它正在请求资源2。这形成了一个循环等待环。

Circular Wait

更新于:2023年9月6日

68K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始
广告