操作系统 帧分配
操作系统的主内存被划分为各个帧。进程被储存在这些帧中,一旦进程被保存为一个帧,CPU就可以运行它。因此,操作系统必须为每个进程分配足够的帧。为此,操作系统使用各种算法来分配帧。
需求分页被用于实现虚拟内存,这是一个重要的操作系统功能。它需要开发一个页面置换机制和帧分配系统。如果有多个进程,帧分配技术将被用来确定为每个进程分配多少个帧。有多种因素限制了帧分配策略:
- 你不能分配超过可用帧总数的帧。
- 每个进程应分配一定数量的帧。这个限制是由两个因素造成的。第一,当分配的帧数减少时,页面错误率增加,降低了进程的执行性能。第二,应该有足够的帧来容纳任何指令可能引用的多个页面。
操作系统主要有五种方式的帧分配算法。它们如下:
- 等量帧分配
- 按比例帧分配
- 优先级帧分配
- 全局替换帧分配
- 局部替换帧分配
等量帧分配
在等量帧分配中,进程在操作系统中平均分配。例如,如果系统有30个帧和7个进程,每个进程将分配4个帧。没有分配给任何系统进程的2个帧可以用作系统中的空闲帧缓冲池。
缺点
在大小不同的进程系统中,为每个进程分配相同的帧没有多大意义。如果许多帧分配给了一个小任务,那么会浪费很多分配的空帧。
按比例帧分配
按比例帧分配技术根据执行所需的大小和内存中的总帧数来分配帧。
进程 pi 的分配帧大小为 si 的大小,其中 S 表示所有进程大小的总和, m 表示系统中的帧数。
缺点
这种算法的唯一缺点是它不按优先级分配帧。优先级帧分配可以解决这个问题。
优先级帧分配
优先级帧分配根据帧分配和进程的数量来分配帧。假设一个进程具有较高的优先级并且需要更多的帧,那么将分配给它许多帧。然后,较低优先级的进程被分配。
全局替换帧分配
当一个进程需要一个当前不在内存中的页面时,它可以将其放入并从所有帧集中选择一个帧,即使另一个进程已经在使用该帧。换句话说,一个进程可能从另一个进程那里取走一个帧。
优点
进程性能不受影响,系统吞吐量更高。
缺点
进程本身可能无法单独控制进程的页面错误率。其他进程的分页行为也会影响进程内存中的页面数。
本地替换分配
当进程需要一个尚未在内存中的页面时,它可以将其调入并从其分配的帧集中分配一个帧。
优点
特定进程的分页行为会对内存中的页面和页面错误率产生影响。
缺点
低优先级进程可能通过拒绝共享其帧来阻碍高优先级进程。
全局与本地替换分配
使用本地替换策略时,分配给进程的帧数不会改变。另一方面,使用全局替换,一个进程只能选择已分配给其他进程的帧,并增加分配的帧数。