# 操作系统

> CIE A-Level 计算机科学 · 9618
> 来源: https://www.owlsprep.com/zh/study/cie-9618-u5-operating-systems/

本模块涵盖CIE A-Level 9618课程大纲要求中操作系统的核心目标、关键功能、分类和核心进程，符合试卷2的考核要求。

**先修:** [计算机硬件和CPU架构的基础知识](https://www.owlsprep.com/zh/study/cie-9618-u4-processor-fundamentals/)

## 学习目标

- 解释操作系统的核心目标和关键功能
- 区分常见的操作系统类别
- 描述特权级（内核/用户模式）和进程管理
- 计算常见CPU调度算法的平均等待时间

## 操作系统的核心目标与功能

操作系统（OS）是一组系统程序，作为计算机硬件、终端用户和应用软件之间的中介。它的主要作用是管理共享资源，为应用程序运行提供稳定、安全的环境。

**操作系统** — 管理计算机硬件与软件资源，并为应用程序提供通用服务的系统软件。

*例:* Windows 11、Linux、macOS、Android

- 处理器管理：调度进程分配CPU访问权
- 内存管理：为运行进程分配和回收内存空间
- I/O管理：控制与外设的通信
- 文件管理：在二级存储上组织数据存储
- 资源分配：确保共享资源的公平、安全访问
- 用户界面：提供CLI或GUI供用户交互

**例题:** 列出操作系统的三个关键功能，并分别给出一个实际示例。

1. 确定3个功能，并给出清晰的实际示例：
2. 1. 内存管理：浏览器启动时为其分配2GB内存，浏览器关闭时回收该内存。
3. 2. I/O管理：为文字处理器缓冲键盘输入，避免用户快速打字时出现延迟。
4. 3. 文件管理：记录SSD上哪些存储块属于每个用户文档，并将文件组织到文件夹中。

> **考试提示:** 为了获得满分，请始终将每个功能与其用途关联，不要仅列出功能名称。

## 操作系统的类型

操作系统可按用例和处理模型分类。CIE 9618经常考核最常见类型之间的区别：

- **批处理操作系统**：将相似的非交互作业分组批量在大型机上处理，处理过程中无用户交互
- **多道程序操作系统**：同时将多个程序加载到内存中，当一个程序等待I/O时切换CPU到其他程序，保持CPU忙碌
- **分时操作系统**：为多个进程分配CPU时间片，为交互用户创造同时执行的错觉
- **实时操作系统**：保证最大响应时间满足严格截止要求，用于安全关键嵌入式系统
- **分布式操作系统**：管理由独立计算机组成的网络，向用户呈现为一个统一的系统

**例题:** 解释为什么汽车防抱死制动系统使用实时操作系统，而非通用操作系统。

1. 1. 防抱死制动必须在极短的严格截止时间内完成制动调整，避免车辆打滑。
2. 2. 实时操作系统设计目标是保证中断和进程请求的最大响应时间可控。
3. 3. 通用操作系统优先考虑吞吐量和公平性，会导致不可预测的响应延迟，使系统不安全。
4. 4. 因此该安全关键系统需要实时操作系统来满足时序约束。

## 特权级：内核模式 vs 用户模式

内核是操作系统运行时常驻内存的核心部分。为了保护系统免受故障或恶意应用的破坏，现代操作系统大多使用两种不同的特权级执行代码。

**特权级** — 将操作系统内核代码与应用程序代码分离的两种处理器模式。内核模式允许完全访问所有硬件和内存，用户模式则限制访问以保护系统稳定性。

*记法:* Kernel Mode / User Mode

**例题:** 描述当应用程序请求读取硬盘上文件的数据时会发生什么。

1. 1. 用户应用程序向操作系统发出系统调用，请求读取操作。
2. 2. 处理器从用户模式切换到内核模式，执行处理请求的操作系统内核代码。
3. 3. 内核检查应用程序有权访问该文件，然后向磁盘控制器调度I/O操作。
4. 4. I/O完成后，内核将请求的数据从内核内存复制到应用程序的用户内存空间。
5. 5. 处理器切换回用户模式，将控制权连同请求的数据返回给应用程序。

## CPU调度算法

CPU调度选择下一个就绪进程获得CPU访问权。其目标是最大化系统吞吐量，最小化等待时间，并保证公平性。下文总结了9618考试中最常考核的算法：

| 算法 | 类型 | 关键特性 |
| --- | --- | --- |
| 先来先服务（FCFS） | 非抢占式 | 按到达顺序调度，会导致护航效应 |
| 最短作业优先（SJF） | 非抢占式 | 优先调度最短突发时间进程，平均等待时间最短 |
| 轮转法 | 抢占式 | 每个进程获得固定时间片，适用于分时系统 |
| 最短剩余时间优先 | 抢占式 | 抢占式SJF，开销更高 |

**例题:** 三个进程在时间0到达，突发时间分别为：P1 = 4ms，P2 = 2ms，P3 = 6ms。计算FCFS和SJF调度的平均等待时间。

1. FCFS调度中，进程按到达顺序运行：P1 → P2 → P3
2. 等待时间 = 等待CPU的时间：P1 = 0ms，P2 = 4ms，P3 = 4 + 2 = 6ms
3. 平均等待时间 = (0 + 4 + 6) / 3 = 10 / 3 ≈ 3.33ms
4. SJF调度中，进程按突发时间从短到长运行：P2 → P1 → P3
5. 等待时间：P2 = 0ms，P1 = 2ms，P3 = 2 + 4 = 6ms
6. 平均等待时间 = (0 + 2 + 6) / 3 = 8 / 3 ≈ 2.67ms，符合SJF平均等待时间更短的预期结论。

> **Exam tip**
>
> 调度计算题请始终写出所有步骤，即使最终平均值计算错误，步骤也会给分。

## 常见错误

- **错误做法:** 混淆批处理操作系统和多道程序操作系统
  - 原因: 两者都处理多个作业，但核心结构不同
  - 正确做法: 批处理操作系统分组处理运行过程中无需用户输入的非交互作业，而多道程序操作系统并发运行多个作业，在它们之间切换CPU。
- **错误做法:** 混淆抢占式和非抢占式调度的定义
  - 原因: 许多考生认为所有现代调度都是抢占式的
  - 正确做法: FCFS和非抢占式SJF不会抢占运行中的进程：进程会一直占用CPU直到结束或主动释放。只有轮转法和最短剩余时间优先是抢占式的。
- **错误做法:** 混淆用户模式和内核模式的特权
  - 原因: 考生经常颠倒特权级
  - 正确做法: 只有内核在内核模式运行，拥有完全硬件访问权限。应用程序在用户模式运行，访问受限，必须通过系统调用请求内核服务。
- **错误做法:** 调度问题中错误计算等待时间
  - 原因: 等待时间常和周转时间混淆
  - 正确做法: 等待时间 = 周转时间 - 突发时间。周转时间是从进程到达到结束的总时间，而等待时间仅为等待CPU的时间。
- **错误做法:** 声称实时操作系统只是比通用操作系统'更快'
  - 原因: 实时操作系统的核心定义特征常被误解
  - 正确做法: 实时操作系统保证可预测、有界的响应时间，而不只是原始速度。这对于延迟会导致故障的安全关键系统至关重要。

## 速查表

| 概念 | 核心总结 |
| --- | --- |
| 操作系统核心功能 | CPU、内存、I/O、文件、资源管理，用户界面 |
| 实时操作系统 | 保证响应时间，安全关键系统 |
| 内核模式 | 完全硬件访问，仅操作系统内核使用 |
| 用户模式 | 访问受限，仅应用程序使用 |
| FCFS调度 | 按到达顺序，非抢占式 |
| SJF调度 | 优先最短突发，平均等待时间最短 |
| 轮转法 | 固定时间片，抢占式，分时系统 |

## 下一步

本主题是CIE 9618第5单元所有后续系统软件主题的基础。资源管理等核心操作系统概念是下一个学习主题内存分配、虚拟内存和文件系统组织的基础。调度和特权级问题经常在试卷2中以4-8分的大题出现，掌握这里的定义和计算将帮助你在这些常见考题中获得高分。本主题还连接了第4单元中先前学习的处理器架构和I/O中断知识。

- [系统软件的类型](https://www.owlsprep.com/zh/study/cie-9618-u5-types-of-system-software/)
- [编译器、解释器和汇编器](https://www.owlsprep.com/zh/study/cie-9618-u5-compilers-interpreters-and-assemblers/)
- [链接器与加载器](https://www.owlsprep.com/zh/study/cie-9618-u5-linkers-and-loaders/)

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/cie-9618-u5-operating-systems/
