操作系统 帧分配

操作系统 帧分配

操作系统的主内存被划分为各个帧。进程被储存在这些帧中,一旦进程被保存为一个帧,CPU就可以运行它。因此,操作系统必须为每个进程分配足够的帧。为此,操作系统使用各种算法来分配帧。

需求分页被用于实现虚拟内存,这是一个重要的操作系统功能。它需要开发一个页面置换机制和帧分配系统。如果有多个进程,帧分配技术将被用来确定为每个进程分配多少个帧。有多种因素限制了帧分配策略:

  1. 你不能分配超过可用帧总数的帧。
  2. 每个进程应分配一定数量的帧。这个限制是由两个因素造成的。第一,当分配的帧数减少时,页面错误率增加,降低了进程的执行性能。第二,应该有足够的帧来容纳任何指令可能引用的多个页面。

操作系统主要有五种方式的帧分配算法。它们如下:

  1. 等量帧分配
  2. 按比例帧分配
  3. 优先级帧分配
  4. 全局替换帧分配
  5. 局部替换帧分配

等量帧分配

在等量帧分配中,进程在操作系统中平均分配。例如,如果系统有30个帧和7个进程,每个进程将分配4个帧。没有分配给任何系统进程的2个帧可以用作系统中的空闲帧缓冲池。

缺点

在大小不同的进程系统中,为每个进程分配相同的帧没有多大意义。如果许多帧分配给了一个小任务,那么会浪费很多分配的空帧。

按比例帧分配

按比例帧分配技术根据执行所需的大小和内存中的总帧数来分配帧。

进程 pi 的分配帧大小为 si 的大小,其中 S 表示所有进程大小的总和, m 表示系统中的帧数。

缺点

这种算法的唯一缺点是它不按优先级分配帧。优先级帧分配可以解决这个问题。

优先级帧分配

优先级帧分配根据帧分配和进程的数量来分配帧。假设一个进程具有较高的优先级并且需要更多的帧,那么将分配给它许多帧。然后,较低优先级的进程被分配。

全局替换帧分配

当一个进程需要一个当前不在内存中的页面时,它可以将其放入并从所有帧集中选择一个帧,即使另一个进程已经在使用该帧。换句话说,一个进程可能从另一个进程那里取走一个帧。

优点

进程性能不受影响,系统吞吐量更高。

缺点

进程本身可能无法单独控制进程的页面错误率。其他进程的分页行为也会影响进程内存中的页面数。

本地替换分配

当进程需要一个尚未在内存中的页面时,它可以将其调入并从其分配的帧集中分配一个帧。

优点

特定进程的分页行为会对内存中的页面和页面错误率产生影响。

缺点

低优先级进程可能通过拒绝共享其帧来阻碍高优先级进程。

全局与本地替换分配

使用本地替换策略时,分配给进程的帧数不会改变。另一方面,使用全局替换,一个进程只能选择已分配给其他进程的帧,并增加分配的帧数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程