用银行家算法实现资源分配

用银行家算法实现资源分配

ID:15386301

大小:70.50 KB

页数:8页

时间:2018-08-03

用银行家算法实现资源分配_第1页
用银行家算法实现资源分配_第2页
用银行家算法实现资源分配_第3页
用银行家算法实现资源分配_第4页
用银行家算法实现资源分配_第5页
资源描述:

《用银行家算法实现资源分配》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、xx大学操作系统实验(用银行家算法实现资源分配)一:实验目的为了了解系统的资源分配情况,假定系统的任何一种资源在任一时刻只能被一个进程使用。任何资源已经占用的资源只能由自己释放,而不能由其他进程抢占。当进程申请的资源不能满足时,必须等待。因此,只要资源分配算法能保证进程的资源请求,且不出现循环等待,则系统不会出现死锁。编写模拟系统进行资源调度的程序,采用银行家算法,有效的避免死锁的产生。模拟进程的分配算法,了解死锁的产生和避免的办法。二:实验要求(1):为了观察死锁产生和避免的情况,要求设计3到4个并发进程,共享系统的10个同类

2、不可抢占的资源。各进程是动态进行资源的申请和释放。(2):用银行家算法设计一个资源分配程序,运行这个程序,观察系统运行情况,并对系统运行的每一步进行显示。三:实验流程图开始N进程申请资源输入进程数目输入资源种类输入每个进程最多所需的资源数已经分配输入的进程所拥有的资源正确,吗?NY各资源现有数目系统安全吗?系统安全,假分配变为真分配判断资源数量是否正确同意分配Y是否再次分配Y四:源程序#include#include#include#include

3、h>#defineMaxNumber100//定义进程控制块structProcess_struct{intAvailable[MaxNumber];//可利用资源数组intMax[MaxNumber][MaxNumber];//最大需求矩陈intAllocation[MaxNumber][MaxNumber];//分配矩陈intNeed[MaxNumber][MaxNumber];//需求矩陈intRequest[MaxNumber][MaxNumber];//M个进程还需要N类资源的资源量intFinish[MaxNumbe

4、r];intp[MaxNumber];}Process;intM,N;//M个进程,N类资源inti,j,k,l=0;intWork[MaxNumber];//可利用资源intPinput();intSafe();intPeques();//进程输入intPinput(){inti,j;cout<<"输入进程的数目:";cin>>M;cout<<"输入资源的种类:";cin>>N;cout<<"输入每个进程最多所需的各类资源数,按照"<

5、0;j>Process.Max[i][j];cout<<"输入每个进程已经分配的各类资源数,按照"<>Process.Allocation[i][j];Process.Need[i][j]=Process.Max[i][j]-Process.Allocation[i][j];if(Process.Need[i][j]<0){cout<<"你输入的第"<

6、1<<"个资源错误,请重新输入:";j--;continue;}}}cout<<"请输入各个资源现有的数目:";for(i=0;i>Process.Available[i];return1;}//安全性算法intSafe(){for(i=0;i

7、(j=0;jWork[j])break;}if(j==N){Process.Finish[i]=1;for(intk=0;k

8、ut<<"-->";}cout<<'';return1;return0;}}}//进程请求intPeques(){while(1){cout<<"输入要申请的资源的进程号:(第一个进程号为0,第二个进程号为1,以此类推)";cin>>k;cout<<"输

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

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

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