定义:
虚拟存储器是主存的扩展,由主存和辅存共同构成,在硬件和系统软件的共同管理下工作。
特点:
对应用程序员透明。
具有主存的速度和辅存的容量。
将主存和辅存的地址空间统一编址,形成一个庞大的地址空间,用户可以在此基础上自由编程,而不必关心物理地址、主存容量等问题。
地址空间:
用户编程允许涉及的地址称为虚地址或逻辑地址,虚地址对应的存储空间称为虚拟空间或程序空间。
实际的主存单元地址称为实地址或物理地址,实地址对应的是主存地址空间。
虚地址比实地址大很多。
分类:
页式虚拟存储器:以页为基本单位,虚拟空间与主存空间都被划分为同样大小的页。主存的页称为实页或页框,虚存的页称为虚页。
段式虚拟存储器:把主存按段分配,是一种模块化的存储管理方式。每个用户程序模块可分到一个段,该程序模块只能访问分配给该模块的段所对应的主存空间。
段页式虚拟存储器:结合了段式和页式虚拟存储器的优点,按程序的逻辑结构分段,每段再划分为固定大小的页。
工作原理:
虚拟存储器采用了和Cache类似的技术,将辅存中经常被访问的数据副本存放到主存中。
访存时,逻辑地址首先会被转换成物理地址,然后再访问实际物理内存。
虚实地址转换:
页式虚拟存储器通过页表实现虚地址到实地址的转换。
段式虚拟存储器通过段表实现虚地址到实地址的转换。
优化技术:
使用快表(TLB)加速地址转换过程。
根据程序局部性原理优化Cache和虚拟存储器的性能。
应用:
虚拟存储器允许多个进程共享同一块物理内存,提高了内存利用率。
通过虚拟存储器,可以允许多道程序并发执行,并且每个进程都可以使用较大的虚拟内存空间。
综上所述,虚拟存储器是计算机组成原理中的一个重要概念,它通过软硬件的协同管理,为用户提供了一个庞大、透明且高效的存储空间。