操作系统课程设计银行家算法.docxVIP

  • 10
  • 0
  • 约7.18千字
  • 约 15页
  • 2021-11-26 发布于河北
  • 举报
《操作系统--课程设计报告》 银行家算法 姓 名: 学 号: 专 业: 指导老师: 目录 TOC \o 1-5 \h \z \o Current Document 一、设计目的 1.. \o Current Document 二、设计要求 1.. \o Current Document 三、设计内容和步骤 1.. \o Current Document 四、算法描述 4.. \o Current Document 五、实验结果 1..1. \o Current Document 六、实验心得 1..2. 一、设计目的 银行家算法是避免死锁的一种重要方法, 本实验要求用高级语言编写和调试 一个简单的银行家算法程序。 加深了解有关资源申请、 避免死锁等概念, 并体会 和了解死锁和避免死锁的具体实施方法。 二、设计要求 在了解和掌握银行家算法的基础上, 能熟练的处理课本例题中所给状态的安 全性问题,能编制银行家算法通用程序,将调试结果显示在计算机屏幕上。 具体程序的功能要求: 1.设定进程对各类资源最大申请表示及初值确定。 2.设定系统提供资源初始状况(已分配资源、可用资源) 。 3.设定每次某个进程对各类资源的申请表示。 4.编制程序,依据银行家算法,决定其申请是否得到满足。 三、设计内容和步骤 设计内容 银行家算法的思路:先对用户提出的请求进行合法性检查,即检查请求的 是不大于需要的,是否不大于可利用的。若请求合法,则进行试分配。最后对试 分配后的状态调用安全性检查算法进行安全性检查。若安全,则分配,否则,不 分配,恢复原来状态,拒绝申请。 设计步骤 1、为实现银行家算法,系统中需要设置若干数据结构,用来表示系统中各 进程的资源分配及需求情况。 假定系统中有M个进程,N类资源。进程数和资源数由程序中直接定义 #define M 5 // 总进程数 #define N 3 // 总资源数 银行家算法中使用的数据结构如下: (1)可利用资源Available。这是一个含有 m个元素的数组,其中的每 一个元素代表一类资源的空闲资源数目, 其初值是系统中所配置的该类资源的数 目,其数值随该类资源的分配和回收而动态的改变。如果 Available[j]=k ,表 示系统中 Rj 类资源有 k 个。 (2)最大需求矩阵Ma%这是一个n*m的矩阵,它定义了系统中每一个 进程对各类资源的最大需求数目。如果 Max[i , j]=k ,表示进程 Pi 对 Rj 类资源 的最大需求数为 k 个。 (3)分配矩阵 Allocation 。这是一个 n*m 的矩阵,它定义了系统中当前 已分配给每一个进程的各类资源。如果Allocation[i,j] =k,表示进程Pi当前 已分到 Rj 类资源有 k 个。 (4)需求矩阵Need这是一个n*m的矩阵,它定义了系统中每一个进程 还需要的各类资源的数目。如果 Need [i , j]=k ,表示进程 Pi 需要 Rj 类资源有 k 个,才能完成任务。 int Max[5][3]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}};// 每 个 进 程对每类资源的最大需求 int Allocation[5][3]={{0,1,0},{2,0,0},{3,0,2},{2,1,1},{0,0,2}};// 系统已分配资源 int Avaliable[3]={3,3,2}; // 系统可利用资源 int Need[5][3]={{7,4,3},{1,2,2},{6,0,0},{0,1,1},{4,3,1}};// 还需要 资源 int Request[3]; 2、实现过程 主函数 void main()// 主函数 { int choice; showdata(); safeAlgorithm(); do { printf(\n 输入接下来你要进行的操作 1 :分配资源 2: 显示资源 否则按任意键退出 ); scanf(%d,choice); switch(choice) { case 1: bankerAlgorithm(); break; case 2: showdata(); break; default: break; } }while((choice==1)||(choice==2)); } 其中用到的函数操作有三个 showdata();// 显示资源矩阵 safeAlgorithm();// 安全性检测算法 bankerAlgorithm();// 利用银行家算法对申请资源对进行判定 3、安全性检查 程序中安全性算法的描述如下: 设置如下两个工作向量: Work:表示系统可提供给进程继续运行的各类资源的空闲资源数目,它含有

文档评论(0)

1亿VIP精品文档

相关文档