
简介这份复习笔记面向高校计算机相关专业学生聚焦操作系统期末备考场景系统梳理课程核心概念与关键机制帮助读者在考前快速建立知识框架、查漏补缺。资源包内含1个docx文档压缩包约1.17MB体积轻便便于在电脑或移动端随时翻阅。内容覆盖操作系统的目标与发展历程、并发共享虚拟异步四大特性以及处理机、存储器、设备和文件管理四大功能第二章进一步展开前趋图、进程三态与五态转换、PCB、内核原语并重点讲解信号量机制、进程互斥与同步、经典同步问题及进程通信、线程等高频考点条理清晰、要点集中。目前已有779人学习下载适合需要按章节串联知识点、对照课堂笔记查漏补缺的期末复习者使用。1. 操作系统期末先看清卷面结构再决定背什么操作系统期末最容易翻车的地方不是信号量 P、V 操作写不出来而是把复习时间平均撒在六章上结果分值最重的进程同步、内存管理、虚拟存储三块反而没背熟。这场考试考什么一句话考你对“操作系统怎么把有限资源管起来”这条主线的理解具体落在四个基本特性、进程三态五态、信号量机制、调度算法、分区与分页分段、页面置换、I/O 控制方式这些硬考点上。怎么拿分选择题靠概念辨析计算题靠公式和画图综合题靠信号量代码和银行家算法。适合谁适合已经把教材过了一遍、但一到做题就分不清“并发与并行”“分页与分段”“死锁预防与避免”的备考人。这份复习笔记的价值就是把散在六章里的考点按“必背、必算、必写”重新排一遍让你知道哪些是送分题哪些是拉开差距的硬骨头。2. 高频考点四个基本特性与进程管理必背清单2.1 并发、共享、虚拟、异步四个词决定半张卷子四个基本特性是整门课的地基选择题、判断题、简答题都爱从这里出。笔记里写得很清楚并发是同一时间间隔内多个进程宏观上同时、微观上交替并行才是真正的同时进行。这个区别几乎年年考答题时一定要把“宏观同时、微观异步”八个字写出来阅卷人看到就知道你抓住了要害。共享分两种互斥共享方式比如打印机一个进程用完另一个才能用同时访问方式也就是并发访问。这里有个常考的因果链——并发和共享相辅相成有了并发才能共享有共享才能并发。虚拟靠时分复用和空分复用时分复用是“一个功能的空闲又去为别人服务”空分复用对应虚拟存储。异步则是进程受资源限制“停停走走”以不可预知的速度推进。提示简答题问“为什么并发和共享互为存在条件”标准答法是先点明并发进程需要共享资源、共享资源又要求进程能并发执行再各举一例不要只背结论。2.2 进程三态与五态状态转换图必须能默画进程的三种基本状态是就绪、执行、阻塞加上创建和终止就是五态图再引入挂起状态后还要会画带挂起的转换。这类题通常这么答先画图再逐条说明转换条件——就绪到执行是调度执行到就绪是时间片用完执行到阻塞是等待 I/O 或资源阻塞到就绪是事件完成。进程控制块 PCB 的作用是必背点作为独立运行基本单位的标志、能实现间断性运行、提供进程管理与调度所需信息、实现与其他进程的同步与通信。PCB 里的信息包括进程标识符、进程调度信息、进程控制信息答简答题时按“标识、调度、控制”三类展开就不会漏。2.3 真题演练一道状态转换简答题的完整答法题目某进程在执行过程中请求打印机此时打印机被占用请说明该进程状态如何变化并指出涉及哪类制约关系。答题思路分三步。第一步定性请求打印机属于请求临界资源进程从执行态转入阻塞态。第二步说明制约关系这是通过临界资源产生的间接相互制约关系区别于相互合作的直接相互制约关系。第三步补一句当打印机释放并唤醒该进程后进程从阻塞态回到就绪态等待调度。面试官或阅卷人最想听的是“间接制约”这个词很多考生只写“等待资源”丢掉了概念分。// 进程请求临界资源的典型状态变化伪代码示意 wait(mutex); // 若 mutex 0进程阻塞进入阻塞队列 // 临界区使用打印机 signal(mutex); // 释放资源唤醒阻塞队列中的进程这段伪代码对应的是互斥信号量 mutex 初值为 1 的场景。wait 操作在信号量不足时让进程阻塞signal 操作释放后唤醒等待者。参数说明mutex 初值设为 1 表示只有一台打印机若设为 N 则表示 N 个同类资源。考试写代码题时注释里点明“阻塞”和“唤醒”两个动作比只写 P、V 更容易拿过程分。2.4 易错点并发与并行、互斥与同步别写反第一条把并发当成并行。错在把“宏观同时”理解成“真正同时”正确答法是强调单处理机上微观交替。第二条把互斥和同步混为一谈。互斥是争用临界资源同步是保证前驱后继的执行顺序信号量初值也不同互斥信号量初值为 1同步信号量初值为 0。第三条PCB 作用只背一半。只写“标识进程”会丢分要把间断性运行、调度信息、同步通信四点补齐。第四条前趋图题把同步变量设错。每一对前驱关系各设一个同步变量前操作后 V、后操作前 P顺序写反直接零分。3. 信号量与经典同步问题代码题的分都在这3.1 为什么引入信号量四种软件方法和三种硬件方法的死穴笔记里列得很全单标志法、双标志先检查、双标志后检查、Peterson 算法四种软件实现加上中断屏蔽、TSL 指令、Swap 指令三种硬件实现。这些方案的共同死穴是都无法实现让权等待——要么忙等要么不满足有限等待。信号量机制用一对原语 wait(S) 和 signal(S)也就是 P、V 操作把申请和释放资源封装成不可中断的原子操作才真正解决了互斥与同步问题。整型信号量简单但忙等记录型信号量用 value 和等待队列实现了让权等待value 小于 0 时其绝对值就是阻塞队列中的进程数AND 型信号量一次性分配全部资源避免死锁信号量集则解决一次申请 N 个资源和低于下限不分配的问题。3.2 生产者—消费者手写代码的标准模板这是同步互斥综合题的最高频题型。标准答法是三件套一个互斥信号量 mutex 初值 1一个同步信号量 empty 初值 n 表示空缓冲区数一个同步信号量 full 初值 0 表示已有产品数。semaphore mutex 1; // 互斥访问缓冲区 semaphore empty n; // 空缓冲区数量 semaphore full 0; // 已放产品数量 // 生产者 while (true) { produce_item(); wait(empty); // 申请一个空位无空位则阻塞 wait(mutex); // 进入临界区 put_item(); signal(mutex); // 退出临界区 signal(full); // 产品数加一唤醒消费者 } // 消费者 while (true) { wait(full); // 申请一个产品无产品则阻塞 wait(mutex); get_item(); signal(mutex); signal(empty); // 空位数加一唤醒生产者 consume_item(); }逻辑说明wait(empty) 必须在 wait(mutex) 之前否则生产者占着互斥锁等空位、消费者又进不来直接死锁。这是血泪经验考场上顺序写反整题报废。参数说明n 是缓冲区容量empty 和 full 的初值必须一 n 一 0写反了程序逻辑就反了。代码后一定要补一句“P 操作顺序不能颠倒”阅卷人专门看这一句。3.3 哲学家进餐与读者—写者防死锁的两种思路哲学家进餐问题的核心是防止循环等待。常见答法有三种最多允许四位哲学家同时拿筷子、奇偶编号不同顺序拿筷子、用 AND 型信号量一次性拿两只。答题时先点明死锁四个必要条件里的“循环等待”再说你的方案破坏了哪一条逻辑就闭环了。读者—写者问题考的是读者优先还是写者优先标准做法是加一个 count 计数器记录读者数第一个读者进来时对写信号量 P 操作最后一个读者离开时 V 操作。这类题通常这么答先写信号量定义再写进程代码最后用一两句话说明“第一个读者负责加锁、最后一个读者负责解锁”这个关键设计。3.4 真题演练前驱关系信号量题题目有 A、B、C 三个操作要求 A 完成后 B 和 C 才能开始B 和 C 都完成后 D 才能开始用信号量实现。答题思路为每一对前驱关系设一个同步变量初值全为 0。A 之后对 S1、S2 各执行 VB 之前 P(S1)C 之前 P(S2)B、C 之后各对 S3 执行 VD 之前连续两次 P(S3)。这里最容易错的是 D 之前只写一次 P(S3)导致 B、C 只完成一个 D 就跑了。正确做法是设两个变量 S3、S4或者对同一个信号量连续 P 两次且初值设为 0、由 B 和 C 各 V 一次。答题时把“每对前驱关系一个变量”这句话写在最前面思路分先拿到。4. 调度、死锁与内存管理计算题的固定套路4.1 三种调度层次与四类算法先分清场景再套公式高级调度是作业调度外存到内存中级调度是内存调度挂起态到就绪态低级调度是进程调度就绪态到运行态发生频率最高。算法部分要按适用系统记先来先服务 FCFS 公平简单但交互性差短作业优先 SJF 平均等待和平均周转最短但对长作业不利高响应比优先 HRRN 综合等待时间和运行时间响应比等于等待时间加要求服务时间除以要求服务时间时间片轮转用于分时系统时间片太大退化为 FCFS太小则切换开销大优先级调度用于实时系统要会算松弛度松弛度等于完成截止时间减剩余服务时间减当前时间越小越紧急。4.2 死锁四个条件与银行家算法避免和预防别答串死锁四个必要条件互斥、请求和保持、不可抢占、循环等待。预防死锁是破坏其中一个或几个条件避免死锁是防止系统进入不安全状态代表就是银行家算法。答题时先区分“预防”和“避免”预防是静态的、破坏条件避免是动态的、每次分配前判断安全性。银行家算法的思路是进程提出请求时先试探性分配再跑安全性检查若存在安全序列则真正分配否则让进程阻塞。安全状态一定不会死锁不安全状态只是可能死锁这句话是判断题高频陷阱。4.3 分区、分页、分段连续性一张表说清管理方式是否连续关键概念常考计算分区连续首次适应、循环首次、最佳适应、最坏适应空闲分区链查找顺序分页离散页号、页内偏移、页表、快表页号等于逻辑地址除以页面长度取整分段段间离散段内连续段是逻辑单位、二维地址段表基址加段内偏移分页与分段的区别是简答必背页是物理单位、大小固定由系统决定、地址空间一维段是逻辑单位、大小不定、地址空间二维。分页利于内存分配分段利于用户需要段的突出优点是易于实现共享。地址变换题记住没有快表要两次访问内存有快表按命中率算 EAT公式是查快表加访问内存乘命中率加查快表加查页表加访问内存乘1 减命中率。4.4 易错点调度算法和地址计算的三处翻车第一处周转时间算成等待时间。周转时间等于完成时间减到达时间带权周转时间还要除以运行时间公式写错整题连锁错。第二处最佳适应和最坏适应搞反。最佳适应是按空闲区从小到大排序留下最小碎片最坏适应挑最大空闲区碎片大但容易没有大分区可用。第三处分页地址计算取整取余弄混。页号取除法整数部分页内偏移取余数写反了物理地址全错。这三处每年都有人栽做题时把公式先写在草稿纸最上面再动笔。5. 虚拟存储与页面置换EAT 计算和置换算法对比5.1 局部性原理与页表字段概念题送分点虚拟存储器引入的原因是传统存储的一次性和驻留性导致大作业装不下、多作业内存不够。它具备多次性、对换性、虚拟性三个特征理论基础是局部性原理时间局限性指刚执行过的指令很可能再执行空间局限性指刚访问的单元附近单元很可能被访问。页表字段要能逐个说出用途页号和物理块号用于地址变换存在位 P 判断页面是否在内存访问字段 A 决定是否换出修改位 M 表示调入后是否被修改外存地址供调入时使用。这些字段名答简答题时按“变换、判断、换出、调入”四类说条理清楚。5.2 四种页面置换算法性能排序和实现机制最佳置换算法 OPT 换出未来最长时间不用的页面无法实现只作评价标准先进先出 FIFO 淘汰驻留最久的页面性能最差还会出现 Belady 异常最近最久未使用 LRU 按上次使用时间淘汰间隔最久的实现靠寄存器或栈Clock 算法用访问位循环扫描改进型 Clock 同时看访问位和修改位优先淘汰未访问未修改的页。答题时把“OPT 最优但不可实现、FIFO 最差、LRU 接近 OPT、Clock 是 LRU 的低开销近似”这条线说出来比孤立背定义得分高。5.3 真题演练EAT 三种情况的计算题目某系统快表命中率 80%查快表时间 10ns访问内存时间 100ns缺页处理时间忽略求平均有效访问时间。答题思路命中时耗时 10 加 100 等于 110ns未命中时要查快表、查页表、再访问内存耗时 10 加 100 加 100 等于 210ns平均 EAT 等于 110 乘 0.8 加 210 乘 0.2 等于 130ns。若题目加上缺页情况还要在未命中分支里加缺页中断处理、更新页表、更新快表的时间。这类题通常这么答先列三种情况再乘概率加权最后写单位。面试官最想听的是你分清“命中、未命中但页在内存、缺页”三种分支而不是直接套一个公式。5.4 易错点置换算法和 EAT 的四个失分点第一FIFO 和 LRU 混淆。FIFO 看进入内存的先后LRU 看上次使用的时间题目给访问序列时要逐次画表。第二EAT 漏掉更新快表的时间。缺页处理完要更新页表和快表漏一项就少算。第三把虚拟性理解成物理扩容。虚拟性是从逻辑上扩充实际内存没变。第四请求分段与请求分页的段表字段混用。段表有增补位表示动态增长页表没有答错直接暴露没看书。6. 设备管理与 I/O 控制最后一块必拿的分6.1 四种 I/O 控制方式从轮询到通道的进化线轮询方式最笨CPU 一直循环等设备完成浪费处理机中断方式下 CPU 发出指令就回去干活收到中断再处理DMA 方式在内存和设备间加 DMA 控制器CPU 只在传送数据块时干预通道控制方式是 DMA 的发展通道相当于一个处理器能根据 CPU 指令完成一组数据块的 I/O 任务。答题时按“CPU 干预频率从高到低”排序再各说一句适用场景这条进化线就完整了。中断处理程序四步也要背测定是否有中断信号、保护被中断进程的 CPU 环境、转入相应设备处理程序、恢复现场并退出中断。6.2 假脱机技术为什么叫“脱机”是高频简答SPOOLing 技术用输入进程和输出进程模拟外围控制机把输入数据先放进输入井、输出数据放进输出井CPU 需要时直接从井里取相当于脱离了主机控制进行输入输出所以叫“脱机”。四部分构成输入井和输出井在外存、输入缓冲区和输出缓冲区在内存、输入输出进程、井管理程序。三个特点提高 I/O 速度、把独占设备改造为共享设备、实现虚拟设备功能。假脱机打印机是经典例子磁盘缓冲区暂存数据、打印缓冲区缓和速度矛盾、假脱机管理进程建请求打印表挂到队列、打印进程从队首取表打印。这段答全简答题基本满分。6.3 磁盘调度与缓冲区计算题的收尾分磁盘访问时间分寻道时间、旋转延迟时间、传输时间调度算法主要优化寻道。FCFS 公平但寻道长SSTF 选距离最近的可能饥饿SCAN 是电梯算法沿当前方向走到底再折返CSCAN 规定单向移动回程直接返回起点。缓冲区管理要分清单缓冲区、双缓冲区、环形缓冲区和缓冲池双缓冲区解决单缓冲区“处理一块时不能同时读下一块”的问题。这部分计算题通常给磁道序列让你算总移动距离按算法逐次画箭头别跳步。7. 考场答题节奏从背考点到写答案的最后一步走到这里考点已经按模块过了一遍剩下的是怎么在考场上把会的东西变成分。我的建议是拿到卷子先花三分钟扫一遍大题判断信号量代码题、银行家算法题、EAT 计算题各占多少分然后按“先拿计算、再写代码、最后简答”的顺序做。计算题步骤分很重公式先写、代入再算、单位别丢信号量代码题先写信号量定义和初值再写进程框架P 操作顺序单独用一句话强调简答题按“定义加分类加一句区别”三段式写别写成一大段散文。下面这张表是我自己考前反复看的分值判断你可以按自己学校的题型微调题型高频出处拿分关键常见丢分选择判断四特性、三态五态、算法适用场景概念词精确并发并行写反简答PCB 作用、分页分段区别、SPOOLing分点作答只写结论不写区别计算周转时间、EAT、磁盘移动距离公式加步骤漏分支、单位错综合生产者消费者、银行家算法信号量初值加安全性检查P 操作顺序颠倒注意银行家算法题一定要写出安全性检查的完整过程只写“安全”两个字不给过程分信号量题如果时间不够至少把信号量定义、初值和 P/V 顺序写出来代码细节可以简写。从那以后我每次进考场前都强制走一遍“先扫大题定顺序、公式先写再代入、代码先定信号量”这三步哪怕复习得再熟也不省。这门课不怕你不会就怕你会了却写不到得分点上。希望帮到你。本文还有配套的精品资源点击获取