并行硬件和软件

背景知识

冯诺依曼结构

CPU:控制单元+ALU

  • 控制单元负责决定该执行寄存器中的哪些指令

寄存器:存储CPU中的数据和程序执行时的状态信息

程序计数器:特殊的寄存器,存放下一条指令的地址

冯诺依曼瓶颈:主存和CPU分开,限制了指令和数据访问的速率

image-20231006145313257

进程与线程

进程

OS负责管理计算机的软件和硬件资源,决定程序什么时候能运行。当运行程序时,OS创造一个进程。

进程是运行着的程序的一个实例

  • 可执行的机器语言程序
  • 一块内存空间,包括可执行代码,一个用于跟踪执行函数的调用栈、一个堆,以及其他内存区域
  • OS分配给进程的资源描述符,如文件描述符
  • 安全信息
  • 进程状态信息

多任务:OS提供对同时运行几个程序的支持。单核上体现为每个进程只运行一个时间片,快速切换。进程切换花费较长的时间

线程

阻塞:进程等待默写资源而停止云不行

线程:将程序划分为多个大致独立的任务,当某个任务阻塞时能执行其他任务

线程相对进程是轻量级的,线程包含在进程中

对于两个线程:

  • 共享绝大多数的资源
  • 各自需要一个私有的程序计数器和函数调用栈

进程和线程的关系

线程开始时,从进程中**派生(fork)出来,最后合并(join)**在进程中

image-20231006150347782

改进冯诺依曼结构

为了解决冯诺依曼瓶颈而提出的改进方法:缓存、虚拟内存、低层次并行,核心是解决CPU和主存的分开问题

Cache

缓存主要为了改进一次传输一条指令或数据的问题,使得一次访问内存可以传送更多数据或指令,而且不再将所有的数据和指令放在主存中,将部分数据块和代码块放在一个更靠近CPU的特殊寄存器中

Cache是高速缓存,比一般缓存的访问时间短