
| Mel Gorman曾获得爱尔兰利马瑞克大学的计算机学士和硕士学位。他的研究领域广泛:从网页开发到摄影机的实时显示系统。Mel Gorman认为,即使是最难以攻克的项目也并没有想象中那么艰难。他曾经还担任过系统管理员,主要管理Linux, 也涉及到Solaris和Windows。现今Mel Gorman是都柏林IBM公司的Java程序开发员。 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_map21 2.5页面22 2.6页面映射到管理区26 2.7高端内存26 2.82.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.102.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.82.6中有哪些新特性82 第5章引导内存分配器 5.1表示引导内存映射88 5.2初始化引导内存分配器89 5.3初始化bootmem_data89 5.4分配内存90 5.5释放内存91 5.6销毁引导内存分配器91 5.72.6中有哪些新特性93 第6章物理页面分析 6.1管理空闲块94 6.2分配页面96 6.3释放页面98 6.4获得空闲页面(gfp)标志位99 6.5进程标志位101 6.6防止碎片102 6.72.6中有哪些新特性102 第7章非连续内存分配 7.1描述虚拟内存区105 7.2分配非连续区域106 7.3释放非连续内存108 7.42.6中有哪些新特性109 第8章slab分配器 8.1高速缓存113 8.2slabs124 8.3对象131 8.4指定大小的高速缓存133 8.5percpu 对象高速缓存135 8.6初始化slab分配器137 8.7伙伴分配器接口138 8.82.6中有哪些新特性138 第9章高端内存管理 9.1管理pkmap地址空间140 9.2映射高端内存页面141 9.3解除页面映射143 9.4原子性的映射高端内存页面143 9.5弹性缓冲区144 9.6紧急池146 9.72.6中有哪些新特性147 第10章页面帧回收 10.1页面替换策略150 10.2页面高速缓存151 10.3lru链表156 10.4收缩所有的高速缓存159 10.5换出进程页面161 10.6页面换出守护程序(kswapd)162 10.72.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.102.6中有哪些新特性179 第12章共享内存虚拟文件系统 12.1初始化虚拟文件系统181 12.2使用shmem函数182 12.3在tmpfs中创建文件184 12.4虚拟文件中的缺页中断186 12.5tmps中的文件操作188 12.6tmpfs中的索引节点操作188 12.7建立共享区189 12.8system v ipc189 12.92.6中有哪些新特性192 第13章内存溢出管理 13.1检查可用内存193 13.2确定oom状态194 13.3选择进程194 13.4杀死选定的进程195 13.5是这样吗?195 13.62.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/o330 附录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释放一块非连续区域420 附录hslab分配器 h.1高速缓存控制427 h.2slabs446 h.3对象452 h.4指定大小的高速缓存466 h.5percpu 对象高速缓存469 h.6初始化slab分配器476 h.7与伙伴分配器的接口477 附录i高端内存管理 i.1映射高端内存页面479 i.2自动映射高端内存页面484 i.3解除页面映射485 i.4自动解除高端内存页面映射487 i.5弹性缓冲区488 i.6紧急池495 附录j页面帧回收 j.1页面高速缓存操作500 j.2lru链表操作510 j.3重填充inactive_list514 j.4从lru链表回收页面515 j.5收缩所有高速缓存522 j.6换出进程页面525 j.7页面交换守护程序536 附录k交换管理 k.1查找空闲项543 k.2交换高速缓存548 k.3交换区i/o555 k.4激活一个交换区564 k.5禁止一个交换区575 附录l共享内存虚拟文件系统 l.1初始化shmfs591 l.2在tmpfs中创建文件596 l.3tmpfs中的文件操作600 l.4tmpfs中的索引节点操作613 l.5虚拟文件中的缺页中断622 l.6交换空间交互633 l.7建立共享区639 l.8system v ipc642 附录m内存溢出管理 m.1确定可用内存650 m.2检查oom并从中恢复652 参考文献 |
商品评论(0条)