1. 虚拟存储器
1.1 虚拟存储器的能力
- 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效的使用了主存。
- 它为每一个进程提供了一致的地址空间,从而简化了存储器管理。
- 它保护了每个进程的地址空间不被其他进程破坏。
1.2 物理和虚拟寻址
计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每个字节都有唯一的物理地址,给定这种简单的结构,CPU访问存储器的最自然的方式就是使用物理地址,我们把这种方式称为物理寻址。
当CPU执行一条加载的指令时,它会生成一个有效的物理地址,通过存储器总线把它传递给主存,主存取出物理地址开始的4字节,并把它返回给CPU,CPU会将它存放在一个寄存器里。
早期的PC使用物理寻址,数字信号处理器,嵌入式微控制器以及Cray超级计算机这样的系统任然使用,然而现代处理器使用虚拟寻址的寻址方式。
使用虚拟寻址,CPU生成一个虚拟地址来访问主存,这个虚拟地址在送到存储器之前先转换成物理地址。而将虚拟地址转换成物理地址的过程叫地址翻译,地址翻译需要CPU硬件和操作系统一块完成。CPU芯片上有一个叫做存储器管理单元的专用硬件,利用放在主存中的查询表来动态翻译虚拟地址,该表内容是由操作系统管理的。