CSAPP3e第六章(存储器层次结构)
第六章 存储器层次结构(摘要与注解)
这一章也很好理解, 重点解释一些不太好理解或者书上介绍不是很清楚的地方, 然后列大纲用于以后复习看。
(UPD 做完 cache lab 后: 还是不太好理解的, cache lab 难度不小)
我们的同志在困难的时候,要看到成绩,要看到光明,要提高我们的勇气。
这一章也很好理解, 重点解释一些不太好理解或者书上介绍不是很清楚的地方, 然后列大纲用于以后复习看。
(UPD 做完 cache lab 后: 还是不太好理解的, cache lab 难度不小)
这章内容很短, 就是书中和 15213 都有意隐去了很多细节, 自己去理解思考这些细节会很麻烦
另外 section 的翻译易引起歧义, 这里不作翻译
静态链接包括两个阶段, 符号解析和重定位:
符号解析是要把每一个符号引用与符号定义联系起来
首先要理解可重定向文件的各个 section
在做 Codeforces Educational Round 169 D Colored Portals 时,需要找到 i 前面距离 i 最近的颜色不完全相同但也不完全不同的 j,我随手写了个
1 | const vector<string> type = {"BG", "BR", "BY", "GR", "GY", "RY"}; |
无符号的数的加法溢出规则很简单, 单纯截取后 \(w\) 位, 或称对 \(2^w\) 取模。因此:
\[ x\ +_w^u\ y = \begin{cases} x + y, & x + y < 2^w, \\ x + y - 2^w, & 2^w \leq x + y < 2^{w+1}. \end{cases} \]
(\(+_w^u\) 表示最多 \(w\) 位下的二进制无符号数加法。下文\(+_w^t\) 即 \(w\) 位补码加法)
若 \(s = x +_w^u y\), 当且仅当 \(s < x\) (或等价地 \(s < y\)) 时发生溢出。
(当然, 默认 \(x\) 和 \(y\) 本身不会溢出, 即在 \([0, UMax_w]\) 的范围内)
原理易证, 分别证明充分性必要性即可, 注意利用以上公式