操作系统(OS)是控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序的集合。没有任何软件支持的计算机称为裸机。
四大特征
- 并发(Concurrence):两个或多个事件在同一个时间间隔内发生。与并行(同一时刻)相区别
- 共享(Sharing):互斥共享方式(如打印机,一段时间内只允许一个进程访问)、同时访问方式
- 虚拟(Virtual):时分复用技术(处理器的分时共享)、空分复用技术(虚拟存储器)
- 异步(Asynchronism)
并发和共享是操作系统两个最基本的特征,二者互为存在条件。
目标和功能
作为计算机系统资源的管理者:
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
作为用户与计算机硬件系统之间的接口:
- 命令接口:程序接口(批处理命令接口)、联机命令接口(交互式命令接口)
- 程序接口:由一系列系统调用组成
- 图形用户界面(GUI)
发展与分类
| 阶段 | 特点 |
|---|---|
| 手工操作阶段 | 独占,CPU 等待人工操作 |
| 单道批处理 | 自动性、顺序性、单道性 |
| 多道批处理 | 多道、宏观上并行、微观上串行;资源利用率高、吞吐量大;无交互、响应慢 |
| 分时操作系统 | 同时性、交互性、独立性、及时性 |
| 实时操作系统 | 硬实时 / 软实时;及时性、可靠性 |
分时系统响应时间:T ≈ QN(Q 为时间片,N 为用户数)。此外还有网络操作系统、分布式操作系统、个人计算机操作系统、嵌入式操作系统等。
运行环境
运行机制
- 内核程序执行特权指令(不允许用户直接使用的指令)
- 应用程序使用非特权指令
CPU 状态
- 用户态(目态):可执行读时钟、取数、寄存器清零、算术运算、访管指令等
- 核心态(管态):输入/输出指令、系统调用(广义指令)等只能在核心态执行
- 用户态 → 内核心:中断、异常、访管指令(自愿中断)
- 内核态 → 用户态:设置程序状态字
访管指令是一条可以在用户态下执行的指令,通过产生访管中断(自愿中断)使系统转换为核心态。
操作系统内核的四个方面
- 时钟管理
- 中断机制
- 原语(Atomic Operation):处于操作系统最底层,运行具有原子性、时间较短
- 系统控制的数据结构及处理:进程管理、存储器管理、设备管理
中断和异常
- 中断(Interruption,外中断):来自 CPU 执行指令以外的事件,如 I/O 结束中断、时钟中断
- 异常(Exception,内中断/陷入 trap):源自 CPU 执行指令内部的事件,如非法操作码、地址越界、算术溢出、缺页、访管指令
中断处理过程:关中断 → 保存断点(PC)→ 中断服务程序寻址(PSWR)→ 保存现场和屏蔽字 → 开中断 → 执行中断服务程序 → 关中断 → 恢复现场和屏蔽字 → 开中断、中断返回。其中前三步由硬件(中断隐指令)自动完成,其余由中断服务程序完成。
系统调用
系统调用是操作系统内核为应用程序提供服务的接口,按功能可分为设备管理、文件管理、进程控制、进程通信、内存管理等。库函数是语言或应用程序的一部分,运行在用户空间;许多库函数通过系统调用实现功能;未使用系统调用的库函数执行效率通常更高(无需上下文切换与状态转换)。
体系结构
- 大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态,性能高
- 微内核:只把最基本的功能保留在内核,优点是使系统更加可靠