这是一个多部分的博客文章系列,在这个系列中我将向您解释操作系统的概念。本系列文章分为多个模块,这是由8篇文章组成的第四个模块。

在上一篇文章中我们讨论了单实例的资源分配图,现在在本文中我们将看到关于多实例的资源分配图。

多实例资源分配:

  • 表示资源有多个实例。

  • 简单来说,我们可以说一个特定的资源可以满足多个进程请求的需要。

为了清楚地理解该主题,让我们看一个示例并尝试理解。

例子:

[Untitled Diagram.png](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的请求,因为它需要R21资源,而我们拥有它。所以,P1在执行完毕后会被终止,分配给P1的资源会被释放。

  • 当前可用性:(1,1)

  • 有了这个可用性,我们可以满足P2的要求。

  • 因此,系统中不存在死锁。

  • 此示例包含循环等待但不存在死锁,因为这是多实例,仅在单实例的情况下发生。

例子:

[无标题图(1).png](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的请求,它只需要R31资源。它将被终止并在完全执行后。

  • 当前可用性:(0,1,1)

  • 以当前的可用性我们可以满足P0的请求,它需要R21资源和R31资源

  • 当前可用性:(1,1,2)

  • 以当前的可用性,我们可以满足P1的请求,它需要R11资源。

  • 当前可用性:(2,2,2)

  • 以当前的可用性,我们可以满足P3的请求,它需要R11资源和R22资源。

  • 此示例中不存在死锁。

  • 当前可用性:(2,3,2),所有资源都是免费的。

所以这都是关于多实例资源分配图的。希望你喜欢它并从中学到新的东西。

如果您对此主题有任何疑问、疑问、查询或只是想与我分享新内容,请随时与我联系。

📱 联系我

推特

领英

电报

Instagram

📧 写邮件

rahulmishra102000@gmail.com

🚀 其他链接

GitHub

HackerRank

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐