美文网首页
深入理解计算机系统笔记 --1.9.2并发和执行 2020-1

深入理解计算机系统笔记 --1.9.2并发和执行 2020-1

作者: White夏天baby | 来源:发表于2020-10-30 22:18 被阅读0次

    并发:一个同时具有多个活动的系统。

    并行:用并发来使一个系统运行的更快。

    1.线程级并发

    因为进程这个抽象,有多个程序执行的系统,这就是并发。使用线程,我们甚至可以在一个进程中执行多个控制流。传统的并发执行只是模拟出来的,是通过计算机在进程间快速来回切换实现的,只有一个处理器完成。这种配置称为单处理器系统

    当构建一个    由单操作系统内核控制的多处理器    组成的系统时,我们就得到一个多处理器系统。

    不同的处理器配置分类

    多核处理器是将多个CPU(称为"核")集成到一个集成电路芯片上。如下图所示,微处理器芯片有4个CPU核,每个核都有自己的L1和L2高速缓存,其中L1分为两个部分,一个保存最近取到的指令,一个保存数据。这些核共享更高层次的高速缓存,以及到主存的接口。

    多核处理器的组织结构,4个处理器核集成到一个芯片上

    超线程,又称为同时多线程,是一项允许一个CPU执行多个控制流的技术。CPU某些硬件有多个备份,如程序计数器和寄存器文件,其他硬件只有一份,如执行浮点算术运算单元。常规处理器需要大约20000个时钟周期做不同线程间的转换。而超线程的处理器,可以在单个周期的基础上决定执行那一个线程,这使得CPU更好的利用它的处理资源。假设一个线程必须等到某些数据装到高速缓存中,那CPU可以先去执行另一个线程。Intel Corei7可让每个核执行两个线程,所以4个核可并行执行8个线程。

    多处理器的使用可以从两个方面提高系统性能。

    1.减少了执行多个任务时,模拟并发的需要(模拟并发更加浪费时间)。

    2.当程序以多线程书写,这些线程可并行的高效执行。

    2.指令级并行

    处理器可以执行多条指令的属性称为指令级并行。早期的处理器通常需要多个(通常时3到10个)时钟中期来执行一条指令。最近的处理器可保持每个时钟周期执行2到4个指令。其实每条指令从开始到结束需要更长的时间,大约20个时钟周期,但处理器使用了技巧来同时处理多达100条指令。在流水线中,将执行一条指令所需要的活动划分为不同的步骤,将处理器的硬件组织成一系列阶段,每个阶段执行一个步骤,这些阶段可以并行操作用来处理不同指令的不同部分。若处理器可以达到比一个周期一条指令更快的效率,则称之为超标量处理器。

    个人理解:处理器同时执行多条指令,称为指令并行。

    3.单指令多数据并行

    允许一条指令产生多个可并行执行的操作,称之为单指令,多数据,即SIMD并行。提供这些SIMD指令多是为了提高处理影像、声音和视频数据应用的执行速度。虽然有些编译器会试图从C程序中自动抽取SIMD并行性,但是更可靠的方法是用编译器支持的特殊的向量数据类型来写程序,比如GCC就支持向量数据类型。

    相关文章

      网友评论

          本文标题:深入理解计算机系统笔记 --1.9.2并发和执行 2020-1

          本文链接:https://www.haomeiwen.com/subject/bhicvktx.html