Virtual memory 虚拟内存
虚拟内存的作用
- 将主存看成存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,高效实用主存
- 为每个进程提供一致的地址空间,简化内存管理
- 保护每个进程的地址空间不被其他进程破坏
- 保护:一组确保共享处理器、主存、I/O设备的多个进程之间没有故意地,无意地读写其他进程的数据机制
物理地址和虚拟地址 Physical Address & Virtual Address
物理地址: 主存储器的地址
物理寻址: CPU执行指令后直接生成一个物理地址,通过内存总线传递给主存。主存取出物理地址处的字节并返回给CPU
虚拟地址: 虚拟空间的地址,当需要访问主存时需要通过地址映射转换为物理地址
虚拟寻址: CPU执行指令后先生成一个虚拟地址,虚拟地址在被送到内存之前先转换成对应的物理地址(地址翻译 address translation)
虚拟存储器和cache的工作原理是一样的,在虚拟存储器中,块被称为页(page),访问缺失称为缺页(page fault) 即访问的页不在主存中,需要到磁盘中去寻找。
Page fault的代价是很高的,一次缺页处理将花费数百万个时钟周期,因