news 2026/10/15 18:18:06

46、脏页写入磁盘的机制与原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
46、脏页写入磁盘的机制与原理

脏页写入磁盘的机制与原理

在计算机系统中,内核会不断地将包含块设备数据的页面填充到页面缓存中。当进程修改某些数据时,对应的页面会被标记为脏页,也就是设置其PG_dirty标志。

1. 脏页延迟写入与问题

Unix 系统允许将脏页延迟写入块设备,这显著提高了系统性能。因为对缓存中的一个页面进行多次写操作,只需对相应的磁盘扇区进行一次缓慢的物理更新即可。而且,写操作不像读操作那样关键,因为进程通常不会因延迟写入而挂起,但往往会因延迟读取而挂起。由于延迟写入,每个物理块设备平均处理的读请求会比写请求多得多。

然而,将延迟写入策略发挥到极致有两个主要缺点:
-数据丢失风险:如果发生硬件或电源故障,RAM 中的内容将无法恢复,因此自系统启动以来所做的许多文件更新都会丢失。
-内存需求过大:页面缓存的大小,以及容纳它所需的 RAM 大小必须非常大,至少要与所访问的块设备大小一样。

因此,在以下情况下,脏页会被刷新(写入)到磁盘:
- 页面缓存过满,需要更多页面,或者脏页数量过多。
- 页面变为脏页后经过的时间过长。
- 进程请求刷新块设备或特定文件的所有待处理更改,这可以通过调用sync()、fsync()或fdatasync()系统调用来实现。

对于缓冲页,情况更为复杂。与每个缓冲页关联的缓冲区头允许内核跟踪每个单独块缓冲区的状态。如果关联的缓冲区头中至少有一个设置了B

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

DiT训练资源规划:从单卡到多卡的完整实战指南

DiT训练资源规划:从单卡到多卡的完整实战指南 【免费下载链接】DiT Official PyTorch Implementation of "Scalable Diffusion Models with Transformers" 项目地址: https://gitcode.com/GitHub_Trending/di/DiT 当你准备开始DiT模型训练时&#…

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

60、Linux系统启动与模块管理全解析

Linux系统启动与模块管理全解析 1. 系统启动流程概述 当用户开启计算机后,一系列复杂的操作会逐步展开,最终将Linux内核镜像加载到内存并执行,这一过程被称为系统的“引导”。计算机引导是一项繁琐且漫长的任务,因为初始时,包括随机存取存储器(RAM)在内的几乎所有硬件…

作者头像 李华
网站建设 2026/10/15 18:10:11

61、深入理解内核模块的实现与管理

深入理解内核模块的实现与管理 1. 模块实现 模块以 ELF 对象文件的形式存储在文件系统中,可通过执行 insmod 程序将其链接到内核。对于每个模块,内核会分配一块内存区域,包含以下数据: - 模块对象 - 表示模块名称的以空字符结尾的字符串(所有模块名称必须唯一) - …

作者头像 李华
网站建设 2026/10/14 14:26:42

AI模型训练资源规划:从零开始的完整成本控制指南

AI模型训练资源规划:从零开始的完整成本控制指南 【免费下载链接】DiT Official PyTorch Implementation of "Scalable Diffusion Models with Transformers" 项目地址: https://gitcode.com/GitHub_Trending/di/DiT 你是否在为AI项目预算超支而苦…

作者头像 李华
网站建设 2026/10/15 15:33:51

3秒克隆声音+本地部署:NeuTTS Air重构嵌入式语音交互新范式

3秒克隆声音本地部署:NeuTTS Air重构嵌入式语音交互新范式 【免费下载链接】neutts-air 项目地址: https://ai.gitcode.com/hf_mirrors/neuphonic/neutts-air 导语 NeuTTS Air的出现,让手机、树莓派等终端设备首次具备"类人化"语音交…

作者头像 李华
网站建设 2026/10/14 22:10:12

BongoCat窗口管理终极指南:打造智能隐藏与透明度调节的完美体验

BongoCat窗口管理终极指南:打造智能隐藏与透明度调节的完美体验 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作,每一次输入都充满趣味与活力! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat …

作者头像 李华