📖 对应王道 1.1 节

并发 共享 虚拟 异步 — 这四个特征是操作系统区别于普通软件的根本标志。


1. 并发

并发 vs 并行

并发(Concurrency) 并行(Parallelism)
含义 宏观上同时,微观上交替执行 真正的同一时刻同时执行
硬件要求 单核即可 需要多核
类比 一个人在做饭和洗衣之间来回切换 两个人同时做饭和洗衣

并发的实现:进程与线程

  • 进程(Process):一个运行中的程序实例,是 OS 资源分配的基本单位(内存、文件句柄等都按进程分账)。
  • 线程(Thread):进程内部的执行流,是 CPU 调度的基本单位。
  • 关系:一个进程至少有一个线程,也可以有多个线程。

并发/并行与线程的对应:

  • 同一时刻真正占用 CPU 的是线程。
  • OS 把就绪线程分配到逻辑核上运行。
  • 并行上限 ≈ 逻辑核数;超过上限的线程排队轮转 → 形成并发。

💡 机器有 8 个逻辑核,系统里可以有 200 个进程,但任意时刻最多 ~8 个线程在运行态,其余在就绪态或阻塞态。


2. 共享

共享是指系统中的资源可以被多个并发进程共同使用。

两种共享方式

方式 含义 例子
互斥共享 同一时间只允许一个进程访问资源 打印机 — 不能两个文件同时打
同时共享 允许多个进程在同一时间段内访问资源 磁盘 — 多个进程可以同时读不同文件

并发和共享的关系

相辅相成

  • 没有并发 → 不需要共享(资源独占就行)
  • 没有共享 → 并发无法实现(进程需要共用资源)

3. 虚拟

核心思想:把一个物理上的实体变为多个逻辑上的对应物。

两种虚拟技术

技术 原理 例子
时分复用 把时间分成小段,轮流使用同一个物理资源 单核 CPU 并发执行多个程序
空分复用 把空间分成小块,按需调入调出 4G 内存跑 5G 的程序(虚拟内存)

时分复用:一个 CPU 只有一个核,要同时开四个程序 → OS 在微小时间段内交替执行,让每个程序"以为"自己独占了 CPU。

空分复用:内存只有 4G,要跑 5G 的程序 → 虚拟内存技术把程序分为多个块,运行时只把当前需要的块调入内存,暂时不用的块留在磁盘上。当需要的块不在内存中时换入,同时可以把不用的块换出。用户感觉自己拥有了远大于 4G 的"虚拟"内存空间。


4. 异步

异步:在多道程序环境下,并发执行的程序不是一贯到底的,而是走走停停、以不可预知的速度向前推进。

关键理解:"排到时间 ≠ 能执行"

  • 时间排开 → 解决的是"谁先上 CPU"(调度问题)
  • 阻塞 → 取决于"执行条件是否满足"(资源问题)

💡 举例:进程 A 在 910 点使用资源"心",进程 B 排在 1011 点。

  • 如果 A 在 10 点前释放了"心" → B 拿到资源,正常执行
  • 如果 A 没释放 → B 即使轮到时间片,也得阻塞等待

一句话:排到执行时间执行条件满足


小结

四大特征的关系:

并发 ←相辅相成→ 共享
 ↓             ↓
虚拟(以并发为前提)异步(由并发产生)

其中并发是最基本最重要的特征。没有并发,其他三个就无从谈起。

alt text