下载此文档

银行家算法实验报告.doc


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
淮海工学院计算机工程学院
实验报告书
课程名: 《操作系统原理》    
题   目:    银行家算法    
班   级:       D软件101      
学   号:      511021012  
姓  名:     陈衍        
评语:
成绩: 指导教师:
批阅时间: 年 月 日
一、实验目的
银行家算法是操作系统中避免死锁的典型算法,本实验可以加深对银行家算法的步骤和相关数据结构用法的更好理解。
实验环境
Turbo C ++6。0
实验学时
4学时,必做实验。
二、实验内容
用C语言编写一个简单的银行家算法模拟程序,用银行家算法实现资源分配。,系统按各进程的申请动态地分配资源。要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源数量以及为某进程分配资源后的有关资源数据的情况。
实验说明
实验中进程的数量、资源的种类以及每种资源的总量Total[j][i,j]和系统已分配给该进程的资源量Allocation[i,j]均为已知(这些数值可以在程序运行时动态输入),而算法中其他数据结构的值(包括Need[i,j]、Available[j])则需要由程序根据已知量的值计算产生。
实验步骤
理解本实验中关于两种调度算法的说明。
根据调度算法的说明,画出相应的程序流程图.
按照程序流程图,用C语言编程并实现。
五、分析与思考
要找出某一状态下所有可能的安全序列,程序该如何实现?
答:要找出这个状态下的所有可能的安全序列,前提是要是使这个系统先处于安全状态,而
系统的状态可通过以下来描述:
进程剩余申请数=最大申请数-占有数;可分配资源数=总数—占有数之和;
通过这个描述来算出系统是否安全,从而找出所有的安全序列。
银行家算法的局限性有哪些?
答:银行家算法是一种最有代表性的避免死锁的算法。银行家算法即把操作系统看作是银行 家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。但任何一种算法都存在其缺点,对各进程的资源分配要求严格,经常使其处于不安全状态,银行家算法的主要局限是过于谨慎和检查各申请者对各类资源的最大需求量开销较大。
六、测试数据与实验结果
银行家算法流程图(1)所示:
开始
输入参数
Requesti[l]>Need[l][l]
出错返回
Y
Requesti[l]>Available[l]
出错返回
假定分配
N
Y
N
假定分配后,系统安全吗?
申请成功,输出各数据变化。
申请失败,以上分配作废,恢复原来分配
结束


运行结果如图所示:
图(1)
图(2)
七、实验心得与体会
通过本次实验,我知道了可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。
为保证资金的安全,银行家规定: 
(1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;
(2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量;
(3) 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款; 
(4) 当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金. 
操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,,,若能满足则按当前的申请量分配资源,否则也要推迟分配.

银行家算法实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cnanjringh
  • 文件大小94 KB
  • 时间2020-12-26