欢迎来到天天文库
浏览记录
ID:32535179
大小:194.80 KB
页数:12页
时间:2019-02-11
《java语言的银行家算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、湖北中医学院信息技术系操作系统课程设计操作系统课程设计(一号黑体加粗)银行家算法模拟(小二黑体加粗)院系:小二黑体加粗班级:学号:姓名:同组者:时间:第12页湖北中医学院信息技术系操作系统课程设计目录(小二黑体加粗)一、题目2二、设计目的2三、总体设计思想概述3四、设计要求3五、设计方案3六、说明4七、流程图5八、运行结果5九、源程序9十、总结10十一、参考文献10第12页湖北中医学院信息技术系操作系统课程设计一、题目:(标题2,即三号黑体加粗)银行家算法模拟。二、设计目的:通过此课程设计,进行的一次全面的综合训练,使之更好地掌握操作
2、系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。三、总体设计思想概述:安全状态下系统不会进入死锁,不安全状态可能进入死锁。在进行资源分配之前,先计算分配的安全性,判断是否为安全状态。四、设计要求:银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。设计完成后,要求写出一份详细的设计报告。五、设计方案:编制银行家算法通用程序,并检测所给状态的系统安全性。1)银行家算法中的数据结构假设有
3、n个进程m类资源,则有如下数据结构:可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。Available[j]=K,则表示系统中现有Rj类资源K个。最大需求矩阵Max。这是一个n*m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。分配矩阵Allocation。这也是一个n*m的矩阵,它定义了系统中每一类资源当
4、前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示第12页湖北中医学院信息技术系操作系统课程设计进程i当前已分得Rj类资源的数目为K。需求矩阵Need。这也是一个n*m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。上述三个矩阵存在如下关系:Need[i,j]=Max[i,j]-Allocation[i,j]2)银行家算法设进程I提出请求Request[N],则银行家算法按如下规则进行判断。(1)如果Request[N]<=NEED[I,
5、N],则转(2);否则,出错。(2)如果Request[N]<=AVAILABLE,则转(3);否则,出错。(3)系统试探分配资源,修改相关数据:AVAILABLE=AVAILABLE-REQUESTALLOCATION=ALLOCATION+REQUESTNEED=NEED-REQUEST(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。3)安全性检查(1)设置两个工作向量WORK=AVAILABLE;FINISH[M]=FALSE(2)从进程集合中找到一个满足下述条件的进程,FINISH[
6、i]=FALSENEED<=WORK如找到,执行(3);否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。WORK=WORK+ALLOCATIONFINISH=TRUEGOTO2(4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。六、说明第12页湖北中医学院信息技术系操作系统课程设计通过程序实现定义的进程,为各进程分配资源,具体过程是:首先在程序中定义了3类资源,数量分别为10,5,7。然后定义进程p0,p1,p2,p3,p4,接着为各进程申请各资源,然后在程序执行并比较申请的资源数量与
7、各资源所剩数量,若前者大于后者则申请失败,反之则成功。同时该程序可以撤消新建进程,也可以查看资源分配情况。七、流程图:八、运行结果第12页湖北中医学院信息技术系操作系统课程设计第12页湖北中医学院信息技术系操作系统课程设计九、源程序publicclassBanker{publicfinalstaticintN=5;//进程个数publicfinalstaticintM=3;//资源种类数privateintResource[]=newint[M];//每类资源的数量privateintAvailable[]=newint[M];//各
8、类资源可利用的数量privateintMax[][]=newint[N][M];//各进程对各类资源的最大需求量第12页湖北中医学院信息技术系操作系统课程设计privateintAllocation[][]=newint
此文档下载收益归作者所有