




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院操作系统课程设计报告设计题目:银行家算法的实现姓名: 学号:班级: 06 网络工程班完成日期: 2009 年 6 月 13 日设计题目 银行家算法的实现设计形式 独立完成 设计目的 1加深了解有关资源申请、避免死锁等概念。2体会和了解死锁和避免死锁的具体实施方法。设计预备知识1死锁的相关知识。 2银行家算法。3系统安全性检查。设计内容1设计进程对各类资源最大申请表示及初值的确定。2设定系统提供资源的初始状况。 3设定每次某个进程对各类资源的申请表示。4编制程序,依据银行家算法,决定其资源申请是否得到满足。5显示资源申请和分配时的变化情况。小组成员分工无银行家算法分析、设计与实现一、设计理论描述本设计的目的是通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁地发生。要求如下:(1) 模拟一个银行家算法;(2) 初始化时让系统拥有一定的资源;(3) 用键盘输入的方式申请资源;(4) 如果预分配后,系统处于安全状态,则修改系统的资源分配情况;(5) 如果预分配后,系统处于不安全状态,则提示不能满足请求,设计的主要内容是模拟实现动态资源分配。同时编写和调试一个系统动态资源的简单模拟程序,观察死锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。银行家算法. 顾名思义是来源于银行的借贷业务,一定数量的本金要应多个客户的借贷周转,为了防止银行加资金无法周转而倒闭,对每一笔贷款,必须考察其是否能限期归还。在操作系统中研究资源分配策略时也有类似问题,系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。如果资源分配不得到就会发生进程循环等待资源,则进程都无法继续执行下去的死锁现象。把一个进程需要和已占有资源的情况记录在进程控制中,假定进程控制块 PCB其中“状态”有就绪态、等待态和完成态。当进程在处于等待态时,表示系统不能满足该进程当前的资源申请。“资源需求总量”表示进程在整个执行过程中总共要申请的资源量。显然,每个进程的资源需求总量不能超过系统拥有的资源总数, 银行算法进行资源分配可以避免死锁.二、算法描述及数据结构模型1.银行家算法: 设进程 i提出请求 Requestn,则银行家算法按如下规则进行判断。 (1)如果 RequestnNeedi,n,则报错返回。 (2)如果 RequestnAvailable,则进程 i进入等待资源状态,返回。 (3)假设进程 i的申请已获批准,于是修改系统状态: Available=Available-Request Allocation=Allocation+RequestNeed=Need-Request(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。 2.安全性检查 (1)设置两个工作向量 Work=Available;FinishM=False(2)从进程集合中找到一个满足下述条件的进程, Finish i=FalseNeed#include#include#define False 0#define True 1int Max100100=0;/各进程所需各类资源的最大需求int Avaliable100=0;/系统可用资源char name100=0;/资源的名称int Allocation100100=0;/系统已分配资源int Need100100=0;/还需要资源int Request100=0;/请求资源向量int temp100=0;/存放安全序列int Work100=0;/存放系统可提供资源int M=100;/作业的最大数为 100int N=100;/资源的最大数为 100void showdata()/显示资源矩阵int i,j;cout“;couti;/输入须申请的资源号coutRequestj;/输入需要申请的资源for (j=0;jNeedij)/判断申请是否大于需求,若大于则出错 coutAvaliablej)/判断申请是否大于当前资源,若大于则 /出错coutn;flag=N;N=N+n;for(int i=0;inameflag;coutAvaliableflag+;showdata();safe();void delresources()/删除资源char ming;int i,flag=1;coutming;for(i=0;iAvaliable0Avaliable1Avaliable2;coutMaxflagi;Needflagi=Maxflagi-Allocationflagi;showdata();safe();int main()/主函数int i,j,number,choice,m,n,flag;char ming;coutn;N=n;for(i=0;iming;namei=ming;coutnumber;Avaliablei=number;coutm;M=m;coutMaxij;doflag=0;coutAllocationij;if(AllocationijMaxij)flag=1;Needij=Maxij-Allocationij;if(flag)coutchoice;switch(choice)case 1: addresources();break;case 2: delresources();break;case 3: changeresources();break;case 4: share();break;case 5: addprocess();break;case 0: choice=0;break;default: cout“请正确选择功能号(0-5)!“endl;break;return 1;四、程序运行结果及分析T0 时刻的资源分配表(各种资源的数量分别为:10、5、7)资源情况进程MaxA B CAllocationA B CNeedA B CAvailableA B CP0 7 5 3 0 1 0 7 4 3 3 3 2P1 3 2 2 2 0 0 1 2 2P2 9 0 2 3 0 2 6 0 0P3 2 2 2 2 1 1 0 1 1P4 4 3 3 0 0 2 4 3 1运行结果五、课程设计心得与体会银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。死锁的产生,必须同时满足四个条件,即一个资源每次只能由一个进程;第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,但它仍继续保持已得到的所有其他资源;第三个为非剥夺条件,即在出现死锁的系统中一定有不可剥
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古大学《游戏发行的商业实战》2023-2024学年第二学期期末试卷
- 辽宁省阜新蒙古族自治县蒙古族实验中学2024-2025学年高考历史试题模拟大考卷(全国版)含解析
- 2025年广东省惠州市市级名校中考英语试题命题比赛模拟试卷(8)含答案
- 母婴资格考试题及答案
- 新疆生产建设兵团兴新职业技术学院《武术(主修三)》2023-2024学年第二学期期末试卷
- 浙江省四校联盟2024-2025学年高一下学期3月联考政治试卷(PDF版含答案)
- 浙大城市学院《现代农业创新与乡村振兴战略农艺与种业》2023-2024学年第二学期期末试卷
- 河南林业职业学院《舞蹈艺术概论专业理论教学》2023-2024学年第一学期期末试卷
- 泉州工艺美术职业学院《影视作品分析》2023-2024学年第一学期期末试卷
- 2024-2025学年天津市河西区新华中学高频错题卷(五)生物试题含解析
- 健康医疗大数据分析合同
- 《SLT 377-2025水利水电工程锚喷支护技术规范》知识培训
- 2024-2025学年人教版(2024)七年级数学下册第八章实数单元检测(含答案)
- 膀胱癌部分切除护理查房
- 儿童心理健康与家庭教育关系
- 2025届山东省临沂市高三下学期一模考试英语试卷(含解析)
- 2025年河南水利与环境职业学院单招职业倾向性测试题库学生专用
- 2025年人体捐献协议
- 员工黄赌毒法制培训
- 广东省广州市番禺区2023-2024学年八年级上学期期末英语试题(答案)
- 高中化学基础知识超级判断300题
评论
0/150
提交评论