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
《所有的颠沛流离,只为成就更好的自己》内容简介:人,切不可一路成长,一路悲伤。在觉得快受不了了的日子里,请反复告诉自己,这
本书基于MicrosoftMobile平台,围绕着三大主题讲解移动应用程序的开发:移动应用程序开发基础;移动应用程序高级开发;.NETComp
《狂人日记(赵延年插图本)》内容简介:本书是一部鲁迅小说选集,收录鲁迅代表性小说十六篇,出自《呐喊》和《彷徨》两部小说集,
《Windows并发编程指南》详细讲述Windows并发编程的相关知识。内容分为四个部分:第一部分“概念”从高层视角介绍并发的基本概念
《文典一览》内容简介:《文典一览》是余秋雨先生长期斟酌之后选出并予以翻译、阐释的中国古代文学读本。他意在带领当代读者辨认古
《JavaEE设计模式:Spring企业级开发最佳实践》结合Spring框架讲解了JavaEE设计模式,主要介绍了JavaEE应用程序设计和Spring框架的
笨办法学Ruby-(第3版) 本书特色 本书是一本ruby入门书籍,是《“笨办法”学python》的姊妹篇。本书适合对计算机了解不多,没有学过编程,但对编程感兴...
◆全球工业设计教父,世界顶级创意咨询公司青蛙公司创始人哈特穆特·艾斯林格,首次揭秘设计战略如何塑造商业的未来,如何将创新
Photoshop CS5中文版标准教程:超值案例教学版 内容简介 本书全面、系统地介绍了Photoshop CS5图像处理的基本操作与应用技巧,内容包括图像处...
《轻松玩转Scratch 3.0编程(第2版)》内容简介:Scratch是可视化的编程语言,利用它可以制作游戏、动画,还可以计算数学题、处理字
《Tableau数据可视化》内容简介:本书由专业的数据分析师基于Tableau 10.1精心编撰,详细介绍Tableau的数据连接、图形编辑与展示功
文明以止,人文也。硅谷的成功,不完全在人或钱,也不在科技,而在整体的生态。硅谷创投家郑志凯先生带领你领略硅谷的精髓。本书以
《锦笺记》内容简介:笺纸是古代文人用于书写的小幅花色纸张,其起源可以追溯到南北朝时期。历经唐宋之发展,至明代,笺纸追求精致
《互联网企业安全高级指南》内容简介:本书由业内多位顶级安全专家亲力打造,分享了他们十多年的安全行业经验。从技术到管理,从生
jQuerysimplifiesbuildingrich,interactivewebfrontends.GettingstartedwiththisJavaS...
TableofContentsPart1:AnIntroductiontoD31AnintroductiontoD3.js2InformationVisuali...
《天才与算法:人脑与AI的数学思维》内容简介:本书为我们展现了人工智能是如何逐步变得强大,怎样支持我们人类的创造力,以及它们
《2021年法律硕士(非法学)联考考试大纲配套练习》内容简介:全书各章节的基本结构为:大纲要点、考试重点、配套练习和配套练习答
本书透彻地讲解了Flash组件开发、Flash游戏开发,以及SWF文件加解密与Flash文件综合性保护这三个话题。“弥赛亚之书”和“逆水游
《王牌战机图鉴(白金版)》内容简介:本书精心选取了世界各国空军装备的近百种经典战机。战斗机、轰炸机、反潜战机、武装直升机、