文章目录
- 线索栏
- 笔记栏
-
- 章节引言
-
- 1.核心观点
- 2.本节目标
- 1.9.1 Amdahl定律
-
- 1.Amdahl定律详解
-
- 1)核心思想
- 2)公式推导
- 3)定律的要义
- 4)特例(k → ∞)
- 2.旁注:表示相对性能
- 3.练习题模型分析
-
- 1)练习题1.1(卡车司机)
- 2)练习题1.2(软件性能)
- 总结
线索栏
笔记栏
**本节主题:**小结系统漫游,并引入一个贯穿计算机系统设计的重要定量原则——Amdahl定律,用于量化局部改进对整体性能的影响。
章节引言
1.核心观点
系统是硬件与系统软件相互交织的集合体,必须共同协作以运行应用。
2.本节目标
通过了解底层细节,编写出更快速、更可靠、更安全的程序。
1.9.1 Amdahl定律
1.Amdahl定律详解
1)核心思想
对系统某一部分进行加速时,其对整体性能的提升效果取决于: (1)该部分的重要性(在原执行时间中所占的比例 α)。 (2)该部分的加速程度(加速比 k)。
2)公式推导
(1)设原系统执行时间:T_old (2)某部分原时间占比:α, 原耗时:αT_old (3)该部分加速k倍后耗时:(αT_old)/k (4)剩余部分(1-α)时间不变。 (5)新的总时间:T_new = (1-α)T_old + (αT_old)/k = T_old[(1-α) + α/k] (6)整体加速比:S = T_old / T_new = 1 / [(1-α) + α/k]
3)定律的要义
要想显著加速整个系统,必须提升系统中相当大的部分(即α值必须大)的速度。 即使对主要部分(α较大)做出很大改进(k很大),整体加速比S也会被未改进的部分(1-α)所限制。
4)特例(k → ∞)
(1)当某部分可被优化到耗时忽略不计时,整体加速比达到上限:S_∞ = 1 / (1-α) (2)意义:这揭示了性能优化的理论天花板。例如,即使将系统60% (α=0.6) 的部分优化到极致,整体最多也只能加速2.5×。
2.旁注:表示相对性能
(1)最佳表示法:使用比例形式 T_old / T_new, 读作“X×”(如 2.2×)。 (2)优点:比使用百分比更清晰、无歧义,尤其对于较大的性能提升。
3.练习题模型分析
1)练习题1.1(卡车司机)

(1)建模:总行程时间为T_old。可加速的蒙大拿州路段对应α(1500km/2500km = 0.6),速度提升对应k(150km/h / 100km/h = 1.5)。 (2)目标:应用公式求整体加速比S,及给定S反推所需速度(k)。 
2)练习题1.2(软件性能)
(1)建模:整体加速比目标 S=2, 可改进部分比例 α=0.8, 未改进部分 1-α=0.2。 (2)目标:根据公式 S = 1 / [(1-α) + α/k], 求解未知的k。 
总结
Amdahl定律是计算机系统设计中一个强大而悲观的原则。它告诉我们:
这一定律为后续所有具体的性能优化讨论(如CPU、缓存、磁盘I/O优化)提供了关键的全局视角:在投入精力进行优化前,必须首先评估该部分是否值得优化(α是否足够大)。





