[操作系统] 银行家算法操作系统实验报告实验目标1
理解银行家算法
掌握进程安全性检查得方法及资源分配得方法
加深了解有关资源申请、避开死锁等概念
体会与了解死锁与避开死锁得具体实施方法
实验要求编写与调试一个系统动态分配资源得简单模拟程序,观察死锁产生得条件,并采纳银行家算法,有效得防止与避开死锁得发生
设计思路1、银行家算法在避开死锁得方法中,假如施加得限制条件较弱,有可能获得令人满意得系统性能
在该方法中把系统得状态分为安全状态与不安全状态,只要能使系统始终都处于安全状态,便可以避开发生死锁
基本思想为:在分配资源之前,推断系统就是否就是安全得;若安全,才分配
它就是最具代表性得死锁算法,具体算法如下表示:假设进程 P 提出请求 Request[i],则银行家算法按如下步骤进行推断:1)假如 Req u e s t[i] <=Need[i],则转向 2);否则出错
2)假如 R e q u es t[i] 〈=Available[i],则转向 3);否则出错
3)系统试探分配相关资源,修改相关数据:Ava i la b l e[i]=Av a il a ble[i]—Requ e s t[i];A l lo c a t ion[i]=All ocation[i]+Request[i];N ee d[i]=Need[i]—R e q ues t[i];4)系统执行安全性检查,如安全,则分配成立;否则试探性分配资源作废,系统恢复原状,进程进入等待状态
根据以上银行家算法步骤,可得出如下图所示流程图:2、安全性检查算法安全性检查算法主要就是根据银行家算法进行资源分配后,检查资源分配后得系统状态就是否处于安全状态之中
具体算法如下所示:1)设置两个工作向量W or k=Availa b le,F i nis h=fa l se;2)从进程集合中找到一个满足下述条件