全球旧事资料 分类
《操作系统》实验报告
年级、专业、班级
姓名
实验题目
资源分配和管理的银行家算法
实验时间20130514
实验地点
主教0416
实验成绩
实验性质
□验证性□设计性□综合性
教师评价:
□算法实验过程正确;□源程序实验内容提交□程序结构实验步骤合理;
□实验结果正确;
□语法、语义正确;
□报告规范;
其他:
评价教师签名:
一、实验目的学习分配和管理资源的银行家算法,了解死锁避免方法。
二、实验项目内容编写程序实现教材632节的银行家算法程序功能:1程序随机生成进程数量(10)、资源种类(3)、每类资源总数量(3)、进程的申请资源的数量(0)、已分配资源的数量、可用资源数量等;2输出每一个进程的资源分配情况;3输出每一步的资源分配情况和进程执行序列(安全序列)。4指出每一次资源分配后系统是否处于安全状态。
报告创建时间:20130516
f三、实验过程或算法(源程序)
3.1算法思路:
先对用户提出的请求进行合法性检查,即检查请求是否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。
3.2银行家算法步骤
(1)如果Requesti<Need则转向步骤2;否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。(2)如果Requesti<Available则转向步骤(3);否则,表示系统中尚无足够的资源,进程必须等待。(3)系统试探把要求的资源分配给进程Pi并修改下面数据结构中的数值:
AvailableAvailableRequestiAllocatio
Allocatio
RequestNeedNeedRequest4系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。
3.3安全性算法步骤
(1)设置工作向量①工作向量Work。它表示系统可提供进程继续运行所需要的各类资源
数目,执行安全算法开始时,WorkAvailable②定义判断一个进程是否执行完毕的方法boolea
isFi
ished。
(2)从进程集合中找到一个能满足下述条件的进程:
报告创建时间:20130516
f①processisFi
ished返回值为true②NeedWork如找到,执行步骤(3);否则,执行步骤(4)。(3)当进程P获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:WorkWorkAllocatio
Allocatio
Need转向步骤(2)。(4)如果所有进程的均执行完毕即isAllFi
ished返回值为true则表示系统处于安全状态;否则,系统处于不安全状态。
3.4数据结构:
3.41主要用到的数据结构:
1保存进程最大资r
好听全球资料 返回顶部