死锁特征

死锁特征

当两个或更多进程需要由其他进程持有的资源来完成它们的执行时,操作系统中会发生死锁。

如果满足以下四个Coffman条件,则会发生死锁。但这些条件并不是相互排斥的。具体如下:

互斥

应该有一些资源一次只能由一个进程持有。在下面的图表中,Resource 1只有一个实例,并且只由Process 1持有。

死锁特征

保持和等待

一个进程可以持有多个资源,同时还可以从其他正在持有这些资源的进程请求更多的资源。在以下给出的图表中,Process 2持有Resource 2和Resource 3,并且正在请求Process 1持有的Resource 1。

死锁特征

不可剥夺

资源不能被强制从进程中抢夺。进程只能自愿释放资源。在下面的图表中,Process 2无法从Process 1那里抢夺Resource 1。只有在Process 1自愿释放它完成执行后,它才会被释放。

死锁特征

循环等待

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

死锁特征

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程