CC408 · 全科导学

操作系统导学:让多个程序有序地使用同一台机器

用进程、内存、文件和 I/O 理解资源管理。

你可以同时浏览网页、听音乐、编辑文档,但处理器、内存、磁盘和外部设备都是有限的。谁先运行?一个程序能否随意改另一个程序的内存?两个任务同时修改一份数据怎么办?文件保存后怎样重新找到?操作系统研究的就是资源管理、执行控制和应用服务背后的机制。

这门课需要把“静态名词”变成“动态过程”。进程不是背一个定义,调度不是背一个算法名称,信号量也不是背一段固定代码。你应当能说明:当前有哪些实体和资源、允许发生什么动作、动作之后状态怎样变化、约束为什么没有被破坏。

本科目分值 35 分,占约 23.33%。常见题型为 10 道选择题和 2 道综合应用题。同步题、内存题等可以训练方法,但不存在“套模板必然满分”的保证。

学之前,先准备什么?

建议先了解 CPU、指令、中断、主存和磁盘,具备数组、链表、队列等基本结构的直觉。学到虚拟内存时,和组成原理中的地址、页表、TLB 进行对照;学到 I/O 时,和中断、DMA 对照。

可以把 OSTEP 的“虚拟化、并发、持久化”作为理解操作系统的三个问题视角:怎样向程序提供可用的资源抽象,怎样处理并发,怎样保存数据。考试目录仍按考试大纲的五个模块组织。

知识地图:围绕资源和状态组织

大纲模块内容骨架学完要能完成的任务本站章节
操作系统基础概念、发展、用户态/内核态、中断异常、系统调用、链接装入、地址空间、结构、引导和虚拟机描述应用、内核、硬件协作完成一次请求的过程操作系统基础
进程管理进程线程、状态与控制、IPC、调度和上下文切换、同步互斥、锁/信号量/条件变量、死锁画状态图和调度过程;根据资源约束设计同步;分析死锁条件进程管理
内存管理地址空间、分配回收、分页分段、虚拟内存、请求分页、页面置换、映射文件完成地址转换和页面访问过程;分析缺页及其性能影响内存管理
文件管理文件元数据、inode、操作与保护、逻辑/物理结构、目录、软硬链接、文件系统与挂载解释从路径查找文件到访问数据块的过程及相关限制文件管理
I/O 管理设备和控制方式、软件层次、接口、阻塞/非阻塞、缓冲、SPOOLing、磁盘调度、SSD追踪请求由应用到设备的过程,分析缓冲和调度的作用I/O 管理

本站章节“计算机系统概述”与考试大纲“操作系统基础”的表述不同。本导学保留二者对应关系,不把它们误当成两个独立章节。

怎样学:状态、约束、时序缺一不可

学习一个机制时,先画参与者,再写共享资源,随后列出“谁必须等谁”“谁不能同时进行”,最后画状态变化或时序图。

例如练习生产者—消费者问题,应先确定缓冲区容量、空位和已有数据怎样计数、临界区保护什么,再写同步操作。只记住两段程序而不理解每个量的意义,题目增加一种任务或改变执行顺序就容易出错。

内存题则采用“地址格式 → 页号/页内偏移 → 查询转换信息 → 判断驻留情况 → 得到物理位置”的链条;遇到快表、缓存、缺页开销时,再按题设补充层次,而不是直接把所有时间相加。

调度题需要先声明到达时间、服务时间、是否抢占、同优先级规则等条件,再画时间线,最后计算周转或等待等指标。教学练习中的理想模型不要与真实系统的所有实现混为一谈。

三个跨科连接,建议反复练

**进程调度与数据结构:**就绪队列、优先级结构、资源表都需要组织数据;知道队列是什么,可以帮助理解调度,但不能把某个数据结构直接当成调度策略。

**虚拟内存与组成原理:**操作系统关注地址空间、驻留和页面管理;硬件协助完成地址转换和访存。二者应当放在同一张图上看。

**I/O 与网络:**网络通信也会使用设备、缓冲区和系统调用等机制;网络课程讨论协议,操作系统讨论程序怎样通过接口使用这些能力。此处用于连接学习,不暗示所有实现都有唯一流程。

分阶段训练

基础阶段每个术语都配一个小场景。对相似概念建立“对象、目的、触发条件、结果”的比较表,例如进程与线程、同步与互斥、内部与外部碎片。

强化阶段重点练状态推演与约束设计,同时补全文件和 I/O,避免仅围绕进程、内存复习而留下整章空白。对同步类题,先用文字解释方案,再检查是否可能死锁、丢失约束或破坏互斥。

真题阶段把解释写完整。算法名称不是答案本身,必须展示题设下的执行步骤、选择依据和计算过程;陌生场景先映射到资源与状态,而不是寻找背过的原题。

入门自测与答案

**问题 1:**一个等待磁盘读取完成的进程,通常应当立即变成运行态吗?

参考思路:I/O 等待期间通常处于阻塞状态;等待事件完成后可进入就绪状态,仍需由调度决定何时运行。具体状态名称以所用模型为准。

**问题 2:**在常见的多生产者、多消费者、有界缓冲区模型中,是否只用一个互斥量就足以完整表达“不能向满缓冲区放数据”和“不能从空缓冲区取数据”?

参考思路:仅有临界区互斥不足以表达空、满条件,还需要相应同步机制。不能将互斥与条件等待视为同一个问题。

**问题 3:**页大小 4 KiB、字节编址的系统中,页内偏移需要多少位?

参考思路:4 KiB = 4096 字节,需要 12 位。题目给出地址长度后,才能继续确定其余地址字段。

完成本科目的最低验收

建议能够独立说明进程状态转换;按照给定规则完成调度;把同步要求写成正确约束;辨别死锁处理方法;完成分页及页面置换分析;解释文件访问和 I/O 的基本路径,并知道自己采用了哪些模型假设。

继续学习:操作系统知识点 · 组成原理导学 · 章节练习

参考资料

Operating Systems: Three Easy Pieces(Remzi H. Arpaci-Dusseau、Andrea C. Arpaci-Dusseau)作者网站,可选读进程、调度、地址空间、分页、并发、文件系统相关章节。