Linux:操作系统分析 Chapter8内存管理 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室©计算机学院 嵌入式系统实验室●苏州研究院 中国科学技术大学 Fa112014 October 31,2014 1口t4四1是42刀00 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linux操作系统分斯Chapter8内存管理 0 ctober31.20141/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linux操作系统分析 Chapter 8 内存管理 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室@计算机学院 嵌入式系统实验室@苏州研究院 中国科学技术大学 Fall 2014 October 31, 2014 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 8 内存管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) October 31, 2014 1 / 47
Outline 页框管理:页面级分配器 ·页框和页描述符 ●存储区(Memory Zones) ●页面级分配器接口 ·页框管理算法:伙伴算法 ② 内存区管理(memory area) ●slab分配器 非连续存储区管理 小结和作业 1口t4四1是42刀00 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linux操作系统分折Chapter8内存管理 0 ctober31.20142/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outline 1. 页框管理:页面级分配器 页框和页描述符 存储区(Memory Zones) 页面级分配器接口 页框管理算法:伙伴算法 .2 内存区管理(memory area) slab分配器 .3 非连续存储区管理 4. 小结和作业 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 8 内存管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) October 31, 2014 2 / 47
动态存储器 ●在前面已经提到,Linux如何有效地利用x86的分段和分页 机制把逻辑地址转换为物理地址 ●RAM的某些部分永久地分配给内核,用以存放内核代码以 及静态数据,这部分RAM在Liux运行期间不会被释放,也 不能被分配用作其他用途 。RAM的其余部分称为动态存储器(dynamic memory)】 1口4四1是4P在刀0C 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linux操作系统分新Chapter8内存管理 0 ctober31.20143/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 动态存储器 在前面已经提到,Linux如何有效地利用x86的分段和分页 机制把逻辑地址转换为物理地址 RAM的某些部分永久地分配给内核,用以存放内核代码以 及静态数据,这部分RAM在Linux运行期间不会被释放,也 不能被分配用作其他用途 RAM的其余部分称为动态存储器(dynamic memory) 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 8 内存管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) October 31, 2014 3 / 47
动态存储器 。Linux内核的前512个页框(假定内核所需内存<1MB,from ULK:2) 0 0x9f 0x100 OxIff -text _etext _edata -end Unavailable page frames Available page frames Kernel code Initialized kernel data Uninitialized kernel data 1口t4四1是42刀00 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linux操作系统分斯Chapter8内存管理 0 ctober31.20143/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 动态存储器 Linux内核的前512个页框(假定内核所需内存<1MB,from ULK2) Uninitialized kernel data Initialized kernel data Kernel code Available page frames Unavailable page frames 0 1 0x9f 0x100 _text _etext _edata _end 0x1ff 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 8 内存管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) October 31, 2014 3 / 47
动态存储器 ·进程和内核的运行都需要动态存储器 。属于稀缺资源 ·整个系统的性能取决于如何有效地管理动态存储器 ·对动态存储器的使用要进行优化 ·原则:对于动态存储器要尽可能做到 按需分配,不需要时释放 1口+4四1是4P在刀00 陈香兰(x1 anchenoustc,edu,cn)(计算丸应Linx操作系统分新Chapter8内存管理 0 ctober31.20144/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 动态存储器 进程和内核的运行都需要动态存储器 属于稀缺资源 整个系统的性能取决于如何有效地管理动态存储器 对动态存储器的使用要进行优化 原则: 对于动态存储器要尽可能做到 按需分配,不需要时释放 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 8 内存管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) October 31, 2014 4 / 47