实验4、银行家算法模拟
一、 实验目的和要求
银行家算法是由Dijkstra设计的最具有代表性的避免死锁的算法。本实验要求用高级语言编写一个银行家的模拟算法。通过本实验可以对预防死锁和银行家算法有更深刻的认识。
三、实验内容:
1、 设置数据结构
包括可利用资源向量(Availiable),最大需求矩阵(Max),分配矩阵(Allocation),需求矩阵(Need)
2、 设计安全性算法
设置工作向量Work 表示系统可提供进程继续运行可利用资源数目,Finish 表示系统是否有足够的资源分配给进程
四、测试数据:
要求对于书113页给出的资源分配表,可以对输入各种请求进行安全性判断,最后给出安全序列或者不能分配的原因。如输出:
"所需资源全部满足,此进程运行完毕!";
"申请的资源量大于系统可提供的资源量!"
"申请的资源中有某种资源大于其声明的需求量!"
"若满足申请,系统将进入不安全状态,可能导致死锁!"