《操作系统概念》—— 同步与死锁 一、同步1、竞争条件2、临界区问题(1)定义和解决条件(2)内核竞争 3、Peterson解决方案4、硬件同步5、互斥锁6、信号量(1)定义(2)使用(3)实现(4)死锁与饥饿(5)优先级的反转 7、经典同步问题(1)有界缓冲问题(2)读者-作者问题(3)哲学家就餐问题 8、管程(1)出现原因(2)使用方法(3)哲学家就餐问题的管程解决方案(4)采用信号量的管程实现(5)管程内的进程重启 二、死锁1、必要条件2、资源分配图3、死锁处理方法4、死锁预防(1)互斥(2)持有且等待(3)无抢占(4)循环等待 5、死锁避免(1)安全状态(2)资源分配算法(3)银行家算法a. 安全算法b. 资源请求算法 6、死锁检测(1)每种资源类型只有单个实例(2)每种资源类型可有多个实例(3)应用检测算法 7、死锁恢复(1)进程终止(2)资源抢占 一、同步 1、竞争条件 多个进程并发访问和操作统一数据并且执行结果与特定访问顺序有关。 2、临界区问题 (1)定义和解决条件 (2)内核竞争 3、Peterson解决方案 4、硬件同步 5、互斥锁 6、信号量 (1)定义 (2)使用 (3)实现 (4)死锁与饥饿 (5)优先级的反转 7、经典同步问题 (1)有界缓冲问题 (2)读者-作者问题 第一读者-作者问题的解决方案: (3)哲学家就餐问题 8、管程 (1)出现原因 (2)使用方法 (3)哲学家就餐问题的管程解决方案 (4)采用信号量的管程实现 (5)管程内的进程重启 二、死锁 1、必要条件 2、资源分配图 3、死锁处理方法 4、死锁预防 只哎哟确保四个必要条件中的一个不成立,就可以预防死锁发生。 (1)互斥 (2)持有且等待 (3)无抢占 (4)循环等待 5、死锁避免 (1)安全状态 (2)资源分配算法 (3)银行家算法 a. 安全算法 b. 资源请求算法 6、死锁检测 (1)每种资源类型只有单个实例 (2)每种资源类型可有多个实例 (3)应用检测算法 7、死锁恢复 (1)进程终止 (2)资源抢占