第1章 计算机系统概述
1、操作系统的定义
操作系统(OS)是控制和管理整个计算机系统的硬件和软件资源,合理组织调度计算机的工作和资源分配的系统软件。
- 操作系统是系统资源的管理者;
- 提供用户和其他软件方便的接口和环境;
- 是最接近硬件的一层软件。

2、操作系统的功能和目标
1)作为系统资源的管理者
- 提供功能
- 处理机管理(CPU)
- 存储器管理(内存)
- 执行一个程序前需要将该程序放到内存中,才能被CPU处理。
- 文件管理
- 设备管理
- 目标
- 安全、高效
2)向上层提供方便易用的服务
- 封装思想:将硬件功能封装成简单易用的服务
- 提供以下接口:
- GUI(图形用户界面)
- 命令接口:
- 联机命令接口(交互式)
- 例如:命令行。
- 脱机命令接口(批处理式)
- 例如:.bat文件。
- 联机命令接口(交互式)
- 程序接口(系统调用(广义指令)):供程序员通过代码调用
3)作为最接近硬件的层次
- 实现对硬件机器的扩展;
- 将裸机改造成虚拟机,功能更强、使用更方便。
3、操作系统的特征
并发和共享是两个最基本的特征,二者互为存在条件;没有并发和共享,就没有虚拟和异步。
1)并发
- 指多个事件在同一时间间隔内发生(宏观同时,微观交替)。
- 并行:指多个事件在同一时刻发生。
- 单核CPU只能并发,多核CPU可以并行。
2)共享
- 资源可供多个并发进程共同使用。
- 两种共享方式:
- 互斥共享:如摄像头、打印机。
- 同时共享:如硬盘(宏观同时,微观交替)。
3)虚拟
- 将一个物理实体变为多个逻辑实体。
- 两种虚拟技术:
- 空分复用技术:如虚拟内存。
- 时分复用技术:如虚拟处理器(CPU分时复用)。
4)异步
- 进程执行走走停停,速度不可预知。
- 原因:资源有限,进程竞争资源。
4、操作系统的发展和分类
本小节主要关注1-4的操作手段的优缺点;
操作系统的发展历程(手工→批处理→分时→实时)。
1)手工操作阶段
- 缺点:人机速度矛盾,资源利用率低。
2)批处理阶段
①单道批处理系统
- 引入脱机输入/输出技术和监督程序。
- 优点:缓解人机速度矛盾。
- 缺点:资源利用率低,CPU等待I/O。
②多道批处理系统
- 操作系统正式诞生,支持多道程序并发。
- 优点:资源利用率高,系统吞吐量大。
- 缺点:无人机交互,用户不能干预作业。
3)分时操作系统
- 以时间片轮流为用户服务。
- 优点:提供人机交互,多用户独立使用。
- 缺点:不能处理紧急任务。
4)实时操作系统
- 优点:能优先响应紧急任务。
- 分类:
- 硬实时系统:必须严格按时完成(如导弹控制)。
- 软实时系统:可偶尔违反时间规定(如12306)。
5)其他操作系统
- 网络操作系统:实现资源共享和通信(如Windows NT)。
- 分布式操作系统:多机协同,并行处理。
- 个人计算机操作系统:如Windows、macOS。
5、操作系统的运行机制
1) 两种指令
- 特权指令:如内存清零、修改程序状态字(PSW)等,仅内核程序可使用。
- 非特权指令:如加减乘除等,应用程序和内核程序均可使用。
2) 两种处理器状态
- 内核态(核心态/管态):运行内核程序,可执行所有指令。
- 用户态(目态):运行应用程序,只能执行非特权指令。
3) 内核程序 vs. 应用程序
- 内核程序:操作系统核心部分,管理资源,运行在内核态。
- 应用程序:普通程序,运行在用户态,需通过系统调用请求内核服务。
4)状态切换(变态)
- 用户态 → 内核态:通过中断实现,硬件自动完成。
- 内核态 → 用户态:通过执行修改PSW的特权指令实现。
6、中断和异常
1)中断的作用
- 是操作系统夺回CPU控制权的唯一途径;
- 实现用户态到内核态的转换。
2)中断的类型
①内中断(异常、例外)
- 与当前指令相关,信号来自CPU内部
- 陷入(trap):故意引发,如系统调用;
- 故障(fault):可修复,如缺页;
- 终止(abort):不可修复,如除0、非法指令。
②外中断(中断)
- 与当前指令无关,信号来自CPU外部
- 时钟中断:时间片到期;
- I/O中断:设备完成任务。
3) 中断处理流程
- 检测中断信号;
- 查询中断向量表,找到中断处理程序;
- 执行中断处理程序(运行在内核态)。
7、系统调用
1) 什么是系统调用?
- 操作系统提供给应用程序的接口,用于请求内核服务;
- 通过陷入指令(trap/访管指令) 触发。
2)系统调用 vs 库函数
- 系统调用:内核提供,需陷入内核态执行;
- 库函数:可能封装系统调用,也可能独立实现(如取绝对值)。

3)为什么需要系统调用?
- 保证资源共享的安全性和系统稳定性;
- 防止应用程序直接操作硬件或资源。
4)系统调用的分类
- 设备管理:如请求/释放设备;
- 文件管理:如创建/删除/读写文件;
- 进程控制:如创建/终止进程;
- 进程通信:如消息传递;
- 内存管理:如内存分配。
5)系统调用过程
- 传递参数(通过寄存器);
- 执行陷入指令(用户态);
- CPU切换到内核态,执行相应内核程序;
- 返回用户态,继续执行应用程序。
下图中,应用程序会有一条trap指令,交由CPU执行,此时,由内核程序接管CPU的控制,假设需要应用程序需要用到fork系统调用的处理程序,那么则会将该处理程序交由CPU执行,执行完毕后,将控制权交由应用程序继续执行其他指令。

8、操作系统体系结构
1)内核
- 操作系统最核心的部分,包含:
- 时钟管理、中断处理、原语(原子操作);
- 进程管理、存储管理、设备管理。

2)体系结构分类
①大内核(宏内核/单内核)
- 所有功能模块都在内核中。
- 优点:高性能,模块间直接调用。
- 缺点:内核庞大,难以维护。
- 例子:Linux、UNIX。
②微内核
- 仅最基本功能在内核中,其他功能以服务形式运行在用户态。
- 优点:结构清晰,易于维护,可靠性高。
- 缺点:性能低,需频繁切换状态。
- 例子:Windows NT。

变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能。
③分层结构
- 内核分为多层,每层只能调用下一层。
- 优点:易于调试和维护。
- 缺点:效率低,层间调用受限。
④模块化
- 内核划分为独立模块,可动态加载。
- 优点:灵活性强,易于扩展。
- 缺点:模块间依赖复杂。
⑤外核(Exokernel)
- 直接分配硬件资源给应用程序,减少抽象层。
- 优点:高效、灵活。
- 缺点:系统复杂性高,一致性差。
操作系统体系结构对比表
- ⭐ 表示表中重点内容
- 🟡 表示表中新增重点内容
结构类型 | 特性与思想 | 优点 | 缺点 |
---|---|---|---|
分层结构 | 内核分多层,每层可单向调用更低一层提供的接口 | ⭐1. 便于调试和验证,自底向上逐层调试验证; 2. 易扩充和易维护,各层之间调用接口清晰固定 | 1. 仅可调用相邻底层,难以合理定义各层的边界; ⭐2. 效率低,不可跨层调用,系统调用执行时间长 |
模块化 | 将内核划分为多个模块,各模块之间相互协作; ⭐内核 = 主模块 + 可加载内核模块 | 1. 模块间逻辑清晰易于维护,确定接口后可多模块同时开发; ⭐2. 支持动态加载新模块,增强OS适应性; ⭐3. 模块可直接调用,效率高。 | 1. 模块间的接口定义未必合理、实用; 2. 模块间相互依赖,更难调试和验证。 |
宏内核 | 所有系统功能都放在内核中(常采用模块化设计) | 🟡1. 性能高,内核内部功能可直接相互调用 | 🟡1. 内核庞大功能复杂,难以维护; 🟡2. 某个功能模块出错可能导致整个系统崩溃。 |
微内核 | 仅最核心功能(中断、原语、进程通信等)在内核中,其余功能以用户进程形式运行 | 🟡1. 内核小功能少,易于维护,可靠性高; 2. 内核外功能模块出错不会导致整个系统崩溃。 | 🟡1. 性能低,需频繁切换用户态/核心态; 🟡2. 用户态功能模块不能直接调用,需通过内核消息传递间接通信。 |
外核 | ⭐内核负责进程调度、通信等;外核负责为用户进程分配未经抽象的硬件资源并保证安全 | ⭐1. 可直接分配非虚拟化资源,更灵活; ⭐2. 减少映射层,提升效率。 | 1. 降低了系统的一致性; 2. 使系统变得更复杂。 |
- 分层结构

- 模块化

- 外核

9、操作系统引导(Boot)
1)引导过程

- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机),即BIOS中的自举程序。
- 读取磁盘的主引导记录(MBR),执行其中的引导程序。
- 扫描分区表,找到活动分区。
- 读取活动分区的分区引导记录(PBR)。
- 加载操作系统初始化程序(如Windows的Boot Manager)。
- 完成启动。
2)相关概念
- MBR:包含引导程序和分区表。
- PBR:活动分区的引导记录。
- BIOS:基本输入输出系统,存储自举程序。
10、虚拟机
1)虚拟机概念
- 通过虚拟化技术,将一台物理机虚拟为多台虚拟机(VM)。
- 每台VM可运行独立的操作系统。
2)虚拟机监控程序(VMM / Hypervisor)
- 两类虚拟机管理程序的对比
特性 | 第一类VMM | 第二类VMM |
---|---|---|
对物理资源的控制权 | 直接运行在硬件之上,能直接控制和分配物理资源 | 运行在Host OS之上,依赖于Host OS为其分配物理资源 |
资源分配方式 | 在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于"外核"的分配方式,分配未经抽象的物理硬件 | GuestOS拥有自己的虚拟磁盘,该盘实际上是Host OS文件系统中的一个大文件。GuestOS分配到的内存是虚拟内存 |
性能 | 性能更好 | 性能更差,需要HostOS作为"中介" |
可支持的虚拟机数量 | 更多,不需要和Host OS竞争资源,相同的硬件资源可以支持更多的虚拟机 | 更少,Host OS本身需要使用物理资源,Host OS上运行的其他进程也需要物理资源 |
虚拟机的可迁移性 | 更差 | 更好,只需导出虚拟机镜像文件即可迁移到另一台HostOS上,商业化应用更广泛 |
运行模式 | 第一类VMM运行在最高特权级(Ring 0),可以执行最高特权的指令 | 第二类VMM部分运行在用户态、部分运行在内核态。GuestOS发出的系统调用会被VMM截获,并转化为VMM对HostOS的系统调用 |
-
支持虚拟化的CPU通常分更多指令等级
|
| 可支持的虚拟机数量 | 更多,不需要和Host OS竞争资源,相同的硬件资源可以支持更多的虚拟机 | 更少,Host OS本身需要使用物理资源,Host OS上运行的其他进程也需要物理资源 |
| 虚拟机的可迁移性 | 更差 | 更好,只需导出虚拟机镜像文件即可迁移到另一台HostOS上,商业化应用更广泛 |
| 运行模式 | 第一类VMM运行在最高特权级(Ring 0),可以执行最高特权的指令 | 第二类VMM部分运行在用户态、部分运行在内核态。GuestOS发出的系统调用会被VMM截获,并转化为VMM对HostOS的系统调用 | -
支持虚拟化的CPU通常分更多指令等级
