第9章 虚拟存储区(深入理解计算机系统)

一个系统中的进程是与其他进程共享CPU和主存资源的。为了更加有效地管理存储器并且少出错,现在系统提供了一种对主存的抽象概念,叫做虚拟存储器(VM)。虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每一个进程提供了一个大的、一致的和私有的地址空间。虚拟存储器提供了三个重要的能力:1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存。2)它为每个进程提供了一致的地址空间,从而简化了存储器的管理。3)它保护了每个进程的地址空间不被其他进程破坏。

9.1 物理和虚拟寻址

使用虚拟寻址时,CPU通过生成一个虚拟地址(Virtual Address,VA)来访问主存,这个虚拟地址在被送到存储器之前先转换成适当的物理地址。将一个虚拟地址转换为物理地址的任务叫做地址翻译。地址翻译需要CPU硬件和操作系统之间的紧密合作。CPU芯片上叫做存储器管理单元(Memory Management Unit,MMU)的专用硬件,利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容是有操作系统管理的。

9.2 地址空间

一个地址空间的大小是由表示最大地址所需要的位数来描述的。一个包含N=2^n个地址的虚拟地址空间就叫做一个n位地址空间。现代操作系统典型的支持32位或者64为虚拟地址空间。一个系统还有一个物理地址空间,它与系统中物理存储器的M个字节相对应。

9.3虚拟存储器作为缓存的工具

猜你喜欢

转载自www.cnblogs.com/cinvzi/p/9369737.html