Author : Cyan_RA9
Source : 【卡码笔记】网站
Question : 并行和并发有什么区别?
【简要回答】
并行和并发的概念:
- 并行:多个任务同时执行,需要多核或多处理器支持。
- 并发:多个任务交替执行,不需要多核支持,单核CPU即可实现,通过快速切换模拟“同时执行”。
并行和并发的区分:
- 执行方式:
- 并行是多个任务真正同时执行。
- 并发是多个任务交替执行,通过快速切换模拟“同时执行”。
- 硬件要求:
- 并行需要多核或多处理器支持。
- 并发可以在单核CPU上实现。
- 目标:
- 并行的主要目标是提高计算速度。
- 并发的主要目标是提高资源利用率和响应性。
【详细回答】
- 并行:是指在计算机系统中同一时刻有多个程序在同时运行,称这些在同一时刻同时运行的程序是并行执行的。
- 并发:是指在计算机系统中一段时间内宏观上有多个程序在同时运行,但同一时刻只有一个程序在运行。在单处理器系统上,宏观来看这些程序是同时向前推进的;微观来看并发执行的程序是交替在处理机上运行的。在多处理器系统上,每个处理器都可以实现并发,且不同处理器上的多个程序是并行执行的。
- 并行是并发的特例,程序有并行性则一定是并发的,反之并发活动不一定是并行执行的。并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔内发生,但同一时刻只有一个事件在发生。
- 实际上并发性是一种设计思想,即要尽可能复用计算机中的资源来提高计算机系统的运行效率。eg:当正在执行的程序要执行I/O操作时,操作系统就会要求其让出处理器资源使其他程序能上处理器运行,使I/O设备可以与处理器并行工作,减少了硬件资源相互等待带来的时间损耗。
- 程序并发性体现在两个方面:
- 用户程序和用户程序之间的并发执行。
- 用户程序与操作系统程序之间的并发执行。
【知识图解】
-
有无并发的不同情况,示意图如下:\
-
在并行的基础上,有无并发的不同情况,示意图如下:
【知识拓展】
操作系统四大基本特性
- 并发(Concurrency):是指计算机系统在一段时间内有多个程序在同时执行。
- 共享(Sharing):是指内存中多个并发执行的进程(线程)同时使用同一个系统资源;将资源的共享使用称为“资源共享”或“资源复用”。并发和共享是多用户操作系统的两个最基本特征,并发是共享的前提,共享是并发的基础。
- 虚拟(Virtualization):是指通过某种技术将一个物理实体变成若干个逻辑上的对应物,常用的虚拟技术是“时分复用技术”和“空分复用技术”。
- 异步(Asynchrony):是指多道程序并发执行时,进程并不是一直不间断地从开始执行到结束,而是以等待 - 执行的循环方式和不可预期的速度向前推进。