Linux内核页框回收机制与虚拟内存子系统
需积分: 0 136 浏览量
更新于2024-07-26
收藏 13.49MB PDF 举报
深入理解 Linux 内核(中文第三版)第 17 章 - 回收页框
资源摘要信息的详细内容如下:
在前面的章节中,我们讨论了 Linux 内核如何处理动态内存,包括记录空闲和占用的页框、用户态进程的线性地址空间、动态内存实现内存与磁盘高速缓存等概念。在本章中,我们将讨论页框的回收完成对虚拟内存子系统的描述。
页框回收算法是 Linux 内核回收页框的原因和策略。Linux 中有一点很有意思,在为用户态进程与内核分配动态内存时,所作的检查是马马虎虎的。比如,对单个用户所创建进程的 RAM 使用总量并不作严格检查,对内核使用的许多磁盘高速缓存和内存高速缓存大小也同样不作限制。这使内核以最好的可行方式使用可用的 RAM。
减少控制是一种设计选择,这使内核以最好的可行方式使用可用的 RAM。当系统负载较低时,RAM的大部分由磁盘高速缓存占用,很少正在运行的进程可以从中获益。但是,当系统负载增加时,RAM的大部分则由进程页占用,高速缓存就会缩小从而给后来的进程让出空闹。
我们在前面的章节中看到,内存及磁盘高速缓存抓取了那么多的页框,但从来择放任何页框。这是合理的,因为高速缓存系统并不知道进程是否(什么时候)会重新使用某些缓存的数据,因此不能确定高速缓存的哪些部分应该释放。此外,正是有了第九章描述的请求调页机制,只要用户态进程继续执行,它们就能在得页框,然而,请求调页没有办法强制进程释放不再使用的页框。
因此,迟早所有空闲内存将被分配给进程和高速缓存。Linux 内核的页框回收算法(page frame reclaiming algorithm, PFRA)采取从用户态进程和内核高速缓存“窃取”页框的办法补充伙伴系统的空闲块列表。
实际上,在用完所有空闲内存之前,就必须执行页框回收算峰。否则,内核很可能陆入一种内存请求的僵局中,并导致系统崩捕。
在“反向映射”一节中,我们介绍了内核使用的一种数据结构,借助这个结构,内核可以快速定位指向一个页框的所有页表项。这种数据结构对于页框回收非常重要,因为它可以帮助内核快速找到可以回收的页框。
在“PFRA 实现”一节中,我们介绍了 Linux 使用的页框回收算法的实现细节,包括如何从用户态进程和内核高速缓存“窃取”页框,如何补充伙伴系统的空闲块列表等。
最后,在“交换”一节中,我们讨论了交换子系统,它是将匿名页(并非文件的映射数据)保存到磁盘的内核部件。交换子系统对于 Linux 内核的虚拟内存子系统非常重要,因为它可以帮助内核释放不再使用的页框,避免系统崩捕。
本章讨论了 Linux 内核的页框回收算法和策略,包括页框回收算法的原因和策略、反向映射、PFRA 实现和交换子系统等概念。这些概念对于理解 Linux 内核的虚拟内存子系统非常重要。
2012-10-28 上传
2011-05-12 上传
2012-10-28 上传
2023-05-10 上传
2023-09-04 上传
2023-06-06 上传
2023-09-06 上传
2023-11-02 上传
2023-07-29 上传
在hust快乐的学习
- 粉丝: 296
- 资源: 39
最新资源
- 新型智能电加热器:触摸感应与自动温控技术
- 社区物流信息管理系统的毕业设计实现
- VB门诊管理系统设计与实现(附论文与源代码)
- 剪叉式高空作业平台稳定性研究与创新设计
- DAMA CDGA考试必备:真题模拟及章节重点解析
- TaskExplorer:全新升级的系统监控与任务管理工具
- 新型碎纸机进纸间隙调整技术解析
- 有腿移动机器人动作教学与技术存储介质的研究
- 基于遗传算法优化的RBF神经网络分析工具
- Visual Basic入门教程完整版PDF下载
- 海洋岸滩保洁与垃圾清运服务招标文件公示
- 触摸屏测量仪器与粘度测定方法
- PSO多目标优化问题求解代码详解
- 有机硅组合物及差异剥离纸或膜技术分析
- Win10快速关机技巧:去除关机阻止功能
- 创新打印机设计:速释打印头与压纸辊安装拆卸便捷性