- -
[操作系统] 银行家算法操作系统实验报告
实验目标
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];
Allocation[i]=Allocation[i]+Request[i];
Need[i]=Need[i]-Request[i];
4) 系统执行平安性检查,如平安,那么分配成立;否那么试探性分配资源作废,系统恢
复原状,进程进入等待状态。
- word.zl-