网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 深入理解Linux虚拟内存管理/Bruce Perens开源系列
分类 计算机-操作系统
作者 (爱尔兰)戈尔曼
出版社 北京航空航天大学出版社
下载
简介
编辑推荐

本书以相对独立于硬件的角度阐述Linux VM,试图弥补内存管理理论和在Linux中具体实现之间的差距,并且将两个部分结合起来,是当今最能够充分理解Linux VM的运行机制以及将理论和实现联系在一起的书籍。本书不是以讲述理论为目标,而是先讲述理论,再结合Linux的实现深入剖析其细节,使用函数调用图和系统架构图,一目了然,思路清晰,读者可以快速地掌握系统总体架构。内容涵盖物理内存、页表管理、进程地址空间、引导内存分配器、物理页面分配、非连续内存分配、Slab分配器、高端内存管理、页面帧回收、交换管理、共享内存虚拟文件系统等部分。

本书读者主要针对高等院校师生、研究机构科研人员、Linux内核开发人员、应用开发人员及系统管理人员,以及任何对VM或内核子系统运行机制感兴趣的爱好者。

内容推荐

VM的行为影响着Linux内核的每个子系统,并动态地改变整体性能。但直至目前,理解VM的惟一途径便是:逐行学习文档极少的源代码。而现在有了更简单快捷的可选方案。本书史无前例地详细描述了VM,不仅包括理论基础,而且还包括逐行的代码注释。它同样系统地涵盖了从物理内存描述到内存溢出管理的每个方面:

·Linux VM 2.4体系结构的层次,附图表和调用图

·物理内存描述、页表、地址空间和内存分配

·高端内存、交换、共享内存和更多的内容

·专家级地指导如何分析开源项目

·每个章节中有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_map21

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_data89

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 Slabs124

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 IPC189

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/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

附录H Slab分配器

H.1 高速缓存控制427

H.2 Slabs446

H.3 对象452

H.4 指定大小的高速缓存466

H.5 PerCPU 对象高速缓存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.2 LRU链表操作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.3 tmpfs中的文件操作600

L.4 tmpfs中的索引节点操作613

L.5 虚拟文件中的缺页中断622

L.6 交换空间交互633

L.7 建立共享区639

L.8 System V IPC642

附录M 内存溢出管理

M.1 确定可用内存650

M.2 检查OOM并从中恢复652

参考文献

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/3/27 12:36:14