《深入理解计算机系统》CSAPP第3版术语索引表

《深入理解计算机系统》几乎做到了只讲对程序员“有用的”原理,所以这本书性价比非常高。并没有在体系结构和操作系统的许多实现问题上纠缠。
第三版的英文原版是有index表的,中文没有。这里刷中文书的同时,随手记一下。不用字典序,用页码序。方便自己进行记录和知识回顾。不解释术语,忘了就翻书或search online
我刷CSAPP的2、3、4三章没怎么做题,算是不认真的,不要学我

目录

  • 第1章 计算机系统漫游
  • 第2章 信息的表示和处理
  • 第3章 程序的机器级表示
  • 第4章 处理器体系结构
  • 第5章 优化程序性能
  • 第6章 存储器层次结构
  • 第7章 链接
  • 第8章 异常控制流
  • 第9章 虚拟内存
  • 第10章 系统级I/O
  • 第11章 网络编程
  • 第12章 并发编程
  • 附录A

注:
术语出现多次的,把最主要的介绍页码放到首位
“【…】” 表示可选,例如“最大容量”一般简称“容量”,就表示成“【最大】容量”

第1章 计算机系统漫游

1.0
计算机系统(computer system) 1
1.1 计算机系统漫游
源程序(source program,源文件source file) 1
字节(Byte) 1
美国国家标准学会(American National Standards Institute,ANSI) 2
ANSI C标准(ANSI C standard) 2
国际标准化组织(International Standards Organization,ISO) 2
C标准库(C standard library) 2
K&R 2
1.2 程序被其他程序翻译成不同的格式
编译系统(compilation system) 3
GNU(GNU’s Not Unix) 4
1.4 处理器读并解释存储在内存中的指令
shell 5
字(word) 5
I/O设备(I/O devices) 5
控制器(controller) 5
适配器(adapter) 5
主板(motherboard) 6
处理器(中央处理单元central processing unit,CPU) 6
【程序】寄存器(register) 6
微体系结构(microarchitecture) 7,357,360
1.7 操作系统管理硬件
操作系统(operating system) 10
OS/360 11
Multics系统(Multics system) 52
Unix 11
Unix 4.xBSD(Berkeley Software Distribution) 11
System V Unix 11
Solaris系统(Solaris Sun Microsystems operating system) 11
IEEE(电气和电子工程师协会,Institute for Electrical and Electronics Engineers) 11
Posix标准(Posix standards) 11
标准Unix规范(Standard Unix Specification) 11
内核(kernel) 12,484
Linux 14
1.9 重要主题
Amdahl定律(Amdahl’s Law) 16
并行(parallelism) 17
线程级并发(thread-level concurrency) 17
单处理器系统(uniprocessor system) 17
多处理器系统(multiprocessor system) 17
多核处理器(many-core processor) 17,325,417
超线程(hyperthreading,同时多线程simultaneous multi-threading) 17,111
抽象(Abstractions) 19
虚拟机(virtual machine) 19

第2章 信息的表示和处理

2.0
位(bit) 22
解释(interpretation) 22
无符号(unsigned)编码 22
浮点数(floating-point)编码 22
ANSI C 24,2
ISO C90 24
ISO C99 24
ISO C11 24
GCC(GNU Compiler Collection,GUN编译器套装) 24,4
2.1 信息存储
地址(address) 24
程序对象(program object) 24,582
字长(word size) 27,5
标称大小(nominal size) 27
小端法(little endian) 29
大端法(big endian) 29
双端法(bi-endian) 29
Unicode 34
UTF-8 34
布尔代数(Boolean algebra) 35
位向量(bit vectors) 35,685
布尔环(Boolean ring) 36
2.2 整数表示
补码(two‘s-complement) 44,22
反码(Ones’ Complement) 47
原码(Sign-Magnitude) 47
零扩展(zero extension) 54
符号扩展(sign extension) 54
2.3 整数运算
无限精度(arbitrary size) 60
溢出(overflow) 61,22
偏置(biasing)(整数除法向上取整、浮点数阶段字码) 73,79
2.4 浮点数
IEEE浮点 75
偏置(biased) 79
逐渐溢出(gradual underflow) 79
舍入(rounding) 83,75
向偶数舍入(round-to-even,向被最接近的值舍入round-to-nearest) 83
确界(guaranteed bound) 83
向零舍入(round-toward-zero) 83
向下舍入(round-down) 83
向上舍入(round-up) 83
整数不确定(integer indefinite)值 86

第3章 程序的机器级表示

3.0
机器代码(machine code) 109
汇编代码(assembly code) 109
逆向工程(reverse engineering) 109
IA32编程(IA32 programming) 110
x86 110
3.1 历史观点
8086 111
80286 111
i386 111
i486 111
Pentium 111
PentiumPro 111
Pentium/MMX 111
Pentium II 111
Pentium III 111
Pentium 4 111
Pentium 4E 111
Core 2 111
Core i7 111
摩尔定律(Moore’s Law) 112
3.2 程序编码
目标代码(object-code) 113
程序计数器(PC,program counter) 113,6
整数寄存器文件(register file) 114
向量寄存器(vector register) 114,376
反汇编器(disassembler) 115,30
OBJDUMP(object dump)程序 115,496
ATT格式(ATT format)汇编代码 118
Intel格式(Intel format)汇编代码 118
3.3 数据格式
双字(double words) 119
四字(quad words) 119
3.4 访问信息
通用目的寄存器(general-purpose registers) 119
操作数(operand) 121
立即数(immediate) 121
内存引用(memory reference) 121
基址(base) 121
变址(index) 121
指令类(instruction classes) 122
3.5 算术和逻辑操作
加载有效地址(load effective address) 129
八字(oct word) 133
3.6 控制
条件码寄存器(condition code register) 135,114
跳转(jump) 138
标号(label) 138
直接跳转(direct jump) 139
间接跳转(indirect jump) 139
PC相对的(PC-relative) 140
条件传送指令(conditional move instruction) 145,379
分支预测逻辑(brunch prediction logic) 146
多重分支(multiway branching) 159
跳转表(jump table) 159
3.7 过程
过程(procedure) 164
栈帧(stack fram) 164
返回地址(return address) 165
叶子过程(leaf procedure) 165
调用者(caller) 173
被调用者(callee) 173
被调用者保存寄存器(callee-saved registers) 173
调用者保存寄存器(caller-saved registers) 173
3.8 数组分配和访问
C语言变长数组(variable-size arrays) 181
3.9 异质的数据结构
结构(structure) 183
联合(union) 183
字段(field) 183
对齐限制(alignment restrictions) 189
3.10 在机器级程序中将控制与数据结合起来
GDB(GUN debugger) 193
DDD(debugger with graphical user interface) 194
缓冲区溢出(buffer overflow)【错误bug】 195,610
攻击代码(exploit code) 197
蠕虫(worm) 198
病毒(virus) 198
安全单一化(security monoculture) 198
栈随机化(stack randomization) 198
地址空间布局随机化(Address-Sapce Layout Randomization, ASLR) 198
栈破坏检测(stack corruption detection) 199
空操作雪橇(nop sled) 199
栈保护者(stack protector) 199
金丝雀值(canary value,哨兵值guard value) 199
段寻址(segmented addressing) 200
alloca 201
帧指针(frame pointer,基指针base pointer) 203
3.11 浮点代码
浮点体系结构(floating-point architecture) 204
媒体指令(media instructions,单指令多数据single instruction, multiple data,SIMD) 204,376,19
MMX 204
SSE 204,376
AVX2(Advanced Vector Extension) 204,376
截断(truncation) 207
3.12 小结
Java字节代码(Java byte code) 216
及时编译(just-in-time compilation) 216,201

第4章 处理器体系结构

4.0
指令集体系结构(Instruction Set Architecture,ISA,指令集架构) 241,113,6
流水线化的处理器(pipelined processor) 244
4.1 Y86-64指令集体系结构
程序员可见状态(programmer-visible state) 245
状态码Stat(status code Stat) 245
寄存器文件(register file) 247,7,360
寄存器指示符字节(register specifier byte) 247
复杂指令集计算机(CISC) 249
精简指令集计算机(RISC) 249
汇编器伪指令(assembler directives) 253
指令集模拟器(instruction set simulator) 253
4.2 逻辑设计和硬件控制语言HCL
硬件控制语言(Hardware Control Language, HCL) 256,244
硬件描述语言(Hardware Description Language,HDL) 257
Verilog 257
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language) 257
逻辑合成程序(logic synthesis program) 257,322
逻辑门(logic gates) 257
计算块(computational block) 257
组合电路(combinational circuits) 257
多路复用器(multiplexo, MUX) 258
情况表达式(case expression) 259
算术/逻辑单元(ALU) 261,7
时序电路(sequential circuit) 262
时钟(clock) 262
时钟寄存器(clocked register,硬件寄存器hardware register) 262
读端口(read port) 263
写端口(write port) 263
多端口随机访问存储器(multiported random access memory) 263
4.3 Y86-64的顺序实现
SEQ(sequential顺序的)处理器 264
阶段(stage) 264,361
取值(fetch) 264
译码(decode) 264
执行(execute) 264
访存(memory) 265
写回(write back) 265
更新PC(PC update) 265
硬件单元(hardware units) 272
控制逻辑块(control logic blocks) 274
4.4 流水线的通用原理
流水线(pipelining) 282,19,146,361,379
流水线图(pipeline diagram) 283
每秒千兆条指令(giga-instructions per second,GIPS) 283
流水线寄存器(pipeline register) 284
数据相关(data dependency) 287,295
控制相关(control dependency) 288,295
4.5 Y86-64的流水线实现
SEQ+【处理器】 289
乱序处理技术(out-of-order processing technique) 289
电路重定时(circuit retiming) 289
分支预测(branch prediction) 294,358
总是选择(always taken)分支的预测策略 294
从不选择(never taken,NT)策略 294
反向选择、正向不选择(backward taken,forward not-taken,BTFNT)的策略 294
冒险(hazard,冲突) 295,244
数据冒险(data hazard) 295
控制冒险(control hazard) 295
自我修改代码(self-modifying code) 298,324
暂停(stalling) 298,317
气泡(bubble) 299,317
数据转发(data forwarding,转发,旁路bypassing) 300
PIPE处理器 303
加载/使用冒险(load/use hazard) 303
加载互锁(load interlock) 304
取消(cancel,指令排除instruction squashing) 306
异常指令(excepting instruction) 306
复位配置(reset configuration) 317
形式化验证(formal verification) 321
符号方法(symbolic methods) 321
字段可编程的门阵列(field-programmable gate array,FPGA)硬件 322
CPI(Cycles Per Instruction,每指令周期数) 322
加载处罚(load penalty in CPI) 322
预测错误分支处罚(mispredicted branch penalty) 322,379
返回处罚(return penalty in CPI) 322
缺页(page fault)异常信号 325
超标量(superscalar)操作 325
每周期执行指令的平均数(the average number of insturctions executed per cycle, IPC) 325

第5章 优化程序性能

5.0
妨碍优化的因素(optimization blocker) 341,344
代码剖析工具(profiler) 342
5.1 优化编译器的能力和局限性
优化级别(optimization level) 342
安全的优化(safe optimization) 343
内存别名使用(memory aliasing) 343
副作用(side effect) 344,476
内联函数替换(inline substitution,内联inlining) 344
5.2 表示程序性能
每元素的周期数(Cycles Per Element,CPE) 345
千兆赫兹(GHz) 345
纳秒(nanosecond, 1 0 − 9 10^{-9} 109秒) 345
皮秒(ps,微微秒picosecond, 1 0 − 12 10^{-12} 1012秒) 345,283
前置和(prefix sum) 345
循环展开(loop unrolling) 346
最小二乘拟合(least squares fit) 347
5.3 程序实例
参考机(reference machine) 349
5.4 消除循环的低效率
代码移动(code motion) 350
渐近低效率(asymptotic inefficiency) 352
5.7 理解现代处理器
指令级并行 357,18,342
延迟界限(latency bound) 357,362
吞吐量界限(throughput bound) 357,362
超标量(super-scalar)处理器 357,19
乱序(out-of-order)执行 357,325
指令控制单元(Instruction Control Unit,ICU) 357
执行单元(Execution Unit,EU) 357
按序(in-order) 357
投机执行(speculative execution) 358,379
取指控制(fetch control) 358
指令译码(instruction decoding) 358
微操作(micro-operation) 358
功能单元(functional units) 359
数据高速缓存(data cache) 359
预测错误(misprediction) 359
退役单元(retirement unit) 360
退役(retired) 360
清空(flushed) 360
寄存器重命名(register renaming) 360
延迟(latency) 361,282
发射时间(issue time) 361
容量(capacity) 361
完全流水线化的(fully pipelined) 361
吞吐量(throughput) 361,282
图形数据流(data-flow)表示法 362,342
关键路径(critical path) 362,342
5.9 提高并行性
重新结合变换(reassociation transformation) 373
5.10 优化合并代码的结果小结
标量(scalar)代码 377
5.11 一些限制因素
寄存器溢出(spilling) 378
5.12 理解内存性能
存储(store operation) 383
写/读相关(write/read dependency) 383
存储缓冲区(store buffer) 384,382
内存子系统(memory subsystem) 386
5.14 确认和消除性能瓶颈
代码剖析程序(code profiler) 388
剖析(profiling) 388
基准数据(benchmark data) 388
GPROF 388
包装函数(wrapper function) 389,445,492
哈希桶(hash bucket) 389
间隔计数(interval counting) 389
n-gram 390
bigram 390
负载(load) 391
渐近性能(asymptotic performance) 392
5.15 小结
VTUNE程序开发系统(VTUNE program development system) 393
VALGRIND 393
基本块(basic block) 393
累积变量扩展(accumulator variable expansion) 393
树高度减少(tree height reduction) 393

第6章 存储器层次结构

6.0
存储器系统(memory system) 399
主存储器(main memory) 399,6
6.1 存储技术
随机访问存储器(Random-Access Memory,RAM) 400
静态随机访问存储器(SRAM,Static RAM) 400,9
双稳态的(bistable) 400
亚稳态的(metastable) 400
动态随机存取存储器(DRAM) 400,6
毫微微法拉(femtofarad) 400
纠错码(error-correcting codes) 400
超单元(supercell) 401
引脚(pin) 401
内存控制器(memory controller) 401
行访问选通脉冲(Row Access Strobe,RAS) 401
列访问选通脉冲(Column Access Strobe,CAS) 401
内存模块(memory module) 402
双列直插内存模块(Dual Inline Memory Module,DIMM) 402
快页模式DRAM(Fast Page Mode DRAM,FPM DRAM) 403
扩展数据输出DRAM(Extended Data Out DRAM,EDO DRAM) 403
同步DRAM(Synchronous DRAM,SDRAM) 404
双倍数据速率同步DRAM(Double Data-Rate Synchronous DRAM,DDR SDRAM) 404
视频RAM(Video RAM,VRAM) 404
帧缓冲区(frame buffers) 404,400
易失的(volatile) 404
非易失性存储器(nonvolatile memory) 404
只读存储器(Read-Only Memory,ROM) 404
可编程ROM(Programmable Rom,PROM) 404
可擦写可编程ROM(Erasable Programmable ROM,EPROM) 404
电子可擦除PROM(Electrically Erasable PROM,EEPROM) 404
闪存(flash memory)【芯片】 404,414
固态硬盘(Solid State Disk,SSD) 404
固件(firmware) 404
BIOS(基本输入/输出系统) 404
【I/O】总线(bus) 405,5,411
总线事务(bus transaction) 405
读事务(read transaction) 405
写事务(write transaction) 405
I/O桥接器(I/O bridge) 405
系统总线(system bus) 405
内存总线(memory bus) 405
北桥(northbridge) 405
南桥(southbridge) 405
前端总线(Front Side Bus,FSB) 405
超传输(HyperTransport)互联 405
总线接口(bus interface) 405
磁盘(disk,磁盘驱动器disk driver,旋转磁盘rotating disk) 407
盘片(platter) 407
表面(surface) 407
主轴(spindle) 407
旋转速率(rotational rate) 407
转每分钟(Revolution Per Minute,RPM) 407
磁道(track) 407
扇区(sector) 407
间隙(gap) 407
柱面(cylinder) 407
【最大】容量(maximum capacity) 408
记录密度(recording density) 408
磁道密度(track density) 408
面密度(areal density) 408
多区记录(multiple zone recording) 408
记录区(recording zone) 408
千兆字节(GB) 408
兆兆字节(TB) 408
读/写头(read/write head) 409
传动臂(actuator arm) 409
寻道(seek) 409
读/写头冲撞(head crash) 409
访问时间(access time) 409
寻道时间(seek time) 409
旋转时间(rotational latency) 409
传送时间(transfer time) 409
逻辑块(logical blocks) 411
磁盘控制器(disk controller) 411
格式化(formatted) 411
外围设备互联(Peripheral Component Interconnect,PCI)总线 411
通用串行总线(Universal Serial Bus,USB)控制器 411
图形卡(graphics card,适配器adapter) 411
主机总线适配器(host bus adapter) 412
主机总线接口(host bus interface) 412
SCSI主机总线适配器(SCSI 控制器,SCSI controller) 412
SATA适配器(SATA adapters) 412
网络适配器(network adapters) 412,643
扩展槽(expansion slots) 412
PCIe(PCI express)总线 412
内存映射I/O(memory-mapped I/O) 413
I/O端口(I/O port) 413
直接内存访问(direct memory access,DMA) 413,8
DMA传送(DMA transfer) 414
固态硬盘(Solid State Disk,SSD) 414
闪存翻译层(flash translation layer) 414
IOPS(I/O operations per second,每秒I/O操作数) 415
平均磨损(wear leveling) 415
有效周期时间(effective cycle time) 416
能量墙(power wall) 417
处理器核(processor cores) 417
6.2 局部性
局部性(locality) 418,9,399,565
局部性原理(principle of locality) 418
时间局部性(temporal locality) 418
空间局部性(spatial locality) 418
步长为1的引用模式(stride-1 reference pattern) 419
顺序引用模式(sequential reference pattern) 419
步长为k的引用模式(stride-k reference pattern) 419
6.3 存储器层次结构
存储器层次结构(memory hierarchy) 421
安德鲁文件系统(Andrew File System,AFS) 422
网络文件系统(Network File System,NFS) 422
分布式文件系统(distributed file system,DFS) 422
磁带(tapes) 422
磁带机器人(tape robots) 422
缓存【过程】(cashing) 422
数据块(data blocks,连续的数据对象组块contiguous chunks of data objects) 422,426
传送单元(transfer unit) 423
缓存命中(cache hit) 423
缓存不命中(cache miss) 423,324
替换(replacing,驱逐evicting) 423
牺牲块(victim block) 423
替换策略(replacement policy) 423
随机替换策略(random replacement policy) 423
最近最少被使用(least recently used,LRU)替换策略 423,434
冷缓存(cold cache) 423
强制性不命中(compulsory miss,冷不命中,cold miss) 423
暖身(warmed up)
放置策略(placement policy) 423
冲突不命中(conflict miss) 424
容量不命中(capacity miss) 424
缓冲区缓存(buffer cache) 425
磁盘缓存(disk cache) 425
控制器固件(controller firmware) 425
网络缓存(network cache) 425
浏览器缓存(browser cache) 425
Web页(Web page) 425
Web缓存(Web cache) 425
Web代理服务器(Web proxy server) 425
6.4 高速缓存存储器
高速缓存存储器(cache memory,简称cache或高速缓存,SRAM高速缓存存储器) 425,9,324,358,382,399,418,422
L1高速缓存(L1 cache,一级缓存,level 1cache) 425,9
L2高速缓存(L2 cache) 425,9
L3高速缓存(L3 cache) 425,9
高速缓存组(cache set) 425
高速缓存行(cache line) 426
有效位(valid bit) 426,563
标记位(tag bit) 426
组索引位(set index bit) 426
块偏移位(block offset bit) 426
直接映射高速缓存(direct-mapped cache) 427
组选择(set selection) 428
行匹配(line matching) 428
字抽取(word extraction) 428
抖动(thrash) 431,565
组相联高速缓存(set associative cache) 433
相联存储器(associative memory) 433
最不常使用(Least-Frequently-Used,LFU)替换策略 434
全相联高速缓存(fully associative cache) 434
写命中(write hit) 437
直写(write-through) 437
写回(write-back) 437
修改位(脏位,dirty bit) 437,579
写不命中(write misses) 437
写分配(write-allocate) 437
非写分配(not-write-allocate) 437
i-cache(指令高速缓存) 438
d-cache(程序数据高速缓存) 438
统一的高速缓存(unified cache) 438
不命中率(miss rate) 439
命中率(hit rate) 439
命中时间(hit time) 439
不命中处罚(miss penalty) 439
写缓冲区(write buffer) 439
6.5 编写高速缓存友好的代码
高速缓存友好(cache friendly) 440
6.6 综合:高速缓存对程序性能的影响
读吞吐量(read throughput,读带宽read bandwidth) 444
紧密程序循环(tight program loop) 444
存储器山(memory mountain) 445
硬件预取(prefetching)机制 446,450
分块(blocking) 450

第7章 链接

7.0
链接(linking) 464
编译时(compile time) 465
加载时(load time) 465
运行时(run time) 465
分离编译(separate compilation) 464
7.1 编译器驱动程序
编译器驱动程序(compiler driver) 465
预处理器(preprocessor) 465,3
编译器(compiler) 465,3
汇编器(assembler) 465,3
链接器(linker) 465,3
翻译器(translator) 465
加载器(loader,execve) 466,464,482,484
7.2 静态链接
静态链接器(static linker) 466
节(section) 466,467
静态变量(static variable) 466
符号引用(symbol reference) 466
符号定义(symbol definition) 466
7.3 目标文件
目标模块(object module) 466
目标文件(object file) 466
a.out格式(a.out format) 467
可移植可执行(Portable Executable,PE)格式 467
Mach-O格式 467
可执行可链接格式(Executable and Linkable Format,ELF) 467
7.4 可重定位目标文件
可重定位目标文件(reloacatable object file,可重定位目标程序,relocatable object program) 467,4,465,466
ELF头(ELF header) 467
节头部表(section header table) 467
条目(entry) 467
块存储开始(Block Storage Start,BSS) 468
7.5 符号和符号表
符号(symbol) 468,466
全局符号(global symbols) 468
非静态的(nonstatic) 468
外部符号(external) 468
局部符号(local symbols) 468
伪节(pseudosection) 469
GNU READELF程序 469,496
7.6 符号解析
符号解析(symbol resolution) 470,466
重载方法(overloaded methods) 471
重整(mangling) 471
恢复(demangling) 471
多重定义的全局符号(duplicate symbol name) 471
强符号(strong symbol) 471
弱符号(weak symbol) 471
静态库(static library) 475
存档文件(archive file) 476
AR工具(AR tool) 476,496
7.7 重定位
重定位(relocation) 479,466
重定位条目(relocation entry) 479,466
有效地址(effective address) 479,121
小型代码模型(small code model) 479
中型代码模型(medium code model) 479
大型代码模型(large code model) 479
PC相对引用(PC-relative reference) 480
绝对引用(absolute reference) 481
7.8 可执行目标文件
可执行目标文件(executable object file,可执行目标程序,executable object program) 483,3,465,465
入口点(entry point) 483
完全链接的(fully linked) 483
段头部表(segment header table) 483
程序头部表(program header table) 483
代码段(code segment,只读代码段read-only memory segment) 484
数据段(data segment,读/写段read/write memory segment) 484
7.9 加载可执行目标文件
加载(loading) 464
7.10 动态链接共享库
共享库(shared library,共享目标shared object,共享对象) 486,466
动态链接(dynamic linking) 486
动态链接器(dynamic linker) 486
DLL(动态链接库dynamic link libraries) 486
7.11 从应用程序中加载和链接共享库
Java本地接口(Java Native Interface,JNI) 489
7.12 位置无关代码
位置无关代码(position-independent code,PIC) 489,486
全局偏移量表(Global Offset Table,GOT) 490
延迟绑定(lazy binding) 490
过程链接表(Procedure Linkage Table,PLT)
7.13 库打桩机制
库打桩(library interpositioning) 492
目标函数(target function) 492
编译时打桩(Compile-Time Interpositioning) 492
链接时打桩(Link-Time Interpositioning) 492
运行时打桩(Run-Time Interpositioning) 494

第8章 异常控制流

8.0
控制转移(control transfer) 501
控制流(flow of control,control flow) 501
异常控制流(Exceptional Control Flow,ECF) 501
非本地跳转(nonlocal jumps) 502
8.1 异常
异常(exception) 502
处理器状态(processor’s state) 502
事件(event) 502
异常表(exception table) 502
异常处理程序(exception handler) 502,251,306
硬件异常(hardware exception) 502
软件异常(software exception) 502
异常号(exception number) 503
异常表基址寄存器(exception table base register) 503
中断(interrupt) 504
系统调用(system call,陷阱trap) 504,12,501
故障(fault) 504
终止(abort) 504
异步(asynchronously) 504
中断处理程序(interrupt handler) 504
同步(synchronize) 504,541,701
故障指令(faulting instruction) 504
除法错误(divide error) 506
浮点异常(floating exception) 506
一般保护错误(general protection fault) 506
机器检查(machine check) 506
段故障(segmentation fault,段故障) 506,567
机器检查(machine check) 506
系统级函数(system-level functions) 506
8.2 进程
进程(process) 508,11
执行中程序的实例(an instance of a program in execution) 508
上下文(context) 508,12,511
逻辑控制流(logical control flow,逻辑流logical flow) 508
抢占(preempted,暂时挂起temporarily suspended) 509
并发流(concurrent flow) 509,681
并发地运行(run concurrently) 509
并发(concurrency) 509,11,17,681
多任务(multitasking,时间分片time slicing) 509
时间片(time slice) 509
并行流(parallel flow) 509
并行地运行(running in parallel) 509
并行地执行(parallel execution) 509
私有地址(private address space) 509
模式位(mode bit) 510
内核模式(kernel mode,超级用户模式,supervisor mode) 510,503
用户模式(user mode) 510,503
特权指令(privileged instruction) 510
/proc文件系统(/proc filesystem) 510
上下文切换(context switch) 511,11,12
进程表(process table) 511
调度(scheduling) 511
调度器(scheduler) 511
陷阱处理程序(trap handler) 511
8.3 系统调用错误处理
错误报告函数(error-reporting function) 512
错误处理包装【函数】(error-handling wrappers) 512,729
8.4 进程控制
进程ID(process ID,PID) 513
【进程】状态(states) 513
运行(running) 513
停止(stopped) 513
挂起(suspended) 513
终止(terminated) 513
退出状态(exit status) 513
父进程(parent process) 513
子进程(child process) 513
进程图(process graph) 515
拓扑排序(topological sort) 515
回收(reaped) 516
僵死进程(zombie) 516
等待集合(wait set) 516
非确定性(nondeterministic) 519
环境变量列表(environment variable list) 521
读/求值(read/evaluate) 524
后台(background) 524
前台(foreground) 524
8.5 信号
信号(signal) 526,501,513
磁芯存储器(core memory) 527
转储内存(dumping core) 527
信号处理程序(signal handler) 528,251,531
待处理信号(pending signal) 528
阻塞(block) 528
信号掩码(signal mask)528
进程组(process group) 528
进程组ID(process group ID) 528
作业(job) 529
Unix管道(Unix pipe) 529,626,684
设置信号处理程序(installing the handler) 531
捕获信号(catching the signal) 531
处理信号(handling the signal) 531
隐式阻塞机制(implicit blocking mechanism) 532
显式阻塞机制(explicit blocking mechanism) 532
异步信号安全的函数(async-signal-safe functions) 534
全局标志(global flag) 536
原子的(atomic,不可中断的,uninterruptible,原子性atomicity) 536,643
慢速系统调用(slow system calls) 540
调用环境(calling environment) 547
8.6 非本地跳转
非本地跳转(nonlocal jump) 546

第9章 虚拟内存

9.0
虚拟内存(virtual memory) 559,12,24,424
9.1 物理和虚拟地址
物理地址(physical address) 550,245
物理寻址(physical addressing,PA) 550
虚拟寻址(virtual addressing) 560
虚拟地址(virtual addresses,VA) 560,12,24,245
地址翻译(address translation) 560
9.2 地址空间
地址空间(address space) 560,509
线性地址空间(linear address) 561
虚拟地址空间(virtual address space) 561
物理地址空间(physical address space) 561
9.3 虚拟内存作为缓存的工具
虚拟页(virtual page,VP) 561,201
物理页(physical page,PP,页帧page frame) 561
SRAM缓存(SRAM cache) 562
DRAM缓存(DRAM cache) 562
页表(page table) 562,511
页表条目(page table entry,PTE) 562
页命中(page hit) 563
缺页(page fault) 564
缺页异常处理程序(page fault exception handler) 564
交换(swapping,页面调度paging) 565
换入(swapped in,页面调入paged in) 565
换出(swapped out,页面调出paged out) 565
按需页面调度(demand paging) 565
分配页面(allocating page) 565
活动页面(active page) 565
工作集(working set,常驻集合resident set) 565,424
9.5 虚拟内存作为内存保护的工具
许可位(permission bits) 567
9.6 地址翻译
内存管理单元(Memory Management Unit,MMU) 568,425,560
页表基址寄存器(Page Table Base Register,PTBR) 568
虚拟页面偏移(Virtual Page Offset,VPO) 568
虚拟页号(Virtual Page Number,VPN) 569
物理页号(Physical Page Number,PPN) 569
物理页面偏移(Physical Page Offset,PPO) 569
页表条目地址(Page Table Entry Address,PTEA) 569
翻译后备缓冲器(Translation Look-aside Buffer,TLB) 570,324,425,435
TLB索引(TLB index,TLBI) 571
TLB标记(TLB tag,TLBT) 571
多级页表(multi-level page tables) 571
9.7 案例研究:Intel Core i7/Linux内存系统
处理器封装(processor package) 576
快速通道(QuickPath)互联 577,405
引用位(reference bit) 579
区域(areas,段segments) 580
任务结构(task structure) 581
9.8 内存映射
内存映射(memory mapping) 582,566
匿名文件(anonymous file) 582
请求二进制零的页(demand-zero pages) 582
交换文件(swap file,交换空间swap space,交换区域swap area) 582
私有对象(private object) 583
共享区域(shared area) 583
私有区域(private area) 583
写时复制(copy-on-write) 583
私有的写时复制(private copy-on-write) 584
9.9 动态内存分配
动态内存分配器(dynamic memory allocator) 587
堆(heap) 587
已分配的(allocated) 587
空闲的(free) 587
显式分配器(explicit allocator) 587
隐式分配器(implicit allocator) 587
malloc 588
calloc 588
realloc 588
峰值利用率(peak utilization) 591
有效载荷(payload) 591,644
聚集有效载荷(aggregate payload) 591
碎片(fragmentation) 591
内部碎片(internal fragmentation) 591
外部碎片(external fragmentation) 591
填充(padding) 592
隐式空闲列表(implicit free list) 593
最小块大小(minimum block size) 593
放置策略(placement policy) 594
首次适配(first fit) 594
下一次适配(next fit) 594
最佳适配(best fit) 594
假碎片(fault fragmentation) 594
合并(coalescing) 595
立即合并(immediate coalescing) 595
推迟合并(deferred coalescing) 595
边界标记(boundary tag) 595
脚部(footer)【边界标记the boundary tag】 595
序言块(prologue block) 597
结尾块(epilogue block) 597
块指针(block pointer) 599
显式空闲列表(explicit free list) 603
后进先出(LIFO) 603
地址顺序(address order) 603
分离存储(segregated storage) 604
大小类(size classes) 604
简单分离存储(simple segregated storage) 604
分离适配(segregated fit) 604
伙伴系统(buddy system) 605
9.10 垃圾收集
垃圾收集器(garbage collector) 606,587
垃圾(garbage) 606
垃圾收集(garbage collection) 606,587
Lisp 606,60
Mark&Sweep(标记&清除)算法 606
【有向directed】可达图(reachability graph) 606
根结点(root node) 606
堆结点(heap node) 606
可达的(reachable) 606
保守的垃圾收集器(conservative garbage collector) 607
Mark&Sweep的标记阶段(mark stage in Mark&Sweep) 607
Mark&Sweep的清除阶段(sweep stage in Mark&Sweep) 607
守护进程(daemons) 613

第10章 系统级I/O

10.0
输入/输出(I/O) 622
标准I/O库(standard I/O library) 622
10.1 Unix I/O
文件(file) 622,14
Unix I/O 622
【文件file】描述符(descriptor) 622,586
标准输入(standard input) 622
标准输出(standard output) 622
标准错误(standard error) 622
文件位置(file position) 623
10.2 文件
类型(type) 623
普通文件(regular file) 582,623
文本文件(text file) 2
二进制文件(binary file) 2
文本行(text line) 623
新行符(new line character,’\n’) 623
换行符(line feed character,LF) 623
目录(directory) 623
链接(links) 623
文件名(filename) 623
父目录(parent directory) 623
命名通道(named pipe) 623
符号链接(symbolic links) 623
字符设备(character device) 623
块设备(block device) 623
目录层次结构(directory hierarchy) 623
根目录(root directory) 623
当前工作目录(current working directory) 624
路径名(pathname) 624
绝对路径名(absolute pathname) 624
相对路径名(relative pathname) 624
10.4 读和写文件
不足值(short count) 626
10.5 用RIO包健壮地读写
RIO(Robust I/O)包 626
读缓冲区(read buffer) 627
10.6 读取文件元数据
元数据(metadata) 632
10.7 读取目录内容
目录流(directory stream) 633
10.8 共享文件
描述符表(descriptor table) 634
文件表(file table) 634,511
inode 633
引用计数(reference count) 634
v-node表(v-node table) 634
10.9 I/O重定向
I/O重定向(I/O redirection) 637
10.10 标准I/O
标准I/O库(standard I/O library) 638
流(stream) 638
流缓冲区(stream buffer) 638
10.11 综合:我该使用哪些I/O函数?
全双工的(full duplex) 639,647,651

第11章 网络编程

11.1 客户端-服务器编程模型
客户端-服务器模型(client-server model) 642
服务器(server) 642
客户端(client) 642
资源(resource) 642
服务(service) 642
事务(transaction) 642
响应(response) 642
主机(hosts) 642
11.2 网络
计算机网络(computer network) 643
局域网(Local Area Network,LAN) 643
以太网(Ethernet) 643
以太网段(Ethernet segment) 643
集线器(hub) 643
【硬件】端口(port) 643
帧(frame) 644
头部(header) 644
网桥(bridge) 644
桥接以太网(brideged Ethernet) 644
路由器(router) 644
互联网(internet) 644
广域网(Wide-Area Network,WAN) 644
全球IP因特网(global IP Internet,Internet) 645
源主机(source host) 645
目标主机(destination host) 645
协议软件(protocol software) 645
协议(protocol) 645
命名机制(naming scheme) 645
互联网络地址(internet address) 645
传送机制(delivery mechanism) 645
包(package) 645,647
封装(encapsulation) 645
11.3 全球IP因特网
TCI/IP协议(Transmission Control Protocol/Internet Protocol, 传输控制协议/互联网络协议) 646
数据报(datagram) 647,657
UDP(Unreliable Datagram Protocol,不可靠数据报协议) 647
IP地址(IP address) 647
因特网域名(Internet domain names) 647,649
因特网协议版本4(Internet Protocol Version 4,IPv4) 647
因特网工程任务组织(Internet Engineering Task Force,IETF) 647
因特网协议版本6(Internet Protocol Version 6,IPv6) 647
IP地址结构(IP address structure) 647
网络字节顺序(network byte order) 647
主机字节顺序(host byte order) 647
点分十进制表示法(dotted decimal notation) 648
子域(subdomain) 649
一级域名(first-level domain name) 649
ICANN(Internet Corporation for Assigned Names and Numbers,因特网分配名字数字协会) 649
二级域名(second-level domain) 649
DNS(Domain Name System,域名系统) 649
主机条目结构(host entry structure) 649
NSLOOKUP程序 650
回送地址(loopback address) 650
因特网软件协会(Internet Software Consortium,www.isc.org) 650
连接(connections) 651
点对点(point-to-point) 651
可靠的(reliable) 651
套接字(socket) 651,623,639
套接字地址(socket address) 651
交换机(switch) 651
【软件】端口(port) 651
临时端口(ephemeral port) 651
知名端口(ephemeral port) 651
SMTP 651
套接字对(socket pair) 651
高级研究计划署(Advanced Research Projects Agency,APRA) 652
国家科学基金会(National Science Foundation,NSF) 652
11.4 套接字接口
套接字接口(socket interface,伯克利套接字Berkeley sockets) 652,647,653
套接字描述符(socket descriptors) 654,639
主动套接字(active socket) 655
监听套接字(listening socket) 655
监听描述符(listening descriptor) 655
已连接描述符(connected descriptor) 655
原始套接字(raw sockets) 657
通配符地址(wildcard address) 658
迭代服务器(iterative server) 664
并发服务器(concurrent server) 664,681
EOF(end-of-file) 665,623
11.5 Web服务器
HTTP(Hypertext Transfer Protocol,超文本传输协议) 665,651
【Web】浏览器(Web browser) 665,425
【Web】内容(content) 665
FTP 665
HTML(Hypertext Markup Language,超文本标记语言) 665
超链接(hyperlink) 665
万维网(World Wide Web) 665,417
Web服务器(Web server) 665
MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展) 666
静态内容(static content) 666
服务静态内容(serving static content) 666
动态内容(dynamic content) 666,487
服务动态内容(serving dynamic content) 666
URL(Universal Resource Locator,统一资源定位符) 666
HTTP事务(HTTP transaction) 667
TELNET程序 667
回车(carriage return,CR,’\r’) 667
HTTP请求(HTTP request) 667
请求行(request line) 667
请求报头(request header) 667
方法(method) 667
GET方法(GET method) 667
URI(Uniform Resource Identifier,统一资源标志符) 668
持久连接(persistent connection) 668
代理缓存(proxy cache) 668
原始服务器(origin server) 668
代理链(proxy chain) 668
HTTP响应(HTTP response) 668
响应行(response line) 668
响应报头(response header) 668
响应主体(response body) 668
状态码(status-code) 668
状态消息(status message) 668
CGI(通用网关接口Common Gateway Interface) 669
CGI程序(CGI program,CGI脚本CGI script) 669,487,637
POST方法(POST method,HTTP POST请求HTTP POST requests) 669
请求主体(request body) 669
11.7 小结
RFCs(requests for comments,请求意见稿,Internet标准(草案))

第12章 并发编程

12.0
并发程序(concurrent program) 681
12.1 基于进程的并发编程
进程间通信(interprocess communication,IPC) 684,681
Unix IPC 684
先进先出(FIFOs) 684
系统V共享内存(System V shared memory) 684
系统V信号量(System V semaphores)
12.2 基于I/O多路复用的并发编程
I/O多路复用(I/O multiplexing) 681
描述符集合(descriptor sets) 685
读集合(read set) 685
准备好可以读(ready for reading) 685
准备好集合(ready set) 685
事件驱动(event-driven) 686
状态机(state machine) 687,681
状态(state) 687
输入事件(input event) 687
转移(转换,transition) 687,701
自循环(self-loop) 687
粒度(granularity) 690
12.3 基于线程的并发编程
线程(thread) 691,12,682
线程上下文(thread context) 691,696
线程ID(Thread ID,TID) 691
主线程(main thread) 691
对等线程(peer thread) 691
对等【线程】池(pool of peers) 691
Posix线程(Pthreads) 691
线程例程(thread routine) 692
12.4 多线程程序中的共享变量
全局变量(global variables) 697
本地自动变量(local automatic variables) 697
本地静态变量(local static variables) 697
共享的(shared) 696,698
12.5 用信号量同步线程
同步错误(synchronization error) 698
进度图(progress graph) 701
初始状态(initial state) 701
临界区(critical section) 701
互斥的访问(mutually exclusive access) 701
互斥(mutual exclusion) 701
不安全区(unsafe region) 701
安全轨迹线(safe trajectory) 701
不安全轨迹线(unsafe trajectory) 701
信号量(semaphore) 702
信号量不变性(semaphore invariant) 702
二元信号量(binary semaphore) 703
互斥锁(mutex) 703
加锁(locking) 703
解锁(unlocking) 703
占用(holding) 703
计数信号量(counting semaphore) 703
禁止区(forbidden region) 704
生产者-消费者问题(producer-consumer-problem) 704
有限缓冲区(bounded buffer) 704
槽(slots) 704
项目(item) 704
读者-写者问题(readers-writers problem) 706
写者(writers) 707
读者(readers) 707
第一类读者-写者问题(first readers-writers problem) 707
第二类读者-写者问题(second readers-writers problem) 707
饥饿(starvation) 707
Java监视器(Java Monitor) 708
预线程化(prethreading) 708
12.6 使用线程提高并行性
加速比(speedup) 714
强扩展(strong scaling) 715
绝对加速比(absolute speedup) 715
相对加速比(relative speedup) 715
效率(efficiency) 715
弱扩展(weak scaling) 715
12.7 其他并发问题
线程安全性(thread safety) 716
线程安全的(thread-safe) 716
线程不安全的(thread-unsafe) 716
加锁-复制(lock-and-copy) 717
可重入函数(reentrant function) 717
显式可重入的(explicitly reentrant) 718
隐式可重入的(implicitly reentrant) 718
可重入的(reentrant) 718,534
深层复制(deep copy,深拷贝) 718
竞争(race) 719,541,696
死锁(deadlock) 721
死锁状态(deadlock state) 721
死锁区域(deadlock region) 721
12.8 小结
同步原语(synchronization primitives) 723
哲学家进餐问题(dining philosophers problem) 723
打瞌睡的理发师问题(sleeping barber problem) 723
吸烟者问题(cigarette smokers problem) 723

附录A

A.1 Unix 系统中的错误处理
Unix风格的错误处理(Unix-style error handling) 729
Posix风格的错误处理(Posix-style error handling) 729
GAI风格的错误处理(GAI-style error handling) 729
A.2 错误处理包装函数
Unix风格的错误处理包装函数(Unix-style error-handling wrappers) 731
Posix风格的错误处理包装函数(Posix-style error-handling wrappers) 731
GAI风格的错误处理包装函数(UGAI-syle error-handling wrappers) 732

你可能感兴趣的:(Linux,Docker,Git,计算机系统,CSAPP,深入理解计算机系统,操作系统,体系结构)