Mel Gorman曾获得爱尔兰利马瑞克大学的计算机学士和硕士学位。他的研究领域广泛:从网页开发到摄影机的实时显示系统。Mel Gorman认为,即使是最难以攻克的项目也并没有想象中那么艰难。他曾经还担任过系统管理员,主要管理Linux, 也涉及到Solaris和Windows。现今Mel Gorman是都柏林IBM公司的Java程序开发员。
Mel Gorman的大部分技能都来自于他自己在利马瑞克大学的生活经历,与大学里计算机社区的广泛接触,以及实地工作经验这三者的完美结合。是计算机社区使他接触到了Linux,并相信Linux用途广泛,而绝不仅仅只是一个便利的邮箱地址。这个社区还使他对开放源码软件产生了兴趣,尤其是在Linux内核方面。他永远感激利马瑞克大学为他提供的这个平台,使他认识了许多有识之士,并有两年时间来研究VM。
闲暇时Mel Gorman喜欢和女友凯伦呆在一起,或者弹弹吉他(尽管并不擅长),读读手边的书籍,与朋友和家人(他们避免谈及有关VM的话题)一同消磨时光。又或是制订一些可能并无价值的计划(有时仅仅在想象中完成它们)。只要安迪说服他乘坐游艇是个不错的娱乐项目,他也会去尝试。Mel Gorman还在犹豫着是继续创作关于Linux的文章,还是向从前一样在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
《华为HCIA路由交换认证指南》内容简介:本书是针对HCIA最新考试大纲编写的认证教材。全书共分为15章,首先介绍了计算机网络的产生
《百马人生,跑向东京》内容简介:从2010完成第一场马拉松,到2017年12月完成第100场马拉松,田同生“百马人生”的梦想变成了现实。
《深度探索区块链》内容简介:本书由超级账本执行董事Brian Behlendorf领衔推荐,区块链一线落地实践团队、Hyperleger会员智链骨干
KaiHwang(黄铠)拥有加州大学伯克利分校博士学位。现为美国南加州大学电子工程与计算机科学终身教授,并先后担任清华大学计算机
《CSS入门经典(第2版)》主要内容:CSSLevel1、2、2.1和3规范的相关知识、操纵文本和选择字体效果的方式、IE6和IE7的Bug及解决方案
《TCP/IP入门经典(第4版)》深入浅出地介绍了TCP/IP协议的入门知识。全书分为5个部分,共24章:《TCP/IP入门经典(第4版)》首先从T
《物理化学》是教育部“高等教育面向21世纪教学内容和课程体系改革计划”的研究成果,是面向21世纪课程教材。《物理化学》共5篇2
本书介绍了配色的基础知识与技巧,通过照片、广告等实例,为从初学者到专业设计师等不同水平的读者,提供了广泛、全面的引导。书
《中国古典舞学科建设综论》内容简介:这部“综论”是舞蹈高等教育的教学用书。在中国当代舞蹈教育的学科建设中,“中国古典舞”是
TheSeriesinCommunicationTechnologyandSocietyisanintegratedseriescenteringontheso...
《给孩子的趣味唐诗课:四季篇》内容简介:《中国诗词大会》评委蒙曼老师为孩子量身打造的漫画唐诗课 读起来有趣、学起来零压力、背
《新型冠状病毒肺炎防护手册》内容简介:编者基于当前对新型冠状病毒肺炎的认识和防控策略,对疫情防控相关政策、法律法规、信息和
《通信线路维护实用手册》是专门介绍通信线路维护知识的实用技术书籍,书中重点介绍了光电缆基本知识、光电缆接续与测试技术以及
《用“芯”探核:龙芯派开发实战》内容简介:这是一本带领读者快速熟悉、掌握龙芯派开发的专著。本书基于龙芯派二代开发板,首先由
Visual Basic程序设计基础 节选 《高等学校计算机程序设计课程系列教材·Visual Basic程序设计基础》根据教育部高等学校计算机基础课程教学指导...
《EPON/GPON技术问答》全面介绍了无源光网络(PON)技术,主要包括.EPON和GPON的相关知识。全书共分6章。第1章基础篇,概要介绍了
《当我们走进心理咨询室》内容简介:为什么在亲密关系中,一些人总是扮演“受害者”的角色?为什么一些人总是习惯讨好别人,对所有
SQL Server 2005技术内幕:查询、调整和优化 本书特色 通过专家们架构级的洞察力来优化企业级数据库以sql server**专家的视角,带你深入到s...
《CG思维解锁》内容简介:本书是国内首部介绍新科技时代下综合运用CG绘图技术进行数字绘画创作的著作。本书内容涉及自动绘画、VR36
《黄同学漫画中国:清末民初那些年2》内容简介:1916—1928·大国战火·群雄逐鹿·军阀割据·枭雄涌现·市井生活·工业文明·宫廷秘