实验7银行家算法.ppt
实验7 银行家算法(4学时),实验内容 编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。实验要求 在避免死锁的方法中,如果施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。基本思想为:在分配资源之前,判断系统是否是安全的;若安全,才分配。它是最具代表性的死锁算法,具体算法如下表示:,假设进程P提出请求Requesti,则银行家算法按如下步骤进行判断:如果Requesti=Needi,则转向2);否则出错。如果Requesti=Availablei,则转向3);否则出错。系统试探分配相关资源,修改相关数据:Availablei=Availablei-Requesti;Allocationi=Allocationi+Requesti;Needi=Needi-Requesti;系统执行安全性检查,如安全,则分配成立;否则试探性分配资源作废,系统恢复原状,进程进入等待状态。,