资讯动态

操作系统期末复习:进程内存文件I/O六大模块考点与做题套路

发布时间:2026/10/14 18:11:15 来源:尧图企业网站定制
简介操作系统期末复习笔记以Word文档形式整理面向高校计算机专业学生及考研备考生系统梳理操作系统目标、发展历程、四大基本特性、处理机与存储器管理、进程控制与同步、信号量机制及经典互斥问题等核心考点。资源包共含一个文件大小1.17MB内容按章节条款式归纳并配有前趋图、进程三态图、信号量P/V操作等关键图解便于快速定位与考前突击。目前已有777人学习浏览资料实用性获认可。笔记不仅覆盖进程通信、线程概念、处理机调度层次等高频考点还对批处理/分时/实时系统、临界区规则、管程机制等易混淆点做了对比整理同时也包含存储管理、设备管理、文件管理和操作系统接口等章节要点适合配合教材查漏补缺、强化记忆有效提升期末复习效率。1. 操作系统期末复习为什么越背越慌这门课考的是连锁反应见过太多人花三天把教材从头翻到尾合上书还是做不出那道“进程A等待打印机时CPU为什么不能切给进程B”的题。操作系统期末的复习笔记最忌讳的就是按章节顺序抄书。进程、内存、文件、I/O 这四块在考试题里从来不是孤立的一次文件读取可能同时涉及目录检索、缺页中断、磁盘调度和进程阻塞。你背下来的孤立知识点遇到跨章节综合题就成了一堆碎片。这份复习笔记的思路是反过来的——先建框架再填细节最后用做题把知识点串成网。适合正在准备期末、手里有教材和真题但不知道从哪下手的同学也适合第一遍课没听懂、想靠考前两周自救的人。判断这份笔记对你有没有用就看一个标准你合上书能不能徒手写出银行家算法的判断步骤。2. 先把教材拆成六大模块复习顺序比复习时长更重要2.1 六大模块怎么分进程、内存、文件、I/O 的权重差异操作系统的教材目录通常按“进程管理、内存管理、文件管理、设备管理”排章但真正复习时我建议拆成六个主题进程与线程、调度与死锁、同步与互斥、内存管理、文件管理、I/O 管理。原因是考试题很少按章出它按“场景”出。比如“多道程序环境下一个进程申请读磁盘”这道题至少涉及进程状态转换、I/O 控制方式、中断处理和调度策略四块知识。你按教材章节背答题时脑子得在四章之间来回跳按主题复习答题时是顺着一条因果链往下走的。从分值占比看国内大多数高校的期末卷子里进程与并发相关内容占 30% 到 35%内存管理占 25% 到 30%文件与 I/O 合起来占 20% 到 25%剩下的是操作系统概述、系统调用、虚拟机等概念题。这个比例不是精确的统计而是我这些年刷了不同学校试卷后的体感。它给你一个明确的投入顺序时间不够时进程和内存必须优先保文件系统的简答题性价比次之冷门算法和冷门概念该放就放。2.2 高频考点与题型分布判断哪些章节值得投入两轮拿一张空白 A4 纸把你手头最近三年的期末真题按题型列个表只看三列知识点、题型、出现次数。我做的模拟统计里大概率会得到这样一张分布知识点常考题型出现频率进程状态转换 / PCB选择、填空高PV 操作生产者消费者、读者写者大题极高调度算法FCFS、SJF、RR、MLFQ计算大题极高死锁必要条件与银行家算法简答 计算高逻辑地址到物理地址换算计算小题极高页面置换FIFO、LRU、OPT、Clock计算大题极高分页、分段、段页式选择、简答中文件分配方式与空闲空间管理简答中磁盘调度算法计算小题中I/O 控制方式中断、DMA、通道选择、填空中这个表你自己花半小时就能做出来比任何复习资料都准。做完之后你会发现真正需要你投入整块时间反复练的只有 PV 操作、调度计算、银行家算法、地址变换、页面置换这五类。其他内容背熟概念和答题框架就够用了。2.3 第一轮复习的标准动作画状态图、列概念表、批注真题第一轮复习不做题只做三件事。第一把进程五状态图画到能闭着眼默写每一条状态迁移线上标清楚触发条件是时间片到还是等待事件完成还是被唤醒。第二把容易混淆的概念做成两列对比表例如抢占式调度与非抢占式调度的区别、进程与线程的区别、分页与分段的区别。第三把真题答案直接批注在教材对应知识点的旁边不用另开一个笔记本抄题——你要的是“看到知识点就想起题目怎么考”不是一本漂亮但从不回翻的笔记。第二轮复习才开始做题。顺序是先做教材课后题里的计算题再做往年真题最后做模拟卷。做题时不翻书卡时间做完统一对答案。错题不抄进笔记正文只在题号边上写一个三字标签“先查表”“先画图”“先列信号量”。这些标签就是你考前最后一天唯一要看的清单。3. 进程、线程与死锁PV 操作题和调度计算题的拿分套路3.1 进程与线程五状态模型和 PCB 的必背字段先弄清一个底层逻辑进程是资源分配的单位线程是 CPU 调度的单位。这句话几乎所有教材都写但考试题喜欢换个方式考——比如“同一进程内的两个线程共享什么不共享什么”。答案里共享的是地址空间、全局变量、打开的文件表不共享的是栈、程序计数器、寄存器上下文。这类选择题只要抓住“线程是轻量级进程共享进程的资源但自带执行现场”就不会错。进程五状态模型是必画图新建、就绪、运行、阻塞、终止。三条最重要的迁移线就绪到运行被调度、运行到阻塞等待某个事件、阻塞到就绪事件发生被唤醒补上运行到就绪时间片到或更高优先级抢占。PCB 字段不用全背考试常考的是 PID、进程状态、程序计数器、CPU 寄存器、内存界限、打开文件列表这几项。填空题可能问“PCB 是进程存在的唯一标志”这个说法要记牢。A同学在模拟考试里遇到一道题“挂起状态和阻塞状态有什么区别”直接把两个概念混在一起答了。挂起指进程被调到外存即使事件发生也不能立即运行必须先激活到内存阻塞指进程在主存中等待事件。区分一句话阻塞等的是 I/O 或信号挂起等的是内存空间和激活操作。考试如果考到先写“是否在内存中”这个判定条件。3.2 PV 操作题三步拆解加一个标准模板PV 操作题是期末大题的稳定选手常见题型是生产者消费者、读者写者、哲学家进餐。拿到题先做三个动作找共享资源、找进程数、找同步关系。共享资源决定信号量种类进程数决定信号量初值同步关系决定 P、V 的先后顺序。以最经典的生产者消费者为例缓冲区大小为 n需要三个信号量sem_t mutex 1; // 保护缓冲区操作的互斥信号量 sem_t empty n; // 空闲缓冲区的数量初始为 n sem_t full 0; // 已占用缓冲区的数量初始为 0 void producer() { while (1) { produce_item(); P(empty); // 先申请一个空闲缓冲区 P(mutex); // 再锁住缓冲区 put_item(); V(mutex); // 先释放锁 V(full); // 通知消费者有数据可取 } } void consumer() { while (1) { P(full); // 先确认缓冲区里有数据 P(mutex); // 再锁住缓冲区 get_item(); V(mutex); // 先释放锁 V(empty); // 释放一个空闲缓冲区 consume_item(); } }信号量顺序是这个模板里唯一的坑P(empty) 和 P(mutex) 不能互换。如果缓冲区满时生产者先拿到了 mutex再在 P(empty) 上阻塞消费者就永远进不了临界区死锁了。记住一句顺口溜先申请资源再申请锁先释放锁再释放资源。V 的顺序可以换P 的顺序不能乱。参数上有几个容易丢分的细节mutex 初值永远是 1不用解释empty 初值是缓冲区大小 n不是 1full 初值是 0。如果题目要求“每次只从缓冲区取一个数据”那 mutex 仍然只需要一个不需要按缓冲区槽位拆多个锁。哲学家进餐问题的关键是拿两根筷子前必须先拿互斥信号量保证至少有一位哲学家能同时拿到左右筷子这个变体建议自己推一遍。3.3 调度算法计算FCFS、SJF、RR、MLFQ 的手算格式调度算法的计算题丢分往往不是不会算而是算到一半忘了表格每一列代表什么。我建议固定用四列表格进程名、到达时间、服务时间、完成时间然后从完成时间推出周转时间和带权周转时间。给你一个已有规律的真实手算例子三个进程 A、B、C到达时间分别是 0、2、3服务时间分别是 10、3、2。算法执行顺序平均周转时间FCFSA(0-10)、B(10-13)、C(13-15)(101112)/3 11非抢占 SJFA(0-10)、C(10-12)、B(12-15)(10913)/3 10.67抢占式 SRTFA(0-2)、B(2-5)、A(5-13)、C(13-15)(13312)/3 9.33RR时间片 q4A(0-4)、B(4-6)、C(6-8)、A(8-12)、B(12-13)、A(13-19)(19115)/3 11.67这组数据故意选了一个“非抢占 SJF 没有明显优于 FCFS”的例子因为 A 先到达且服务时间太长短作业 C 和 B 只能干等。但抢占式 SRTF 能在 B 到达时立刻切换到 B明显降低了整体等待。看清这个差异比背算法的定义有用得多。RR 的坑在时间片边界进程在时间片内完成就立即退出不等到时间片耗尽再切换。多级反馈队列要对三件事答清楚——优先级高的队列先执行、每个队列内部 RR、低优先级队列时间片更长。简答题问“CFS 与 MLFQ 的区别”时答 CFS 是基于虚拟运行时间的完全公平调度MLFQ 是基于优先级反馈的近似策略。3.4 死锁与银行家算法从必要条件到安全序列的推导死锁简答题必须先写四个必要条件互斥、持有并等待、不可剥夺、循环等待。注意审题题目问“死锁产生的原因”要答“系统资源不足 进程推进顺序非法”不能把必要条件原样抄上去这是两种问法。选择题里常出现“发生死锁一定存在循环等待但存在循环等待不一定发生死锁”这句话要判对。银行家算法的手算步骤固定为四步。第一步读题画出 Allocation、Max、Available 三个矩阵Need 永远等于 Max 减 Allocation。第二步找一个 Need 每列都小于等于 Available 的进程找到就分配然后回收它的 Allocation。第三步更新 Available重复第二步。第四步如果所有进程都能依次完成就存在安全序列否则系统进入不安全状态。考场最容易错的是矩阵加减法抄错行我的习惯是先把 Max、Allocation、Need 三行并列写在同一张表里每找一个进程就划掉一行避免重复判断。实操时用“Work Need”两张表最稳。初始 Work 等于 Available每次选进程 Pi先比对 Work 与 Need[i]通过后更新 Work 为 Work Allocation[i]。写答案时把每一步的 Work 变化过程列出来阅卷老师只看得分点过程清晰比结果正确更能拿到步骤分。另外记一个边界安全状态一定不会死锁不安全状态只是可能死锁不是必然死锁。4. 内存管理的四个必考细节地址变换、分页分段、页面置换、虚拟内存4.1 逻辑地址到物理地址的换算三步走加一个进制陷阱地址变换题是计算小题里的保分题套路固定到可以背。题目通常给逻辑地址、页面大小、页表内容求物理地址。我的解题顺序是三步先拆偏移再查页表最后拼地址。页面大小如果给的是 4KB那就是 2 的 12 次方逻辑地址的低 12 位是页内偏移高几位是页号。拿一个经典例子页面大小 4KB逻辑地址 0x3A2F页表第 3 项的物理块号是 7。低 12 位 0xA2F 直接保留页号 3 查到块号 7物理地址就是 7×4096 0xA2F算出来是 0x7A2F。这里有一个十六进制转换陷阱很多人先算 0xA2F 2607再算 7×4096 28672相加得 31279结果虽然对但慢且容易错。更好的做法是把地址写成二进制0x3A2F 的二进制低 12 位是 0xA2F高 4 位是 3替换高 4 位为块号 7 的二进制 0111得到 0x7A2F。整个过程不涉及十进制二十秒出结果。如果页面大小不是 2 的整数次幂比如 5KB才需要乖乖做除法取整但这种题极少出现在期末卷里。页表本身也可能出填空页表项包含物理块号和状态位状态位 P 表示该页是否在内存。访问一个 P 位为 0 的页会发生缺页中断这个中断的处理过程要能说出“保存现场、查外存、调入内存、更新页表、恢复现场”五步。4.2 页面置换算法FIFO、LRU、OPT、Clock 的手算比较页面置换大题一般给一个引用串、三个物理块要求分别计算 FIFO、LRU、OPT 的缺页次数。用经典引用串 7,0,1,2,0,3,0,4,2,3,0,3,2,1,0,1,7,0,1物理块数 3结果应该是 FIFO 15 次、LRU 12 次、OPT 9 次。这个串在很多高校卷子里出现过建议自己完整手算一遍算完会理解以下三条差异。FIFO 淘汰最早调入的页最容易实现但有 Belady 异常——物理块数增加时缺页次数反而可能增加这是判断题的经典考点。LRU 淘汰最近最久未使用的页手算时看的是“过去”的访问距离谁离当前访问最远淘汰谁。OPT 淘汰未来最长时间不被访问的页手算时必须往后看引用串谁在未来最晚出现淘汰谁。区分 LRU 和 OPT 一句话前者回头数距离后者向前找最远。Clock 算法又叫二次机会算法需要给每个页框设引用位。发生缺页时指针扫描页框引用位为 1 的置 0 并跳过引用位为 0 的淘汰。理解它的本质是给 LRU 一个低成本的近似实现刚访问过的页有一票豁免权。手算时强烈建议用表格式笔记横轴是访问序号纵轴是三帧内容缺页时用 ✓ 标记。表格左侧先列出引用串每访问一位就填一列不要跳步。很多同学丢分不是因为不会算法而是表格中间漏了一列导致后续全错。4.3 分页、分段与段页式概念题的固定答法分页和分段的对比是简答和选择的常客答题时从三个维度说地址结构、碎片类型、是否方便共享。分页是系统管理内存的手段地址结构分为页号和页内偏移固定大小产生内部碎片不便于按逻辑意义共享。分段是满足程序逻辑结构的手段地址结构分为段号和段内偏移大小可变产生外部碎片便于共享和保护。段页式结合两者先按段划分逻辑结构每段内再按页划分物理存储。访问一次数据需要查段表、页表、物理内存共三次访存所以一般会加快表 TL B 加速。选择题喜欢考“段页式地址变换需要几次访问内存”要记得回答“段表一次、页表一次、内存一次共三次有快表时可能一次”。关于内存分配固定分区产生内部碎片动态分区产生外部碎片最佳适应算法容易产生最多的小碎片最先适应算法速度最快循环最先适应算法分配更均匀。这些零散结论建议直接列成一张复习卡考前十分钟扫一眼。4.4 虚拟内存与工作集缺页率相关题目的切入角度虚拟内存的简答题核心只有两句虚拟内存允许进程的部分页不在内存中也能运行基于局部性原理。局部性分为时间局部性和空间局部性时间局部性是刚刚访问过的指令/数据很快会再用空间局部性是访问过的地址附近也会被访问。缺页率与页面大小、分配物理块数、程序局部性好坏有关抖动是指频繁缺页导致系统忙于换页而 CPU 利用率骤降。换页策略的选择题常考页面调入时机是请调式还是预调式淘汰策略是固定分配局部置换还是可变分配全局置换。这里的常识是全局置换可能导致一个进程把其他进程的页挤出去局部置换限制在每个进程自己的页框内选择淘汰对象。工作集的概念要记得某段时间内进程实际访问的页面集合工作集大小与缺页率正相关。虚拟内存的判断题偶尔会考“虚拟内存的大小受什么限制”。答案是不只受物理内存限制还受逻辑地址位数和磁盘容量限制。64 位系统可寻址空间极大但实际能用的虚拟内存还要看交换文件大小。这种题审题要慢看到“仅受物理内存限制”就可以直接判错。5. 文件系统与 I/O保分章节与期末复习避坑清单5.1 文件存储与空闲空间管理简答题的固定考点文件系统这章拿分思路和前面完全不同它不靠算法推导靠框架记忆。文件分配方式三种要能画图说明连续分配读得快但产生外部碎片链接分配解决了碎片但随机访问慢索引分配支持直接访问但索引块占空间。考试简答题问“某文件系统适合哪些场景”答连续分配适合只读文件链接分配适合写多读少的日志文件索引分配适合数据库这类随机访问场景。空闲空间管理四个方案空闲表、空闲链表、位示图、成组链接。其中位示图考计算比如磁盘有 256 块字长 32 位需要 8 个字表示整个位示图块号 100 对应的字号是 100/32 取整位号是 100 取模 32。这类计算没难度但取整方向要看清题目是从 0 开始还是从 1 开始编号。文件目录的考点集中在 FCB 和索引节点。FCB 包含文件名、类型、权限、物理位置等信息文件目录就是 FCB 的集合。索引节点inode把除文件名外的信息单独存放目录项只保留文件名和索引节点号这样查找文件时读入的内存更少。还有软链接和硬链接的区别硬链接共享同一个索引节点删掉一个链接只要引用计数不为 0文件仍在软链接是独立文件存的是目标路径目标删除后链接失效。5.2 磁盘调度与 I/O 控制方式计算题和概念题各占一半磁盘调度计算题给一串柱面号问不同算法的寻道顺序。我的建议是先标出当前磁头位置和移动方向再画一条数轴。看一个常见例子当前磁头在 100方向向大号移动请求队列 55、58、39、18、90、160、150、38、184。SSTF 的寻道顺序先到 90移动 10再 583255339163811820然后 150、160、184。SCAN 电梯算法先沿当前方向160、184再回头 150、90、58、55、39、38、18。C-SCAN 循环扫描160、184 后直接回到最小号 18再 38、39、55、58、90、150。注意 SCAN 和 C-SCAN 的差异只在“是否回程也服务请求”这一个小选项上。I/O 控制方式四个层次选择题喜欢排顺序程序循环控制CPU 忙等、中断驱动CPU 每传输一字被中断一次、DMA按整块传输结束后中断一次、通道独立执行 I/O 程序。对比维度就两个CPU 介入次数和数据传输单位。记住一句话DMA 一次传输一个块中断一次通道可以执行复杂指令CPU 干预最少。5.3 期末复习避坑五条血泪经验现象只背概念不做题上考场看到“计算缺页次数”的大题直接傻眼知道 LRU 是什么但不知道从哪一格开始填表。原因换热类知识点属于程序性知识必须动手走一遍才算真正掌握看书只看懂了“最近最久未使用”的定义不代表能处理引用串里的边界访问。解决至少完整手算三遍经典引用串的 FIFO 和 LRU第一遍看着算法定义算第二遍合上书算第三遍打乱引用串顺序算。现象银行家算法的 Need 矩阵算错导致后面安全序列全错。原因手算时直接从 Max 里肉眼减 Allocation没有写中间的减法竖式容易借位出错。解决先把 Max、Allocation、Need 三个矩阵整齐写在草稿纸上Need 的每一位都用笔标出退位不再跳步心算。现象PV 操作把互斥信号量的 P 操作放在资源信号量之前造成死锁分析错误。原因只记住“P 的条件满足才能进入”而忽略了多个 P 的顺序意味着申请资源的次序。解决答题前先画出资源流向从资源到消费者画一条线线的起点就是必须先 P 的信号量互斥锁永远离临界区最近。现象简答题问“死锁产生的原因”答了一堆四个必要条件结果只拿了一半分。原因把必要条件的记忆内容直接当作原因写忽略了题目考察的是“为什么会出现死锁”而不是“死锁需要什么条件”。解决拿到题先判断问法问“原因”答竞争资源与进程推进顺序非法问“条件”再答四条问“预防”答破坏四个条件之一。现象十六进制地址换算时算完结果发现和选项对不上。原因用十进制乘除法硬算中间进位出错又没有回头验算。解决页面大小为 2 的幂时把页号替换成块号的二进制算子用小端位数对齐法做完再用计算器验一次十秒能验完。6. 考前最后 48 小时用三遍做题法把复习笔记用起来考前两天不要再啃新知识点了把时间切成三段用三遍做题法把这份复习笔记里的东西变成肌肉记忆。第一遍在倒数第二天下午限时两小时做一套完整真题严格按考场规则不翻书不暂停。对答案时给每道错题标三字标签概念错、计算错、思路错分别对应“没背熟”“手算不严谨”“没看懂题在问什么”。第二遍在倒数第一天只重做标了“计算错”和“思路错”的题做的时候盖住答案把完整过程写在题目旁边。第三遍在考前三个小时不看题只看错题标签算错的默写一遍银行家算法矩阵格式思路错的写一遍 PV 操作资源流向图。考前一定要做的一张 A4 复习卡正面写死锁四条件、三种文件分配方式、四种 I/O 控制方式、调度算法关键词。背面写三道必考计算题格式地址变换三步、页面置换表头、银行家算法矩阵。这张卡的价值不在于背下来而在于让你知道每道计算大题的第一笔落在哪一格。一个小习惯救过我多次做计算题前先把答题区域画上表格边框。地址变换就画“页号/偏移/块号”三行调度算法就画“到达时间/服务时间/完成时间”四列银行家算法就把 Max、Allocation、Need 三行先写好。格式固定下来手再忙也不会乱。我自己的惨痛教训是备考时死磕一个冷门调度变体耗费一整晚结果大题第一题就是 PV 操作和两级页表最后十分钟手忙脚乱。从那以后每次考前我都只复习计算题的“第一笔落在哪”不再碰没考过的新内容。这些坑和套路说多不值钱但真正能帮你把复习笔记从书架变成考场上的步法希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑