注重体验与质量的电子书资源下载网站
分类于: 互联网 人工智能
简介
深入理解Linux虚拟内存管理 豆 7.2分
资源最后更新于 2020-10-29 12:37:47
作者:[爱尔兰] Mel Gorman
译者:白洛
出版社:北京航空航天大学出版社
出版日期:2006-01
ISBN:9787810777308
文件格式: pdf
标签: linux 内存管理 kernel 操作系统 内核 Linux 虚拟内存 计算机
简介· · · · · ·
VM的行为影响着Linux内核的每个子系统,并动态地改变整体性能。但直至目前,理解VM的惟一途径便是:逐行学习文档极少的源代码。而现在有了更简单快捷的可选方案。本书史无前例地详细描述了VM,不仅包括理论基础,而且还包括逐行的代码注释。它同样系统地涵盖了从物理内存描述到内存溢出管理的每个方面:
1.Linux VM 2.4 体系结构的层次,附图表和调用图
2.物理内存描述、页表、地址空间和内存分配
3.高端内存、交换、共享内存和更多的内容
4.专家级地指导如何分析开源项目
5.每个章节中有Linux 2.6内核的新特性
《深入理解Linux虚拟内存管理》将成为每个内核程序员和研究人员不可或缺的案头宝典。
目录
第1章 简介
1.1 开始启程 2
1.2 管理源码 4
1.3 浏览代码 9
1.4 阅读代码 11
1.5 提交补丁 12
第2章 描述物理内存
2.1 节点 14
2.2 管理区 16
2.3 管理区初始化 21
2.4 初始化mem_map 21
2.5 页面 22
2.6 页面映射到管理区 26
2.7 高端内存 26
2.8 2.6中有哪些新特性 27
第3章 页表管理
3.1 描述页目录 30
3.2 描述页表项 33
3.3 页表项的使用 34
3.4 页表项的转换和设置 36
3.5 页表的分配和释放 36
3.6 内核页表 37
3.7 地址和struct page之间的映射 39
3.8 转换后援缓冲区(TLB) 40
3.9 一级CPU高速缓存管理 41
3.10 2.6中有哪些新特性 44
第4章 进程地址空间
4.1 线性地址空间 50
4.2 地址空间的管理 52
4.3 进程地址空间描述符 53
4.4 内存区域 57
4.5 异常处理 72
4.6 缺页中断 74
4.7 复制到用户空间/从用户空间复制 81
4.8 2.6中有哪些新特性 82
第5章 引导内存分配器
5.1 表示引导内存映射 88
5.2 初始化引导内存分配器 89
5.3 初始化bootmem_data 89
5.4 分配内存 90
5.5 释放内存 91
5.6 销毁引导内存分配器 91
5.7 2.6中有哪些新特性 93
第6章 物理页面分析
6.1 管理空闲块 94
6.2 分配页面 96
6.3 释放页面 98
6.4 获得空闲页面(GFP)标志位 99
6.5 进程标志位 101
6.6 防止碎片 102
6.7 2.6中有哪些新特性 102
第7章 非连续内存分配
7.1 描述虚拟内存区 105
7.2 分配非连续区域 106
7.3 释放非连续内存 108
7.4 2.6中有哪些新特性 109
第8章 Slab分配器
8.1 高速缓存 113
8.2 Slabs 124
8.3 对象 131
8.4 指定大小的高速缓存 133
8.5 per?CPU 对象高速缓存 135
8.6 初始化slab分配器 137
8.7 伙伴分配器接口 138
8.8 2.6中有哪些新特性 138
第9章 高端内存管理
9.1 管理PKMap地址空间 140
9.2 映射高端内存页面 141
9.3 解除页面映射 143
9.4 原子性的映射高端内存页面 143
9.5 弹性缓冲区 144
9.6 紧急池 146
9.7 2.6中有哪些新特性 147
第10章 页面帧回收
10.1 页面替换策略 150
10.2 页面高速缓存 151
10.3 LRU链表 156
10.4 收缩所有的高速缓存 159
10.5 换出进程页面 161
10.6 页面换出守护程序(kswapd) 162
10.7 2.6中有哪些新特性 162
第11章 交换管理
11.1 描述交换区 166
11.2 映射页表项到交换项 169
11.3 分配一个交换槽 170
11.4 交换区高速缓存 171
11.5 从后援存储器读取页面 174
11.6 向后援存储器写页面 174
11.7 读/写交换区域的块 175
11.8 激活一个交换区 177
11.9 禁止一个交换区 178
11.10 2.6中有哪些新特性 179
第12章 共享内存虚拟文件系统
12.1 初始化虚拟文件系统 181
12.2 使用shmem函数 182
12.3 在tmpfs中创建文件 184
12.4 虚拟文件中的缺页中断 186
12.5 tmps中的文件操作 188
12.6 tmpfs中的索引节点操作 188
12.7 建立共享区 189
12.8 System V IPC 189
12.9 2.6中有哪些新特性 192
第13章 内存溢出管理
13.1 检查可用内存 193
13.2 确定OOM状态 194
13.3 选择进程 194
13.4 杀死选定的进程 195
13.5 是这样吗? 195
13.6 2.6中有哪些新特性 195
第14章 结束语
附录A 介绍
附录B 描述物理内存
B.1 初始化管理区 201
B.2 页面操作 214
附录C 页表管理
C.1 初始化页表 219
C.2 遍历页表 227
附录D 进程地址空间
D.1 进程内存描述符 232
D.2 创建内存区域 239
D.3 查找内存区域 285
D.4 对内存区域上锁和解锁 291
D.5 缺页中断 304
D.6 页面相关的磁盘I/O 330
附录E 启动内存分配
E.1 初始化引导内存分配器 370
E.2 分配内存 372
E.3 释放内存 381
E.4 释放引导内存分配器 383
附录F 物理页面分配
F.1 分配页面 391
F.2 分配辅助函数 402
F.3 释放页面 404
F.4 释放辅助函数 409
附录G 不连续内存分配
G.1 分配一块非连续的区域 411
G.2
1.1 开始启程 2
1.2 管理源码 4
1.3 浏览代码 9
1.4 阅读代码 11
1.5 提交补丁 12
第2章 描述物理内存
2.1 节点 14
2.2 管理区 16
2.3 管理区初始化 21
2.4 初始化mem_map 21
2.5 页面 22
2.6 页面映射到管理区 26
2.7 高端内存 26
2.8 2.6中有哪些新特性 27
第3章 页表管理
3.1 描述页目录 30
3.2 描述页表项 33
3.3 页表项的使用 34
3.4 页表项的转换和设置 36
3.5 页表的分配和释放 36
3.6 内核页表 37
3.7 地址和struct page之间的映射 39
3.8 转换后援缓冲区(TLB) 40
3.9 一级CPU高速缓存管理 41
3.10 2.6中有哪些新特性 44
第4章 进程地址空间
4.1 线性地址空间 50
4.2 地址空间的管理 52
4.3 进程地址空间描述符 53
4.4 内存区域 57
4.5 异常处理 72
4.6 缺页中断 74
4.7 复制到用户空间/从用户空间复制 81
4.8 2.6中有哪些新特性 82
第5章 引导内存分配器
5.1 表示引导内存映射 88
5.2 初始化引导内存分配器 89
5.3 初始化bootmem_data 89
5.4 分配内存 90
5.5 释放内存 91
5.6 销毁引导内存分配器 91
5.7 2.6中有哪些新特性 93
第6章 物理页面分析
6.1 管理空闲块 94
6.2 分配页面 96
6.3 释放页面 98
6.4 获得空闲页面(GFP)标志位 99
6.5 进程标志位 101
6.6 防止碎片 102
6.7 2.6中有哪些新特性 102
第7章 非连续内存分配
7.1 描述虚拟内存区 105
7.2 分配非连续区域 106
7.3 释放非连续内存 108
7.4 2.6中有哪些新特性 109
第8章 Slab分配器
8.1 高速缓存 113
8.2 Slabs 124
8.3 对象 131
8.4 指定大小的高速缓存 133
8.5 per?CPU 对象高速缓存 135
8.6 初始化slab分配器 137
8.7 伙伴分配器接口 138
8.8 2.6中有哪些新特性 138
第9章 高端内存管理
9.1 管理PKMap地址空间 140
9.2 映射高端内存页面 141
9.3 解除页面映射 143
9.4 原子性的映射高端内存页面 143
9.5 弹性缓冲区 144
9.6 紧急池 146
9.7 2.6中有哪些新特性 147
第10章 页面帧回收
10.1 页面替换策略 150
10.2 页面高速缓存 151
10.3 LRU链表 156
10.4 收缩所有的高速缓存 159
10.5 换出进程页面 161
10.6 页面换出守护程序(kswapd) 162
10.7 2.6中有哪些新特性 162
第11章 交换管理
11.1 描述交换区 166
11.2 映射页表项到交换项 169
11.3 分配一个交换槽 170
11.4 交换区高速缓存 171
11.5 从后援存储器读取页面 174
11.6 向后援存储器写页面 174
11.7 读/写交换区域的块 175
11.8 激活一个交换区 177
11.9 禁止一个交换区 178
11.10 2.6中有哪些新特性 179
第12章 共享内存虚拟文件系统
12.1 初始化虚拟文件系统 181
12.2 使用shmem函数 182
12.3 在tmpfs中创建文件 184
12.4 虚拟文件中的缺页中断 186
12.5 tmps中的文件操作 188
12.6 tmpfs中的索引节点操作 188
12.7 建立共享区 189
12.8 System V IPC 189
12.9 2.6中有哪些新特性 192
第13章 内存溢出管理
13.1 检查可用内存 193
13.2 确定OOM状态 194
13.3 选择进程 194
13.4 杀死选定的进程 195
13.5 是这样吗? 195
13.6 2.6中有哪些新特性 195
第14章 结束语
附录A 介绍
附录B 描述物理内存
B.1 初始化管理区 201
B.2 页面操作 214
附录C 页表管理
C.1 初始化页表 219
C.2 遍历页表 227
附录D 进程地址空间
D.1 进程内存描述符 232
D.2 创建内存区域 239
D.3 查找内存区域 285
D.4 对内存区域上锁和解锁 291
D.5 缺页中断 304
D.6 页面相关的磁盘I/O 330
附录E 启动内存分配
E.1 初始化引导内存分配器 370
E.2 分配内存 372
E.3 释放内存 381
E.4 释放引导内存分配器 383
附录F 物理页面分配
F.1 分配页面 391
F.2 分配辅助函数 402
F.3 释放页面 404
F.4 释放辅助函数 409
附录G 不连续内存分配
G.1 分配一块非连续的区域 411
G.2