如何判断是否存在死锁?
How to find deadlock exists or not?
考虑一个具有 4 种资源的系统 R1(3 个单元)、R2(2 个单元)、R3(3 个单元)、R4(2 个单元)。使用非抢占式资源分配策略。在任何给定情况下,如果无法完全满足请求,则不会受理该请求。三个进程P1,P2,P3如果独立执行,请求资源如下
Process P1:
t=0: requests 2 units of R2
t=1: requests 1 unit of R3
t=3: requests 2 units of R1
t=5: releases 1 unit of R2 and 1 unit of R1.
t=7: releases 1 unit of R3
t=8: requests 2 units of R4
t=10: Finishes
Process P2:
t=0: requests 2 units of R3
t=2: requests 1 unit of R4
t=4: requests 1 unit of R1
t=6: releases 1 unit of R3
t=8: Finishes
Process P3:
t=0: requests 1 unit of R4
t=2: requests 2 units of R1
t=5: releases 2 units of R1
t=7: requests 1 unit of R2
t=8: requests 1 unit of R3
t=9: Finishes
如果所有三个进程 运行 在时间 t = 0 同时开始,下列哪一个陈述是正确的?
所有进程都将完成,没有任何死锁
只有P1和P2会死锁
只有P1和P3会死锁
三个进程都会死锁
我 运行 通过请求和可用资源,所有进程都已完成,没有出现死锁。
- 在 t = 3 时,进程 P1 必须等待,因为它没有获得所需的资源,但在 t = 5 时 P3 释放它们时,它会被整理出来。没有 "circular wait" 和 "hold and wait" 可以发生。
- 下一次等待 P1 是在 t = 8 时它请求 R4 的 2 个,当 P3 在 t = 9 时完成排序。同上,没有 "circular wait" 和 "hold and wait" 可能发生。
除此之外,所有请求都会被立即处理运行。
考虑一个具有 4 种资源的系统 R1(3 个单元)、R2(2 个单元)、R3(3 个单元)、R4(2 个单元)。使用非抢占式资源分配策略。在任何给定情况下,如果无法完全满足请求,则不会受理该请求。三个进程P1,P2,P3如果独立执行,请求资源如下
Process P1:
t=0: requests 2 units of R2
t=1: requests 1 unit of R3
t=3: requests 2 units of R1
t=5: releases 1 unit of R2 and 1 unit of R1.
t=7: releases 1 unit of R3
t=8: requests 2 units of R4
t=10: Finishes
Process P2:
t=0: requests 2 units of R3
t=2: requests 1 unit of R4
t=4: requests 1 unit of R1
t=6: releases 1 unit of R3
t=8: Finishes
Process P3:
t=0: requests 1 unit of R4
t=2: requests 2 units of R1
t=5: releases 2 units of R1
t=7: requests 1 unit of R2
t=8: requests 1 unit of R3
t=9: Finishes
如果所有三个进程 运行 在时间 t = 0 同时开始,下列哪一个陈述是正确的?
所有进程都将完成,没有任何死锁
只有P1和P2会死锁
只有P1和P3会死锁
三个进程都会死锁
我 运行 通过请求和可用资源,所有进程都已完成,没有出现死锁。
- 在 t = 3 时,进程 P1 必须等待,因为它没有获得所需的资源,但在 t = 5 时 P3 释放它们时,它会被整理出来。没有 "circular wait" 和 "hold and wait" 可以发生。
- 下一次等待 P1 是在 t = 8 时它请求 R4 的 2 个,当 P3 在 t = 9 时完成排序。同上,没有 "circular wait" 和 "hold and wait" 可能发生。
除此之外,所有请求都会被立即处理运行。