《深入理解计算机系统》 读书笔记

并发、并行和抽象

并发concurrency是一个通用的概念:指同时具有多个活动的系统。

并行parallelism:指用并发使一个系统运行得更快。并行可以在计算机系统的多个抽象层次上运用。

1.  线程级并发

         构建进程这个抽象,我们能够设计出同时执行多个程序的系统,这就导致了并发。使用线程,我们能够在一个进程中执行多个控制流。

         单处理器系统中,并发执行只是模拟出来的,是通过使一台计算机在他正在执行的进程间快速切换的方式实现的。

    当构建一个由单操作系统内核控制的多处理器组成的系统时,就得到一个多处理器系统。多处理器是将多个cpu集成到一个集成电路芯片上。超线程(同时多线程)处理器是一项允许一个cpu执行多个控制流的技术。如常规的处理器需要大约20000个时钟周期做不同的线程切换,而超线程处理器可以在单个周期的基础上进行切换。这使得cpu可以更好的利用其处理资源。

  多处理器的使用可以从两个方面提高系统性能。首先,它减少了在执行多个任务时模拟并发的需要。其次,它可以使应用程序运行的更快。当然,这必须要求程序是以多线程方式来书写的,这些线程可以并行地高效执行。

2. 指令级并行

         在较低的抽象层次上,现代处理器可以同时执行多条指令的属性指令级并行。基本思想是将一条指令所需要的活动划分为不同的步骤,将处理器的硬件组织成一系列的阶段,每个阶段执行一个步骤。这些阶段可以并行的操作,用来处理不同的指令的不同部分。其通过硬件设计,能够达到接近于一个时钟周期一条的指令的执行速率。甚至更快,称为超标量处理器。

3. 单指令、多数据并行

         在最低的层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个并行执行的操作,这种方式称为单指令、多数据SIMD并行。如专门处理向量计算的处理器。

         抽象。抽象是计算机科学中最为重要的概念之一。如一组函数的API等,类的封装,接口。

         在处理器中,指令集结构提供了对实际处理器硬件的抽象。使用这个抽象,机器代码程序表现得好像它是运行在一个一次只执行一条指令处理器上。实际上,底层的硬件比抽象描述的要复杂精细的多,它并行地执行多条指令,但又总是与那个简单有序的模型保持一致。

操作系统中,文件是对I/O的抽象;虚拟存储器是对程序存储器的抽象;进程是对一个正在运行的程序的抽象。

         而虚拟机,他提供了对整个计算机的抽象。

   计算机系统中的一个重大主题就是提供不同层次的抽象表示,而隐藏实际实现的复杂性。类比计算机网络。

原文地址:https://www.cnblogs.com/yongyuandishen/p/14144561.html