0,概念
虚拟存储器管理——基于局部性原理,由操作系统提供一个比实际内存大的,假想的特大存储器。
虚拟存储器定义:具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的存储系统。
方法:离散分配方式是基础
1)多次性:一个作业被分成多次调入内存运行。
2)对换性:允许在作业的运行过程中进行换进、换出。(进程整体对换不算虚拟)。
最终目的:最终体现虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。
1,常规存储器管理方式的特征
一次性:作业在运行前一次性地全部装入内存
驻留性:作业装入内存后,便一直驻留在内存中,直至作业运行结束。
2,程序执行的局部性:
1)时间局部性(temporal locality)
被引用过一次的存储器位置很可能在不远的将来再被多次引用。
2)空间局部性(spatial locality)
如果一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置。
3)程序执行的特点:
多数情况下仍是顺序执行。
少部分的转移和过程调用指令会使程序执行由一部分区域转至另一部分区域(但研究表明调用深度多数情况下不
超过5)。
许多由少数指令构成的循环结构会多次执行。
对许多数据结构的处理(如数组)往往局限于很小的范围内。
重复引用同一个变量的程序有良好的时间局部性。
对于取指令来说,循环有好的时间和空间局部性,循环体越小,循环迭代次数越多,局部性越好。
数组按行访问和按列访问其局部性不同。
3,请求分页存储管理方式
增加虚拟功能后页表项信息。
页号 物理块号 状态位P 访问字段A 修改位M 外存地址
(1) 状态位P :指示该页是否已调入内存。
(2) 访问字段A :用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问。(置换时
考量的参数)
(3) 修改位M :该页在调入内存后是否被修改过。(关系到置换时调出的具体操作)
(4) 外存地址:用于指出该页在外存上的地址。
OS则将所缺之页调入内存。作为中断,需经历几个步骤:
1,“保护CPU环境”
2,“分析中断原因”
3,“转入缺页中断处理程序”
4,“恢复CPU环境”等。