0

明天早上我在 OS Course 进行了期末考试,但遇到了一个问题。

假设我们的系统中有 4 个进程:P1、P2、P3、P4,以及 4 个不同的资源:R1、R2、R3、R4。此图中显示的系统的当前状态。

在此处输入图像描述

问题是 - “系统是否陷入僵局?” 我解决了几个类似的问题,所以,我认为,系统处于死锁状态,因为没有足够的可用资源(例如 P4 请求 R3 的 2 个实例,但可用列表中仅存在 R3 的 1 个资源)。

我有点困惑,因为我的从业者的回答是:系统没有陷入死锁,进程按以下顺序运行:P4->P3->P1->P2

哪种解决方案是正确的?

谢谢。

4

3 回答 3

1

你的导师是对的。特别是P4已经有(1 0 1 1),因此只需要(0 0 1 0),可用资源很容易满足。在为 P4 提供资源后,它完成并释放它正在使用的所有内容(包括其当前分配)。然后操作系统可以将这些资源发送到剩余的进程(以正确的顺序),因此不会出现死锁。

于 2014-01-30T17:21:58.753 回答
0

根据这里的解释, P4->P3->P2->P1 不起作用,因为 P2 将使 R1 0 ,这可能导致 P2 死锁进入循环或长时间不可用 P1 等待所有R1 为零的时间。?

当 P3 和 P4 完成后,Avail Matrix 变为 3334 ,也足以满足 P2 的需求?

于 2014-09-07T15:34:32.460 回答
0

安全序列是 p3,p4,p1,p2
p1 假
p2 假
p3 真 总计 5555 - 执行第 1
个 p4 真 总计 6566 - 执行第 2 个
循环 cont
p1 真 总计 7678 - 执行第 3 个
p2 真 总计 9788 - 执行第 4 个

安全序列 (p3,p4 ,p1,p2)

于 2016-12-14T20:30:44.700 回答