操作系统实验-银行家算法.doc
《操作系统实验-银行家算法.doc》由会员分享,可在线阅读,更多相关《操作系统实验-银行家算法.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验三银行家算法一、 实验内容简要描述1 实验目标:加深了解有关资源申请、避免死锁等概念,并体会与了解死锁与避免死锁得具体实施方法.要求编写与调试一个系统动态分配资源得简单模拟程序,观察死锁产生得条件,并采用银行家算法,有效得防止与避免死锁得发生。2 实验要求:银行家算法就是避免死锁得一种重要方法,本实验要求用高级语言编写与调试一个简单得银行家算法程序。用银行家算法实现资源分配.设计五个进程0,p,3,p4共享三类资源,B,C得系统,例如,A,B,C得资源数量分别为1,.进程可动态地申请资源与释放资源,系统按进程得申请动态地分配资源,要求程序具有显示与打印各进程得某一个时刻得资源分配表与安全序
2、列;显示与打印各进程依次要求申请得资源号以及为某进程分配资源后得有关资源数据.二、 报告主要内容1 设计思路A、 设计进程对各在资源最大申请表示及初值确定。B、 设定系统提供资源初始状态。C、 设定每次某个进程对各类资源得申请表示。D、 编制程序,依据银行家算法,决定其申请就是否得到满足。2 主要数据结构假设有M个进程N类资源,则有如下数据结构:AMN M个进程对N类资源得最大需求量AVAILBL系统可用资源数ALLCATIOM*N M个进程已经得到N类资源得资源量NEED*N 个进程还需要N类资源得资源量银行家算法:设进程I提出请求ReqestN,则银行家算法按如下规则进行判断。()如果qu
3、stN=EED,N,则转(2);否则,出错。(2)如果equetN=AAILABL,则转(3);否则,出错。(3)系统试探分配资源,修改相关数据:VIALE=AAILALEREQUALCATIN=ALATION+RQUETEED=NEDRUEST(4) 系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。安全性检查:()设置两个工作向量WORK=AALABLE;FINISHMFALSE(2)从进程集合中找到一个满足下述条件得进程,INISiFALSED=ORK如找到,执行(3);否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。WORK
4、=WORK+ALLOCAIOFINS=TRUEGOTO2()如所有得进程inishM=tru,则表示安全;否则系统不安全。3. 主要代码源程序:iude israusin namepacestd;efie MAXRCES5 最大进程数dfine MXRESOURE 100 /最大资源数/itAILABLEMARESOURE; /*可用资源数组/nt MMAXPROCSAXROURCE; /最大需求矩阵*/iALCATINMXPROCESSMARSOURCE; /*分配矩阵*/int NDMXPCESMAXREOURC; /*需求矩阵*/t QUETAPCESMAXRESUCE; *进程需要资源
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 银行家 算法
限制150内