- 在讲银行家算法之前,首先介绍相关概念:
- 可利用资源向量Available:代表各类可利用的资源数目
- 最大需求矩阵Max:定义了系统中各个进程需要用到的各类资源的最大需求
- 分配矩阵Allocation:定义系统中各个进程已分配的资源总数
- 需求矩阵Need:定义各个进程还需要的资源总数。Need=Max-Allocation
- 工作向量Work:表示系统当前可提供给进程继续运行所需的资源数目
- 安全性算法操作流程
- Work=初始Available
- 依次检查进程是否满足Max中各资源
- 依次类推
- 银行家算法操作流程
- Request是进程P的请求向量,发出资源请求后执行下列操作。
- 如果Request<=Need,下一步;否则认为出错(所需资源超过最大资源数)。
- 如果Request<=Available,下一步;否则认为出错(系统中无足够资源)。
- 尝试分配资源给该进程,并重新修改数据结构。
Available=Available-Request
Allocation=Allocation+Request
Need=Need-Request
- 执行安全性算法,检查是否处于安全状态,若处于安全状态则可以分配,否则本次分配作废。
- 例题
该题(1)问考察的知识点即安全性算法
*欢迎大家讨论,也欢迎大佬批评指正!