实验二-银行家算法讲课教案.pdfVIP

  • 2
  • 0
  • 约6.79千字
  • 约 7页
  • 2020-07-24 发布于天津
  • 举报
实 验 二 - 银 行 家 算 法 精品文档 实验四 银行家算法 一、 实验目的 1.理解死锁避免相关内容; 2 .掌握银行家算法主要流程; 3 .掌握安全性检查流程。 操作系统中的死锁避免部分的理论进行实验。要求实验者设计一个程序, 该程序可对每一次资源申请采用银行家算法进行分配。 二、实验设备 PC 机、 windows 操作系统、 VC++6.0 三、 实验要求 本实验要求 3 学时完成。 1.设计多个资源(≥ 3 ); 2 .设计多个进程(≥ 3 ); 3 .设计银行家算法相关的数据结构; 4 .动态进行资源申请、分配、安全性检测并给出分配结果。 5 .撰写实验报告,并在实验报告中画出银行家算法和和安全性检查算法流 程图。 四、 预备知识 死锁避免定义:在系统运行过程中,对进程发出的每一个资源申请进行动 态检查,并根据检查结果决定是否分配资源:若分配后系统可能发生死锁,则 不予分配,否则予以分配。 由于在避免死锁的策略中,允许进程动态地申请资源。因而,系统在进行 资源分配之前预先计算资源分配的安全性。若此次分配不会导致系统进入不安 全状态,则将资源分配给进程;否则,进程等待。其中最具有代表性的避免死 锁算法是银行家算法。 收集于网络,如有侵权请联系管理员删除 精品文档 1 系统安全状态 1)安全状态 所谓系统是安全的,是指系统中的所有进程能够按照某一种次序分配资 源,并且依次地运行完毕,这种进程序列 { P1 ,P2 …Pn}就是安全序列。如果 存在这样一个安全序列,则系统是安全的。 并非所有的不安全状态都会转为死锁状态,但当系统进入不安全状态后, 便有可能进入死锁状态;反之,只要系统处于安全状态,系统便可避免进入死 锁状态。所以避免死锁的实质:系统在进行资源分配时,如何使系统不进入不 安全状态。 2 )安全状态之例 假设系统有三个进程,共有 12 台磁带机。各进程的最大需求和 T0 时刻已 分配情况如下表: 进程 最大需求 已分配 可用 P1 10 5 P2 4 2 3 P3 9 2 问:T0 时刻是否安全? 答: T0 时刻是安全的,因为存在安全序列: P2 P1 P3 不安全序列: P1 … P3 … P2 P3 P1 3 )由安全状态向不安全状态的转换 如果不按照安全序列分配资源,则系统可能会由安全状态进入不安全状 态。例如,在 T0 时刻以后, P3又请求 1 台磁带机,若此时系统把剩余 3 台中 的 1 台分配给 P3,则系统便进入不安全状态。 因为,此时也无法再找到一个 安全序列, 例如,把其余的 2 台分配给 P2,这样,在 P2完成后只能释放出 4 台,既不能满足 P1 尚需 5 台的要求,也不能满足 P3 尚需 6 台的要求,致使它 收集于网络,如有侵权请联系管理员删除 精品文档 们都无法推进到完成,彼此都在等待对方释

文档评论(0)

1亿VIP精品文档

相关文档