操作系统| 处理机调度(各种作业调度算法银行家算法三级调度死锁产生原因和必要条件处理死锁的方法死锁定理的作用实时调度算法)

Posted 有理想、有本领、有担当的有志青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统| 处理机调度(各种作业调度算法银行家算法三级调度死锁产生原因和必要条件处理死锁的方法死锁定理的作用实时调度算法)相关的知识,希望对你有一定的参考价值。

文章目录

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。点击这里

三级调度

高级调度(作业调度,长程调度,接纳调度)

  • 只存在于 批处理系统
  • 决定外存上后备队列中的哪些作业调入内存,并为其创建进程,分配资源,排在内存就绪队列上
  • 每次执行,都会决定:接纳多少作业,接纳哪些作业

低级调度(进程调度,短程调度)

  • 存在于 所有系统
  • 决定哪个进程分配处理机,并分配给它
  • 分为抢占式(会终止当前运行进程)非抢占式

中级调度(中程调度)

  • 决定将内存中哪些暂时不能运行的进程调入外存,此时进程为挂起状态
  • 当具备运行条件,内存有空闲时,决定将外存中哪些进程改为就绪状态,并调入内存就绪队列

先来先服务、短作业优先、优先级、高相应比调度算法的原理及计算

理解实时调度的EDF和LLF

最早截止时间优先EDF

  • 抢占式
  • 根据作业的截止时间确定其优先级,截止时间越早,越先被执行

最低松弛度优先LLF

  • 抢占式
  • 松弛度 = 截止时间 - 运行时间
  • 根据松弛度确定其优先级,松弛度越小,越先被执行

死锁产生原因和必要条件

原因:

  • 竞争不可抢占性资源
  • 竞争可消耗资源
  • 进程推进顺序不当

必要条件

  • 互斥条件
  • 请求和保持条件
  • 不可抢占条件
  • 循环等待条件

处理死锁的四种基本方法

  • 预防死锁
    设置限制条件,破坏产生死锁的必要条件
  • 避免死锁
    在资源动态分配的过程中,防止系统进入不安全状态
  • 检测死锁
    通过检测机构及时检测死锁发生,再采取适当措施,将进程解脱
  • 解除死锁
    采取适当措施将进程从死锁中解脱。常用方法是撤销一些,回收他们

死锁定理

  1. 在资源分配图中找出一个既不阻塞又非独立的进程结点Pi,运行完毕后释放其占有的全部资源。
  2. 由于释放了资源,这样能使其他被阻塞的进程获得资源继续运行。
  3. 在经过一些列简化后若能消去图中所有的边,使所有的点孤立,则称改图是可完全简化的,反之是不可完全简化的。

S状态为死锁状态的充分条件是当且仅当S状态的资源分配图是不可完全简化的

银行家算法

设系统中有3种类型的资源A,B,C和5个进程P0,P1,P2,P3,P4,A资源的数量为10,B资源的数量为5,C资源的数量为7,在T0时刻系统状态如下表所示,系统采用银行家算法实施死锁避免策略

T0时刻是否为安全状态,若是,请给出安全序列

Max 最大能接受资源数
Allocation 已经分配的资源数
Need 还需要的资源数
Avaliable 目前可利用的资源数
安全序列可以有多种,只要存在一种,就不会存在死锁

  1. 目前可利用的资源数A3B3C2,可以满足P1和P3,我们选择P1
  2. P1运行完毕后,释放资源,可利用资源变为A5B3C2
  3. 以此类推,知道所有运行完毕
  4. 安全序列可为P1,P3,P0,P4,P2 …


  1. Request1(1,0,2)<=Need(1,2,2)
  2. Request1(1,0,2)<=Avaliable(3,3,2)
  3. 修改Allocation(3,0,2) Need1(2,0,4) Avaliable(2,3,0)
  4. 调用银行家算法,找出安全序列

以上是关于操作系统| 处理机调度(各种作业调度算法银行家算法三级调度死锁产生原因和必要条件处理死锁的方法死锁定理的作用实时调度算法)的主要内容,如果未能解决你的问题,请参考以下文章

2018-06-09

作业调度算法

操作系统常用调度算法

模拟实现银行家调度算法

OS中处理机调度模型和调度算法

调度算法