内容介绍
本书结合大量实验程序和图表,通俗易懂地介绍了Linux操作系统的运行原理和硬件的基础知识,涉及进程管理、进程调度器、内存管理、存储层次、文件系统和外*存储器等。实验程序使用C语言和Python编写,读者可*自动手运行程序,来确认系统的行为。另外,以图解的方式介绍各知识点,简明且直观,能够帮助读者加深理解。读者只需对Linux基本命令有所了解,*可轻松阅读。 本书适合应用程序开发人员、系统设计师、运维管理人员和技术支持人员等人士阅读。
目录
第 *章计算机系统的概要 *
第2章 用户模式实现的功能**
2.*系统调用*2
2.2系统调用的*装函数22
2.3C标准库24
2.4OS提供的程序26
第3章进程管理27
3.**建进程28
3.2fork()函数28
3.3execve()函数3*
3.4结束进程38
第4章进程调度器4*
4.*关于实验程序的设计43
4.2实验程序的实现44
4.3实验48
4.4思考53
4.5上下文切换54
4.6进程的状态55
4.7状态转换57
4.8空闲状态59
4.9各种各样的状态转换6*
4.*0吞吐量与延迟63
4.**现实中的系统69
4.*2存在多个逻辑 CPU时的调度70
4.*3实验方法7*
4.*4实验结果72
4.*5吞吐量与延迟76
4.*6思考77
4.*7运行时间和执行时间78
4.*8进程睡眠84
4.*9现实中的进程85
4.20变更*先级87
第5章内存管理95
5.*内存相关的统计信息96
5.2内存*足98
5.3简单的内存分配*0*
5.4虚拟内存*06
5.5页表*08
5.6实验**0
5.7为进程分配内存***
5.8实验**6
5.9利用上层进行内存分配**8
5.*0解决问题*2*
5.**虚拟内存的应用*26
5.*2文件映射*27
5.*3请求分页*3*
5.*4写时复制*45
5.*5Swap*5*
5.*6多级页表*59
5.*7标准大页*63
第6章存储层次*67
6.**速缓存*68
6.2*速缓存*足时*73
6.3多级缓存*75
6.4关于*速缓存的实验*76
6.5访问局*性*80
6.6总结*8*
6.7转译后备缓冲区*8*
6.8页面缓存*8*
6.9同步写入*86
6.*0缓冲区缓存*87
6.**读取文件的实验*87
6.*2写入文件的实验*94
6.*3调*参数*96
6.*4总结*98
6.*5*线程*99
第7章文件系统203
7.*Linux的文件系统207
7.2数据与元数据2*0
7.3容量限制2**
7.4文件系统***2*2
7.5日志2*4
7.6写时复制2*8
7.7*止*了的情况22*
7.8文件系统***的对策22*
7.9文件的种类223
7.*0字符设备224
7.**块设备225
7.*2各种各样的文件系统228
7.*3基于内存的文件系统228
7.*4网络文件系统230
7.*5虚拟文件系统23*
7.*6Btrfs233
第8章外*存储器24*
8.*HDD的数据读写机制242
8.2HDD的性能*性244
8.3HDD的实验246
8.4实验程序247
8.5顺序访问25*
8.6随机访问253
8.7通用块层254
8.8I/O调度器255
8.9预读256
8.*0实验258
8.**SSD267
8.*2总结279
后记280
作者介绍
武内觉(作者) 2005年~20*7年*职于日本富士通公司,负责商用Linux,*别是Linux内核的开发与支持工作。20*7年后在Cybozu公司担任技术顾问。 曹栩(译者) 出生于中*广东省。毕业于天津理工大学。曾从事系统维护工作,长期参与开源贡献。目前在日本求学,*攻通信协议与网络*方向。