Linux内存管理综合实验报告
计算机通信学院
Linux内存管理
综合实验报告
温柔的黑米: ctdxtz
小组成员:机灵的橘子20040810720
痴情画板20040810503
jzdwg 20040810713
2008年1月3日
1 Linux内存管理综合实验概述3
1.1综合设计主题3
1.2综合设计小组成员3
1.3小组成员的任务分配情况和人均工作比例3
2 Linux内存管理概述4
2.1 Linux虚拟内存实现结构4
2.2内核空间和用户空间5
2.3虚拟内存实现机制之间的关系7
3系统调用功能说明8
3.1 do_page_fault (系统调用功能说明8
3.2 brk ) )系统调用功能说明8
3.3mmap ) )系统调用功能说明8
4数据结构分析8
4.1数据结构图9
4.2结构毫米9
4.3 Struct vma 11
4.4红黑树12
5系统调用代码分析13
5.1 do_page_fault ()系统调用分析13
5.1.1常数及相关错误定义15
5.1.2代码分析15
5.1.3流程图21
5.2 brk (系统调用分析21
5.2.1常数及相关错误定义23
5.2.2代码分析23
5.2.3流程图40
5.3 mmap ) )系统调用分析40
5.3.1常数及相关错误定义42
5.3.2代码分析43
5.3.3流程图56
6心得62
参考文献63
相关工具63
1 Linux内存管理综合实验综述
1.1综合设计主题
系统调用do_page_fault ()、brk )、mmap ) )的调用过程、相关的主要数据结构和导出
代码分析结果并创建一个显示相关函数之间的相互调用关系的流程图。
1.2综合设计小组成员
痴情画板(20040810503 ) jzdwg机灵橘子(20040810720 ) )。
1.3小组成员的任务分配情况和人均工作比例
痴情画板负责分析do_page_fault ()系统调用,写出代码分析结果,绘制流程图显示
相关函数之间的相互调用关系。 占工作的比例为30 %。
jzdwg是brk ) )负责系统调用的分析,写出代码分析结果,制作表示相关函数的流程图
的相互调用关系。 占工作的比例为30 %。
聪明的橘子负责分析mmap ()调用,写出代码分析结果,生成关联函数之间的
相互呼叫关系。 完成论文的整理笔记。 占工作的40 %。
2 Linux内存管理概述
因为Linux是为多用户多任务设计的操作系统,所以存储资源必须在多个过程中有效共享; 然后呢
程序规模不断扩大,所需的内存容量比以前大得多。 Linux内存管理的设计得到了充分的利用
通过计算机系统提供的虚拟存储技术,实现了虚拟存储管理。
由于I386具有代表性和普遍性,因此我们选择了Intel386分段和页面机制作为Linux虚拟
要管理存储的硬件平台。
Linux的内存管理主要体现在虚拟内存的管理上。 使用Linux的虚拟内存管理功能
概括地说,如下。
大地址空间
过程保护
存储器映射
公平的物理内存分配