目录
[1. 定义与定位](#1. 定义与定位)
[2. 四大核心功能](#2. 四大核心功能)
[3. 两类用户接口](#3. 两类用户接口)
[4. 四大基本特征](#4. 四大基本特征)
[1. 手工操作与脱机 I/O](#1. 手工操作与脱机 I/O)
[2. 批处理系统](#2. 批处理系统)
[3. 分时操作系统](#3. 分时操作系统)
[4. 实时操作系统](#4. 实时操作系统)
[5. 网络与分布式操作系统](#5. 网络与分布式操作系统)
[6. 微机操作系统分类](#6. 微机操作系统分类)
[1. 操作系统内核](#1. 操作系统内核)
[2. 处理机双重模式:用户态与内核态](#2. 处理机双重模式:用户态与内核态)
[3. 中断与异常](#3. 中断与异常)
[中断处理 vs 子程序调用](#中断处理 vs 子程序调用)
[4. 系统调用](#4. 系统调用)
[1. 分层结构](#1. 分层结构)
[2. 模块化结构](#2. 模块化结构)
[3. 宏内核 vs 微内核](#3. 宏内核 vs 微内核)
[4. 外核结构](#4. 外核结构)
[七、高频错题 & 易混避坑清单](#七、高频错题 & 易混避坑清单)
第一章是操作系统的入门总览,概念细碎、易混淆点多,是 408 选择题的高频出题区。本文完整覆盖 OS 定义功能、发展历程、运行环境、系统结构、引导与虚拟机全章节内容。
一、操作系统基本概念
1. 定义与定位
操作系统(Operating System, OS)是控制和管理计算机系统软硬件资源、合理调度与分配任务,为用户和其他软件提供统一接口与运行环境的最基本的系统软件。 它是硬件与用户之间的桥梁:向下管理硬件资源,确保系统高效安全运行;向上为应用程序提供运行环境。
2. 四大核心功能
操作系统作为计算机系统资源的管理者,核心负责四类资源管理:
- 处理机管理:本质是 CPU 与进程调度,包括进程控制、同步、通信、调度、死锁处理
- 存储器管理:内存分配与回收、地址映射、内存保护与扩充、虚实存储管理
- 文件管理:磁盘空间管理、目录组织、文件读写与访问保护
- 设备管理:处理 I/O 请求、屏蔽设备差异、缓冲管理、设备分配与驱动、虚拟设备
3. 两类用户接口
操作系统作为用户与硬件的接口,分为两大类:
- 用户接口:面向普通用户,包括命令行接口(联机交互、批处理作业控制语言)和图形用户界面 GUI,降低使用门槛
- 程序接口(系统调用) :面向应用程序,是程序请求系统服务、访问系统资源的唯一合法途径
易错点:库函数(如 printf、malloc)是对系统调用的封装,本身并非操作系统接口;纯计算类库函数(如 strlen、sqrt)不涉及系统调用。
4. 四大基本特征
操作系统的四个核心特征贯穿全课程,其中并发与共享是最基本特征,二者互为前提。
- 并发(Concurrency)
- 定义:两个或多个事件在同一时间间隔内发生
- 易混辨析:并行是两个事件在同一时刻真正同时发生;单 CPU 系统只有并发,多核 / 多 CPU 才能实现并行
- 多道程序通过调度切换,让 CPU 与 I/O 设备并行工作,提升资源利用率
- 共享(Sharing)
- 互斥共享:临界资源(打印机、变量、表格)同一时间段仅允许一个进程访问
- 同时共享:宏观上同时访问,微观分时交替(如只读磁盘文件、可重入代码)
- 虚拟(Virtual) 通过时分复用(如 CPU 时间片轮转)、空分复用(如虚拟内存),将一个物理实体映射为多个逻辑实体,让用户感觉独占资源。
- 异步(Asynchronism) 进程以不可预知的速度断续推进,走走停停;只要程序运行环境正确,结果就具备可再现性。
二、操作系统发展历程
1. 手工操作与脱机 I/O
- 手工阶段:用户独占整机,CPU 大量时间等待人工操作,资源利用率极低
- 脱机 I/O:引入外围机完成 I/O 准备,减少 CPU 空闲时间,提升 I/O 效率
2. 批处理系统
- 单道批处理:作业自动顺序执行,内存始终只有一道程序;解决了人工干预问题,但 CPU 利用率仍低
- 多道批处理 :内存同时驻留多道程序,某道程序 I/O 阻塞时立即切换另一道运行
- 特点:多道、宏观并行、微观串行
- 核心解决问题:处理机调度、内存分配保护、I/O 调度、文件组织与安全
- 优点:资源利用率高、系统吞吐量大
- 缺点:无交互能力,响应时间长
3. 分时操作系统
将 CPU 时间划分为很短的时间片,轮流分配给各终端用户使用。
- 核心特征:多路性、交互性、独立性、及时性
- 核心目标:快速响应用户,支持多用户同时联机交互
- 时间片固定时,用户数越多,响应时间越长
4. 实时操作系统
为严格时间限制的关键任务设计,必须在规定时限内完成处理。
- 分类:硬实时系统(绝对不能超时,如飞控、机床控制)、软实时系统(偶尔超时可容忍,如订票、股票交易)
- 核心要求:确定性、高可靠性、强实时性
5. 网络与分布式操作系统
- 网络操作系统:实现多机通信与资源共享,用户需主动操作远程资源
- 分布式操作系统:多机协同完成同一任务,对用户透明,像单一系统;核心是分布性、并行性、透明性
6. 微机操作系统分类
- 单用户单任务:MS-DOS
- 单用户多任务:Windows 桌面版
- 多用户多任务:UNIX、Linux 服务器版、Windows Server
三、操作系统运行环境(核心考点)
1. 操作系统内核
现代 OS 采用分层架构,与硬件紧密相关、高频执行的核心组件常驻内存,称为内核。
- 支撑功能:时钟管理、中断机制、原语(原子操作,关中断保证执行不被打断)
- 资源管理功能:进程管理、存储器管理、设备管理
2. 处理机双重模式:用户态与内核态
为保护系统安全,CPU 设置两种运行模式,通过硬件标志位区分:
- 内核态(管态):可执行全部指令,访问全部地址空间;执行操作系统内核代码
- 用户态(目态):只能执行非特权指令,访问受限地址空间;执行用户程序代码
特权指令与非特权指令
- 特权指令(必须内核态执行):直接操作硬件、修改系统全局状态的指令,如 I/O 指令、开关中断、修改 PSW、设置中断向量表、置时钟、停机指令
- 非特权指令(用户态可执行):普通运算、数据读写、跳转等不影响系统安全的指令
易错点:访管指令(Trap / 陷入指令)在用户态执行,其作用是主动触发异常,让 CPU 自动切换到内核态,是系统调用的入口。
状态切换
- 用户态 → 内核态:中断、异常、访管指令触发;由硬件自动完成模式切换,并非由软件指令直接修改状态字
- 内核态 → 用户态:通过中断返回指令(特权指令)完成
3. 中断与异常
用户程序进入内核的唯一合法途径是中断或异常,是现代操作系统并发与调度的基础。
定义与分类
- 外中断(中断) :来自 CPU 外部的硬件事件,如 I/O 完成、时钟中断
- 可屏蔽中断(INTR):如普通 I/O 中断,可通过中断屏蔽字忽略
- 不可屏蔽中断(NMI):如电源掉电,必须立即处理
- 内中断(异常) :来自 CPU 执行指令内部的事件
- 故障(Fault):可恢复,如缺页、除零;处理完返回当前指令重新执行
- 自陷(Trap):主动触发,如系统调用的访管指令
- 终止(Abort):严重错误,程序无法继续运行,如硬件故障
中断处理 vs 子程序调用
| 对比维度 | 中断处理 | 子程序调用 |
|---|---|---|
| 触发时机 | 随机、异步 | 事先安排、同步 |
| 主体关系 | 中断程序与被中断程序是主从关系 | 同一程序内的调用 |
| 实现方式 | 需要硬件电路支持 | 纯软件实现 |
| 入口地址 | 由中断向量表提供 | 由 CALL 指令指定 |
| 优先级 | 多中断需优先级裁决 | 无优先级 |
4. 系统调用
系统调用是操作系统提供给应用程序的接口,是请求内核服务的唯一合法方式,本质是特殊的过程调用。
执行过程(四步)
- 传递系统调用号与参数,通过寄存器或栈传入
- 执行陷入(Trap)指令,CPU 由用户态切换至内核态,保存现场
- 内核根据系统调用号查找中断向量表,定位并执行对应服务例程
- 恢复现场,返回用户态,继续执行用户程序
与普通过程调用的区别
- 运行状态不同:普通调用全程用户态;系统调用会切换内核态
- 状态切换:系统调用需陷入内核,由硬件完成模式切换
- 返回机制:普通调用直接返回;系统调用可能引发调度,不一定立即返回
- 嵌套深度:系统调用嵌套深度受内核栈限制
四、操作系统结构
1. 分层结构
将操作系统划分为若干层,底层为硬件、顶层为用户接口,仅上层调用下层,单向依赖。
- 优点:便于调试与验证,易于扩展维护
- 缺点:合理分层困难,跨层调用开销大,运行效率低
2. 模块化结构
将 OS 拆分为若干独立模块,定义模块间接口,通过接口通信。
- 评价标准:高内聚、低耦合
- 优点:灵活性强、便于扩展开发
- 缺点:接口设计难度高,模块间依赖复杂,可靠性弱于分层结构
3. 宏内核 vs 微内核
| 维度 | 宏内核(单内核) | 微内核 |
|---|---|---|
| 核心设计 | 进程、内存、文件、驱动等全部功能在内核态运行 | 仅保留最基础功能在内核,其余服务移至用户态 |
| 通信方式 | 直接函数调用 | 靠进程间通信(IPC)传递消息 |
| 性能 | 高,调用开销小 | 较低,IPC 与上下文切换开销大 |
| 可靠性 | 较低,单个模块崩溃可能导致全系统宕机 | 高,单个服务崩溃不影响内核 |
| 扩展性 | 差,修改需重新编译内核 | 好,新增服务无需改动内核 |
| 代表系统 | Linux、早期 Windows | QNX、Fuchsia、HarmonyOS NEXT |
微内核核心保留三类机制:与硬件紧密相关的底层处理、基本资源管理、客户与服务器的通信支持。
4. 外核结构
内核仅负责资源隔离与分配,直接向用户层暴露硬件资源;资源管理由用户态库完成,减少抽象开销,性能更高。
五、操作系统引导
操作系统引导是开机后加载内核的完整流程: 加电 → BIOS/UEFI自检(POST) → 读取硬盘MBR主引导记录 → 执行Bootloader(如GRUB) → 加载操作系统内核到内存 → 内核初始化、创建核心进程 → 启动shell/图形界面
- BIOS 固化在 ROM 中,是开机执行的第一段代码
- MBR 位于硬盘第一个扇区,包含引导代码与分区表
- Bootloader 负责将内核从磁盘读入内存并启动
六、虚拟机基础
虚拟机监控器(VMM/Hypervisor)将物理硬件虚拟化为多套逻辑硬件,每台虚拟机可独立运行完整操作系统。
- 第一类虚拟机(裸金属型):VMM 直接运行在硬件之上,性能高,用于服务器(如 VMware ESXi、Xen)
- 第二类虚拟机(宿主型):VMM 运行在普通宿主操作系统之上,使用便捷(如 VMware Workstation、VirtualBox)
- 核心优势:资源隔离、多系统共存、快照迁移、提升硬件利用率
七、高频错题 & 易混避坑清单
以下为刷题中高频出错的核心结论,是第一章选择题的主要丢分点:
- 库函数 ≠ 系统调用:库函数运行在用户态,部分库函数封装了系统调用;纯计算类库函数不涉及内核,不能等同于操作系统接口。
- 并发 ≠ 并行:并发是同一时间间隔交替运行,并行是同一时刻同时运行;单 CPU 只有并发没有并行。
- 访管指令执行状态:访管指令本身在用户态执行,它的作用是触发异常、进入内核态;不能在内核态执行。
- 用户态→内核态的切换由硬件完成:不是由访管指令直接修改 PSW,而是 CPU 检测到陷入指令后自动完成模式切换。
- 分时系统的核心目标是快速响应用户,而非提高系统吞吐率;吞吐率是批处理系统的追求。
- 多道程序设计的技术前提是中断机制:没有中断就无法实现 I/O 阻塞时的进程切换。
- 中断向量表采用数组结构,通过中断号直接索引,访问速度最快。
- 微内核的优势是可靠、安全、易扩展,劣势是性能开销大;不能认为微内核性能一定优于宏内核。
- 操作系统不管理源程序的编译逻辑:编译器是上层应用软件,不属于 OS 的管理范畴。
- 进程数越多,CPU 利用率并非越高:进程过多会导致频繁切换,上下文开销增大,利用率反而下降。
- 缺页、除零属于异常(内中断),不属于外中断;时钟中断、I/O 完成中断属于外中断。
- 原语具有原子性,执行期间不允许被中断,通过关中断实现。