基本概念
- 虚拟存储器:将主存和辅存统一编址,为用户提供一个比实际主存大得多的地址空间
- 虚地址(逻辑地址)→ 实地址(物理地址)的转换由硬件和操作系统共同完成
页式虚拟存储器
- 将虚拟地址空间和物理地址空间划分为固定大小的页
- 虚拟地址 = 虚页号 + 页内偏移
- 物理地址 = 页框号 + 页内偏移
- 页表:记录虚页号到页框号的映射关系
- 页表存放在主存中
段式虚拟存储器
- 按程序的逻辑段划分地址空间
- 虚拟地址 = 段号 + 段内偏移
- 段表:记录段基址和段长
段页式虚拟存储器
快表 TLB
- Translation Lookaside Buffer:页表的高速缓存
- 采用相联存储器实现,快速查找
- TLB 命中则无需访问主存中的页表
- 通常由 SRAM 组成
缺页处理
- 缺页:访问的虚拟页不在主存中
- 缺页处理由操作系统完成
- 从外存读入所缺页面
- 更新页表
- 重新执行被中断的指令
- 缺页处理时间开销远大于 Cache 缺失(需访问磁盘)
Cache 与虚拟存储器的比较
- Cache 由 SRAM 组成,TLB 由相联存储器/SRAM 组成
- Cache 缺失访问主存,缺页访问磁盘
- Cache 可采用直写策略,页面修改采用回写策略(写磁盘比写主存慢得多)