CSAPP-第1章笔记

第1章 计算机系统漫游


Amdahl定律

当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。若系统执行某应用程序需要时间为 T o l d 。假设系统某部分所需执行时间与该时间的比例为 α ,而该部分性能提升比例为 k 。即该部分初始所需时间为 α T o l d ,现在所需时间为 ( α T o l d ) / k 。因此,总的执行时间应为

T n e w = ( 1 α ) T o l d + ( α T o l d ) / k = T o l d [ ( 1 α ) + α / k ]

由此,可以计算加速比 S = T o l d / T n e w

S = 1 ( 1 α ) + α / k

Amdahl定律的主要观点——要想显著加速整个系统,必须提升全系统中相当大的部分的速度。


并发和并行

线程级并发

传统意义上,这种并发执行只是模拟出来的,是通过使一台计算机在它正在执行的进程间快速切换来实现的,就好像一个杂耍艺人保持多个球在空中飞舞一样。
超线程,有时称为同时多线程(simultaneous multi-threading),是一项允许一个CPU执行多个控制流的技术。

指令级并行

在较低的抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行
如果处理器可以达到比一个周期一条指令更快的执行速率,就称之为超标量(super-scalar)处理器。大多数现代处理器都支持超标量操作。当程序员能够写出拥有更高程度的指令级并行性的程序代码时,程序也因而运行得更快。

单指令、多数据并行

在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操作,这种方式称为单指令、多数据,即SIMD并行。例如,较新几代的Intel和AMD处理器都具有并行地对8对单精度浮点数(C数据类型float)做加法指令。
提供这些SIMD指令多是为了提高处理影像、声音和视频数据应用的执行速度。


计算机系统中抽象的重要性

文件是对I/O设备的抽象,虚拟内存是对程序存储器的抽象,而进程是对一个正在运行的程序的抽象。而虚拟机,它提供对整个计算机的抽象,包括操作系统、处理器和程序。


猜你喜欢

转载自blog.csdn.net/qq_38597315/article/details/79587028
今日推荐