操作系统课设-银行家算法
《计算机操作系统》
课程设计报告
题 目: 银行家算法设计与实现 专 业: 软件工程 班 级: 09级(2)班 姓 名: XXX 学 号: XXX 指导老师: XXX 完成时间: 2012年2月20日
目录
一、课设题目要求 二、算法设计思路 三、主要数据结构及其说明 四、程序流程图 五、源程序代码 六、结果及数据分析 七、实验心得 八、参考资料
一、课设题目要求
模拟一个银行家算法,要求如下: 输入:
1.系统中各类资源表
2.每个进程需要各类资源总数 系统分配给各个进程各类资源数 输出:
1.判断T0时刻的安全性
2.如果系统是安全的,任意给出某个进程的一个资源请求方式并判断系统能否接受此请求,如果可以接受,其输出全部安全序列,反之,不予分配。
二、算法设计思路
银行家算法是一种最具代表性的避免死锁的算法。要解释银行家算法,必须先解释操作系统的安全状态和不安全状态。
安全状态:如果存在一个由系统中所有进程构成的安全序列P1,?,Pn,则系统处于安全状态。安全状态一定没有死锁发生。
不安全状态:不存在一个安全序列。不安全状态不一定导致死锁。 安全序列:一个进程序列{P1,?,Pn}是安全的,如果对于每个进程Pi(0≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj(j<i)当前占有资源量之和。
先对系统从源文件中读取的数据进行安全性判断,然后对用户提出的请求进行合法性检查,即检查请求的是不大于需要的,不大于系统可利用的资源。若请求合法,则进行试分配,最后对试分配状态调用安全性算法进行安全性检查。若安全,则分配,否则,不分配,恢复原来状态,拒绝申请。
三、主要数据结构及其说明
进程数 i、M 资源种类数 j、N
最大需求矩阵 int Max[i][j];
分配矩阵 int Allocation[i][j];
需求矩阵 int Need[i][j]=Max[i][j]-Allocation[i][j]; 工作向量 int Work[N];
可利用资源矩阵 int Available[N]; 进程的数目 int n_pro=0;
标记安全序列 int flag[M]={-1}; 安全序列的个数 int w=0;
表示系统是否有足够的资源分配给进程 bool finish[M]; 安全性检查算法 ? Safe()函数
只要求出了一种安全序列就可以说明系统是处于安全状态的,故: ① 设置了两个向量:工作向量Work,它表示系统可提供给进程继续运
行所需的各类资源数目,在执行安全性算法开始时,Work =
Available。Finish,它表示系统是否有足够的资源分配给进程,使之运行完成。开始时令Finish[i]=false,当有足够的资源分配给进程时,再令Finish[i]=1。
② 在进程中查找符合以下条件的进程:
条件1:Finish[i]=0;
条件2:Need[i][j]<=Work[j];
若找到,则执行步骤③,否则,执行步骤④
③ 当进程获得资源后,可顺利执行,直至完成,并释放出分配给它的资
源,故应执行:
Work[j] += Allocation[i][j]; Finish[i]= true; goto step 2;
④ 如果所有的Finish[i]=true,则表示系统处于安全状态,否则,处
于不安全状态。
? Safe1(int flag[],int n,int t)函数
用于输出所有的安全序列,使用了回溯法。 ? Request()函数
用于进程请求资源。输入发出请求的进程号i,请求的资源数
Request[i][j],系统按银行家算法进行检查:①所请求的资源小于等于所需要的资源,否则分配不合理,不予分配;②所请求的资源小于等于系统可利用资源,否则分配不合理,不予分配;③假设可为该进程分配资源,安全性检查,若有安全序列,分配资源,否则系统处于不安全状态,不予分配
四、程序流程图
整体流程图
开始从文件中读取数据判断系统是否是安全的是请求资源判断系统是否是安全的否是否分配资源资源不分配资源资源结束判断系统的安全性Safe()
Safe()开始初始化i,j,t,tempnFihish[i]=falseTempn==0?Fi
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




