1.1 操作系统是什么
先记住两个身份:它既是"管理者",又是"桥梁"。
操作系统(OS)是管理和控制计算机硬件与软件资源的系统软件,是用户和计算机硬件之间的接口。 没有它,你写的程序就要直接对着磁盘、网卡、CPU 写指令——那几乎是无法想象的。
两个核心身份
- 资源管理者——管理 CPU、内存、外设、文件等一切资源,负责分配、调度、回收(进程管理、存储管理、设备管理、文件管理)。
- 用户接口——把复杂硬件包装成方便使用的服务,给用户命令行、图形界面、给程序系统调用。
五大功能(必背)
- 处理机管理——进程/线程的创建、调度、通信(第 2 章)。
- 存储管理——内存分配、回收、地址变换、虚拟内存(第 3 章)。
- 设备管理——I/O 控制、缓冲、磁盘调度(第 4 章)。
- 文件管理——文件组织、目录、存取控制(第 5 章)。
- 用户接口——命令接口、程序接口、图形界面(第 6 章)。
1.2 发展历程与分类(对比表要会填)
考试就问"哪种系统适合什么场景、有什么特点"。
| 类型 | 特点 | 优点 / 缺点 | 典型场景 |
|---|---|---|---|
| 批处理 | 作业成批交给系统连续处理,用户不干预 | 吞吐量高;无交互、周转慢 | 早期大型机数据处理 |
| 分时 | CPU 按时间片轮流给多个用户,人人感觉"独占" | 交互性好、响应及时;系统开销大 | 多用户登录的服务器、Linux 终端 |
| 实时 | 在规定时间内必须响应(硬实时不容错过) | 及时、可靠;资源利用率次要 | 导弹控制、工业控制、自动驾驶 |
| 网络 / 分布式 | 多台机器互联协作、共享资源 | 可扩展、容错 | 集群、云平台 |
| 嵌入式 | 装在小设备里,精简专用 | 体积小、专用性强 | 路由器、家电、单片机系统 |
记忆口诀
- 批处理求吞吐,分时求交互,实时求及时。三个"求"对应各自的设计目标,答题先想这句话。
易错
- "分时系统也用批处理思想"——错。分时的核心是时间片轮转的交互性。
- 硬实时 vs 软实时:硬实时"错过截止时间=失败"(如飞行控制);软实时偶尔超时还能接受(如视频播放)。
课堂练习(3 题)
- 多用户同时登录、每人感觉独占一台机器的系统属于哪一类? 答:分时操作系统(按时间片轮转调度)。
- 工业控制场景要求响应绝不能超时,应选哪种操作系统? 答:实时操作系统(硬实时)。
- 批处理系统的主要优点是什么? 答:系统吞吐量大、资源利用率高(把多个作业成批连续处理)。
1.3 内核、用户态与系统调用
理解"特权"两个字,后面很多题就顺了。
- 内核(Kernel)——操作系统最核心的部分,常驻内存,掌握硬件的直接控制权。
- 两种运行状态:核心态(管态/特权态)可以执行所有指令;用户态(目态)只能执行非特权指令。
- 用户程序要用硬件(读文件、发网络包)怎么办?——通过系统调用请求操作系统代劳: 用户程序执行一条"访管指令"(trap)陷入内核,由内核完成操作后再返回用户态。
- 常见的系统调用类型:进程控制(fork/exit)、文件操作(open/read/write)、设备管理、内存管理、通信。
一句话链条
- 用户程序 → 系统调用 → 核心态执行 → 返回用户态。这是"用户态和核心态为什么要切换"的标准答案。
课堂练习(2 题)
- 用户程序能否直接执行 I/O 指令?为什么? 答:不能。I/O 等特权指令只能在核心态执行,用户程序必须通过系统调用请内核代劳。
- 系统调用和普通函数调用最本质的区别是什么? 答:系统调用会让 CPU 从用户态陷入核心态执行内核代码,普通函数调用始终在用户态。