第1章 计算机系统漫游
Amdahl定律
当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。若系统执行某应用程序需要时间为
。假设系统某部分所需执行时间与该时间的比例为
,而该部分性能提升比例为
。即该部分初始所需时间为
,现在所需时间为
。因此,总的执行时间应为
由此,可以计算加速比
为
Amdahl定律的主要观点——要想显著加速整个系统,必须提升全系统中相当大的部分的速度。
并发和并行
线程级并发
传统意义上,这种并发执行只是模拟出来的,是通过使一台计算机在它正在执行的进程间快速切换来实现的,就好像一个杂耍艺人保持多个球在空中飞舞一样。
超线程,有时称为同时多线程(simultaneous multi-threading),是一项允许一个CPU执行多个控制流的技术。
指令级并行
在较低的抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行。
如果处理器可以达到比一个周期一条指令更快的执行速率,就称之为超标量(super-scalar)处理器。大多数现代处理器都支持超标量操作。当程序员能够写出拥有更高程度的指令级并行性的程序代码时,程序也因而运行得更快。
单指令、多数据并行
在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操作,这种方式称为单指令、多数据,即SIMD并行。例如,较新几代的Intel和AMD处理器都具有并行地对8对单精度浮点数(C数据类型float)做加法指令。
提供这些SIMD指令多是为了提高处理影像、声音和视频数据应用的执行速度。
计算机系统中抽象的重要性
文件是对I/O设备的抽象,虚拟内存是对程序存储器的抽象,而进程是对一个正在运行的程序的抽象。而虚拟机,它提供对整个计算机的抽象,包括操作系统、处理器和程序。