计算机操作系统银行家算法实验报告_第1页
计算机操作系统银行家算法实验报告_第2页
计算机操作系统银行家算法实验报告_第3页
计算机操作系统银行家算法实验报告_第4页
计算机操作系统银行家算法实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机操作系统实验报告计算机操作系统实验报告 一 一 实验名称 实验名称 银行家算法 二 二 实验目的 实验目的 银行家算法是避免死锁的一种重要方法 通过编写 一个简单的银行家算法程序 加深了解有关资源申请 避免死 锁等概念 并体会和了解死锁和避免死锁的具体实施方法 三 三 问题分析与设计 问题分析与设计 1 1 算法思路 算法思路 先对用户提出的请求进行合法性检查 即检查 请求是否大于需要的 是否大于可利用的 若请求合法 则进 行预分配 对分配后的状态调用安全性算法进行检查 若安全 则分配 若不安全 则拒绝申请 恢复到原来的状态 拒绝申 请 2 2 银行家算法步骤 1 如果 Requesti or Need 则转向步 骤 2 否则 认为出错 因为它所需要的资源数已超过它所 宣布的最大值 2 如果 Request or Available 则转向步骤 3 否则 表 示系统中尚无足够的资源 进程必须等待 3 系统试探把要求的资源分配给进程 Pi 并修改下面数据结 构中的数值 Available Available Request i Allocation Allocation Request Need Need Request 4 系统执行安全性算法 检查此次资源分配后 系统是否处于 安全状态 3 3 安全性算法步骤 安全性算法步骤 1 设置两个向量 工作向量 Work 它表示系统可提供进程继续运行所需要的各类 资源数目 执行安全算法开始时 Work Allocation 布尔向量 Finish 它表示系统是否有足够的资源分配给进程 使 之运行完成 开始时先做 Finish i false 当有足够资源分配给进程 时 令 Finish i true 2 从进程集合中找到一个能满足下述条件的进程 Finish i false Need or Work 如找到 执行步骤 3 否则 执行步骤 4 3 当进程 P 获得资源后 可顺利执行 直至完成 并释放出分配 给它的资源 故应执行 Work Work Allocation Finish i true 转向步骤 2 4 如果所有进程的 Finish i true 则表示系统处于安全状态 否则 系统处于不安全状态 四四 程序源代码程序源代码 include define W 5 最大进程数 W 5 define R 3 最大资源总数 3 int Available 3 可利用资源向量 int Max 5 3 最大需求矩阵 int Allocation 5 3 分配矩阵 int Need 5 3 需求矩阵 int Request 3 进程请求向量 void dispose printf 请输入可利用资源向量 Available 格式 a b c n scanf d d d printf 请输入最大需求数 Max 格式 a b c n for int j 0 j 5 j printf 进程 d n j scanf d d d printf 请输入分配数 Allocation 格式 a b c n for j 0 j 5 j printf 进程 d n j scanf d d d 输入 Max 5 3 Available 5 3 Allocation 5 3 for j 0 j 5 j for int i 0 i 3 i Need j i Max j i Allocation j i 求出 Need 5 3 main printf 银行家算法 n dispose printf 安全性检查 n int Work 3 系统可提供进程继续运行所需的各类资源数 char Finish 5 表示系统是否有足够的资源分配 for int i 0 i 5 i Finish i f for int k 0 k 3 k Work k Available k int q 5 for int x 0 x 50 x printf 请输入一个序列 n scanf d d d d d for i 0 i 5 i if Need q i 0 Work 0 k 3 k Work k Work k Allocation q i k Finish i t if Finish 0 t else printf 此序列不是安全序列 请重新输入一个序列 n if x 49 return 0 printf 这个系统安全 n int a printf 请输入 Request 进程 n scanf d printf 该进程 Request a b c n scanf d d d 输 入请求量 Request 3 if Request 0 Need a 0 k 3 k Available k Available k Request k Allocation a k Allocation a k Request k Need a k Need a k Request k 如果上述判断成功 则修改相应的 Available k Allocation a k Need a k printf 资源分配成功 n else printf 资源分配失败 n return 0 else printf 资源分配失败 n return 0 程序截图 五五 实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论