死锁特征
死锁发生在操作系统中,当两个或多个进程需要某些资源来完成其执行,而这些资源被其他进程持有时。
如果四个Coffman条件都成立,则会发生死锁。但是这些条件不是相互排斥的。它们如下所示:
互斥
应该有一个资源,一次只能被一个进程持有。在下图中,只有一个实例的资源1,并且它仅由进程1持有。
持有并等待
一个进程可以持有多个资源,并且仍然可以向持有它们的其它进程请求更多资源。在下图中,进程2持有资源2和资源3,并请求由进程1持有的资源1。
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在执行完成后自愿放弃它时才会被释放。
循环等待
一个进程正在等待第二个进程持有的资源,而第二个进程正在等待第三个进程持有的资源,以此类推,直到最后一个进程正在等待第一个进程持有的资源。这形成了一个循环链。例如:进程1被分配了资源2,并且它正在请求资源1。同样,进程2被分配了资源1,并且它正在请求资源2。这形成了一个循环等待环。
广告