• 大小: 1.38MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-17
  • 语言: Java
  • 标签: 课设  

资源简介

该课程设计eclipse打开导入即可,本科答辩最终拿到95分,文档质量不低,其实代码不需要贴太多,注释说明有必要,最好拿广工论文标准来修改报告最好,本课设在别人课设成果基础上加以修改,可以拿去参考修改添加功能。

资源截图

代码片段和文件信息

package banker;
import java.util.ArrayList;
public class BankerAlgorithm {
// 表示系统中资源种类数
private final int _resourceClassesCount; //资源种类
private final int[] _totalResource;      //每个资源拥有的数量
private ArrayList _processes = new ArrayList(); //进程信息
private StringBuffer _executeInfo = new StringBuffer(50);

public BankerAlgorithm(int[] totalResource int resourceClassesCount
ArrayList processes) {
_resourceClassesCount = resourceClassesCount;
_totalResource = totalResource;
_processes = processes;
}
//添加新进程
private ArrayList newProcesses() {
ArrayList pList = new ArrayList();
for (Process p : _processes) {
pList.add(p.newProcess());
}
return pList;
}
//获取可供应资源数
public int[] getAvilable() {
int[] avilable = new int[_resourceClassesCount];
for (int i = 0; i < _resourceClassesCount; ++i) {
avilable[i] = _totalResource[i] - getResourceAllocated(i);
}
return avilable;
}

// index代表某个资源的索引结果为某个资源的已分配量.
private int getResourceAllocated(int index) {
int totalAllocated = 0;
for (Process p : _processes) {
int[] allocated = p.getAllocated();
totalAllocated += allocated[index];
}
return totalAllocated;
}
//添加进程
public boolean addProcess(Process p) {
if (isUniqueProcessId(p.getId())) {
_executeInfo.append(p.getId() + “=“ + p.toString());
return _processes.add(p);
} else {
_executeInfo.append(p.getId() + “与已有进程重名.“);
return false;
}
}
//请求资源
private boolean request(Process p int[] resource) {
//请求资源是否超过最大资源数量,供应资源数量,若是退出
if (!isAllAllocatedLowerMax() || !isAllAllocatedLowerTotalResource())
return false;
int[] avilable = getAvilable();
if (p.isLowerMaxNeed(resource _executeInfo)
&& isRequestLowerAvilable(avilable resource)) {
//满足条件,开始进行资源分配
ArrayList pList = newProcesses();
Process newP = getProcessById(pList p.getId());
newP.allocate(resource);
sub(avilable resource);

if (newP.isFinished()) {
_executeInfo.append(p.getId() + “->“);
add(avilable newP.getAllocated());
}
//进程是否通过安全性算法
if (isSecured(pList avilable)) {
p.allocate(resource);
if (p.isFinished()) {
_executeInfo.append(“\n进程“ + p.getId() + “执行完毕.“);
_processes.remove(p);
}
return true;
} else
return false;
} else
return false;
}
// 判断当前系统是否安全
public boolean isSecured() {
return isSecured(newProcesses() getAvilable());
}
private boolean isSecured(ArrayList pList int[] avilable) {
if (!isAllMaxNeedLowerTotalResource(pList))
return false;

while (!isAllFinished(pList)) {
Process p = searchProcessLowerAvilable(pList avilable);
if (p != null) {
int[] need = p.getNeed();
p.allocate(need);
_executeInfo.append(p.getId() + “->“);
sub(avilable need);
add(avilable p.getAllocated());
} else {
_executeInfo.append(“系统中

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2018-01-06 14:27  BankerSystem\.classpath

     文件        388  2018-01-06 14:27  BankerSystem\.project

     文件        598  2018-01-06 14:27  BankerSystem\.settings\org.eclipse.jdt.core.prefs

     文件       8841  2018-01-09 22:28  BankerSystem\bin\banker\BankerAlgorithm.class

     文件       4527  2018-01-07 16:47  BankerSystem\bin\banker\Process.class

     文件       5534  2018-01-07 16:26  BankerSystem\bin\UI\AddProcessDialog.class

     文件       4355  2018-01-07 16:26  BankerSystem\bin\UI\AddResourceDialog.class

     文件      12825  2018-01-09 22:28  BankerSystem\bin\UI\BankerMainUI.class

     文件       7024  2018-01-07 16:26  BankerSystem\bin\UI\ChangeProcessDialog.class

     文件       3384  2018-01-07 16:26  BankerSystem\bin\UI\DeleteProcessDialog.class

     文件       4585  2018-01-07 16:26  BankerSystem\bin\UI\RequestResourceDialog.class

     文件       7561  2018-01-09 22:28  BankerSystem\src\banker\BankerAlgorithm.java

     文件       4164  2018-01-07 16:47  BankerSystem\src\banker\Process.java

     文件       5580  2018-01-07 16:26  BankerSystem\src\UI\AddProcessDialog.java

     文件       3532  2018-01-07 16:26  BankerSystem\src\UI\AddResourceDialog.java

     文件      14870  2018-01-09 22:28  BankerSystem\src\UI\BankerMainUI.java

     文件       7020  2018-01-07 16:26  BankerSystem\src\UI\ChangeProcessDialog.java

     文件       2662  2018-01-07 16:26  BankerSystem\src\UI\DeleteProcessDialog.java

     文件       3791  2018-01-07 16:26  BankerSystem\src\UI\RequestResourceDialog.java

     文件    1789120  2018-01-27 20:07  银行家算法报告.docx

     文件      28861  2018-01-09 22:31  银行家算法课程设计.jar

     目录          0  2018-01-09 22:32  BankerSystem\bin\banker

     目录          0  2018-01-09 22:32  BankerSystem\bin\UI

     目录          0  2018-01-09 22:32  BankerSystem\src\banker

     目录          0  2018-01-09 22:32  BankerSystem\src\UI

     目录          0  2018-01-09 22:32  BankerSystem\.settings

     目录          0  2018-01-09 22:32  BankerSystem\bin

     目录          0  2018-01-09 22:32  BankerSystem\src

     目录          0  2018-01-09 22:32  BankerSystem

----------- ---------  ---------- -----  ----

............此处省略2个文件信息

评论

共有 条评论