并行计算-硬件软件基础
并行硬件和软件
背景知识
冯诺依曼结构
CPU:控制单元+ALU
- 控制单元负责决定该执行寄存器中的哪些指令
寄存器:存储CPU中的数据和程序执行时的状态信息
程序计数器:特殊的寄存器,存放下一条指令的地址
冯诺依曼瓶颈:主存和CPU分开,限制了指令和数据访问的速率
进程与线程
进程
OS负责管理计算机的软件和硬件资源,决定程序什么时候能运行。当运行程序时,OS创造一个进程。
进程是运行着的程序的一个实例
- 可执行的机器语言程序
- 一块内存空间,包括可执行代码,一个用于跟踪执行函数的调用栈、一个堆,以及其他内存区域
- OS分配给进程的资源描述符,如文件描述符
- 安全信息
- 进程状态信息
多任务:OS提供对同时运行几个程序的支持。单核上体现为每个进程只运行一个时间片,快速切换。进程切换花费较长的时间
线程
阻塞:进程等待默写资源而停止云不行
线程:将程序划分为多个大致独立的任务,当某个任务阻塞时能执行其他任务
线程相对进程是轻量级的,线程包含在进程中
对于两个线程:
- 共享绝大多数的资源
- 各自需要一个私有的程序计数器和函数调用栈
进程和线程的关系
线程开始时,从进程中**派生(fork)出来,最后合并(join)**在进程中
改进冯诺依曼结构
为了解决冯诺依曼瓶颈而提出的改进方法:缓存、虚拟内存、低层次并行,核心是解决CPU和主存的分开问题
Cache
缓存主要为了改进一次传输一条指令或数据的问题,使得一次访问内存可以传送更多数据或指令,而且不再将所有的数据和指令放在主存中,将部分数据块和代码块放在一个更靠近CPU的特殊寄存器中
Cache是高速缓存,比一般缓存的访问时间短
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 浮泛之舟!