操作系统实验报告 银行家算法

操作系统实验报告 银行家算法

ID:33279436

大小:487.00 KB

页数:14页

时间:2019-02-23

操作系统实验报告 银行家算法_第1页
操作系统实验报告 银行家算法_第2页
操作系统实验报告 银行家算法_第3页
操作系统实验报告 银行家算法_第4页
操作系统实验报告 银行家算法_第5页
资源描述:

《操作系统实验报告 银行家算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验四银行家算法l实习内容通过编程理解银行家算法,掌握进程安全性检查的方法及资源分配的方法,加深了解有关资源申请、避免死锁等概念,体会和了解死锁和避免死锁的具体实施方法。l实习目的银行家算法是避免死锁的代表性算法。本实习旨在加深了解有关资源申请、避免死锁、状态安全性等概念,并体会和运用避免死锁的具体实施方法。然后依照本实习,自行设计模拟程序。l实习原理算法思想:银行家算法操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推

2、迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系统处于安全状态。安全状态一定是没有死锁发生。不安全状态:不存在一个安全序列。不安全状态一定导致死锁。l实习编程思路和流程在避免死锁的方法中,如果施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状

3、态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。基本思想为:在分配资源之前,判断系统是否是安全的;若安全,才分配。它是最具代表性的死锁算法,具体算法如下表示:假设进程P提出请求Request[i],则银行家算法按如下步骤进行判断:1)如果Request[i]<=Need[i],则转向2);否则出错。2)如果Request[i]<=Available[i],则转向3);否则出错。3)系统试探分配相关资源,修改相关数据:Available[i]=Available[i]-Request[i];Allocation

4、[i]=Allocation[i]+Request[i];Need[i]=Need[i]-Request[i];1)系统执行安全性检查,如安全,则分配成立;否则试探性分配资源作废,系统恢复原状,进程进入等待状态。2)根据以上银行家算法步骤,可得出如下图所示流程图:安全性检查算法主要是根据银行家算法进行资源分配后,检查资源分配后的系统状态是否处于安全状态之中。具体算法如下所示:1)设置两个工作向量Work=Available,Finish=false;2)从进程集合中找到一个满足下述条件的进程;Finish=false;Need<=work;

5、如果能够找到该进程,则执行3),否则,执行4);3)假设上述找到的进程获得资源,可顺利执行,直至完成,从而释放资源。Work=Work+Allocation;Finish=true;Goto2);4)如果所有进程的Finish=true,则表示该系统安全,否则系统不安全,请求被拒。5)根据以上安全检查算法步骤,可得出如下图所示流程图:l源程序结构分析Ø主要数据结构#include//////////////////////////////////////////////////////////////////////

6、//////全局变量定义intAvailable[100];//可利用资源数组intMax[50][100];//最大需求矩阵intAllocation[50][100];//分配矩阵intNeed[50][100];//需求矩阵intRequest[50][100];//M个进程还需要N类资源的资源量intFinish[50];intp[50];intm,n;//M个进程,N类资源Ø主要代码结构/////////////////////////////////////////////////////////////////////////

7、//安全性算法intSafe(){inti,j,l=0;intWork[100];//可利用资源数组for(i=0;iWork[j])break;}if(j==n){Finish[i]=1;for(intk=0;k

8、;p[l++]=i;i=-1;}elsecontinue;}if(l==m){cout<<"系统是安全的"<<'';cout<<"系统安全序列是:";for(i=0;i<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。