进程的资源分配技术

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

null

有两种资源分配技术:

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

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

    优势:

    • 易于实现
    • 减少开销

    缺点:

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

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

    图片[1]-进程的资源分配技术-yiteyi-C++库

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

    优势:

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

    缺点:

    • 每次请求和发布时分配和取消分配资源的开销。
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享