操作系统实验银行家算法

操作系统实验银行家算法

ID:21427460

大小:95.80 KB

页数:7页

时间:2018-10-22

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

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

1、实验三银行家算法一、实验内容简要描述1.实验目标:加深了解有关资源屮请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。2.实验要求:银行家算法是避免死锁的一种重要方法,木实验要求用H级语言编写和调试一个简单的银行家算法程序。用银行家算法实现资源分配。设计五个进程{p0,pl,p2,p3,p4}共享三类资源{A,B,C}的系统,例如,{A,B,C}的资源数量分别为10,5,7。进程可动态地申请资源和释放资源,系统按进程的申请动态地分配资源,要求程序具

2、有显示和打印各进程的某一个时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。二、报告主要内容1.设计思路八、设计进程对各在资源最大申清表示及初值确定。B、设定系统提供资源初始状态。C、设定每次某个进程对各类资源的申请表示。D、编制程序,依据银行家算法,决定其申请是否得到满足。2.主要数据结构假设有M个进程N类资源,则有如下数据结构:MAX[M*N]M个进程对N类资源的最大需求量AVAILABLE[N]系统可用资源数ALLOCATION[M*N]M个进程已经得到N类资源的资源量NEED[M州]M个进程还谣要N类资源的资源量银

3、行家算法:设进程I提出请求Request[N],则银行家算法按如下规则进行判断。(1)如果Request[N]<=NEEDfI,N],则转(2);否则,出错。(2)如果Request[N]<=AVAILABLE,则转(3);否则,出错。(3)系统试探分配资源,修改相关数据:AVAILABLE=AVAILABLE-REQUESTALLOCATION=ALLOCATION+REQUESTNEED=NEED-REQUEST(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。(1)设賈两个工作向y:WORK=AVAILABLE;FINISH[

4、M1=FALSE(2)从进程集合中找到一个满足下述条件的进程,FINISH[i卜FALSENEED<=WORK如找到,执行(3);否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。WORK=WORK+ALLOCATIONFINISH=TRUEGOTO2(4)如所有的进程Finish[Ml=true,则表示女全;否则系统不安全。1.主要代码源程序:#includeusingnamespacestd;/*最大进程数*//*最大资源数*/A可用资源数组吟/*最大需求矩阵*//*分配矩阵*//*需求矩阵V/*进程需要资源数*//*系统是否

5、有足够的资源分配*//*记录序列*//*m个进程,n个资源*/^defineMAXPROCESS50^defineMAXRESOURCE100intAVAILABLE[MAXRESOURCE];intMAX[MAXPROCESS][MAXRESOURCE];intALLOCATION[MAXPROCESS][MAXRESOURCE];intNEED[MAXPROCESS][MAXRESOURCE];intREQUEST[MAXPROCESS][MAXRESOURCE]:boolFINISH[MAXPROCESS];intp[MAXPROCESS];intin,n;voidI

6、nit();boolSafe();voidBank();intmain(){Init();Safe();Bank();voidInit()}/*初始化算法*/inti,j;COut〈〈"请输入进程的数目:";cin»m;coul/r请输入资源的种类cin〉〉n;COut〈〈"请输入每个进程最多所耑的各资源数,按照"〈〈m〈〈"x"〈〈n<〈3"^«^A"<

7、0;i

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

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

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