文件名称:银行家算法实现(代码全面解析)
文件大小:7KB
文件格式:RAR
更新时间:2021-08-04 18:24:57
操作系统 银行家算法 代码实现
一.算法分析: (一)数据结构: 1.可利用资源向量Available 2.最大需求矩阵Max 3.分配矩阵Allocation 4.需求矩阵Need (二)功能介绍: 模拟实现Dijkstra的银行家算法以避免死锁的出现.分两部分组成: 第一部分:银行家算法(扫描) 1.如果Request<=Need,则转向2;否则,出错 2.如果Request<=Available,则转向3,否则等待 3.系统试探分配请求的资源给进程 4.系统执行安全性算法 第二部分:安全性算法 1.设置两个向量 (1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目 (2).Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False 2.若Finish[i]=False&&Need;<=Work,则执行3;否则执行4(I为资源类别) 3.进程P获得第i类资源,则顺利执行直至完成!并释放资源: Work=Work+Allocation;Finish[i]=true;转2 4.若所有进程的Finish[i]=true,则表示系统安全;否则,不安全!
【文件预览】:
BankerTest
----src()
--------bankerTest()
----bin()
--------bankerTest()
----.classpath(301B)
----.settings()
--------org.eclipse.jdt.core.prefs(629B)
----.project(386B)