计算机中级-数据库系统工程师-操作系统-进程管理(3)
一、例题:死锁死锁条件分析当系统中有m个资源n个进程每个进程最大需求w个资源时死锁发生的条件是n×(w−1)≥m。即当所有进程都只差1个资源时系统资源仍不能满足。案例验证情况①m3,n2,w2→2×(2−1)23不发生情况②m3,n3,w2→3×(2−1)3≥3发生情况④m5,n3,w3→3×(3−1)6≥5发生情况⑤m6,n3,w3→3×(3−1)6≥6发生解除死锁方法在原有资源数m基础上增加1对情况②⑤或2对情况④使得mn×(w−1)二、银行家算法应用1. 例题1:企业资金分配与状态判断资源分配计算初始状态P1(已用2/最大6)、P2(3/8)、P3(2/8)、P4(0/10)分配后P1获得2→尚需6−(22)2P2获得1→尚需8−(31)4可用资金15−(2320)−32安全状态判断当可用资金≥任一进程尚需资金时本例可用2≥P1尚需2可通过资源回收形成安全序列2. 例题2:企业资金在特定条件下的分配与状态分析资金释放计算P1还清后总已用资金3(P2)2(P3)3(P4)8可用资金15−87二次分配分析分配后已用P2(325)、P3(224)、P4(336)尚需资金8−53、8−44、10−64不安全状态特征当所有可用资金耗尽7−(223)0且各项目均未完成时系统进入死锁状态三、进程资源图死锁判断1. 例题1: 图(a)死锁判断进程资源图表示法圆圈代表进程如P1、P2矩形代表资源内部圆圈数表示资源数量如R1有2个R2有3个资源→进程箭头表示资源已分配1个箭头1个资源进程→资源箭头表示进程申请资源图(a)分析R1资源2个全部分配P1、P2各1个R2资源3个全部分配P1得1个P2得2个P1申请R2无剩余P2申请R1无剩余死锁条件阻塞节点判断两进程都在等待对方释放资源P1等R2P2等R1不可化简性无可用资源且进程互相等待形成循环等待链结论选BP1、P2都是阻塞节点不可化简且死锁2. 例题2: 图(b)死锁判断与化简资源分配情况R12个全部分配P1、P3各1个R23个中分配2个P2、P3各1个剩余1个可用进程状态分析P1申请R2可立即满足有1个剩余P2申请R1不可满足R1已耗尽P3申请R2与P1竞争剩余R2化简过程将剩余R2分配给P1P1执行后释放其占用的R1和R2P2获得释放的R1P3获得释放的R2关键结论非阻塞节点P1、P3至少一个请求可满足阻塞节点P2无法立即获得R1死锁判断选CP2阻塞P1/P3非阻塞可化简且非死锁四、设计操作系统无需考虑的问题核心功能硬件资源管理如CPU、内存、I/O设备等软件资源管理如文件系统、进程调度等用户接口提供人机交互界面CLI/GUI非相关项语言编译器属于编程工具链非操作系统核心功能选D五、竞争资源死锁1. 死锁最小i值计算死锁条件公式进程数n3总资源数R6R6R6临界条件→3(i−1)≥6结论最小i值为3时可能死锁选C2. 信号量数值解析信号量语义S0可用资源数S0绝对值表示等待进程数S−2可用资源数0等待进程数2选D六、PV操作信号量设置1. 前驱图与PV操作前驱图定义表示事件执行顺序的有向图箭头表示前驱关系。例如烧水→泡茶→喝茶必须前序事件完成才能开始后续事件。PV操作原理每对PV操作负责两个进程间的同步。P操作检查前驱是否完成信号量S减1V操作通知后续进程信号量S加1。信号量初值题目中S1~S5初值为0表示初始时所有前驱均未完成。同步实现P1结束后执行V(S1)P2开始前执行P(S1)P2结束后执行V(S2)和V(S3)分别控制P3和P4的启动P3/P4结束后分别执行V(S4)/V(S5)P5需同时P(S4)和P(S5)确认两者完成信号量分配技巧按进程执行顺序依次使用S1~S5避免混乱。理论上信号量可互换但按序使用更规范。2. 题型(2015年第23-25题)1题目解析解题关键分析前驱图中各进程的启动条件P2启动需P1完成对应S1P3/P4启动需P2完成对应S2/S3P5启动需P3和P4均完成对应S4/S5选项分析(23) P1结束处应V(S1)P2开始处应P(S1)P2结束处需V(S2)和V(S3)(24) P3开始处需P(S2)P4开始处需P(S3)(25) P5开始前需P(S4)和P(S5)易错点注意P5需要等待两个前驱进程必须同时检查S4和S5。答案AV(S1)、P(S1)和V(S2)V(S3)、BP(S2)和V(S4)、BV(S3)和P(S4)P(S5)七、系统死锁资源需求1. 死锁预防资源计算核心公式保证不出现死锁的最小资源数 (进程数 × (单个进程需求-1)) 1实例解析3个进程各需5个R资源时最坏情况每个进程已获得4个R共占用12个此时系统只需再提供1个R即可让某个进程完成并释放资源计算结果(3×4)113故选B记忆技巧分配最大少一个总数加一保平安八、信号量初始化设置1. 系统售票终端与进程管理进程模型铁路自动售票系统有n个售票终端每个终端对应一个进程Pi(i1,2,...,n)管理车票销售过程。数据结构Tj(j1,2,...,m)存放某日某趟车的剩余票数Temp进程Pi的临时工作单元xxx用户购票张数2. 信号量S的初始化赋值问题临界资源特性剩余票数Tj是共享资源多个售票终端可能同时访问同一车次数据互斥必要性若两个用户同时购买Tj车次票如用户A买5张用户B买6张不加控制会导致数据混乱信号量初值应设为1保证同一时刻只有一个进程能访问临界资源类比打印机资源管理3. 流程图解析与信号量操作流程解析按用户要求找到车票单元Tj检查余票是否充足Temp≥x充足时更新余票TempTemp−xTjTemp不足时提示无余票信号量操作位置(a)处执行P操作申请资源进入临界区前(b)处执行V操作释放资源离开临界区后(c)处执行V操作释放资源异常分支也需要释放4. 实现进程间的同步与互斥互斥实现通过信号量保证对Tj的原子操作同步机制售票完成后立即释放资源避免其他进程长时间等待错误处理无论购票成功与否都必须执行V操作防止死锁5. P操作和V操作的应用P操作语义申请资源若S≥0表示资源可用否则进程阻塞V操作语义释放资源若有等待进程则唤醒其中一个实际应用类似打印机管理确保同一时间只有一个终端修改票数九、PV操作应用1. 例题生产者与消费者问题1题目解析系统配置缓冲区单缓冲区生产者P1不断生产产品送入缓冲区消费者P2不断从缓冲区取产品消费信号量S1初值1缓冲区空位S2初值0产品数量操作流程生产者先P(S1)检查空位放入产品后V(S2)通知消费者消费者先P(S2)检查产品取走产品后V(S1)释放空位正确答案DP(S2), V(S2), V(S1)易错点容易混淆生产者和消费者的操作顺序注意V操作总是在临界操作完成后执行十、操作系统的功能1. 五大核心功能组成架构: 操作系统功能分为相互配合、协调工作的五大部分具体包含:进程管理处理器管理存储管理内存管理设备管理I/O管理文件管理作业管理排除项: 事务管理不属于操作系统核心功能属于第12章数据库内容十一、短期调度1. 三级调度体系短期调度:别名短程调度/进程调度功能决定哪个就绪进程获得CPU使用权长期调度:别名作业调度功能决定哪些作业进入内存准备执行中级调度:功能内存紧张时将进程调出至外存十二、线程实现空间1. 线程分类体系用户级线程:实现位置用户空间特点内核不可见切换开销小内核支持线程:实现位置内核空间特点内核可见切换需模式转换十三、资源分配单位1. 进程基本属性资源分配单位:操作系统进行资源分配的基本单位拥有独立的内存空间和系统资源独立运行单位:可被独立调度执行的基本单位具有独立的程序计数器、堆栈等运行环境十四、线程共享内容1. 线程资源共享机制共享资源:地址空间全局变量堆内存文件描述符独立资源:程序计数器PC寄存器组栈空间每个线程有独立栈十五、死锁必要条件破坏1. 死锁四大条件互斥条件:资源独占使用难以破除请求保持条件:持有资源同时请求新资源破坏方法静态预分配法不可剥夺条件:资源不能被强制回收破坏方法允许资源抢占环路等待条件:循环等待资源链破坏方法资源有序分配法2. 方法辨析教材争议点:传统认为静态预分配法破坏不可剥夺条件实际应破坏请求保持条件正确对应关系:破坏不可剥夺条件 → 允许资源抢占破坏请求保持条件 → 静态预分配法十六、预先静态分配法1. 预先静态分配法的定义核心概念在进程开始执行前一次性分配其所需全部资源分配原则若所需资源不完整如进程需要ABC三个资源但系统只有AB则一个资源都不分配2. 预先静态分配法的实施条件必要条件必须确保进程所需所有资源同时可用典型场景适用于资源需求明确且固定的系统环境拒绝策略当任一资源不可用时立即拒绝整个资源分配请求3. 预先静态分配法与死锁条件的关系争议点教材认为破坏不可剥夺条件但实际应破坏请求保持条件逻辑分析若不全部分配直接避免进程持有资源并等待其他资源的情况若部分分配仍可能保持请求保持条件且不改变资源的不可剥夺性正确方法强制剥夺资源如选项C才是真正破坏不可剥夺条件的手段4. 例题1: 预先静态分配法破坏的条件1题目解析选项分析A.假脱机与死锁条件无直接关系B.预先静态分配实际破坏请求保持条件但教材标注为破坏不可剥夺条件C.强制剥夺资源真正破坏不可剥夺条件的正确方法D.资源排序破坏循环等待条件考试建议按教材答案选择B但实际应选C记忆要点注意区分请求保持与不可剥夺条件的破坏方式5. 例题2: 适用于交互式系统的调度算法1题目解析交互式系统核心需求响应时间最短化算法评估先来先服务长作业会阻塞后续作业响应优先级调度低优先级作业响应延迟短作业优先长作业可能饿死轮转算法通过时间片保证及时响应正确答案D时间片轮转算法原理说明固定时间片轮转能保证每个作业都能定期获得CPU时间十七、交互式系统适用算法1. 时间片轮转算法详解基本机制将CPU时间划分为固定长度的时间片如100纳秒响应优势用户请求能在可预测时间内获得响应通过快速轮转制造连续响应的错觉参数影响时间片长度需平衡响应时间和上下文切换开销十八、线程共享资源独享资源线程独自拥有的资源包括程序计数器、一组寄存器和栈这些资源不与其他线程共享。共享资源除程序计数器、寄存器和栈外同一进程中的线程可以共享进程拥有的全部资源如地址空间、全局变量等。记忆技巧通过线程三独享口诀记忆程序计数器、寄存器、栈其余皆可共享。1. 例题(2022年第21题)1题目解析解题关键排除线程独享的三种资源程序计数器、寄存器、栈选项分析A地址空间属于共享资源B栈和C寄存器属于独享资源D程序计数器也是独享资源正确答案A关联考点该知识点在教材144页有明确说明2021年曾考过类似题目十九、进程状态转换1. 进程的三态模型基本状态运行态正在被CPU执行、就绪态资源已准备好等待调度、等待/阻塞态等待某事件发生状态特征运行态是唯一实际占用CPU的状态就绪态只需等待CPU调度等待态需要外部事件触发2. 运行状态与就绪状态的转换运行→就绪时间片用完时发生进程被迫让出CPU就绪→运行被CPU调度器选中时发生进程获得CPU使用权转换特点这是最基本的进程状态转换体现了分时系统的调度特性3. 等待状态与就绪状态、运行状态的转换运行→等待当进程需要等待I/O等事件时主动进入阻塞状态等待→就绪等待事件发生后进程进入就绪队列等待调度重要规则等待状态不能直接转换为运行状态必须经过就绪状态易错点很多考生误认为事件发生后可直接进入运行状态4. 例题(2023年第19题)1题目解析题目分析考查不可能发生的状态转换选项判断A就绪→运行可能B运行→就绪可能C等待→运行不可能D运行→等待可能正确答案C记忆要点牢记等待必须经过就绪才能到运行的转换规则二十、IPC方法1. IPC的定义全称Inter-Process Communication进程间通信基本概念操作系统提供的进程间数据交换和同步机制教材重点主要讲解信号量机制其他方法属于扩展知识2. 例题1: IPC方法中哪种不需要忙等待1题目解析忙等待定义进程循环检测资源可用性的低效等待方式选项分析A锁变量、B Peterson方法、C TSL指令都需要忙等待D信号量通过PV操作避免忙等待正确答案D知识扩展信号量机制是前三种方法的改进方案通过阻塞/唤醒机制提高效率二十一、知识小结知识点核心内容考试重点/易混淆点难度系数死锁条件分析通过资源分配表判断死锁可能性案例3进程各需2资源总资源3个时必死锁关键公式总资源 ≥ (进程数×(单进程需求-1))1 可避免死锁⭐⭐⭐⭐银行家算法动态检查资源分配安全性案例P1申请2单位后计算剩余可用资源易错点已分配资源与仍需资源的差值计算⭐⭐⭐进程资源图矩形表资源/圆圈表进程箭头方向区分资源分配→与请求←化简原则存在非阻塞节点则非死锁图b可化简⭐⭐⭐⭐PV操作同步前驱图需匹配PV对如P1结束→V(S1)P2开始→P(S1)典型错误信号量初值误设为1同步场景常为0⭐⭐⭐⭐线程共享资源不共享程序计数器/寄存器/栈共享地址空间/全局变量/堆高频考点线程独立栈结构与进程级资源共享对比⭐⭐⭐调度算法交互式系统适用时间片轮转确保响应时间长作业场景用SJF优先级反转问题需注意⭐⭐进程状态转换等待→运行非法需经就绪态运行→等待因I/O请求五态模型含创建/终止态扩展⭐⭐⭐IPC通信方法信号量机制无忙等待vs Peterson/TSL需循环检测超纲但可逻辑推导⭐⭐⭐⭐