操作系统虚拟内存技术:5大核心特征与实现原理深度解析
虚拟内存技术是现代操作系统的核心技术之一,它通过巧妙的资源转换技术,以CPU时间和外存空间换取昂贵的内存空间。本文将基于CS-Xmind-Note项目的深度笔记,为您全面解析虚拟存储器的5大核心特征、实现原理以及页面置换算法。
🎯 什么是虚拟存储器?
虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。它基于局部性原理——程序在执行时将呈现出局部性特征,即在一较短的时间内,程序的执行仅局限于某个部分。
局部性原理的两个维度:
- 时间局限性:如果程序中的某条指令一旦执行,则不久以后该指令可能再次执行
- 空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问
虚拟存储器原理
🔍 虚拟存储器的5大核心特征
1. 离散性
指在内存分配时采用离散的分配方式,它是虚拟存储器的实现基础
2. 多次性 ⭐
指一个作业被分成多次调入内存运行,即在作业运行时没有必要将其全部装入,只须将当前要运行的那部分程序和数据装入内存即可。多次性是虚拟存储器最重要的特征
3. 对换性
允许在作业的运行过程中在内存和外存的对换区之间换进、换出
4. 虚拟性
能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量
🛠️ 虚拟存储器的实现方式
请求分页存储管理方式
这是最常用的虚拟内存实现方式,包含三个关键硬件机构:
- 请求页表机制:页号+物理块号+状态位P+访问字段A+修改位M+外存地址
- 缺页中断机构:当所需页面不在内存时触发
- 地址变换机构:完成逻辑地址到物理地址的转换
内存分配策略
- 固定分配局部置换:为每个进程分配固定数量的物理块
- 可变分配全局置换:根据系统情况动态调整
- 可变分配局部置换:结合前两种策略的优点
⚡ 页面置换算法详解
当物理内存不足时,需要选择合适的页面置换算法来淘汰页面:
🔄 先进先出算法(FIFO)
选择在内存中驻留时间最久的页面予以淘汰
📊 最近最久未使用算法(LRU)
选择最近最久未使用的页面予以淘汰,需要寄存器或特殊栈结构支持
⏰ Clock置换算法
基于访问位A的判断,改进型还增加对修改位M的判断
📈 最佳置换算法(理论最优)
需要预知后续进程访问情况,实际无法实现
💡 避免"抖动"现象
抖动是指刚被换出的页很快又要被访问,需要将它重新调入,此时又需要再选一页调出。合理选择页面置换算法和分配策略可以有效避免抖动。
🎯 总结
虚拟存储器技术通过离散性、多次性、对换性和虚拟性四大特征,实现了用有限的物理内存运行远大于实际内存的程序。请求分页管理方式配合合理的页面置换算法,为用户提供了透明的大内存使用体验。
掌握虚拟内存技术不仅有助于理解操作系统底层原理,更能为系统性能优化和内存管理提供重要指导。
本文内容基于操作系统/第五章 虚拟存储器/第五章 虚拟存储器.md整理
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



