📜  进程的资源分配技术

📅  最后修改于: 2021-09-28 10:23:57             🧑  作者: Mango

操作系统在程序需要时分配资源。当程序终止时,资源被取消分配,并分配给需要它们的其他程序。现在的问题是,操作系统使用什么策略将这些资源分配给用户程序?

有两种资源分配技术:

  1. 资源分区方法——
    在这种方法中,操作系统预先决定应该将哪些资源分配给哪个用户程序。它将系统中的资源划分为许多资源分区,其中每个分区可能包含各种资源——例如,1 MB 内存、磁盘块和打印机。

    然后,它在程序启动之前为每个用户程序分配一个资源分区。资源表记录了资源分区及其当前分配状态(已分配或空闲)。

    优点:

    • 易于实施
    • 减少开销

    缺点:

    • 缺乏灵活性——如果资源分区包含的资源多于特定进程所需的资源,则额外的资源将被浪费。
    • 如果程序需要比单个资源分区更多的资源,则它无法执行(尽管其他分区中存在空闲资源)。

    示例资源表可能如下所示:

  2. 基于池的方法 –
    在这种方法中,有一个公共资源池。每当程序请求资源时,操作系统都会检查资源表中的分配状态。如果资源空闲,它将资源分配给程序。

    优点:

    • 分配的资源不会浪费。
    • 如果资源是免费的(与分区方法不同),则可以满足任何资源需求

    缺点:

    • 在每个请求和释放上分配和取消分配资源的开销。