OS Characteristics
操作系统的四个基本特征
现代操作系统在多个程序共同使用有限资源的环境中运行,由此形成并发、共享、虚拟和异步四个基本特征。其中,并发和共享是另外两个特征存在的基础。操作系统的定位、资源管理和用户接口见 OS-Overview。
并发
并发是指两个或多个事件在同一时间间隔内发生。宏观上看它们同时进行,微观上可能交替执行。
并行是指两个或多个事件在同一时刻同时发生。
| 概念 | 关键点 |
|---|---|
| 并发 | 同一时间段内都在推进,单核 CPU 上也能出现 |
| 并行 | 同一时刻真正同时执行,通常需要多核或多个处理单元 |
单核 CPU 同一时刻只能执行一个程序,但可以通过快速切换让多个程序并发运行。多核 CPU 可以让多个程序并行执行,但只要运行程序数超过核心数,仍然需要并发调度。
操作系统与程序并发几乎是一起出现的。没有并发,现代操作系统的大部分资源管理问题都不会出现。
共享
共享是指系统中的资源可供多个并发执行的进程共同使用。
共享方式有两类:
| 方式 | 含义 | 例子 |
|---|---|---|
| 互斥共享 | 一个时间段内只允许一个进程访问 | 摄像头、普通打印机 |
| 同时共享 | 宏观上多个进程可同时访问 | 多个进程交替读写磁盘 |
并发和共享互为存在条件。没有并发,系统中只有一个程序运行,共享失去意义;没有共享,多个进程无法共同使用资源,并发也难以展开。
虚拟
虚拟是把一个物理实体变成若干逻辑上的对应物。物理实体是真实存在的,逻辑对应物是用户感受到的。
| 虚拟对象 | 技术 | 用户感受 |
|---|---|---|
| 内存 | 虚拟存储器 | 每个进程仿佛拥有独立、连续、较大的地址空间 |
| CPU | 虚拟处理器 | 多个进程仿佛都在同时运行 |
| 设备 | SPOOLing 等 | 独占设备可表现为逻辑共享设备 |
虚拟离不开并发。若系统中始终只运行一个程序,就没有必要把一个 CPU 虚拟成多个处理器,也没有必要让多个进程共享一个逻辑上的大地址空间。
异步
异步是指在多道程序环境下,进程并不是从头到尾一贯到底地运行,而是因为等待资源、I/O、调度等原因走走停停,以不可预知的速度向前推进。
异步性来自并发和资源限制。多个进程争用有限资源时,谁先获得 CPU、谁先完成 I/O、谁先被唤醒,都可能随系统状态变化。
特征之间的关系
| 特征 | 关系 |
|---|---|
| 并发 | 最基本特征之一,带来调度、同步、互斥等问题 |
| 共享 | 最基本特征之一,要求操作系统统一管理资源 |
| 虚拟 | 以并发和共享为基础,把物理资源抽象成逻辑资源 |
| 异步 | 并发程序争用资源后产生的执行不确定性 |
并发和共享是操作系统最基本的两个特征。没有并发和共享,就谈不上虚拟和异步。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Elian's blog page!