实验2.2银行家算法.docxVIP

  • 28
  • 0
  • 约5.27千字
  • 约 16页
  • 2021-04-10 发布于山东
  • 举报
精品文档 精品文档 PAGE PAGE15 精品文档 PAGE _ 实验2.2 银行家算法 一、实验目的 死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语 言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有 效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。 二、实验要求 设计有 n个进程共享 m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动 态的分配资源。 系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析; 三、数据结构 1 .可利用资源向量Available,它是一个含有m个元素的数组,其中的每一个元素代表一类可利用的 资源的数目,其初始值是系统中所配置的该类全部可用资源数目。其数值随该类资源的分配和回收而 动态地改变。如果Available(j)=k,标是系统中现有Rj类资源k个。 2 .最大需求矩阵Max,这是一个n×m的矩阵,它定义了系统中 n个进程中的每一个进程对 m类资源 的最大需求。如果Max(i,j)=k,表示进程i需要Rj类资源的最大数目为k。 3 .分配矩阵Allocation,这是一个n×m的矩阵,它定义了系统中的每类资源当前一分配到每一个进程 的资源数。如果Allocation(i,j)=k,表示进程i当前已经分到 Rj类资源的数目为k。Allocationi 表示进程i的分配向量,有矩阵 Allocation的第i行构成。 4 .需求矩阵Need,这是一个 n×m的矩阵,用以表示每个进程还需要的各类资源的数目。如果 Need (i,j)=k,表示进程i还需要Rj类资源k个,才能完成其任务。Needi表示进程i的需求向量,由 _ 矩阵Need的第i行构成。 上述三个矩阵间存在关系: Need(i,j)=Max(i,j)-Allocation (i,j); 四、银行家算法 Requesti是进程Pi的请求向量。Requesti (j)=k表示进程Pi请求分配Rj类资源k个。当Pi发出资 源请求后,系统按下述步骤进行检查: 1 .如果Request i≤Need,则转向步骤2;否则,认为出错,因为它所请求的资源数已超过它当前的最 大需求量。 2 .如果Request i≤Available ,则转向步骤 3;否则,表示系统中尚无足够的资源满足 Pi的申请,Pi 必须等待。 3 .系统试探性地把资源分配给进程 Pi,并修改下面数据结构中的数值: Available=Available-Request  i Allocation=Allocation i +Request i i Needi=Need i-Request i 4.系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。如果安全才正式将资源分配给 进程Pi,以完成本次分配;否则,将试探分配作废,恢复原来的资源分配状态,让进程 Pi等待。 _ 假定系统有 5个进程(p0,p1,p2,p3,p4 )和三类资源(A,B,C),各种资源的数量分别为 10,5,7,在 T0时刻的资源分配情况如下图: Max Allocation Need Available ABC ABC ABC ABC P0 7 5 3 0 1 0 7 4 3 3 3 2 (2 3 0) P1 3 2 2 2 0 0 1 2 2 (3 0 2) (0 2 0) P2 9 0 2 3 0 2 6 0 0 P3 2 2 2 2 1 1 0 1 1 P4 4 3 3 0 0 2 4 3 1 五、安全性算法 1 .设置两个向量。 Work:它表示系统可提供给进程继续运行的各类资源数目,它包含 m个元素,开始执行安全性算法 时,Work=Available。 Finish:它表示系统是否有足够的资源分配给进程,使之运行完成,开始 Finish(I)=false;当有足 够资源分配给进程Pi时,令Finish(i)=true ; 2 .从进程集合中找到一个能满足下述条件的进程。 Finish(i)==false; Needi≤work; 如找到则执行步骤 3;否则,执行步骤 4; _ 3.当进程Pi获得资源后,可顺利执行直到完成,并释放出分配给它的资源,故应执行 Work=work+Allocation  i Finish  (i)=true  ;转向步骤  2; 4.若所有进程的 Finish(i)都为true,则表示系统处于安全状态;否则,系统处于不安全状态。 _ 六、 系统流程图 开始 输入资源数 m,及各类资源总数,初始化 输入进程数 n, Y i≤n N 输入进程 i的最大需求向量 max≤资源 N 提 示 Y 错 误 i加1 初始化

文档评论(0)

1亿VIP精品文档

相关文档