虚拟存储器(什么叫虚拟存储器)
一、什么是虚拟内存
虚拟内存是计算机系统内存管理的一种技术,它将计算机的RAM和硬盘上的临时空间组合在一起,使得应用程序认为它拥有连续的可用的内存。
虚拟内存的核心原理是为每个程序设置一段“连续”的虚拟地址空间,把这个地址空间分割成多个具有连续地址范围的页(Page),并把这些页和物理内存做映射,在程序运行期间动态映射到物理内存
二、虚拟存储器原理
虚拟存储器工作原理
虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:
①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
④从地址变换表读出与逻辑组号a对应的物理组号a。
⑤从物理组号a和组内字节地址b得到物理地址。
⑥根据物理地址从主存中存取必要的信息。
三、虚拟存储器的基础
虚拟存储技术的基础:局部性原理:程序在执行时候呈现出局部性规律,也就是说,在一段时间内,程序的执行仅限于程序之中的某一个部分,访问的空间也局限于某一个部分。
实现原理:页式管理+交换技术将进程信息的副本存放在外存中,并建立一个外页表存储必要信息。当进程被调度时,只选择较少页装入主存,在执行时,访问不存在的页时,再将其调入。页表的必要信息数量也增加了,多了状态位(指示该页是否在主存),访问位(最近是否被访问),修改位(指示该页调入主存后是否修改过)。