死锁避免
前提:采用动态资源分配策略
措施:加设“银行家算法"以决定是否满足加设“银行家算法"以决定是否满足该请求。
银行家的思路
-
基本思路:
- 银行家拥有一笔周转资金,客户申请贷款
- 检查客户信用,了解客户投资前景,判断有无出现呆账坏账的危险
- 确无危险,才贷出
-
银行家与操作系统l类比
- 操作系统 ——————————银行家
- 操作系统管理资源——————周转资金
- 进程————————————要求贷款的客户
银行家算法的主要目的:避免死锁的发生
-
操作系统的思路:
- 前提:采用动态资源分配
- 银行家算法:假设分配,检查系统是否安全;安全,则实施分配;不安全,则不分配进程阻塞等待
- 主要思想:动态检测资源分配,以确保系统一-直处于安全状态
安全,不安全和死锁状态空间
-
安全状态
- 安全状态:当前状态下至少能找到一个安全序列
- 不安全状态:当前状态下没有安全序列
安全序列——各进程能依次满足资源需求并运行完成的一个序列
银行家算法
银行家算法中描述系统当前状态的数据结构
安全算法Safe()描述为如下函数:
举例