虚拟存储器
2025/12/3大约 2 分钟
第7章 虚拟存储器
虚拟存储器的基本概念
虚拟存储器是操作系统提供的一种存储器管理技术,通过硬件和软件的结合,将外存空间映射为逻辑上的地址空间,给用户一种"内存无限大"的假象。
虚拟存储器的核心思想
- 局部性原理:
- 时间局部性:最近访问的指令/数据可能再次访问
- 空间局部性:附近地址的内容可能被访问
- 按需调页:只将当前需要的页面调入内存
- 页面置换:内存不足时,将不常用页面换出到外存
页面置换算法
- 最佳置换(OPT):置换未来最长时间不会被访问的页面
- 最近最少使用(LRU):置换最近最长时间未被访问的页面
- 先进先出(FIFO):置换最先进入内存的页面
- 时钟算法(Clock):LRU的近似实现,使用访问位和修改位
- 工作集算法:基于程序局部性,动态调整常驻集
缺页中断处理过程
- 访问的页面不在内存,产生缺页中断
- 操作系统检查内存是否有空闲页框
- 如果有空闲页框,直接装入
- 如果没有空闲页框,选择一个页面置换出去
- 如果被置换页面被修改过,写回外存
- 装入所需页面,更新页表
- 重新执行产生缺页中断的指令
工作集与页面分配策略
- 工作集:进程在时间窗口内实际访问的页面集合
- 分配策略:
- 固定分配:进程启动时分配固定页框数
- 可变分配:根据缺页率动态调整
- 页面置换:局部置换 vs 全局置换