页面分配策略 - wolai 笔记

1.驻留集

  • 指请求分页存储管理中给进程分配的内存块的集合
  • 在采用虚拟存储计算的系统中,驻留集大小一般小于进程的总大小
  • 驻留集太小,频繁缺页;驻留集太大,资源利用率下降,并发度下降

2.页面分配置换策略

2.1固定分配 VS 可变分配

区别在于进程运行期间驻留集大小是否可变

2.2局部置换 VS 全局置换

区别在于发生缺页时是否只能从进程自己的页面中选择换出一个

2.3固定分配局部置换

进程运行前就分配一定数量物理块,缺页时只能换出进程自己的某一页

2.4可变分配全局置换

只要缺页就分配新物理块,可能来自空闲物理块,也可能需换出别的进程页面

2.5可变分配局部置换

频繁缺页的进程,多分配一些物理块;缺页率很低的进程,回收一些物理块。直到缺页率合适

3.何时调入页面

3.1预调页策略

一般用于进程运行前

3.2请求调页策略

进程运行时,发现缺页载调页

4.从何处调页

4.1对换区

采用连续存储方式,速度更快

4.2文件区

采用离散存储分配,速度更慢

4.3对换区足够大

运行将数据从文件区复制到对换区,之后所有的页面调入、调出都是在内存与对换区之间进行

4.4对换区不够大

不会修改的数据每次都从文件区调入;会修改的数据调出到对换区,需要使用时再从对换区调入

4.5UNIX方式

第一次使用的页面都从文件区调入;调出的页面都写会对换区,再次使用时从对换区调入

5. 抖动(颠簸)现象

  • 页面频繁换入换出的现象。
  • 主要原因是分配给进程的物理块不够,某个进程频繁访问页面数目高于可用的物理块数目。

6.工作集

在某段时间间隔里,进程实际访问页面的集合驻留集大小一般不能小于工作集大小
操作系统会根据“窗口尺寸”来算出工作集,如:
某进程的页面访问序列如下,窗口尺寸为4,各时刻的工作集为?
工作集大小可能小于窗口尺寸,实际应用中,操作系统可以统计进程的工作集大小,根据工作集大小给进程分配若干内存块。
如:窗口尺寸为5,经过一段时间运行某进程的工作集最大为3,那么说明该进程有很好的局部性,可以给这个进程分配3个以上的内存卡即可满足进程的运行需要。
工作集模型原理
  • 让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。
  • 落在工作集的页面需要调入驻留集中,而落在工作集外的页面可从驻留集中换出。
  • 若还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。
  • 若所有进程的工作集之和超过了可用物理块的总数,则操作系统会暂停一个进程,将其页面调出并将其物理块分配给其他进程,防止出现抖动现象。

7.总结

7.1为什么要引入虚拟内存?

  • 多道程序并发执行不仅是进程之间共享了处理器,而且同时共享了主存。
  • 随着对处理器需求的增长,进程的执行速度会以某种合理平滑的方式慢下来。
  • 但是,若同时运行的进程太多,则需要很多的内存,当一个程序没有内存空间可用时,那么无法运行。
  • 所以,在物理上扩展内存相对有限的条件下,应尝试以一些其他可执行的方式在逻辑上扩充。

7.2虚拟内存空间的大小由什么因素决定?

  • 虚存的实际容量 <= 内存容量和外存容量之和,这是硬件的硬性条件规定的;
  • 虚存的最大容量 <= 计算机的地址位数能容纳的最大容量。假设地址是32位,按字节编址,则虚存的最大容量 <= 4GB(2^32B);若容量超过4GB,则32位地址无法访问全部虚存,相当于没有,没有任何意义。

7.3虚拟内存是怎么解决问题的?会带来什么问题?

  • 虚拟内存使用外存上的空间来扩充内存空间,通过一定的换入/换出,使得整个系统在逻辑上能够使用一个远远超过其物理内存大小的内存容量。
  • 因虚拟内存技术调换页面时需要访问外存,会导致平均访存时间增加,若使用了不合适的替换算法,则会大大降低系统的性能。


Comment