news 2026/3/18 23:31:13

50、深入解析页框回收机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
50、深入解析页框回收机制

深入解析页框回收机制

1. 页框回收算法概述

Linux在为用户模式进程或内核分配动态内存之前的检查相对宽松。例如,对于单个用户创建的进程所分配的总RAM量没有严格检查,对内核使用的众多磁盘缓存和内存缓存的大小也没有限制。这种设计能让内核充分利用可用的RAM。当系统负载较低时,RAM主要被磁盘缓存填充,少数运行的进程可从缓存信息中受益;而当系统负载增加时,RAM主要被进程页面填充,缓存会缩小以为更多进程腾出空间。

内存和磁盘缓存会不断占用页框,但从不释放。这是因为缓存系统无法确定进程何时会重用缓存数据,也就无法确定应释放的缓存部分。此外,用户模式进程通过需求分页机制获取页框,但该机制无法强制进程在不再使用页框时释放它们。

因此,迟早所有的空闲内存都会被分配给进程和缓存。Linux内核的页框回收算法通过从用户模式进程和内核缓存中“窃取”页框,来重新填充伙伴系统的空闲块列表。实际上,页框回收必须在所有空闲内存被用完之前进行,否则内核可能陷入致命的内存请求链,导致系统崩溃。因为释放一个页框需要将其数据写入磁盘,而这一操作又需要另一个页框(如分配I/O数据传输的缓冲区头),若没有空闲页框,就无法释放任何页框。所以,页框回收的目标之一是保留一个最小的空闲页框池,以便内核能从“内存不足”的情况中安全恢复。

2. 选择目标页

页框回收算法(PFRA)的目标是挑选页框并使其变为空闲。显然,PFRA选择的页框必须是非空闲的,即不能已经包含在伙伴系统使用的free_area数组中。

PFRA根据页框的内容以不同方式处理它们,可分为不可回收页、可交换页、可同步页和可丢弃页,具体如下表所示:
|

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

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

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

作者头像 李华
网站建设 2026/3/14 17:12:48

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

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

作者头像 李华
网站建设 2026/3/13 0:15:58

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

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

作者头像 李华
网站建设 2026/3/13 0:15:59

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

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

作者头像 李华
网站建设 2026/3/13 0:15:57

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/3/16 19:48:23

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

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

作者头像 李华