并发concurrency:
同一时间有多个活动的系统。
并行parallelism:
指并发使得系统运行变快。可在系统的多个抽象层次上运用。
抽象层次
1.线程级并发:计算机在执行的进程间快速切换。
1.1单处理器系统:处理器在多个任务间切换。
1.2多处理器系统:单操作系统内核 控制 多处理器 的系统。包括:多核的和超线程的
1.2.1 多核处理器:多个CPU(核)集成在一个集成电路芯片上。每个核都有L1L2高速缓存。
1.2.2 超线程hyperthreading/同时多线程simultaneous multi-threading:
允许一个CPU执行多个控制流。原因:涉及CPU的硬件有多个备份,其他的硬件控制部分只有一个备份,所以可以在单个周期的基础上决定要执行哪一个线程, 而不必等待线程切换。
控制流:
2.指令级并行:较低的抽象层次上,现代处理器可以体哦那个是执行多条指令的属性。
一个时钟周期内可并行执行多条指令,每条指令执行完毕需要的时间变长。使用技巧包括流水线(pipeline):将执行一条指令所需要的活动划分成不同的步骤,将处理器的硬件组织成一系列的阶段,每个阶段处理不同的步骤。阶段可以并行操作,处理不同指令的不同部分。
3.单指令、多数据并行
最低层次上。特殊的硬件允许一条指令产生多个可以并行执行的操作。多是为了处理影像、声音和视频数据应用,以提高执行速度。
抽象:
处理器里:指令集架构(对实际处理器硬件的抽象)
操作系统上的抽象:文件(I/O设备的抽象),虚拟内存(程序存储器——主存&磁盘——的抽象),进程(正在运行的程序的抽象)
虚拟机:对整个计算机的抽象,包括操作系统、处理器和程序。
从特殊角度来看,网络就是一种I/O设备。