通俗解释:页面回写(Page Writeback)是干什么的?
想象你的手机内存就像一张办公桌,上面放满了你正在用的文件和工具(相当于内存中的页面)。当桌子太满放不下新东西时,操作系统需要把一些暂时不用的文件收进抽屉(存储设备),腾出桌面空间。页面回写就是这个"收拾桌面"的过程,具体步骤如下:
1️⃣ 页面检查(Page Check) → 检查文件能不能收
好比:你拿起一份文件,先看:
是不是别人正在用?(检查引用计数)有没有被胶水粘在桌上?(检查页面锁,如是否正在备份)
目的:只收拾确定没人用且没被锁定的文件
2️⃣ 交换缓存(Swap Cache) → 给匿名文件贴标签
匿名页:像你的临时草稿纸(没有对应磁盘文件的临时数据)操作:
给草稿纸贴个标签:“存到抽屉A-3号格”(分配交换空间页表项)把标签记录到小本本上(交换缓存)
目的:下次需要时,能快速找到草稿纸存在哪
✅ 注意:这步只针对草稿纸(匿名页),正式文件(文件页)不需要
3️⃣ 解除映射 & 写出 → 真正收拾文件
解除映射(Unmap):
草稿纸(匿名页):把桌上的"草稿纸位置"便签换成"见抽屉A-3"(修改页表项指向交换空间)正式文件(文件页):直接擦掉桌上的位置记录(清除页表项)
写出(Page Out):
把文件放进抽屉:
草稿纸 → 塞进交换空间(swap分区)正式文件 → 放回对应的文件柜(磁盘原位置)
异步操作:喊助理(存储设备)慢慢处理,你不用干等着
✨ 关键:这步实际释放了桌面空间!
4️⃣ 完成回收 → 收工!
文件已安全存好桌面空间空出来了系统可以继续放新文件了
用一个生活场景串起来
假设你(系统)在办公桌前工作:
桌面堆满了文件(内存不足)你决定收拾几份文件(选择待回收页)检查:拿起文件A,发现同事正在看→放回;文件B没人用→留下贴标签:把临时笔记(匿名页)标记"存进右侧抽屉"收拾:
把笔记位置从"桌面第二格"改成"见右侧抽屉"(解除映射)把笔记和待归档文件塞进抽屉(写出)
结果:桌面空出一块区域(内存释放),可以放新文件了
为什么需要页面回写?
解决内存不足:像整理桌子一样腾出空间保护数据安全:把文件存好避免丢失透明性:应用感觉不到文件被移动,下次访问时系统自动从抽屉取回
💡 简单说:页面回写就是内存的"收纳整理术"——把暂时不用的数据安全存到磁盘,腾出内存空间供新任务使用。