银行家算法的模拟【实验报告】_银行家算法实验报告

2020-02-28 其他范文 下载本文

银行家算法的模拟【实验报告】由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“银行家算法实验报告”。

实验二

银行家算法的模拟

专业:信息管理与信息系统 学号:2014****** 姓名:陈* 实验日期:2016年12月20日

一、实验目的银行家算法是一种最具有代表性的避免死锁的算法。

要解释银行家算法,必须先解释操作系统的安全状态和不安全状态。所谓安全状态,是指系统能按照某种进程顺序{P1,P2,…,Pn}(称{P1,P2,…,Pn }序列为安全序列),来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可以顺利完成。安全状态一定没有死锁发生。

如果系统无法找到这样一个安全序列,则称系统处于不安全状态。那么,什么是安全序列呢?

如果对每一个进程Pi(1

利用银行家算法,我们可以来检测CPU为进程分配资源的情况,决定CPU是否响应某进程的的请求并为其分配资源,从而很好避免了死锁的产生。通过编写一个模拟动态资源分配的银行家算法程序,进一步深入理解死锁、产生死锁的必要条件、安全状态等重要概念,并掌握避免死锁的具体实施方法

二、实验要求

用高级语言编写和调试一个动态资源分配(银行家算法)的模拟程序,以加深对避免死锁算法的理解。

三、实验方法内容

1.算法设计思路(流程图)2.算法中用到的数据结构 最大需求矩阵Max[][] 已分配矩阵Allocation[][] 仍需求矩阵Need[][]=Max[][]-Allocation[][] 可利用资源向量Available[] 申请各类资源向量Request[] 工作向量 work[] , Finish[]

3.主要模块(函数名)

(1)int getRequest();获取用户输入的进程和对应请求的资源(2)int checkNeed(int no)检查用户的请求是否大于还需要的资源(3)int checkAvailable()检查用户的请求是否大于现有的可利用的资源(4)int isSafe(int proNo)安全性算法,检查预分配资源后系统是否安全(5)int Bank(int proNo)银行家算法

四、实验结果

1.执行结果

2.结果分析

(1)当输入的进程请求的资源超过该进程还需要的资源时,该请求不合法;(2)当输入的进程请求的资源大于系统当前可利用的资源时,该请求不合法,需等待;

(3)当输入的进程请求合法,且分配资源后系统处于安全状态,则分配资源给该进程;

(4)当输入的进程请求合法,但分配资源后系统处于不安求状态,则不分配资源,需等待;

五、实验总结

(1)通过此次试验,我对死锁、产生死锁的必要条件、安全状态灯概念有了进一步的了解;

(2)通过银行家算法的模拟,掌握了避免死锁的具体实施方法;

《银行家算法的模拟【实验报告】.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
银行家算法的模拟【实验报告】
点击下载文档
相关专题 银行家算法实验报告 实验报告 银行家 算法 银行家算法实验报告 实验报告 银行家 算法
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文