linux内存管理(页缺失流程)

初始状态:虚拟页未映射到物理内存
  • 虚拟页和页表项的索引是对应的,比如下面虚拟页5,查找的就是页表项5,页表项5里面包含PFN(物理页框号)和一些标志位。

步骤 1:触发页缺失异常
  • 进程访问虚拟页 X(VPN=5),CPU 通过页表查询发现有效位 = 0,触发页缺失中断,暂停进程执行,切换到内核态。

       [中断触发] → 操作系统内核接管处理

步骤 2:查找虚拟页在磁盘中的位置
  • 操作系统读取页表项 5 的 “磁盘位置” 字段(0x1234),定位到虚拟页 X 在磁盘中的存储块。


      页表项5 → 提取磁盘地址0x1234 → 定位磁盘块0x1234

步骤 3:分配空闲物理页框
  • 操作系统从物理内存中找到一个空闲的物理页框(如 PFN=3),标记为 “已占用”。

步骤 4:从磁盘加载数据到物理页框
  • 通过 DMA(直接内存访问)将磁盘块 0x1234 的数据传输到物理页框 3 中。

步骤 5:更新页表项
  • 操作系统修改页表项 5 的信息:
    • PFN设为 3(绑定到物理页框 3);
    • 有效位设为 1(标记已在内存);
    • 重置修改位 = 0访问位 = 1(标记被访问)。

步骤 6:刷新 TLB 并恢复进程执行
  • 操作系统刷新快表(TLB)中 VPN=5 的旧缓存(若有),将新的映射关系加载到 TLB。
  • 中断处理结束,切换回用户态,进程从断点处继续执行,此时访问虚拟页 X 会直接命中物理页框 3。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值