操作系统面试题 — 并行和并发有什么区别?

219 阅读3分钟

Author : Cyan_RA9
Source : 【卡码笔记】网站
Question : 并行和并发有什么区别?

【简要回答】

并行和并发的概念:

  • 并行:多个任务同时执行,需要多核或多处理器支持。
  • 并发:多个任务交替执行,不需要多核支持,单核CPU即可实现,通过快速切换模拟“同时执行”。

并行和并发的区分:

  1. 执行方式
    • 并行是多个任务真正同时执行
    • 并发是多个任务交替执行,通过快速切换模拟“同时执行”。
  2. 硬件要求
    • 并行需要多核或多处理器支持。
    • 并发可以在单核CPU上实现。
  3. 目标
    • 并行的主要目标是提高计算速度。
    • 并发的主要目标是提高资源利用率和响应性。

【详细回答】

  • 并行:是指在计算机系统中同一时刻有多个程序在同时运行,称这些在同一时刻同时运行的程序是并行执行的。
  • 并发:是指在计算机系统中一段时间内宏观上有多个程序在同时运行,但同一时刻只有一个程序在运行。在单处理器系统上,宏观来看这些程序是同时向前推进的;微观来看并发执行的程序是交替在处理机上运行的。在多处理器系统上,每个处理器都可以实现并发,且不同处理器上的多个程序是并行执行的。
  • 并行是并发的特例,程序有并行性则一定是并发的,反之并发活动不一定是并行执行的。并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔内发生,但同一时刻只有一个事件在发生。
  • 实际上并发性是一种设计思想,即要尽可能复用计算机中的资源来提高计算机系统的运行效率。eg:当正在执行的程序要执行I/O操作时,操作系统就会要求其让出处理器资源使其他程序能上处理器运行,使I/O设备可以与处理器并行工作,减少了硬件资源相互等待带来的时间损耗。
  • 程序并发性体现在两个方面:
    1. 用户程序和用户程序之间的并发执行。
    2. 用户程序与操作系统程序之间的并发执行。

【知识图解】

  1. 有无并发的不同情况,示意图如下:\
    Concurrency_has_or_not.jpg

  2. 在并行的基础上,有无并发的不同情况,示意图如下: Concurrency_has_or_not_based_on_parallelism.jpg


【知识拓展】

操作系统四大基本特性

  1. 并发(Concurrency):是指计算机系统在一段时间内有多个程序在同时执行。
  2. 共享(Sharing):是指内存中多个并发执行的进程(线程)同时使用同一个系统资源;将资源的共享使用称为“资源共享”或“资源复用”。并发和共享是多用户操作系统的两个最基本特征,并发是共享的前提,共享是并发的基础。
  3. 虚拟(Virtualization):是指通过某种技术将一个物理实体变成若干个逻辑上的对应物,常用的虚拟技术是“时分复用技术”和“空分复用技术”。
  4. 异步(Asynchrony):是指多道程序并发执行时,进程并不是一直不间断地从开始执行到结束,而是以等待 - 执行的循环方式和不可预期的速度向前推进。