引入原因:程序执行的局部性
时间局部性:被引用过一次的存储器位置很可能在不远的将来再被多次引用。
空间局部性:如果一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置。
定义:虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统
虚拟的实现建立在离散分配存储管理基础上。
虚拟存储器的特征:
离散分配方式是基础。
多次性:一个作业被分成多次调入内存运行。
对换性:允许在作业的运行过程中进行换进换出。(进程整体对换不算虚拟)
最终体现虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。
请求分页系统
请求分页也称为页式虚拟存储管理,是建立在基本分页基础上,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。其基本思想是:载金城开始运行之前,不是装入全部页面,而是装入部分页面,之后根据进程运行的需要,动态装入其他页面,当内存空间已满,有需要装入新的页面时,根据某种算法淘汰某个页面,以便装进新的页面。
各种名词
页面置换算法:
进程运行过程中,访问的页面不在内存,调入时内存已无空闲空间,需要将内存中的一页程序或数据调到外存。应具有较低的缺页率。
缺页率=页面调入次数(缺页次数)/总的页面使用次数
LRU置换算法:
内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
抖动
系统抖动:又叫颠簸,如果分配给进程的存储块数量小于进程所需的最小值,进程的运行将很频繁的产生缺页中断,这种频率非常高的页面置换现象称为抖动。在请求分页存储管理中,可能出现这种情况,即对刚被替换出去的页,立即又要被访问。需要将他调入,因无空闲内存又要替换另一页,而后者又是即将被访问的页,于是造成了系统需要花费大量的时间忙于这种频繁的页面交换,致使系统的实际效率很低,严重导致系统瘫痪,这种现象称为抖动现象。
belady现象:
是指采用FIFO算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面增多但缺页率反而提高的异常现象。
缺页中断:
指的是当软件试图访问已映射在虚拟地址空间中,但是目前并未被加载在物理内存中的一个分页时,因中央处理器的内存管理单元所发出的中断。
快表
快表是一种特殊的告诉缓冲存储器(CACHE),内容是页表中的一部分或全部内容。
在操作系统中引入快表是为了加快地址映射速度。
在虚拟页式存储管理中设置了快表,作为当前进程页面的Cache。通常快表处于MMU中。
内存访问时间的计算