闭卷重建四个必要条件与等待环的对象、状态、事件、不变量与一个失败反例。
操作系统与系统实验 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建锁顺序与死锁预防的对象、状态、事件、不变量与一个失败反例。
闭卷重建银行家算法与安全状态的对象、状态、事件、不变量与一个失败反例。
闭卷重建死锁检测与恢复的对象、状态、事件、不变量与一个失败反例。
闭卷重建活锁、饥饿与优先级反转的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:等待图环检测的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:银行家安全序列的对象、状态、事件、不变量与一个失败反例。
核心机制:给资源建立全序并要求按升序获取,可破坏循环等待,但要处理动态资源集合;实验入口:给账户ID排序后执行双账户转账,比较未排序的AB/BA获取与统一顺序;边界:try-lock超时只是检测/退避策略,不自动保证业务操作幂等或无活锁。
核心机制:互斥、占有并等待、不可抢占、循环等待同时成立才可能死锁;实验入口:让T1持A等B、T2持B等A,分别画资源分配图与单实例等待图;边界:必要条件不是充分判据;多实例资源图有环不一定已经死锁。
核心机制:单实例可检测等待图环,多实例需按可完成进程迭代;恢复可终止、回滚或抢占资源;实验入口:对四事务等待图运行DFS找环,再按损失成本选择牺牲者并重新验证;边界:恢复选择必须考虑事务副作用、回滚能力和饥饿,不能只选资源占用最少者。
核心机制:安全状态存在一个让所有进程依次完成的序列;当前不能立即满足不等于永远死锁;实验入口:由Available、Allocation、Max计算Need,逐轮寻找Need≤Work的进程并释放资源;边界:安全不等于高利用率;最大需求声明不可信时算法结论也不可信。
核心机制:有向图DFS用白灰黑颜色区分未访问、当前路径和已完成节点,灰边意味着环;实验入口:输入事务与等待边,输出DEADLOCK及一个环,或SAFE;边界:自环也是死锁候选;图随系统变化,快照检测结果需要结合资源释放语义。
核心机制:活锁中参与者持续动作却无进展,饥饿是特定任务长期得不到资源,优先级反转由依赖链造成;实验入口:模拟两个线程同时礼让后退的活锁,再加入随机退避;用优先级继承修复持锁反转;边界:随机退避降低同步碰撞但不给绝对时限保证;公平锁也可能牺牲吞吐。
核心机制:工作向量从Available开始,完成进程释放Allocation,直到全部完成或无可推进者;实验入口:实现多资源银行家检测,输出字典序最小安全序列或UNSAFE;边界:请求试分配后还要重新做安全性检查;Need或Available出现负数应视为非法输入。