1、虚拟存储管理概念
一个计算机任务只需要部分装入主存便可以启动运行,其余部分留在磁盘上,在需要的时候装入主存,这样可以提高主存空间的利用率。这样该系统所具有的主存容量会比实际主存容量大很多,这样的存储器称为虚拟存储器。
2、程序局部性原理
程序在执行时会呈现局部性规律,即在一段时间内,程序的执行仅局限于某个部分,相应所访问的空间也局限于某个区域内。程序的局限性表现在时间、空间两个方面。
2.1 时间局限性
是指程序中的某个指令一旦执行,则在不久的将来可能会被再次执行;如果某个存储单元被访问,则不久后该存储单元可能会被再次访问。产生时间局限性的原因是程序中存在大量的循环处理。
2.2 空间局限性
指一旦程序访问了某个存储单元,在不久的将来,它附件的存储单元也有可能被访问。典型原因是程序是顺序执行的。
3、虚拟存储器的实现原理
虚拟存储器具有请求调入功能和置换功能,能仅把作业的一部分装入主存便运行作业系统,能从逻辑上对主存容量进行扩充的一种虚拟存储系统。其逻辑容量由主存和外存容量之和以及CPU可寻址的范围决定,运行速度接近主存速度。应用十分广泛。
3.1 虚拟存储器实现方式
1、请求分页系统
在分页系统的基础上增加了请求调页功能和页面装置功能所形成的页式虚拟存储系统。置换时以页面为单位。
2、请求分段系统
在分段系统的基础上增加了请求调段和分段置换功能所形成的段式虚拟存储系统。置换时以段为单位。
3、请求分页管理
请求分页是在纯分页系统的基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。是目前最常用的一种虚拟存储器的方式。
请求分页的页表机制是在纯分页的页表机制上形成的,因为只将应用程序的一部分调入主存,还有一部分仍在磁盘上,因此需要在页表中增加(状态位、访问字段和辅存地址等)供程序(数据)在转进、转出时参考。
请求分页系统中的地址变换机构是在分页系统的地址变换结构的基础上增加了某些功能。比如处理缺页中断、从主存中转出一页实现虚拟存储。
在请求分页系统中,每当所要访问的页面不在主存时便要产生一个缺页中断,请求系统将所缺的页调入主存,这个是由中断机构完成的。
3.1 缺页中断和一般中断的区别
1、缺页中断是在指令执行期间产生和中断处理信号;一般中断是在一条指令执行完。下一条指令执行前检查和处理中断信号。
2、发生缺页中断返回到被中断指令的开始重新执行该指令;一般中断会返回到下一条指令。
3、一条指令在执行期间可能会产生多次缺页中断。
4、页面置换法
在进程运行过程中,如果发生缺页,此时主存中无空闲块时,为了保证进程正常运行,需要从主存中调出一页程序或数据传送磁盘对换区。系统要决定哪个页面调出,需要根据一定的页面置换算法来确定。置换算法的优劣会直接影响系统的性能,不好的算法可能会造成系统抖动。即刚被换出的页很快又被访问,需重新调入,导致系统频繁更换页面。这样会把进程的运行时间花费在页面置换的工作上,造成系统性能大大降低。
1、最佳置换算法
理想化的算法,选择那些永远不被使用的、或者最长时间内不再被访问的页面置换出去。该算法性能做好,但实现非常困难。
2、先进先出置换算法
该算法的主要思想是淘汰最先进入主存的页面,也就是选择在主存中驻留时间最久的页面置换掉。
特点:最直观、性能最差的算法。会出现Belady现象,即一个进程未分配它所要求的全部页面,有可能出现分配的页面数增多但缺页率提高的异常现象。
3、最近最少使用置换法 LRU
把最近最少使用的页面进行置换掉。
4、最近未用置换算法
将最近一段时间没有使用过的页面置换掉。是一种和LRU接近的算法。