news 2026/4/17 4:10:56

【总结】【计组】【OS】页号、页框号、虚拟地址、物理地址、地址

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【总结】【计组】【OS】页号、页框号、虚拟地址、物理地址、地址

目录

页号和页框号对比

页表项、页表、页号、页框号关系

页表项详细结构

页表的组织方式与特点

操作系统与硬件的协同管理

地址字段划分计算

页表大小计算

整体过程分析(地址转换、通过物理地址访问数据)

地址转换与访问流程

操作系统核心职责(软件层面)

硬件核心职责

综合访问时间计算

优化黄金法则(Amdahl定律)

地址字段划分与结构设计

缺页与页面置换算法

多级存储体系协同

一致性维护机制

虚存与Cache的协同问题

典型真题解析框架

性能优化技术:软硬件协同

操作系统级优化

硬件级优化

总结:整个系统的协同工作

完整数据访问路径(从指令到数据)

地址转换硬件机制

地址转换性能影响


页号和页框号对比

对比维度页号 (Page Number)页框号 (Frame Number)虚拟地址 (Virtual Address)物理地址 (Physical Address)
基本定义虚拟地址空间划分的基本单位编号物理内存空间划分的基本单位编号进程视角的逻辑地址,也称为逻辑地址实际内存单元地址,用于内存总线访问
所属空间虚拟地址空间(进程独有)物理地址空间(系统全局)进程虚拟地址空间物理内存地址空间
地址结构虚拟地址的高位部分:页号P + 页内偏移量W物理地址的高位部分:页框号F + 页内偏移量W页号P (高位)+ 页内偏移量W (低位)页框号F (高位)+ 页内偏移量W (低位)
地址位数由虚拟地址空间大小和页面大小决定:
页号位数 = 虚拟地址位数 - log₂(页面大小)
由物理内存大小和页面大小决定:
页框号位数 = 物理地址位数 - log₂(页面大小)
CPU字长决定(如32位系统为32位)内存地址总线宽度决定
映射关系通过页表映射到页框号
页号 → 页框号
一个页框可被多个进程的页共享(通过不同页号通过MMU硬件转换为物理地址直接对应内存芯片存储单元
存储位置页表项中作为索引页表项中作为内容存储CPU指令中生成,程序可见内存总线上传输,程序不可见
大小与数量进程的页数 = 虚拟地址空间大小 / 页面大小系统页框数 = 物理内存大小 / 页面大小空间大小 = 2^(地址位数)字节空间大小 ≤ 物理内存容量
管理机制操作系统通过页表管理页的分配、保护和状态操作系统通过内存管理单元管理页框分配编译器/链接器生成,操作系统分配硬件直接使用,操作系统间接管理
特殊状态可能处于:内存中、外存中、未分配可能处于:已分配、空闲、锁定可能:有效(已映射)、无效(未映射)总是有效(对应实际存储单元)

页表项、页表、页号、页框号关系

  • 层次关系页表包含页表项,页表项记录从页号到页框号的映射

  • 转换流程虚拟地址中的页号索引页表 → 获得页表项→ 提取页框号→ 组合物理地址

  • 软硬分工

    • 操作系统:创建/维护页表,设置页表项,处理异常

    • 硬件:自动查询页表,执行地址转换,检测异常

  • 性能关键

    • 页表项大小影响页表内存占用

    • 页表组织方式影响地址转换速度

    • TLB缓存页表项减少访存次数

  • 保护机制:页表项中的保护位实现内存访问控制,是系统安全的基础。

进程视角 系统物理视角 ┌─────────────────────┐ ┌─────────────────────┐ │ 虚拟地址空间 │ │ 物理内存空间 │ │ ┌──────────────┐ │ 页表映射 │ ┌──────────────┐ │ │ │ 页号 P │ │ ────────────────→ │ │ 页框号 F │ │ │ │ │ │ 通过页表查询 │ │ │ │ │ ├──────────────┤ │ │ ├──────────────┤ │ │ │页内偏移 W │ │ │ │页内偏移 W │ │ │ └──────────────┘ │ │ └──────────────┘ │ └─────────────────────┘ └─────────────────────┘ ↓ ↑ └──────────────────────────────────────────────┘ 虚拟地址 物理地址 VA = (P, W) PA = (F, W) 页表作为中间数据结构: ┌─────────────────────────────────────────┐ │ 页表 PT │ ├──────────┬──────────┬──────────┬───────┤ │ 页表项0 │ 页表项1 │ 页表项2 │ ... │ │ (VPN 0) │ (VPN 1) │ (VPN 2) │ │ ├──────────┼──────────┼──────────┼───────┤ │ PFN | 控 │ PFN | 控 │ PFN | 控 │ │ │ 制位 │ 制位 │ 制位 │ │ └──────────┴──────────┴──────────┴───────┘ ↓ ↓ ↓ 物理页框 物理页框 物理页框
概念定义与本质数据结构形式存储位置大小/数量作用与功能生命周期
页号虚拟地址空间的基本划分单位编号。是虚拟地址的高位部分地址字段,不是独立数据结构CPU生成的虚拟地址中位数:虚拟地址位数 - log₂(页面大小)
数量:虚拟地址空间大小 / 页面大小
1. 作为页表的索引键
2. 标识虚拟页在进程地址空间中的位置
进程创建时确定,进程结束时消失
页框号物理地址空间的基本划分单位编号。是物理地址的高位部分页表项的内容字段页表项中存储位数:物理地址位数 - log₂(页面大小)
数量:物理内存大小 / 页面大小
1. 指示虚拟页在物理内存中的实际位置
2. 与页内偏移组合形成物理地址
系统运行期间持续存在动态分配给不同进程
页表项页表中的一个条目,记录一个虚拟页到物理页框的映射关系状态信息结构体/记录,包含:
1. 物理页框号
2. 状态位(存在位、访问位、修改位等)
3. 保护位(读/写/执行权限)
内存中的页表内大小:通常4B或8B
数量:与进程虚拟页数相同
1.存储映射关系(页号→页框号)
2.提供状态信息(是否在内存、是否被访问/修改)
3.实施访问控制(权限检查)
随页表创建而创建,随页表销毁而销毁。
页表一种数据结构,由多个页表项组成的数组或层次结构,实现虚拟地址到物理地址的映射。一级:PTE数组
多级:页目录+页表
内存中(内核空间)。大小:虚拟页数 × 页表项大小
多级时各级大小不同
1.地址转换的核心数据结构
2.内存管理的依据
3.进程隔离的保障
进程创建时建立,进程切换时更换,进程结束时回收
页表(数据结构) ↓ 由多个... 页表项(数组元素/记录) ↓ 包含两个核心信息... 1. 映射关系:页号 → 页框号 2. 状态控制:存在位、访问位、修改位、保护位等
虚拟地址 = [页号 P] + [页内偏移 W] ↓ 以页号P为索引查询页表 页表[P] = 页表项 ↓ 从页表项中读取 物理页框号 F + 状态控制位 ↓ 检查状态位(如存在位=1) 物理地址 = [页框号 F] + [页内偏移 W](与虚拟地址的W相同)
  • VPN:虚拟页号

  • PFN:物理页框号

  • PTE:页表项

  • PT:页表

页表项详细结构

字段位数作用硬件/操作系统管理影响的操作
物理页框号取决于物理内存大小存储映射的物理页框号,用于生成物理地址硬件读取,操作系统设置地址转换
存在位(有效位)1位1=页面在内存中,0=页面不在内存中(在外存)硬件检测,操作系统修改缺页异常触发
访问位(引用位)1位1=页面近期被访问过,0=未被访问硬件置位,操作系统读取和清除页面置换算法(如Clock算法)
修改位(脏位)1位1=页面被修改过,0=页面未被修改硬件置位,操作系统读取和清除页面换出时决定是否需要写回磁盘
保护位2-3位页面访问权限(读/写/执行)硬件检查,操作系统设置保护异常触发
用户/管理位1位0=内核模式可访问,1=用户模式可访问硬件检查,操作系统设置特权级检查
缓存禁止位1位1=该页面不可缓存(用于内存映射I/O)硬件识别,操作系统设置Cache策略
全局位1位1=全局页面(进程切换时不刷新TLB)硬件识别,操作系统设置TLB管理

页表的组织方式与特点

VPN(Virtual Page Number)虚拟页号

PFN(Page Frame Number(或 Physical Page Number))页框号(物理页号)

PTE(Page Table Entry)页表项

IPTE(Inverted Page Table Entry)反置页表项

PD(Page Directory)页目录

PT(Page Table)页表

页表类型结构特点页号到页表项的定位方式页表项内容优缺点适用场景
一级线性页表连续数组,索引=虚拟页号直接索引:PTE_addr = PT_base + VPN × PTE_size直接包含PFN(物理页框号)优:简单快速
缺:占用大量连续内存
小地址空间系统
二级页表页目录+页表两级VPN拆分为:PD索引+PT索引一级:下级页表基址
二级:PFN
优:节省内存,支持稀疏地址空间
缺:两次访存
32位系统常见
多级页表树状层次结构VPN拆分为多级索引中间级:下级基址
最后级:PFN
优:灵活,支持超大地址空间
缺:多次访存
64位系统(3-5级)
哈希页表哈希表结构对VPN哈希得到桶链链表节点包含VPN(虚拟页号)和PFN优:处理大地址空间高效
缺:哈希冲突处理
大地址空间系统
反置页表按物理页框组织通过哈希VPN查找IPTE包含进程ID和VPN优:大小与物理内存成正比
缺:查找复杂
物理内存大的系统

操作系统与硬件的协同管理

管理对象操作系统的任务相关系统调用/操作408考点关联
页表1.创建/销毁进程页表
2.分配/回收页表内存
3.切换页表(进程切换)
fork(),exec(),exit()
上下文切换代码
进程创建、进程切换开销
页表项1.设置/清除映射关系
2.更新状态位
3.处理缺页异常
缺页异常处理程序
页面置换算法
缺页处理流程、页面置换算法
映射关系1.建立虚拟页到物理页框映射
2.解除映射关系
3.复制映射(写时复制)
mmap(),munmap()
写时复制机制
内存映射文件、共享内存
硬件组件对页表/页表项的操作触发条件异常类型
MMU1.自动查询页表
2.组合物理地址
3.检查状态位
每次内存访问无(正常流程)
TLB1.缓存热点页表项
2.提供快速地址转换
TLB命中时TLB缺失(正常,非异常)
异常机制1.检测页表项异常位
2.触发相应异常
状态位异常时缺页异常、保护异常

地址字段划分计算

已知:虚拟地址48位,页面大小4KB,物理内存1GB

计算项公式计算结果说明
页内偏移位数log₂(页面大小)12位(4KB=2¹²)虚拟和物理地址相同
虚拟页号位数虚拟地址位数 - 页内偏移位数36位(48-12)VPN作为页表索引
物理页框号位数log₂(物理内存/页面大小)18位(1GB/4KB=2¹⁸)页表项中PFN字段宽度
页表项最小大小ceil((PFN位数+控制位数)/8)通常4B(PFN18位+控制位约14位=32位)控制位通常约6-10位

页表大小计算

整体过程分析(地址转换、通过物理地址访问数据)

第一阶段:虚拟地址到物理地址的转换 (由MMU负责)

此阶段的核心任务是​​将程序使用的虚拟地址(Virtual Address, VA)转换为物理内存的实际地址(Physical Address, PA)​​。

​起点:CPU发出虚拟地址​

•整个过程始于CPU需要执行一条指令或访问一个数据,从而产生一个​​虚拟地址(VA)​​。

这个VA的典型构成:​​虚页号(20位) + 页内地址(12位)​

虚拟地址空间/虚页的大小=2^n

页大小/编址单位=2^m


​​​第一站:查询TLB(快表)​

•CPU将VA送入​​内存管理单元(MMU)​

•MMU首先会查询一个叫做​​TLB(转换后备缓冲器,或“快表”)​​ 的高速缓存。TLB缓存了最近使用过的虚拟页号到物理页框号的映射关系

TLB硬件将输入的​​20位虚页号​​与TLB中所有有效行的​​Tag​​字段进行​​并行比较​

​情况一:TLB命中(TLB Hit)​

•若在TLB中找到了该虚页号对应的​​实页号(物理页框号)​​(TLB中的“Data”字段),则转换过程极快。

•MMU直接将获取的​​实页号​​与VA中原有的​​页内地址​​组合,形成最终的​​物理地址(PA)​​。随后跳转到第二阶段。

​情况二:TLB缺失(TLB Miss)​

•若TLB中没有所需的映射,则触发​​“TLB缺失处理”​​(橙色流程)

•此时,MMU必须通过查询主存中的​​页表​​(一个进程对应一个页表)来完成地址转换。这是一个相对较慢的过程。

•查询页表需要知道页表在哪。​​PDBR(页目录基址寄存器)​​ 中存放了页目录的起始物理地址。通过虚页号的一部分作为索引,逐级查找​​页目录​​和​​页表​​,最终在页表项中找到对应的​​实页号​​。

•​​缺页异常(Page Fault)​​:在查页表的过程中,如果发现该页面尚未调入物理内存(页表项中“有效位”标识),则会触发​​“缺页处理”​​(黄色流程)。操作系统会介入,从磁盘(虚拟内存)中将所需页面​​调入一个空闲的物理页框​​中,并更新页表。如果没有空闲页框,则需根据算法(如LRU)​​换出一个页面​​。

•在成功通过页表找到或调入页面获得实页号后,需要​​更新TLB​​,将这次转换的映射关系缓存起来,以备下次快速访问(重新开始执行),同时完成地址转换。


第二阶段:通过物理地址访问数据

在获得物理地址(PA)后,目标就是取回该地址上的数据。

​查询Cache​

•处理器不会直接去访问慢速的主存,而是先查询高速的​​Cache​​。

•将PA送入Cache,Cache circuitry会检查其中是否缓存了该地址的数据

​情况一:缓存命中(Cache Hit)​

•数据被立刻返回给CPU,过程结束。速度最快。

​情况二:缓存缺失(Cache Miss)​

•如第三张图绿色“cache缺失处理”流程所示,若Cache中没有所需数据,则必须访问主存。

•从主存中读取​​包含目标数据的一个完整主存块​​(Cache Line)。

•将该数据块​​载入Cache​​(可能需要替换掉Cache中的旧块),并置位标记和有效位。

•最后,将CPU需要的数据从Cache返回。

地址转换与访问流程

阶段操作步骤硬件/软件职责关键数据结构408真题常见考点时间复杂度/性能影响
1. 指令执行CPU取指令,计算有效地址CPU硬件自动完成程序计数器、寄存器虚拟地址生成、寻址方式1个时钟周期
2. TLB查找虚拟页号查询TLBMMU硬件自动完成TLB(相联存储器)TLB命中率、TLB缺失代价命中:1周期;缺失:10-100周期
3. TLB命中路径从TLB获取物理页框号硬件完成地址转换TLB项(虚拟页号→物理页框号)物理地址计算组合物理地址
4. TLB缺失处理查询内存中的页表硬件发起,操作系统管理页表多级页表结构页表级数、页表大小计算多级页表访问次数乘积
5. 缺页检测检查页表项"存在位"硬件检测,操作系统处理页表项(PFN+标志位)缺页率、有效访问时间触发异常,开销大
6. 缺页异常处理①选择牺牲页
②写回脏页
③调入新页
④更新页表
⑤重启指令
操作系统完成(1-4)
硬件/OS协作(5)
页帧分配表、磁盘交换区页面置换算法、磁盘I/O时间10^6-10^7周期
7. 物理地址生成物理页框号+页内偏移MMU硬件自动完成物理地址寄存器物理地址空间限制1周期
8. Cache查找用物理地址访问CacheCache控制器硬件完成Cache阵列(标记+数据)Cache映射方式、命中率命中:1-10周期
9. Cache命中路径从Cache读取数据返回CPU硬件数据通路Cache行(状态+数据)Cache写策略、一致性直接返回
10. Cache缺失处理访问主存获取数据块硬件自动完成内存控制器、主存块大小、缺失代价100-300周期
11. 回填Cache将主存数据块加载到Cache硬件完成,可能替换替换算法硬件实现Cache替换算法与缺失处理并行
12. 数据返回CPU数据通过总线返回CPU硬件总线传输数据总线、寄存器总线带宽、延迟传输时间

操作系统核心职责(软件层面)

功能模块具体任务涉及的数据结构408大题中的考核点
页表管理创建/销毁进程页表
设置页表项权限位
维护页表一致性
页目录、页表、反向页表页表大小计算、多级页表设计
缺页处理页面置换算法实现
磁盘I/O调度
页面调入/调出
页面帧表、置换队列、磁盘交换区缺页率计算、置换算法模拟
内存分配物理页框分配回收
内存映射文件管理
共享内存管理
空闲帧链表、伙伴系统、slab分配器内存碎片、分配算法效率
上下文切换保存/恢复页表基址
TLB管理(ASID/全刷)
Cache一致性维护
进程控制块、TLB flush指令进程切换开销、TLB失效
存储保护设置页保护位
处理保护违例
访问权限验证
页表项保护位、段描述符保护异常处理、权限检查

硬件核心职责

硬件组件主要功能性能关键参数与操作系统的接口
MMU地址转换、TLB管理、异常检测TLB大小、页表遍历机制页表基址寄存器、异常向量
Cache数据缓存、一致性维护、替换执行容量、关联度、块大小Cache flush指令、内存屏障
TLB页表项缓存、快速地址转换条目数、相联方式TLB shootdown机制
内存控制器物理内存访问、刷新调度带宽、延迟、调度算法内存映射寄存器
异常机制异常检测、现场保存、跳转响应时间、流水线支持异常处理程序入口

综合访问时间计算

给出一系列参数,计算平均内存访问时间(AMAT)

已知参数符号表示典型值涉及知识点
TLB命中率0.98-0.99TLB大小与程序局部性
页表访问时间100ns(内存访问)多级页表访问次数
Cache命中率0.95-0.99Cache容量与映射方式
Cache访问时间1-10nsCache层次结构
主存访问时间50-100nsDRAM时序参数
缺页率0.001-0.0001工作集模型
缺页处理时间10ms(含磁盘I/O)磁盘访问时间

TLB有效访问时间=TLB命中率*TLB命中时2的访问时间+TLB缺失率*(TLB访问时间加上页表访问时间)

  • 当TLB命中时,直接获得物理页框号,只需花费TLB查找时间

  • 当TLB缺失时,除了花费TLB查找时间外,还需要访问内存中的页表(可能多级),花费页表访问时间 ​

  • 整体有效时间是这两种情况的加权平均

Cache有效访问时间=Cache命中率*Cache命中时的访问时间+Cache缺失率*主存访问时间

平均内存访问时间(缺页的总时间)=不缺页的概率*(TLB有效访问时间+Cache有效访问时间)+缺页率*缺页处理时间

  • 大部分情况下页面在内存中,此时需要正常的地址转换和Cache访问

  • 小部分情况发生缺页,需要操作系统进行缺页处理,包括磁盘I/O等操作,时间开销很大

  • 整体平均时间是这两种情况的加权平均

有效内存访问时间(EMAT)等于不缺页的概率乘以[TLB访问时间加上TLB缺失率乘以页表访问时间,再加上Cache访问时间加上Cache缺失率乘以主存访问时间],再加上缺页率乘以缺页处理时间

系统总体性能与有效内存访问时间和每条指令平均周期数的乘积成反比

  • 有效内存访问时间(EMAT)反映了访存延迟

  • 每条指令平均周期数(CPI)反映了指令执行效率

  • 性能通常用每秒执行指令数(IPS)或程序执行时间的倒数来衡量

  • 访存延迟和指令效率的乘积越大,系统性能越差;乘积越小,系统性能越好

优化黄金法则(Amdahl定律)

加速比等于1除以[不可优化部分所占比例加上(可优化部分所占比例除以优化加速倍数)]

公式名称常见题型考核重点分值占比
TLB有效访问时间选择题、大题计算理解TLB缺失代价,加权平均计算2-5分
Cache有效访问时间大题综合计算Cache命中率影响,层次存储性能5-10分
考虑缺页的总时间大题性能分析缺页率对系统性能的巨大影响8-12分
有效内存访问时间大题综合设计完整存储层次性能评估10-15分
系统总体性能选择题、分析题综合CPI和访存延迟的影响3-6分
优化黄金法则选择题、分析题局部优化对整体性能的局限性2-4分

地址字段划分与结构设计

给定系统参数,设计地址结构并计算各字段位数

系统参数计算示例考察知识点
虚拟地址:48位页内偏移:12位(4KB页)页面大小影响
物理内存:1GB物理页框号:18位(2^30/2^12=2^18)物理内存限制
页面大小:4KB虚拟页号:36位(48-12)虚拟地址空间
Cache:64KB, 4路组相联Cache索引:9位(64KB/(4*64B)=256组)Cache组织方式
Cache块大小:64B块内偏移:6位块大小影响
标记位:33位(48-9-6)虚地址Cache标记

缺页与页面置换算法

给定页面访问序列,分析置换算法性能

置换算法操作系统实现硬件支持408考核重点
OPT理论上最优,无法实现作为性能上界
FIFO维护页面队列,换出队首Belady异常
LRU维护访问时间或使用栈部分硬件提供访问位近似算法(Clock)
Clock环形链表,使用访问位页表项访问位硬件维护实际系统常用
工作集跟踪时间窗口内页面需要时间戳支持工作集模型

多级存储体系协同

CPU寄存器 → L1 Cache → L2 Cache → L3 Cache → 主存 → 磁盘 ↑ ↑ ↑ ↑ ↑ ↑ CPU核心 SRAM SRAM SRAM DRAM SSD/HDD 1周期 2-4周期 10-20周期 30-50周期 50-100周期 10^6-10^7周期 操作系统角色:管理主存与磁盘之间的页面交换 硬件角色:管理各级Cache之间的数据一致性

一致性维护机制

一致性问题硬件解决方案操作系统参与性能影响
Cache一致性MESI协议、目录协议提供内存屏障指令增加总线通信
TLB一致性ASID、TLB shootdown进程切换时刷新TLB上下文切换开销
页表一致性硬件页表遍历缺页时更新页表缺页处理开销

虚存与Cache的协同问题

问题类型产生原因解决方案操作系统角色
别名问题多个虚拟页映射同一物理页反向映射、着色技术页表管理时避免
同名问题同一虚拟页在不同进程中映射不同物理页ASID、进程标识进程隔离保证
一致性Cache使用物理地址,虚存使用虚拟地址物理标记虚地址索引硬件设计选择

典型真题解析框架

2019年408大题

已知: - 32位系统,页大小4KB - 物理内存256MB,Cache容量32KB - 直接映射,块大小32B - TLB采用4路组相联,共16项 - 访问序列:虚拟地址0x12345678 求解: 1. 虚拟地址各字段划分(页号、页内偏移) 2. 物理地址各字段划分(标记、索引、块内偏移) 3. TLB查找过程 4. 考虑TLB命中率、Cache命中率的有效访问时间
解题步骤涉及知识点硬件/软件计算公式/方法
1. 虚拟地址划分页式管理基本原理操作系统设计页号=高20位,页内偏移=低12位
2. TLB查找组相联TLB组织MMU硬件实现组索引=页号低2位,标记=页号高18位
3. 页表查询多级页表结构操作系统维护,硬件使用页目录索引+页表索引
4. 物理地址生成地址转换完成MMU硬件完成物理页框号+页内偏移
5. Cache访问直接映射CacheCache控制器硬件索引=物理地址中段,标记=高段
6. 时间计算存储体系层次综合性能评估加权平均各层次访问时间

性能优化技术:软硬件协同

操作系统级优化

优化技术实现方式性能收益408相关考点
大页支持使用2MB/1GB大页减少TLB缺失提高TLB覆盖率TLB条目有限性
预读取根据访问模式预取页面到内存隐藏磁盘延迟空间局部性利用
页面着色控制物理页帧到Cache映射减少Cache冲突Cache映射方式影响
工作集保持监控进程工作集,避免抖动降低缺页率工作集模型

硬件级优化

优化技术实现方式性能收益操作系统配合
多级TLBL1 TLB(小快)、L2 TLB(大慢)平衡命中率与延迟无需特殊支持
Cache预取硬件预测访问模式预取隐藏Cache缺失延迟提供预取提示指令
乱序执行允许内存访问乱序隐藏内存延迟内存屏障指令
同时多线程利用内存延迟执行其他线程提高资源利用率进程调度考虑

总结:整个系统的协同工作

完整数据访问路径(从指令到数据)

CPU发出虚拟地址VA ↓ [硬件] TLB查找:VA的页号部分 → TLB ├─ 命中 → 获得物理页框号PFN └─ 缺失 → [硬件]访问页表(可能多级) → ├─ 页表项存在位=1 → 获得PFN,更新TLB └─ 存在位=0 → [硬件]触发缺页异常 ↓ [操作系统]缺页处理: 1. 检查地址合法性 2. 分配物理页框(可能置换) 3. 从磁盘调入页面 4. 更新页表 5. 返回异常处理 ↓ [硬件]重新执行指令 ↓ [硬件] 组合物理地址:PA = PFN + 页内偏移 ↓ [硬件] Cache查找:PA → Cache ├─ 命中 → 读取数据返回CPU └─ 缺失 → [硬件]访问主存 → 读取数据块 → 返回CPU并更新Cache ↓ CPU继续执行

地址转换硬件机制

虚拟地址转换流程: CPU生成虚拟地址 → MMU接收 → 查询TLB → ↓ TLB未命中 查询页表(页表基址寄存器PTBR) → 获得页框号 → 组合成物理地址 → 送内存总线访问

关键硬件组成

MMU(内存管理单元):专门负责地址转换的硬件

TLB:缓存最近使用的页表项,加速地址转换

页表寄存器:存储当前进程页表的基地址

页表项结构:包含页框号、存在位、保护伪、修改位、访问位等

地址转换性能影响

  • TLB命中率直接影响系统性能

  • 多级页表减少页表占用内存,但增加访存次数

  • 反置页表节省空间,但查找效率低

虚拟内存管理

操作系统虚拟内存管理: ┌─────────────────────────────────────┐ │ 进程虚拟地址空间 (页的集合) │ │ ├─ 代码段 (可执行页) │ │ ├─ 数据段 (读写页) │ │ ├─ 堆段 (动态分配页) │ │ └─ 栈段 (自动增长页) │ └─────────────────────────────────────┘ ↓ (按需映射) ┌─────────────────────────────────────┐ │ 物理内存 (页框的集合) │ │ ├─ 已分配页框 (多个进程共享) │ │ ├─ 空闲页框 │ │ └─ 内核保留页框 │ └─────────────────────────────────────┘ ↓ (可能交换) ┌─────────────────────────────────────┐ │ 外存交换区 (换出页的备份存储) │ └─────────────────────────────────────┘

页表类型与特点

页表类型

优点缺点适用场景
一级页表简单,转换速度快占用连续大内存空间小地址空间系统
多级页表节省内存,支持稀疏地址空间多次访存,转换速度慢现代通用系统
哈希页表处理大地址空间效率高哈希冲突处理复杂64位系统
反置页表与物理内存大小成正比查找效率低,需要哈希物理内存大的系统

页面调度算法

  • OPT:理想算法,无法实现

  • FIFO:简单但可能性能差

  • LRU:性能好但实现开销大

  • Clock:LRU的近似实现,实用

进程访问虚拟地址VA ↓ MMU解析:VA = (页号P, 页内偏移W) ↓ 以P为索引查页表(可能经过多级) ↓ 获得页表项:包含页框号F和状态位 ↓ 检查:存在位=1?保护位允许?→ 若否,触发异常 ↓ 物理地址PA = (页框号F, 页内偏移W) ↓ 通过内存总线访问物理地址PA

关键映射特性

  • 页内偏移W不变:因页与页框大小相同

  • 页到页框映射动态:操作系统可动态调整,实现虚拟内存

  • 共享内存实现:多个进程的不同页号可映射到同一页框号

异常处理流程

  • 缺页异常:页表项存在位=0 → OS调入页面 → 更新页表 → 重新执行指令

  • 保护异常:访问违反权限位 → OS终止进程或处理错误

  • TLB缺失:硬件或OS处理页表查找

性能优化技术

1. 硬件优化

  • TLB (Translation Lookaside Buffer):缓存热点页表项

  • 大页支持:减少页表项数量,提高TLB覆盖率

  • 预取机制:预测并预加载可能需要的页

2. 软件优化

  • 页面着色:减少缓存冲突

  • 工作集模型:保持进程活跃页面在内存中

  • 写时复制:减少不必要的页面复制

32位x86系统典型配置

虚拟地址:32位 = 4GB地址空间 页面大小:4KB = 2^12字节 页内偏移:12位 页号位数:20位 最大页数:2^20 = 1,048,576页 页表项大小:通常32位(4字节) 一级页表大小:4MB(太大!) 实际采用:二级页表结构
  • 虚拟地址到物理地址转换是内存管理的核心机制,实现了进程隔离、内存保护和虚拟内存。

  • 页号与页框号的映射通过页表实现,这是连接虚拟地址空间和物理地址空间的桥梁。

  • 计算机组成原理关注转换的硬件实现(MMU、TLB、缓存),操作系统关注页表的管理、页面调度和异常处理。

  • 性能优化需要软硬件协同:硬件提供TLB、多级页表支持,操作系统实现高效页面置换算法。

  • 现代系统趋势:更大地址空间(64位)、更多级页表、更大页面支持、硬件加速的地址转换。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 17:12:26

成本降87.5%!ERNIE 4.5-VL-424B-A47B如何重塑企业AI格局

成本降87.5%!ERNIE 4.5-VL-424B-A47B如何重塑企业AI格局 【免费下载链接】ERNIE-4.5-VL-424B-A47B-PT 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-VL-424B-A47B-PT 导语 百度ERNIE 4.5系列大模型以"异构MoE架构2Bits无损量化"…

作者头像 李华
网站建设 2026/4/11 14:38:31

主流CRM解决方案全场景能力横向对比:从选型逻辑到核心能力拆解

主流CRM解决方案全场景能力横向对比:从选型逻辑到核心能力拆解在数字化转型浪潮中,覆盖市场、销售、服务、渠道全场景的CRM已成为企业破解“数据孤岛”“协同低效”的核心工具。本文选取超兔一体云、Salesforce、SAP CRM、腾讯企点CRM、Zoho CRM、HubSpo…

作者头像 李华
网站建设 2026/4/12 8:21:30

linux 系统中 Shutting Down, Restarting, Halting 有什么区别 ?

Linux 提供了各种命令来执行不同类型的系统关闭。然而,用于指代这些关闭类型的术语可能会让人困惑,尤其是对 Linux 新用户来说。在本文中,我们将讨论关闭、重启和停止之间的区别,以及何时使用这些命令。 Shutting Down Linux 当…

作者头像 李华
网站建设 2026/4/16 17:25:13

2025年12月哪些订货系统最受欢迎?六大优选方案推荐

2025年末,订货系统SaaS市场的“不稳定警报”持续拉响:某头部厂商社保参保人数从120人锐减至个位数,近三个月内宣布停止服务的中小SaaS服务商已超20家。此类事件直接导致企业订货数据丢失、订单流程中断,甚至引发客户流失等连锁风险…

作者头像 李华
网站建设 2026/4/15 22:01:47

Simple Live:一站式跨平台直播聚合解决方案

Simple Live:一站式跨平台直播聚合解决方案 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live Simple Live 是一款基于 Dart 和 Flutter 技术栈开发的创新型直播聚合工具,…

作者头像 李华