操作系统的一个重要方面, 虚拟内存 使用请求分页实现。按需分页需要开发一个 页面替换算法 还有 帧分配算法 .如果有多个进程,则使用帧分配算法;它有助于决定分配给每个进程的帧数。
null
帧分配策略有各种限制:
- 分配的帧数不能超过可用帧数的总数。
- 每个进程应至少分配最少数量的帧。这种限制有两个原因。第一个原因是,随着分配的帧数减少,页面错误率会增加,从而降低进程的执行性能。其次,应该有足够的框架来容纳任何一条指令都可以引用的所有不同页面。
帧分配算法- 通常用于为进程分配帧的两种算法是:
- 平等分配: 在具有x帧和y进程的系统中,每个进程获得相等数量的帧,即x/y。例如,如果系统有48帧和9个进程,每个进程将获得5帧。这三个未分配给任何进程的帧可以用作空闲帧缓冲池。
- 缺点: 在具有不同大小进程的系统中,给每个进程分配相等的帧没有多大意义。将大量帧分配给一个小进程最终会导致大量已分配的未使用帧的浪费。
- 比例分配: 根据进程大小为每个进程分配帧。 对于流程p 我 s码 我 ,分配的帧数为 A. 我 =(s) 我 /S) *m ,其中S是所有进程的大小之和,m是系统中的帧数。例如,在一个有62帧的系统中,如果有一个10KB的进程和另一个127KB的进程,那么第一个进程将被分配(10/137)*62=4帧,另一个进程将获得(127/137)*62=57帧。
- 优势: 所有流程都根据自己的需求而不是平等地共享可用的框架。
全球与本地分配—— 分配给进程的帧数也可以根据您是否使用了 全球替代 或 局部置换 用于在出现页面错误时更换页面。
- 局部替换: 当一个进程需要一个不在内存中的页面时,它可以引入新页面,并仅从自己分配的帧集中为其分配一个帧。
- 优势: 特定进程的内存页数和页错误率仅受该进程的分页行为的影响。
- 缺点: 低优先级进程可能会阻碍高优先级进程,因为它无法将其帧提供给高优先级进程。
- 全球替代: 当一个进程需要一个不在内存中的页面时,它可以引入新页面,并从所有帧集中为其分配一个帧,即使该帧当前已分配给其他进程;也就是说,一个进程可以从另一个进程获取帧。
- 优势: 不会妨碍进程的性能,从而提高系统吞吐量。
- 缺点: 进程的页面错误率不能完全由进程本身控制。一个进程内存中的分页也取决于其他进程的分页行为。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END