操作系统 | 银行家算法举例
2021/12/30 14:07:29
本文主要是介绍操作系统 | 银行家算法举例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
举例说明:“若系统状态目前是安全的,若对某个申请评估时 在假定分配状态中,只要找到一个可满足线程就可断定系统是安全的”结论是错的。请构造一个例子进行证明。
例:在银行家算法中,若出现下述分配情况,试问:
若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?
答:不能,按照银行家算法,首先检查Requesti [j] 是否小于等于 Need[i,j],在这里(1,2,2,2) < (2,3,5,6)满足条件,则再判断Requesti [j] 是否小于等于 Available[j],这里(1,2,2,2) <(1,6,2,2)满足!此时找到了一个可满足进程。
然后便试探性的将资源分配给P2,此时P2的Allocation项变为(2,5,7,6),Need项变为(1,1,3,4),Available项变为(0,4,0,0)必须执行安全性算法,第一步就发现找不到一个进程使得Need[i,j] <= Work[j];所以安全性检查失败,这个Request请求会造成死锁,系统将处于不安全状态,故本次试探分配作废,恢复原来的资源分配状态,让进程P2等待。故“只要找到一个可满足线程就可断定系统是安全的”是错误的。
笔记:
1.多个进程: { P0,P1,P2,P4 } 代表1,2,3,4四个需要临界资源的进程
2.几种资源:{ A, B ,C } 代表A,B,C三种临界资源
3.Claim:最大需求矩阵(进程完成执行需要的各资源总量)
Allocation:分配矩阵(某个进程现在已经拥有的各资源量)
Need:需求矩阵(某个进程仍需要的各资源量)
Available:可利用资源向量 (系统保有的供分配的资源量)
其中:Need = Max - Allocation ,仍然需要的量等于总需求量减去拥有的量
当进程请求一组资源时,假设同意该请求,从而改变了系统的状态,然后确定其结果是否还处于安全状态。如果是,同意这个请求;如果不是,阻塞该进程知道同意该请求后系统状态仍然是安全的。
这篇关于操作系统 | 银行家算法举例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23linux 系统宝塔查看网站访问的命令是什么?-icode9专业技术文章分享
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南