虚拟存储系统的基本概念
实存管理技术特点 在作业运行时,整个作业的逻辑地址空间必须全部装入主存; 当作业尺寸大于主存可用空间时,该作业就无法运行。 虚拟存储器:一种实际上并不以物理形式存在的虚假的存储器; 把被运行进程访问的地址同主存的物理地址区别开来; 一个程序被编译连接后产生目标程序,该目标程序所限定的地址的集合称为逻辑地址空间,目标程序中指令和数据放置的位置称相对地址或逻辑地址; 而CPU能直接访问的主存称为物理地址空间或实存地址空间;
虚拟地址:运行进程访问的地址; 实地址:处理器可直接访问的主存地址; 虚拟地址空间:运行进程可以访问的虚地址的集合; 实地址空间:计算机的主存; 由动态地址映象机构来完成虚地址到实地址的转换; 虚实地址的区分,为使进程的虚拟地址空间大于主存实地址空间创造了条件,也为作业大小可大于主存空间创造了条件。
虚存管理技术
在虚拟存储系统中,用户认为机器具有无穷大的存储空间,并且只有这一个用户在使用机器; 用户只使用了物理主存的很少部分; 原因:操作系统内核只把进程当前要用的部分放在主存中,不仅能减少进程启动和滚进滚出的开销,而且主存中也可以同时容纳大量的进程,提高了系统多道程度和并行性; 代价: 主存管理要为地址转换表和其他一些数据结构付出额外的主存开销; 地址转换增加了每条指令的执行时间。 常用虚存管理技术 分页技术(paging) 分段技术(segmentation) 分段加分页技术(segmentation with paging)
分页系统中的地址映象技术
分页系统主要目的:让程序能在它的虚拟地址空间中运行并实现由虚拟地址到主存物理地址的转换; 几种地址转换方法 直接映象的页地址转换 多级页表的地址转换 反向页表的地址转换 快表的地址转换
直接映象的页地址转换
实现过程 当进程被调度到处理器上运行时,操作系统自动将该进程的页表起始地址装入页表地址寄存器中; 当该进程要访问某个虚地址时,分页的地址映象硬件自动按页面大小将地址场从某位起截成页号和页内地址两部分; 以页号为索引查找页表(查找工作由硬件自动进行),得到页架号,进而得到实际主存的绝对地址。 该映象技术对系统效能的影响 影响了处理器执行指令的速度,使速度降低为原来的一半; 原因:CPU至少要访问两次主存才能存取到所要数据,第一次查页表以找出对应的页架号,第二次真正访问所需数据。

多级页表的地址转换
因为大页表不能全放在主存中,所以对页表本身也采取分页措施,把页表本身按固定大小分成一个个页面; 通过二级页表的地址映射访问主存存取数据需要三次访问主存,所需时间是原来的三倍; 一次页目录 一次页表 数据所在的物理地址

反向页表的地址转换
实现过程 当给出进程的虚地址后,存储管理单元通过一个哈希定位表数据结构,把虚页号经哈希函数转换为一个哈希值; 以该哈希值为索引,它指向反向页表中的一个表目; 由该表目中的虚页号得到相应的页架号,再与偏移量拼接成物理地址,访问主存。
快表的地址转换
把一部分常用页表表目放入高速缓冲中,通过快表进行地址映射,快表中只包含一些最近使用的页表的表目; 快表的访问速度比主存的访问速度高一个数量级; 快表的表目中包含:虚页号以及该虚地址属于哪个进程、物理页架号、页面保护权限等。

当运行进程要访问虚地址v,于是硬件将地址v截成页号p和页内地址d; 地址转换机构首先以页号p和快表中各表目同时进行比较,以便确定该页是否在快表中; 若在其中,则快表即送出相应的页架号与页内地址一起拼接成绝对地址,并按此地址访问主存; 若该页不在快表中,则使用直接映象方法查找进程的页表,找出其页架号p’与页内地址拼接成绝对地址,并访问主存;同时将该页的页号及对应的页架号一起送入快表的空闲表目中去;若无空表目,通常把最先装入的那个页的有关信息淘汰掉,腾出表目位置。 实际上,直接映象和快表同时进行,当快表成功,就自动停止直接映象工作。
缺页中断处理流程
