多实例资源分配图 |操作系统 - M04 P03
这是一个多部分的博客文章系列,在这个系列中我将向您解释操作系统的概念。本系列文章分为多个模块,这是由8篇文章组成的第四个模块。
在上一篇文章中我们讨论了单实例的资源分配图,现在在本文中我们将看到关于多实例的资源分配图。
多实例资源分配:
-
表示资源有多个实例。
-
简单来说,我们可以说一个特定的资源可以满足多个进程请求的需要。
为了清楚地理解该主题,让我们看一个示例并尝试理解。
例子:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--GLqbINjq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn. hashnode.com/res/hashnode/image/upload/v1607518428063/0dsdG64J3.png)
工艺编号
分配的 R1
分配的 R2
请求 R1
请求 R2
P1
1
0
0
1
帕
0
1
1
0
卖
0
1
0
0
-
当前可用性:(0,0)
-
以目前的可用性,我们可以满足
P3
的请求,因为P3
没有任何要求。因此,P3
将在完全执行后终止。现在可用性发生了变化,因为分配给P3
的资源已被P3
释放。 -
当前可用性:(0,1)
-
现在,以当前的可用性,我们可以满足
P1
的请求,因为它需要R2
的1
资源,而我们拥有它。所以,P1
在执行完毕后会被终止,分配给P1
的资源会被释放。 -
当前可用性:(1,1)
-
有了这个可用性,我们可以满足
P2
的要求。 -
因此,系统中不存在死锁。
-
此示例包含循环等待但不存在死锁,因为这是多实例,仅在单实例的情况下发生。
例子:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--PRAJALxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// /cdn.hashnode.com/res/hashnode/image/upload/v1607518453183/z9sCs1jkR.png)
工艺编号
分配的 R1
分配的 R2
分配的 R3
请求 R1
请求 R2
请求 R3
P0
1
0
1
0
1
1
P1
1
1
0
1
0
0
帕
0
1
0
0
0
1
卖
0
1
0
1
2
0
-
当前可用性:(0,0,1)
-
以当前的可用性我们可以满足
P2
的请求,它只需要R3
的1
资源。它将被终止并在完全执行后。 -
当前可用性:(0,1,1)
-
以当前的可用性我们可以满足
P0
的请求,它需要R2
的1
资源和R3
的1
资源 -
当前可用性:(1,1,2)
-
以当前的可用性,我们可以满足
P1
的请求,它需要R1
的1
资源。 -
当前可用性:(2,2,2)
-
以当前的可用性,我们可以满足
P3
的请求,它需要R1
的1
资源和R2
的2
资源。 -
此示例中不存在死锁。
-
当前可用性:(2,3,2),所有资源都是免费的。
所以这都是关于多实例资源分配图的。希望你喜欢它并从中学到新的东西。
如果您对此主题有任何疑问、疑问、查询或只是想与我分享新内容,请随时与我联系。
📱 联系我
推特
领英
电报
📧 写邮件
rahulmishra102000@gmail.com
🚀 其他链接
GitHub
HackerRank
更多推荐
所有评论(0)