银行家算法防止死锁-银行家算法

银行家算法防止死锁-银行家算法
课程名称:操作系统

       课程类型:必修        实验项目名称:银行家算法

       实验题目:采用银行家算法防止死锁                    班级:实验学院一班 
                                                 设计成绩  报告成绩  指导老师

一、实验题目

     设计一个 n  个并发进程共享 m  个系统资源的系统。进程可动态 申请资源和释放资源,系统按各进程的申请动态的分配资源。要求采 用银行家算法防止死锁。

二、实验目的

     死锁会引起计算机工作僵死,造成整个系统瘫痪。因此,死锁现 象是操作系统特别是大型系统中必须设法防止的。通过本次实验,使 学生掌握死锁的概念和产生死锁的原因和必要条件, 预防和避免死 锁的方法,死锁的检测与解除。通过本次实验,使学生加深了对死锁 概念的理解和掌握,深刻领会银行家算法的实质及实现过程。 

三、设计思想(本程序中的用到的所有数据类型的定义,主

程序的流程图及各程序模块之间的调用关系)       1.程序流程图  开 始

                                                             收回假定分配给现
          剩余资源能否满              否
                                                             行进程的资源
          足现行进程?
                                                             输出信息资源不足

                 是

                                   承认已假定分配给现行                如不采用死锁预防算
         当前分配状态               是    进程的资源,输出完成信               法,将现行进程死锁

         安全吗?(safe)                息,置ADVANCE=true           位置  1

                 否

                                   收回假定分配给现行进                采用死锁预防算法如
          采用死锁预防算              是
                                   程的资源,输出失败信                已 有 进 程 死 锁 置
              法?
                                   息,置ADVANCE=true           ADVANCE=false

                 否

     承认已假定分配给现行进

     程的资源,输出完成信息,

     置ADVANCE=true

             结 束

安全(safe)函数框图如下:           开 始

                            未完成进程的T 标志为 1

                         置   已完成进程的T 标志为0

                         置局部变量Change 为‘true ’

                          (即是否有进程标志位T 从1变0)

                   否
                                 Change 是否为

                                    ‘true ’

                                        是

判定是否还存在不能                       置change 为‘false’

完成的进程,若不存

在,置 SAFE 为 ‘true ’,

否则为‘false’

                              全部进程已经完成?即                    是

                              各进程T 标志都为0
      结 束

                                        否

                              剩余资源与新完成资源
                   否
                              之和是否超过某进程还

                              需要的资源?

                                        是

                           置局部变量PROGRESS 为true

                           改变对应的T 值

      2.逻辑设计

      用结构体数组表示 3  个进程,其中包括使用数组形式的线性表

表示某个进程申请资源的列表(队列),以及进程需要的总资源数338

[1] [2] [3] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有