《深入理解计算机系统》几乎做到了只讲对程序员“有用的”原理,所以这本书性价比非常高。并没有在体系结构和操作系统的许多实现问题上纠缠。
第三版的英文原版是有index表的,中文没有。这里刷中文书的同时,随手记一下。不用字典序,用页码序。方便自己进行记录和知识回顾。不解释术语,忘了就翻书或search online
我刷CSAPP的2、3、4三章没怎么做题,算是不认真的,不要学我
目录
注:
术语出现多次的,把最主要的介绍页码放到首位
“【…】” 表示可选,例如“最大容量”一般简称“容量”,就表示成“【最大】容量”
第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}
10−9秒) |
345 |
皮秒(ps,微微秒picosecond,
1
0
−
12
10^{-12}
10−12秒) |
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 |