[操作系统] 银行家算法操作系统实验报告
实验目标
1. 理解银行家算法。
2. 掌握进程安全性检查的方法及资源分配的方法。
3. 加深了解有关资源申请、避免死锁等概念。
4. 体会和了解死锁和避免死锁的具体实施方法。
实验要求
编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家
算法,有效的防止和避免死锁的发生。
设计思路
1.银行家算法
在避免死锁的方法中,如果施加的限制条件较弱,有可能获得令人满意的系统性能。在该
方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便
可以避免发生死锁。
基本思想为:在分配资源之前,判断系统是否是安全的;若安全,才分配。它是最具代表
性的死锁算法,具体算法如下表示:
假设进程 P 提出请求 Request[i],则银行家算法按如下步骤进行判断:
1) 如果 Request[i] <=Need[i],则转向 2);否则出错。
2) 如果 Request[i] <=Available[i],则转向 3);否则出错。
3) 系统试探分配相关资源,修改相关数据:
Available[i]=Available[i]-Request[i];
Allocaon[i]=Allocaon[i]+Request[i];
Need[i]=Need[i]-Request[i];
4) 系统执行安全性检查,如安全,则分配成立;否则试探性分配资源作废,系统恢复原
状,进程进入等待状态。
评论0
最新资源