news 2026/5/16 0:46:04

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

作者头像

张小明

前端开发工程师

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

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

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

1. 脏页延迟写入与问题

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

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

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

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

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

OpenVoice语音克隆技术完全指南:从原理到实战的深度解析

OpenVoice语音克隆技术完全指南:从原理到实战的深度解析 【免费下载链接】OpenVoice 项目是MyShell AI开源的即时语音克隆技术OpenVoice,旨在提供一种能够快速从少量语音样本中准确复制人类声音特征,并实现多种语言及语音风格转换的解决方案。…

作者头像 李华
网站建设 2026/5/9 1:32:50

62、内核学习资源与技术要点汇总

内核学习资源与技术要点汇总 1. 内核相关书籍推荐 在学习内核的过程中,有许多优秀的书籍可供参考,这些书籍按照不同的内核类型进行分类,为我们提供了丰富的知识。 1.1 Unix 内核相关书籍 书籍名称 作者 出版年份 简介 The Design of the Unix Operating System Bach…

作者头像 李华
网站建设 2026/5/9 21:52:55

63、操作系统技术要点解析

操作系统技术要点解析 1. 基础概念与数据结构 1.1 数据段相关 数据段描述符和数据段寄存器在系统中起着重要作用。在 fs/dcache.c 文件中,涉及到了 d_lookup 和 __d_lookup 函数,它们与目录项查找相关。 1.2 目录项缓存 目录项缓存(dentry cache)在文件系统中十…

作者头像 李华
网站建设 2026/5/15 15:50:49

实时情感识别项目终极指南:从入门到精通

实时情感识别项目终极指南:从入门到精通 【免费下载链接】Emotion-recognition Real time emotion recognition 项目地址: https://gitcode.com/gh_mirrors/em/Emotion-recognition 在当今人工智能快速发展的时代,实时情感识别技术正成为人机交互…

作者头像 李华
网站建设 2026/5/12 23:40:17

OkDownload终极指南:15分钟掌握Android最强下载引擎

OkDownload终极指南:15分钟掌握Android最强下载引擎 【免费下载链接】okdownload A Reliable, Flexible, Fast and Powerful download engine. 项目地址: https://gitcode.com/gh_mirrors/ok/okdownload 你是否曾经为Android应用的下载功能而烦恼&#xff1f…

作者头像 李华
网站建设 2026/5/14 5:07:21

基于vue的网上茶叶商城系统的设计与实现_6786bk01_springboot php python nodejs

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华