Computer Systems(Second Edition)
深入理解计算机系统(中文版第二版)
中文版此处有售:CHINA-PUB 、 华章图书、 卓越、 当当网、 蔚蓝书店
CS:APP第二版中文版勘误表
最后修改日期:2015年09月17日(英文版更新至01/19/2015)
请将《深入理解计算机系统(第二版)》的勘误问题告诉龚奕利。
|
发现日期 |
页码行号 |
原文 |
修改后 |
指出人 |
备注 |
  |
2011.10.13 |
P15 1.线程级并发,第二行 |
时间共享 |
分时(time-sharing) |
中文版勘误 张岩 |
  |
  |
2011.07.06 |
P17 图1-18中 |
指令级结构 |
指令集结构 |
中文版勘误 Ji Bin |
第五次印刷中已修正 |
  |
2013.09.28 |
P18 参考文献说明第2行 |
Gavin |
Galvin |
英文版勘误 Kaustabh Ray |
  |
  |
2011.01.07 |
P25 2.1.2节 第一段第三行 |
虚拟地址的范围为0~2w-1 |
虚拟地址的范围为0~2w-1 |
中文版勘误 华章出版社 |
第五次印刷中已修正 |
  |
2011.10.13 |
P32上面代码下第1-2行 |
即使是完全一样的进程运行在不同的操作系统上也会有不同的编码规则 |
即使处理器完全一样,但是运行不同的操作系统,也会有不同的编码规则 |
中文版勘误 张岩 |
  |
  |
2011.06.05 |
P33 DATA:BOOL中 第4行 |
a & (b . c) |
a & (b | c) |
中文版勘误 Darren |
第五次印刷中已修正 |
  |
2011.11.18 |
P33 DATA:BOOL中 第5行 |
(a . b) & (a . c) |
(a | b)& (a | c) |
中文版勘误 刘宗浩 |
|
  |
2011.04.24 |
P35 练习题2.11 B.中 |
调用函数xor_swap |
调用函数inplace_swap |
英文版勘误 Kanak Kshetri |
第五次印刷中已修正 |
  |
2011.07.10 |
P46 第一行 |
函数B2U和B2T是如何将数值变成位模式的。 |
函数B2U和B2T是如何给位模式赋值的。 |
中文版勘误 Ji Bin |
第五次印刷中已修正 |
  |
2011.01.07 |
P46 公式2-8 |
x<2w-1 |
u<2w-1 |
中文版勘误 华章出版社 |
第五次印刷中已修正 |
  |
2011.01.07 |
P47 第二行 |
65563+-12345=53191 |
65536+-12345=53191 |
中文版勘误 华章出版社 |
第五次印刷中已修正 |
  |
2011.03.02 |
P56 练习题2.27下面 |
丹麦数学家Niels Henrik Abel |
挪威数学家Niels Henrik Abel |
英文版勘误 Dag Henning Liodden Sørbø |
第五次印刷中已修正 |
  |
2011.07.13 |
P57 公式2-13上一行 |
y ≤ 2w-1 |
y < 2w-1 |
中文版勘误 Ji Bin |
|
  |
2011.01.07 |
P57 公式2-13下一行 |
xw-12w+x |
xw-12w+x |
中文版勘误 华章出版社 |
|
  |
2011.02.01 |
P57 图2-23标题中 |
当它大于2w-1+1时,产生正溢出 |
当它大于2w-1-1时,产生正溢出 |
英文版勘误 Dominique Smulkowska |
|
  |
2011.07.14 |
P60 网络旁注DATA:TNEG中第三行 |
行位级补码非的第一种方法 |
求位级补码非的第一种方法 |
中文版勘误 Ji Bin |
第五次印刷中已修正 |
  |
2011.01.07 |
P60 最后一行 |
-2w-1·-2w-1=-22w-2 |
-2w-1·-2w-1=22w-2 |
中文版勘误 华章出版社 |
第五次印刷中已修正 |
  |
2011.01.07 |
P61 图2-26 |
虽然完整的乘积位级表示相同 |
虽然完整的乘积位级表示不相同 |
中文版勘误 华章出版社 |
第五次印刷中已修正 |
  |
2011.07.17 |
P63 2.3.6节第三段第二行中间 |
等式中的t应为u |
中文版勘误 Ji Bin |
第五次印刷中已修正 |
|
  |
2011.08.03 |
P68 2.4.1节第二段第一行 |
小数点左边的数字的权是10的正幂 |
小数点左边的数字的权是10的非负幂 |
英文版勘误 Dong Han |
  |
|
2015.05.26 |
P65 最后一行 |
对于整数x和任意y>0的y |
对于整数x和y且y>0 |
中文版勘误 chrt2000 |
  |
  |
2011.08.03 |
P68 2.4.1节第二段第一行 |
小数点左边的数字的权是10的正幂 |
小数点左边的数字的权是10的非负幂 |
英文版勘误 Dong Han |
  |
  |
2011.08.03 |
P68 2.4.1节第三段第一行 |
b-n-1 |
b-n+1 |
英文版勘误 Dong Han |
  |
  |
2011.08.03 |
P68 公式2-19下面一行 |
点左边的位的权是2的正幂 |
点左边的位的权是2的非负幂 |
英文版勘误 Dong Han |
  |
  |
2011.08.03 |
P68 图2-30中 |
b-n-1 |
b-n+1 |
英文版勘误 Dong Han |
  |
  |
2011.03.05 |
P71 图2-33 |
菱形符号表示规格化的,三角形符号表示非规格化的 |
菱形符号表示非规格化的,三角形符号表示规格化的 |
中文版勘误 Amulet |
第五次印刷中已修正 |
  |
2012.09.17 |
P73 倒数第3行 |
(1-2-n)*2-n-2k-1+2 |
(1-2-n)*2-2k-1+2 |
中文版勘误 魏成龙 |
  |
  |
2011.01.07 |
P74 第一行 |
除了最高有效位等于1以外,其他位都等于0。 |
除了最高有效位等于0以外,其他位都等于1。 |
英文版勘误 华章出版社 |
第五次印刷中已修正 |
  |
2013.09.17 |
P77 2.4.6上第8行 |
a、b和c都不等于NaN |
a、b和c都不等于NaN和INF |
英文版勘误 LU Junlin |
  |
  |
2011.07.05 |
P81 家庭作业2.60 第三行 |
unsigned put_byte(unsigned x, unsigned char b int i); |
unsigned replace_byte(unsigned x, unsigned char b, int i); |
中文版勘误 Darren |
第五次印刷中已修正 |
  |
2011.05.24 |
P81 家庭作业2.60 |
将“强制类型转换,无论是现实的还是隐式的。”从“禁止使用”类别移至“允许的运算”类别 |
英文版勘误 Yu Tanaka |
第五次印刷中已修正 |
|
  |
2013.3.5 |
P81 2.62 |
算术右移 |
逻辑右移 |
中文版勘误 谭焮 |
  |
  |
2011.05.24 |
P83 家庭作业2.68 注释第一、二行 |
Mask with least significant n bits set to 1 Examples: n = 6 --> 0x3F, n = 17 --> 0x1FFFF |
英文版及中文版勘误 Taketo Yoshida, Yili Gong |
||
  |
2013.05.01 |
P88 家庭作业2.90 C中 |
这两个22/7的近似值 |
这两个pi的近似值 |
中文版勘误 82642225 |
  |
  |
2013.05.07 |
P89 练习题2.92 |
这个函数计算|f| |
这个函数计算-f |
中文版勘误 |
  |
  |
2013.05.07 |
P89 练习题2.95第4行 |
对于函数i |
对于参数i |
中文版勘误 杨 |
  |
  |
2013.05.07 |
P89 练习题2.95第5行 |
对参数f |
对参数i |
英文版勘误 杨 |
  |
  |
2012.12.12 |
P90 家庭作业2.96,代码下第一行 |
删除“如果f是NaN,” |
中文版勘误 mofaph |
  |
|
  |
2011.02.28 |
P92 练习题2.12 |
A. x & ?0xFF |
A. x & 0xFF |
中文版勘误 李志杰 |
第五次印刷中已修正 |
|
2015.01.04 |
P96 练习题2.32答案 |
当y=TMin时,对于所有x的值,该函数的结果都不正确,而不是仅仅只有当x < 0时。 |
英文版勘误 Oswaldo Olivo |
  |
|
  |
2013.09.02 |
P97 练习题2.35答案2. |
用非零数x除以p会得到 |
用非零数x除p会得到 |
中文版勘误 穆化鑫 |
  |
|
2014.06.17 |
P98 练习题2.41答案第二段 |
首先假设m > 1....对于m = 1的情况 |
首先假设m >= 1....对于m = 0的情况 |
英文版勘误 陈立波 |
  |
  |
2011.08.18 |
P99 练习题2.44答案F. |
补码和无符号乘法有相同的位级行为 |
补码和无符号加法有相同的位级行为 |
中文版勘误 gnu_emacser |
  |
  |
2012.12.27 |
P99 练习题2.46答案 |
“把这个表示与1/10的二进制表示进行比较“一段为B小题答案,后续B变为C,C变为D。 |
中文版勘误 桂莅 |
  |
|
  |
2013.05.01 |
P101 练习题2.52答案 C中 |
表格最右列中“向上舍入”和“向下舍入”位置交换 |
中文版勘误 82642225 |
  |
|
  |
2012.11.20 |
P101 练习题2.51答案B |
x‘-0.1的二进制表示中小数点后有19个0 |
小数点后有25个0 |
中文版勘误 邵海珠 |
  |
  |
2011.07.24 |
P113 图3-3 最后一行,第一列 |
寄存器 |
存储器 |
中文版勘误 Ji Bin |
第五次印刷中已修正 |
  |
2011.07.27 |
P117 “给C语言初学者”下第一段第二行 |
指令1和2从存储器当中 |
指令1从存储器当中 |
英文版勘误 Ji Bin |
|
  |
2010.04.11 |
P118 第二行 |
操作应该先改变符号 |
操作应该先改变大小 |
英文版勘误 David Ramsey |
第五次印刷中已修正 |
  |
2011.04.11 |
P119 练习题3.6 |
leal 0xA(,%eax,4),%edx |
leal 0xA(,%ecx,4),%edx |
中文版勘误 赵亮 |
|
  |
2011.07.27 |
P119 3.5.2第一段第三行 |
减一运算法 |
减一运算符 |
中文版勘误 Ji Bin |
|
  |
2011.02.28 |
P120 3.5.3节,第一句话 |
第二项给出的是要移位的位数 |
第二项给出的是要移位的数值 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2011.03.28 |
P123 第5行 |
除数 |
被除数 |
英文版勘误 吴旭东 |
第五次印刷中已修正 |
  |
2011.01.07 |
P124 图3-10上倒数第三行 |
除了他们只设置条件码而改变目的寄存器的值 |
除了他们只设置条件码而不改变目的寄存器的值 |
中文版勘误 华章出版社 |
第五次印刷中已修正 |
  |
2011.07.28 |
P127 倒数第二段倒数第二行 |
参加图3-11 |
参见图3-11 |
中文版勘误 Ji Bin |
|
  |
2011.08.01 |
P134 练习题3.20 C中 |
参考图3-14b |
参考图3-14c |
英文版勘误 Ji Bin |
  |
  |
2010.11.18 |
P142 对于传统的IA32,编译器产生的代码具有以下抽象代码所示的形式 |
v = true-expr; goto done; false: v = else-expr; done: |
v = then-expr; goto done; false: v = else-expr; done: |
英文版勘误 Lei Ma |
第五次印刷中已修正 |
  |
2013.05.09 |
P149 3.7.1第3行 |
栈帧的最顶端 |
最顶端的栈帧 |
中文版勘误 杨 |
  |
  |
2013.05.09 |
P150 第一段第3行 |
例如%ebp |
寄存器%ebp的副本 |
中文版勘误 杨 |
  |
  |
2013.05.09 |
P150 倒数第2行 |
可以使栈做好准备 |
要使栈做好准备 |
中文版勘误 杨 |
  |
  |
2010.09.27 |
P150 图3-22 b) |
箭头指向0x080483e1上方 |
箭头应该指向0x080483e1处 |
英文版勘误 David O’Hallaron |
第五次印刷中已修正 |
|
2015.09.16 |
P154 “为什么GCC分配从不使用的空间”第3行 |
返回值的4个字节 |
返回地址的4个字节 |
中文版勘误 王凯 |
  |
  |
2010.11.30 |
P154 倒数第三段 |
这些参数的位置也从相对于%esp的旧值+4和0的位置移到了相对于%ebp的新值+12和+8的位置。 |
这些参数的位置也从相对于%esp的旧值+4和0的位置变成了相对于%ebp的新值+12和+8的位置。 |
中文版勘误 黎规好 |
第五次印刷中已修正 |
  |
2011.02.28 |
P157 图3-27中 |
从上往下数第二个"保存的%ebp" |
"保存的%ebx" |
中文版勘误 jorrychen |
第五次印刷中已修正 |
  |
2010.11.14 |
P159 中间表格第6个表达式 |
*(E+i-3)的类型是int* |
*(E+i-3)的类型是int |
英文版勘误 Karl Pichotta |
第五次印刷中已修正 |
  |
2011.08.18 |
P161 倒数第二段倒数第五行 |
Arow[j]被初始化为&A[i][0] |
Arow被初始化为&A[i][0] |
中文版勘误 Ji Bin |
  |
  |
2011.02.28 |
P171 第11行 |
例如,3、6、7节中 |
例如,3.6.7节中 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2011.12.6 |
P173 第12行 |
操作符用于指针的间接引用 |
运算符*用于指针的间接引用 |
中文版勘误 Anders Cui |
  |
  |
2012.04.03 |
P173 中间代码 |
(int) (*fp)(int, int *); |
int (*fp)(int, int *); |
英文版勘误 Ronald Greenberg |
  |
  |
2011.02.28 |
P177 第一张表格下第四行 |
但是调用者也不能依靠这个寄存器的完整性 |
但是调用者也不能依赖这个寄存器的正确性 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2010.11.01 |
P178 练习题3.43 第四行 |
寄存器%edi等于0x2,寄存器%esi等于0x3。 |
寄存器%edi等于0x3,寄存器%esi等于0x2 |
英文版勘误 Mustafa Kazdagli |
第五次印刷中已修正 |
  |
2011.08.21 |
P180 第三段第三行 |
operatioin |
operation |
中文版勘误 Ji Bin |
  |
  |
2011.08.21 |
P180 第三段第三行 |
使指指向下一条指令之外 |
使之指向下一条指令之外 |
中文版勘误 Ji Bin |
  |
  |
2011.08.21 |
P185 第一段倒数第二行 |
将这个指令集更名位 |
将这个指令集更名为 |
中文版勘误 Ji Bin |
  |
  |
2011.08.21 |
P186 图3-34中表倒数第二行 |
双进度 |
双精度 |
中文版勘误 Ji Bin |
  |
  |
2012.06.12 |
P196 练习题3.50最后一行 |
确定incrprob的全部4种合理的函数原型 |
确定incrprob的所有合理的函数原型 |
英文版勘误 Qiangqiang Luo |
  |
  |
2011.11.04 |
P197 第一段,第4行和第6行 |
call_proc |
proc |
英文版勘误 Ronald Jones |
  |
  |
2011.05.06 |
P202 参考文献说明,第二段 |
Applicatioin |
Application |
中文版勘误 花明月暗 |
第五次印刷中已修正 |
  |
2012.07.05 |
P215 练习题3.12答案 |
num_t也有可能是long long类型的。对此,C语言标准指明乘法会先把x转换成long long类型,所以这个乘法是基于有符号运算的。不过有趣的是,结果的位级表示是和无符号的情况一样的。要看到这个,注意B部分中当把64位有符号数y分成32位值y_h和y_l时,我们应该把y_h看做一个有符号数,而把y_l看做无符号的。因此对于x*y_l这个64位乘积应该用无符号乘,而x*y_h的低32位对无符号和有符号运算来说,都是一样的。 |
英文版勘误 Qiangqiang Luo |
  | |
|
2014.10.17 |
P215 练习题3.14答案 |
A部分:当data_t是unsigned时,比较也可以是>。D部分:对于short或者unsigned short类型,比较也可以是!= |
英文版勘误 Gregoire Paradis |
  | |
  |
2011.10.19 |
P217 练习题3.19答案A |
我们可以看到,实际上计算13!的时候,就已经溢出了,因为1,932,053,504 / 13 = 148,619,500.31。 |
英文版勘误 Richard Callahan |
  | |
  |
2013.05.08 |
P221 练习题3.29答案第4行 |
只剩下标号.L2,符合情况E |
只剩下标号.L5,符合情况E |
英文版勘误 Rami Ammari |
  |
  |
2012.07.31 |
P221 练习题3.32答案 |
有八种不同的函数声明都会得到同样的代码:返回值类型可以是int或者unsigned,参数p可以是int *或者unsigned *,以及参数x可以是int或者unsigned。这些选择是相互独立的。 |
英文版勘误 Qiangqiang Luo |
  | |
  |
2011.08.28 |
P222 练习题3.33答案B |
将栈指针加了40 |
将栈指针减去40 |
中文版勘误 万虎 |
  |
  |
2010.10.31 |
P225 练习题3.41的答案 |
A中字段名列表为 i c j d |
字段名列表应为 i c d j |
英文版勘误 David Selvaraj |
第五次印刷中已修正 |
  |
2011.08.18 |
P226 练习题3.43 |
A和B的图中but均为buf |
中文版勘误 Ji Bin |
  | |
|
2014.12.10 |
P227 练习题3.48,第3问答案 |
和是用leal指令计算的 |
和是用leaq指令计算的 |
中文版勘误 贾震 |
  |
  |
2012.06.12 |
P228 练习题3.50答案 |
变量q还可以是unsigned long类型的,因此一共有八种合法的函数原型。另外四种是:
|
英文版勘误 Qiangqiang Luo |
  | |
  |
2012.06.16 |
P228 练习题3.51A的答案 |
栈帧不应该包括偏移量0那一格。栈的这个位置保存的是返回地址,它应该是调用者栈帧的一部分。正确的图在这里。 |
英文版勘误 Qiangqiang Luo |
  |
|
  |
2011.02.28 |
P230 倒数第7行 |
参考处理器端的处理器————存储器接口 |
参考处理器端的处理器-存储器接口 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2011.09.08 |
P237 4.1.4节第二段第二行 |
excepton handler |
exception handler |
中文版勘误 Ji Bin |
|
  |
2011.08.31 |
P243 “现代逻辑设计”部分,最后一行 |
Y98处理器 |
Y86处理器 |
中文版勘误 万虎 |
|
  |
2011.09.08 |
P245 图4-12 b) |
“A=B”下面的实线应为虚线 |
中文版勘误 Ji Bin |
||
  |
2012.07.03 |
P245 练习题4.9 |
32个字级的异或电路 |
32个位级的异或电路 |
中文版勘误 陆志锴 |
  |
|
2014.09.28 |
P250 第6-7行 |
对于读操作来说 |
同读操作一样 |
中文版勘误 吴超峰 |
  |
  |
2011.04.02 |
P253 练习题4.11 取指阶段通用处理情况中 |
icode:ifum |
icode:ifun |
中文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2011.02.28 |
P254 图4-20 |
第一列与第二、三列,行对应错误 |
“取指”对应第二、三列“icode,rA,valP”三行 “译码”对应第二、三列“valA,valB”两行 “执行”对应第二、三列“valE”一行 “访存”对应第二、三列“M4[valE]”一行 “写回”对应第二列“R[%esp]”一行,第三列“R[%esp],R[rA]”两行 “更新PC”对应第二、三列“PC”一行 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2010.12.08 |
P255 跟踪pushl指令的执行 第三行 |
有两个字节,值分别为0xa0和0x28。 |
0x28应为0x2f 下面的表中,取指阶段,具体一栏中,rA:rB<-M1[0x01b]=2:8应为2:f |
英文版勘误 Karl Pichotta |
|
|
2015.01.19 |
P292 图4-55 |
M_Bch |
M_Cnd |
英文版勘误 Jiwen He |
|
  |
2011.02.28 |
P259 画图惯例第三点 |
线路的名字在白色圆角方框中说明。 |
线路的名字在白色椭圆中说明。 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2011.02.28 |
P261 代码下面第一行 |
组合逻辑被条件码寄存器环绕着 |
组合逻辑环绕着条件码寄存器 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2011.12.23 |
P263 图4-26中 |
IHALT,halt指令的代码,对应的值为0;INOP,nop指令的代码,对应的值为1 |
英文版勘误 John Ye |
  |
|
|
2015.02.16 |
P266 最后一行 |
观察图4-16~图4-19 |
观察图4-18~图4-21 |
中文版勘误 贾震 |
  |
  |
2013.08.18 |
P267 6.SEQ小结 倒数第5行 |
ALU要减小栈指针 |
ALU要增加栈指针 |
英文版勘误 nasalmucus |
  |
  |
2012.05.12 |
P274 图4-39 b) |
Cnd |
pCnd |
英文版勘误 银河 |
  |
  |
2011.12.2 |
P275 图4-40中 |
解码 |
译码 |
中文版勘误 Kang Lieyong |
  |
  |
2011.02.28 |
P276 图4-41中 |
解码 |
译码 |
中文版勘误 王泰格 |
第五次印刷中已修正 |
  |
2012.05.12 |
P278 倒数第4行 |
“Data” |
“数据” |
中文版勘误 银河 |
  |
  |
2011.04.04 |
P285 图4-49 周期6下面 |
M |
W |
英文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2011.12.2 |
P287 图4-52中 |
解码 |
译码 |
中文版勘误 Kang Lieyong |
  |
  |
2012.05.12 |
P288 图4-53中 |
错误值的箭头应该指向valB那一行 |
英文版勘误 银河 |
  |
|
  |
2011.12.2 |
P287 图4-52中 |
解码 |
译码 |
英文版勘误 Kang Lieyong |
  |
  |
2011.09.19 |
P300 图4-65 a)最右边 |
输入=y |
输出=y |
中文版勘误 王泰格 |
|
  |
2011.04.04 |
P300 图4-65 b)最左边 |
暂停=0 |
暂停=1 |
中文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2011.09.19 |
P300 图4-65 b)最右边 |
状态=y 输入=y |
状态=x 输出=x |
中文版勘误 王泰格 |
|
  |
2011.11.18 |
P301 图4-66 “预测错误的分支”行“D”列 |
正常 |
气泡 |
中文版勘误 wiki |
|
  |
2011.09.21 |
P302 第二个表格中 |
预测错误的分支 |
加载/使用冒险 |
中文版勘误 Ji Bin |
  |
|
2014.06.20 |
P303 图4-68 |
英文版勘误 Sankar Krishnan |
  |
||
  |
2011.07.27 |
P316 练习题4.9答案中的图 |
图中右边的与门应为或门,正确的pdf图在这里。 |
英文版勘误 Pascal Garcia |
||
  |
2011.11.30 |
P316 练习题4.10 |
题号上Med3代码为此习题答案 |
中文版勘误 Kang Lieyong |
  |
|
  |
2010.12.15 |
P316 练习题4.11最后一行 P317 第一个表格 |
前两个字节为0x30和0x84 |
前两个字节应为0x30和0xf4 表中取指阶段,具体一栏中,rA:rB<-M1[0x00f]=8:4应为f:4 |
英文版勘误 Dorukhan Guiloz |
|
  |
2010.12.15 |
P317 练习题4.12 第一行 |
值分别为0xb0和0x08 |
值分别为0xb0和0x0f 下面表中,取指阶段,具体一栏中,rA:rB<-M1[0x01d]=0:8应为0:f |
英文版勘误 Randal E. Bryant |
第五次印刷中已修正 |
  |
2011.11.04 |
P320 练习题4.27答案 |
公式中的K应为k |
英文版勘误 Ronald Jones |
  | |
|
2014.08.11 |
P321 练习题4.31答案倒数第2行 |
那么寄存器%eax会设置成增加了的程序计数器 |
那么寄存器%eax会设置成增加了的栈指针 |
英文版勘误 Sebastian Luy |
  |
  |
2010.05.10 |
P327 最后一行 |
counter= t + 4 |
counter = counter + 4 |
英文版勘误 David Ramsey |
第五次印刷中已修正 |
  |
2012.05.12 |
P328 5.2节第2段第3行 |
千兆赫兹 |
赫兹 |
中文版勘误 银河 |
  |
  |
2011.06.13 |
P329 图5-1第19行 |
For odd n |
For even n |
英文版勘误 Zhengshan Yan |
第五次印刷中已修正 |
  |
2011.04.6 |
P332 中间的表格,第二行第四列 |
20.02 |
29.02 |
中文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2011.09.23 |
P345 第二行 |
%rcx存放循环界限limit |
%rbp存放循环界限length |
英文版勘误 Ji Bin |
  |
  |
2011.01.20 |
P345 combine4的汇编代码 |
描述中的limit |
应为length |
英文版勘误 Karl Pichotta |
第五次印刷中已修正 |
  |
2012.05.12 |
P347 中间 |
这条路径将CPE限制为最多L |
这条路径限制CPE至少为LL |
中文版勘误 银河 |
  |
  |
2011.01.20 |
P349 图5-17 |
图例中int *和int +互换 |
英文版勘误 Karl Pichotta |
第五次印刷中已修正 |
|
  |
2012.05.12 |
P352 图5-21下面第一段第二行 |
所有合并情况的CPE都增加了 |
所有合并情况的CPE都改进了 |
中文版勘误 银河 |
  |
  |
2012.05.12 |
P352 图5-21下面第一段第三行 |
最高可以得到吞吐量界限1.00 |
最好可以得到吞吐量界限1.00 |
中文版勘误 银河 |
  |
  |
2012.05.12 |
P352 图5-22标题 |
所有的CPE都有提高,最高到达限定制1.00 |
所有的CPE都有改进,最好到达限定值1.00 |
中文版勘误 银河 |
  |
  |
2011.01.20 |
P352 图5-22 |
图例中int *和int +互换 |
英文版勘误 Randal E. Bryant |
第五次印刷中已修正 |
|
  |
2012.05.12 |
P355 图5-27标题 |
最高到限制值1.00 |
最好到限制值1.00 |
中文版勘误 银河 |
  |
  |
2011.01.20 |
P355 图5-27 |
图例中int *和int +互换 |
英文版勘误 Randal E. Bryant |
第五次印刷中已修正 |
|
  |
2012.05.12 |
P356 第2行 |
最高到达界限1.00 |
最好到达界限1.00 |
中文版勘误 银河 |
  |
  |
2011.08.01 |
P357 练习题5.8 |
n个整数 |
n个双精度浮点数 |
英文版勘误 Ji Bin |
  |
  |
2011.04.15 |
P358 网络旁注中的汇编代码 |
mulps (%rcs), %xmmo |
mulps (%rcx), %xmm0 |
中文版勘误 charlievon, Yang Firo |
|
  |
2011.01.20 |
P360 汇编代码第9行,注释 |
daa[i+4] |
data[i+4] |
中文版勘误 charlievon |
|
  |
2011.01.20 |
P360 倒数第二行 |
预测错误出发 |
预测错误处罚 |
中文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2012.05.15 |
P361 第5行 |
因此猜测错误也没有处罚 |
因此也没有猜测错误的处罚 |
中文版勘误 银河 |
  |
  |
2011.09.24 |
P365 图5-32的代码中 |
for (; i < limit; i++) |
for (; i < n; i++) |
英文版勘误 Ji Bin |
  |
  |
2011.09.24 |
P367 倒数第二行 |
只有到计算出加载和存储的地址被计算出来以后 |
只有到加载和存储的地址被计算出来以后 |
中文版勘误 Ji Bin |
  |
  |
2011.09.24 |
P371 第二段第二行 |
它扫描一个哈系桶 |
它扫描一个哈希桶 |
中文版勘误 Ji Bin |
  |
  |
2011.09.24 |
P375 参考文献说明,第二段第一行 |
编辑器 |
编译器 |
中文版勘误 Ji Bin |
  |
  |
2012.05.12 |
P378 练习题5.4 A. |
在没经过优化的代码中...combine4中的变量x |
在优化等级较低的代码中...combine4中的变量acc |
中文版勘误,英文版勘误 银河 |
  |
  |
2013.01.03 |
P378 练习题5.4答案中combine3w的代码,第8行中增加一条语句,确保即使当向量长度小于或者等于0时,也会保存这个值。 |
*dest = IDENT; |
英文版勘误 Dominik Helm |
  |
|
  |
2011.10.10 |
P385 图6-4 b) |
选择行1 |
选择列1 |
中文版勘误 Ji Bin |
  |
  |
2011.10.10 |
P388 倒数第三段 |
向下面这样的 |
像下面这样的 |
中文版勘误 Ji Bin |
  |
  |
2012.12.01 |
P391中间,磁盘容量计算公式右边第二项 |
平均盘区数 |
平均扇区数 |
中文版勘误 邵海珠 |
  |
  |
2011.06.13 |
P392 第二段第四行 |
绕地球一天 |
绕地球一圈 |
中文版勘误 妖刀 |
第五次印刷中已修正 |
  |
2013.12.19 |
P392 “旋转时间”一段第2行 |
读/写头到达目标扇区时 |
读/写头到达目标磁道时 |
英文版勘误 Lucas Bärenfänger |
|
  |
2011.10.10 |
P393 第一行公式 |
Tavg rotation |
Tavg transfer |
中文版勘误 Ji Bin |
  |
  |
2011.10.10 |
P395 图6-12 a) |
发起一个碰盘读 |
发起一个磁盘读 |
中文版勘误 Ji Bin |
  |
  |
2013.08.22 |
P399 第1行 |
块的大小为16~512KB |
块的大小为16KB~512KB |
中文版勘误 nasalmucus |
  |
  |
2012.12.01 |
P399 第二段第四行 |
制造商在已经闪存翻译层中 |
制造商已经在闪存翻译层中 |
中文版勘误 邵海珠 |
  |
  |
2011.10.10 |
P399 倒数第三行 |
见图6-15c |
见图6-17c |
中文版勘误 Ji Bin |
  |
  |
2011.11.04 |
P400 第2段第4行 |
提高 |
降低 |
英文版勘误 Ronald Jones |
  |
  |
2011.10.10 |
P400 第三段第一行 |
表面了 |
表明了 |
中文版勘误 Ji Bin |
  |
|
2014.08.17 |
P400 图6-17 b)第一行最后列 |
2000:1980 |
2010:1980 |
中文版勘误 zxwhieui |
  |
|
2014.08.17 |
P400 图6-17 c)第一行最后列 |
2000:1980 |
2010:1980 |
中文版勘误 zxwhieui |
  |
|
2014.08.17 |
P400 图6-17 c)第二行最后列 |
500 |
1 600 000 |
中文版勘误 zxwhieui |
  |
  |
2011.10.10 |
P400 图6-17 d)第三行第三列 |
60 |
6 |
中文版勘误 Ji Bin |
  |
  |
2011.02.28 |
P403 图6-21 a) |
int sumarrayrows(int a[M][N]) { int i, j, sum = 0; for (i = 0; i < M; i++) for (j = 0; j < N; j++) sum += a[i][j]; return sum; } |
int sumarraycols(int a[M][N]) { int i, j, sum = 0; for (j = 0; j < N; j++) for (i = 0; i < M; i++) sum += a[i][j]; return sum; } |
中文版勘误 刘其帅 |
|
  |
2011.10.10 |
P405 图6-23 左边 |
差别更低的存储设备 |
成本更低的存储设备 |
中文版勘误 Ji Bin |
  |
  |
2011.11.12 |
P409 图6-27最上面 |
每行t个有效位 |
每行t个标记位 |
中文版勘误 刘生 |
  |
  |
2011.04.21 |
P422 6.4.7第4行 |
它等于1不命中率 |
它等于1-不命中率 |
中文版勘误 Yang Firo |
|
  |
2012.12.01 |
P422 6.4.7节“3 相联度的影响中”倒数第二行 |
较低层上使用比较小的相联度 |
较低层上使用比较高的相联度 |
中文版勘误 邵海珠 |
  |
  |
2011.10.14 |
P428 第3行 |
size从2KB变到64KB |
size从2KB变到64MB |
中文版勘误 Ji Bin |
  |
  |
2011.03.28 |
P431 图6-46 f) ikj版本 |
代码应为 for (i = 0; i < n; i++) for (k = 0; k < n; k++) { r = A[i][k]; for (j = 0; j < n; j++) C[i][j] += r*B[k][j]; } |
中文版勘误 姚磊 |
||
  |
2011.10.14 |
P431 第3行 |
B不命中每次迭代使用的次数 |
每次迭代使用的B不命中次数 |
中文版勘误 Ji Bin |
  |
  |
2011.11.08 |
P435 练习题6.27 表第4行 |
22 |
23 |
英文版勘误 Han Xu |
  |
|
2014.11.13 |
P452 第3行 |
”块存储开始“(Block Storage Start) |
Block Started by Symbol |
英文版勘误 Paul C. Anagnostopoulos |
  |
  |
2012.11.20 |
P452 ”给C语言初学者“上面最后一段 |
编译器把初始化为0的变量放在.bss而不是.data中,所以函数f()中定义的x的实例存储在.bss中而不是.data中。 |
英文版勘误 Waiki Wright和Scott Wright |
  |
|
  |
2011.11.08 |
P459 图7-6下第1行和第6行 |
main.o |
main2.o |
英文版勘误 Ji Bin |
  |
  |
2012.12.03 |
P466 倒数第12行 |
ctrl.o |
ctr1.o(数字1而不是字母l) |
中文版勘误 邵海珠 |
  |
  |
2012.08.27 |
P468 第一段最后一句 |
在第10章 |
在第9章 |
中文版勘误 刘金 |
  |
  |
2011.10.14 |
P480 第3段最后一行 |
创造这些子进程的父进程必须得到通知 |
创建这些子进程的父进程必须得到通知 |
中文版勘误 Ji Bin |
  |
  |
2011.09.16 |
P485 图8-9下第一行 |
不为人知的一般保护故障 |
恶名昭著的一般保护故障 |
中文版勘误 金崇伟 |
  |
  |
2012.02.23 |
P485 第二段 |
处理程序将磁盘上物理存储器相应的页面映射到虚拟存储器的一个页面 |
处理程序将磁盘上虚拟存储器相应的页面映射到物理存储的一个页面 |
英文版勘误 jcw2001@163.com |
  |
  |
2011.10.14 |
P485 图8-10 标号37,kill系统调用的描述 |
将译者注删除 |
中文版勘误 Ji Bin |
  |
|
  |
2011.05.24 |
P486 图8-11第14行注释 |
System call number 0 |
System call number 1 |
英文版勘误 Michael Victor Zink |
第五次印刷中已修正 |
  |
2011.04.14 |
P494 |
第二段 |
英文版勘误 Gordon Kindlmann |
第五次印刷中已修正 |
|
  |
2011.12.15 |
P496 第2行 |
optioins |
options |
中文版勘误 Ji Bin |
  |
  |
2012.12.23 |
P496 第3点第9行(WTERMSIG段) |
返回导致子进程终止的信号的数量 |
返回导致子进程终止的信号的编号 |
中文版勘误 林元昭 |
  |
|
2014.12.18 |
P497 练习题8.3 |
为了使每种可能的输出生效,必须在每个printf后都跟一条fflush(stdout) |
英文版勘误 Len Hamey | ||
  |
2011.12.15 |
P501 第2段第2行 |
overwirte |
overwrite |
中文版勘误 Ji Bin |
  |
|
2014.09.29 |
P508 第一段 |
关于SIGINT和SIGSTP的讨论是不正确的。输入ctrl-c会导致内核向每个前台进程组中的成员发送一个SIGINT信号(而不是向shell发送)。ctrl-z和SIGTSTP也是类似。 |
英文版勘误 Godmar Back | ||
  |
2010.09.01 |
P512-515 |
图8.31-8.33 |
这些程序调用了printf函数,在信号处理程序中,它不是异步信号安全的,可能会导致死锁。详细信息可以参考网络旁注ECF:SAFETY。 |
英文版勘误 Godmar Back |
|
  |
2011.12.15 |
P517 8.5.6节框图中sigismember函数说明中 |
sef |
set |
中文版勘误 Ji Bin |
  |
|
2014.07.29 |
P523 图8-39第14行 |
根据Unix规范,因为该行的语句rc = setjump(buf)对局部变量赋值,不与标准兼容,应该被替换为分支语句,switch(setjmp(buf))。 |
英文版勘误 Yan Zhu |
  |
|
|
2014.12.18 |
P528 家庭作业8.18 |
为了使每种可能的输出生效,必须在每个printf后都跟一条fflush(stdout) |
英文版勘误 Len Hamey | ||
|
2014.12.18 |
P529 家庭作业8.21 |
为了使每种可能的输出生效,必须在每个printf后都跟一条fflush(stdout) |
英文版勘误 Len Hamey | ||
|
2014.09.29 |
P529 家庭作业8.26 |
这里提出的ctrl-c和ctrl-z的处理是真实shell工作方式的简化。真实的shell中,内核响应ctrl-c(ctrl-z),向终端前台进程组中的每个进程发送SIGINT(SIGTSTP)信号。shell用tcsetpgrp函数来管理这个组的成员,用tcsetattr函数来管理终端的属性,这两个函数都超出了本书描述的范围。 |
英文版勘误 Godmar Back | ||
  |
2010.05.03 |
P531 练习题8.3答案 最后一句话 |
有四个这样的序列:acbc、bcac、abcc和bacc。 |
有三个这样的序列:acbc、abcc和bacc。进程图的示例请参考网络旁注页的网络旁注ECF:GRAPHS |
英文版勘误 David Ramsey和Gordon Kindlmann |
第五次印刷中已修正 |
  |
2010.05.03 |
P531 练习题8.4答案 |
删除”一般而言....“那句话和后续的(错误的)图。正确的进程图示例请参考网络旁注页的网络旁注ECF:GRAPHS |
英文版勘误 David Ramsey和Gordon Kindlmann |
||
  |
2012.06.10 |
P537、545、547、550、554等 |
这些页中的“全相连、组相连、相连性”应改为“全相联、组相联、相联性” |
中文版勘误 银河 |
  |
|
  |
2011.06.17 |
P537 9.3.1 第二段 |
从扇区中连续的字节的时间开销比起读这个磁盘的一个扇区读取第一个字节要慢大约100 000倍 |
从一个磁盘的一个扇区读取第一个字节的时间开销要比从该扇区中读连续的字节慢大约100 000倍 |
中文版勘误 妖刀 |
第五次印刷中已修正 |
  |
2012.06.10 |
P544 第4行 |
MMU执行了图9-13b中的步骤之后 |
MMU执行了图9-13a中的步骤之后 |
英文版勘误 银河 |
  |
  |
2011.12.15 |
P545 9.6.2节第1段第4行 |
消除是这样的开销 |
消除这样的开销 |
中文版勘误 Ji Bin |
  |
  |
2013.03.26 |
P547 第2段最后一句 |
对于只有一级的页表结构, PPO和VPO是相同的。 |
(多级的页表结构)和只有一级的页表结构一样,PPO 和 VPO 是相同的。 |
中文版勘误 单宁 |
  |
  |
2012.06.10 |
P550 倒数第2行 |
是四路组相连的。L1、L2和L3高速缓存是物理寻址的,是八路组相连的 |
是四路组相联的。L1、L2和L3高速缓存是物理寻址的,其中,L1和L2是八路组相联的,L3是16路组相联的 |
中文版、英文版勘误 银河 |
  |
|
2014.08.30 |
P552 图9-23 PS对应一行 |
值对第一层PTE定义 |
只对第一层PTE定义 |
中文版勘误 黄睿 |
  |
  |
2011.12.15 |
P552 倒数第2行 |
PET |
PTE |
中文版勘误 Ji Bin |
  |
  |
2011.12.15 |
P553 图9-24第1行 |
页表物理基地址 |
页物理基地址 |
中文版勘误 Ji Bin |
  |
  |
2011.12.15 |
P553 图9-24中P字段的说明中 |
子页表在物理存储器中 |
子页在物理存储器中 |
中文版勘误 Ji Bin |
  |
  |
2011.04.16 |
P554 图9-26底部 |
0x40000000(64) |
0x00400000(64) |
英文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2011.11.28 |
P557 图9-29 b) |
为了说明得更清楚,进程2映射的虚拟存储器区域位置应该与进程1的不同。 |
英文版勘误 Tao Du |
  |
|
  |
2011.11.28 |
P558 图9-30 a) |
进程2映射的虚拟存储器区域位置应该与b)中的相同,也应该与图9.29 b)中一致。 |
英文版勘误 Tao Du |
  |
|
  |
2010.05.03 |
P560 中间bufp一行 |
mmap的第一个参数应该是NULL而不是-1 |
英文版勘误 Sankar Krishnan Shanmugam |
||
  |
2012.06.10 |
P564 9.9.3第5行 |
有相匹配的分配和空闲请求是嵌套的 |
相匹配的分配和释放请求是嵌套的 |
中文版勘误 银河 |
  |
  |
2011.11.28 |
P564 倒数第二段 |
前k个请求的峰值利用率 |
前k+1个请求的峰值利用率 |
英文版勘误 Tao Du |
  |
  |
2012.04.09 |
P565 旁注:放宽单调性假设 |
前k个请求的最高峰 |
前k+1个请求的最高峰 |
英文版勘误 Tao Du |
  |
  |
2012.06.10 |
P565 9.9.4第4段 |
这里的示例有问题,如果图9-34e中的请求要求6个字,是可以被满足的,可以改为请求要求8个字,就会出现空闲字足够但仍然无法分配的情况。 |
英文版勘误 银河 |
  |
|
  |
2011.12.15 |
P572 第2行 |
viod |
void |
中文版勘误 Ji Bin |
  |
|
2015.05.23 |
P576 图9-48中 |
pred(祖先) |
pred(前驱) |
中文版勘误 楼超奇 |
  |
|
2014.04.16 |
P578 9.10倒数第7-6行 |
从不显示地释放它们 |
从不显式地释放它们 |
中文版勘误 wy |
  |
  |
2012.06.10 |
P580 9.10.2最后一段第一行 |
其中每个块都是未分配的 |
其中每个块都是未标记的 |
中文版勘误 银河 |
  |
  |
2012.12.11 |
P581 9.11节上一行 |
可能是不是可达的 |
可能是不可达的 |
中文版勘误 邵海珠 |
  |
  |
2012.12.11 |
P586 第1行 |
而了简化了存储器保护 |
而简化了存储器保护 |
中文版勘误 邵海珠 |
  |
  |
2012.12.10 |
P590 练习题9.1的答案表格倒数第2行第3列 |
248=256T-1 |
248-1=256T-1 |
英文版勘误 邵海珠 |
  |
  |
2011.12.15 |
P599 图10-2下第1行 |
显示地 |
显式地 |
中文版勘误 Ji Bin |
  |
  |
2011.08.18 |
P599 中间“读时遇到EOF。”一段中 |
从当前文件位置开始只含有20多个字节 |
从当前文件位置开始到结束只含有20个字节 |
中文版勘误 Timothy |
  |
  |
2012.06.10 |
P601 图10-3下第3行 |
rio_readinitb函数从文件rp读出一个文本行 |
rio_readlineb函数从文件rp读出一个文本行 |
中文版勘误 银河 |
  |
  |
2013.04.18 |
P604 图10-7,函数rio_readlineb |
增加边缘情况的处理(当输入行是maxlen字节且没有以换行符结尾),更新版本的函数在这里 |
英文版勘误 Sharbel Bousemaan |
  |
|
  |
2012.09.19 |
P604 图10-7,函数rio_readnb,第9行 |
检查EINTR是多余的,因为上一行调用rio_read已经处理过这种情况了,更新版本的函数在这里 |
英文版勘误 Seth Chaiken |
  |
|
  |
2011.04.17 |
P626 中间 |
我们跟随Steven的指导 |
我们跟随Stevens的指导 |
中文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2012.06.17 |
P637 图11-25中REMOTE_ADDR一行 |
客户端的点为十进制IP地址 |
客户端的点分十进制IP地址 |
中文版勘误 银河 |
  |
  |
2012.06.17 |
P640 “2.doit函数”一节第2行 |
图11-7中 |
图10-7中 |
中文版勘误 银河 |
  |
  |
2012.06.17 |
P653 第2行 |
我们用图11-7中 |
我们用图11-17中 |
中文版勘误 银河 |
  |
  |
2011.04.02 |
P653 第四段第四行 |
图12-21 |
图11-21 |
中文版勘误 姚磊 |
第五次印刷中已修正 |
  |
2011.04.17 |
P660 12.3.5最后一段 |
没有办法让pthread_wait等待任意一个线程终止 |
没有办法让pthread_join等待任意一个线程终止 |
英文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2012.06.17 |
P666 图12-17中 |
线程i的汇编C代码 |
线程i的汇编代码10-7中 |
中文版勘误 银河 |
  |
  |
2011.05.16 |
P683 倒数第二行 |
竞争实际上是发生在第11行中的i++(而不是第12行中下一次的对pthread_create的调用)和第21行的对vargp的间接引用和赋值之间。 |
英文版勘误 Shuang Yang |
第五次印刷中已修正 |
|
  |
2012.06.17 |
P684 练习题12.13 |
在主线程中的第15行 |
在主线程中的第14行 |
英文版勘误 银河 |
  |
  |
2012.06.17 |
P684 练习题12.13 |
坏注意 |
坏主意 |
中文版勘误 银河 |
  |
  |
2012.05.21 |
P686 互斥锁加锁顺序规则 |
这里给出的简单的互斥锁加锁顺序规则并不足够强能够避免所有的循环死锁。例如:
|
英文版勘误 Cheng Chen |
  | |
  |
2011.04.18 |
P691 表格第一行 |
eax1 |
%eax1 |
中文版勘误 Yili Gong |
第五次印刷中已修正 |
  |
2011.04.18 |
P691 表格最后一行 |
第4列:1;第5列:- |
第4列:-;第5列:1 |
英文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2011.04.18 |
P692 练习题12.12 |
gethostbyname |
ctime |
英文版勘误 Yang Firo |
第五次印刷中已修正 |
  |
2012.06.17 |
P692 练习题12.13 |
如果在第15行,....,和线程例程中第25行的赋值语句 |
如果在第14行,....,和线程例程中第24行的赋值语句 |
英文版勘误 银河 |
  |