基本概念

  • 虚拟存储器:将主存和辅存统一编址,为用户提供一个比实际主存大得多的地址空间
  • 虚地址(逻辑地址)→ 实地址(物理地址)的转换由硬件和操作系统共同完成

页式虚拟存储器

  • 将虚拟地址空间和物理地址空间划分为固定大小的页
  • 虚拟地址 = 虚页号 + 页内偏移
  • 物理地址 = 页框号 + 页内偏移
  • 页表:记录虚页号到页框号的映射关系
  • 页表存放在主存中

段式虚拟存储器

  • 按程序的逻辑段划分地址空间
  • 虚拟地址 = 段号 + 段内偏移
  • 段表:记录段基址和段长

段页式虚拟存储器

  • 结合段式和页式,先分段再分页

快表 TLB

  • Translation Lookaside Buffer:页表的高速缓存
  • 采用相联存储器实现,快速查找
  • TLB 命中则无需访问主存中的页表
  • 通常由 SRAM 组成

缺页处理

  • 缺页:访问的虚拟页不在主存中
  • 缺页处理由操作系统完成
    1. 从外存读入所缺页面
    2. 更新页表
    3. 重新执行被中断的指令
  • 缺页处理时间开销远大于 Cache 缺失(需访问磁盘)

Cache 与虚拟存储器的比较

  • Cache 由 SRAM 组成,TLB 由相联存储器/SRAM 组成
  • Cache 缺失访问主存,缺页访问磁盘
  • Cache 可采用直写策略,页面修改采用回写策略(写磁盘比写主存慢得多)