📜  在操作系统中分配框架

📅  最后修改于: 2021-06-29 05:35:06             🧑  作者: Mango

操作系统的重要方面是,虚拟内存是使用需求分页实现的。需求分页需要开发页面替换算法和帧分配算法。如果您有多个进程,则使用帧分配算法。它有助于确定为每个进程分配多少帧。

帧分配策略受到各种约束:

  • 您分配的数量不能超过可用帧的总数。
  • 至少应为每个进程分配最少数量的帧。有两个原因支持此约束。第一个原因是,随着分配的帧数减少,页面错误率增加,从而降低了过程执行的性能。其次,应该有足够的框架来容纳任何单个指令都可以引用的所有不同页面。

帧分配算法–
通常用于为进程分配帧的两种算法是:

  1. 均等分配:在具有x个帧和y个进程的系统中,每个进程获得相等数量的帧,即x / y。例如,如果系统有48帧和9个进程,则每个进程将获得5帧。未分配给任何进程的三个帧可用作自由帧缓冲池。
    • 缺点:在具有不同大小的进程的系统中,给每个进程相等的帧没有多大意义。将大量帧分配给一个小的进程最终将导致大量分配的未使用帧的浪费。
  2. 比例分配:根据流程大小将帧分配给每个流程。
    对于大小为si的进程p i ,分配的帧数为a i =(s i / S)* m ,其中S为所有进程的大小之和,而m为系统中的帧数。例如,在具有62帧的系统中,如果有一个10KB的进程和另一个127KB的进程,则第一个进程将被分配(10/137)* 62 = 4帧,而另一个进程将获得(127/137) )* 62 = 57帧
    • 优点:所有进程都根据需要共享可用的帧,而不是相等。

全球与本地分配–
分配给进程的帧数也可以动态更改,具体取决于在页面错误的情况下是使用全局替换还是局部替换来替换页面。

  1. 本地替换:当进程需要不在内存中的页面时,它可以引入新页面并仅从其自己的已分配帧集中为其分配帧。
    • 优点:特定进程在内存中的页面和页面错误率仅受该进程的分页行为的影响。
    • 缺点:低优先级进程可能不会通过使高优先级进程可用其帧来阻碍高优先级进程。
  2. 全局替换:当一个进程需要一个不在内存中的页面时,它可以引入新页面并从所有框架集中为其分配一个框架,即使该框架当前已分配给其他进程;也就是说,一个过程可以取下另一个框架。
    • 优点:不会妨碍流程的性能,因此可以提高系统的吞吐量。
    • 缺点:流程的页面错误率不能仅由流程本身来控制。一个进程在内存中的页面也取决于其他进程的分页行为。