DayDayUp03:处理机调度与死锁

处理机调度的层次和调度算法的目标

调度的实质就是资源分配,处理剂调度就是对处理机资源进行分配

  • 处理机调度的层次
    • 1、高级调度:调度对象是作业,决定外存上处于后备队列中的哪几个作业调入内存
    • 2、低级调度:又称进程调度,调度对象是进程(或内核级线程),决定就绪队列中哪个进程应获得处理机
    • 3、中级调度:又称内存调度,目的是提高内存利用率和系统吞吐量
      进程调度运行频率最高,作业调度周期较长
  • 处理机调度算法的目标
    • 1、处理机调度算法共同目标:
      • (1)提高资源利用率
      • (2)公平性,指诸进程都获得合理的CPU时间,不会发生进程饥饿现象
      • (3)平衡性
      • (4)策略强制执行
    • 2、批处理系统的目标:
      • (1)平均周转时间短
      • (2)系统吞吐量高:吞吐量是指单位时间内系统所完成的作业数,因而它与批处理作业的平均长度有关,就应尽量多选择短作业运行
      • (3)处理机利用率高
    • 3、分时系统的目标
      • (1)响应时间快
      • (2)均衡性:系统响应时间的快慢
    • 4、实时系统的目标
      • (1)截止时间的保证
      • (2)可预测性

作业与作业调度

  • 批处理系统中的作业
    • 1、作业和作业步
      (1)作业Job:不仅包含通常的程序和数据,还配有一份作业说明书,在批处理系统中,以作业为基本单位从外存调入内存
      (2)作业步:作业运行期间每一个加工步骤称为一个作业步,上一个作业步的输出是下一个作业步的输入
    • 2、作业控制块JCB类似进程控制块PCB
    • 3、作业运行的三个阶段和三种状态
      • (1)收容阶段:为作业建立JCB,并将它放入作业后备队列中,此时为后备状态
      • (2)运行阶段:为它分配必要的资源和建立进程,并将它放入就绪队列,从就绪状态开始到运行结束前处于运行状态
      • (3)完成阶段:作业运行完成或发生异常提前结束,作业处于完成状态,系统回收JCB和相应资源
  • 作业调度的主要任务:根据JCB信息,检查系统中的资源是否能满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后将新创建的进程排在就绪队列上等待调度,因此也把作业调度称为接纳调度。每次执行作业调度时都需要做出两个决定:
    • i)接纳多少个作业
    • ii)接纳哪些作业,取决于所采用的调度算法。
      在批处理系统中存在作业调度,但在分时系统中,为了做到及时相应,因而无需配置作业调度机制,但也需要某种接纳控制措施来限制进入系统的用户数目
  • 先来先服务FCFS和短作业优先SJF调度算法
    • 1、先来先服务FCFS调度算法,按照作业到达的先后次序进行调度
    • 2、短作业优先SJF调度算法:作业越短(要求的运行时间越短),其优先级越高
      • 缺点:
        (1)无法预知作业的运行时间
        (2)对长作业非常不利
        (3)无法人机交互
        (4)未考虑作业的紧迫程度
  • 优先级调度算法和高响应比优先调度算法
    • 1、优先级调度算法PSA:基于作业的紧迫程度
    • 2、高响应比优先调度算法:为作业引入动态优先级,是FCFS与SJF的折中

进程调度

  • 进程调度的任务、机制和方式

    • 1、进程调度的任务:保存处理机的现场信息、按某种算法选取进程、把处理机分配给进程(选中PCB)
    • 2、进程调度机制:排队器、分派器、上下文切换器
    • 3、进程调度方式:
      • 1)非抢占方式:让进程一直运行下去,绝不因时钟中断或任何其它原因去抢占当前正在运行进程的处理机
      • 2)抢占方式:根据某种原则暂停某个正在运行的进程,将该进程的处理机重新分配给另一个进程
        • 原则:优先权原则、短进程优先原则、时间片原则
  • 轮转RR(Round Robin)调度算法(抢占式调度):让就绪队列上每个进程每次仅运行一个时间片

    • 1、轮转RR法的基本原理:根据FCFS策略,保证就绪队列中所有进程在一个确定的时间段内都能获得一次CPU执行
    • 2、进程切换时机:
      • (1)一个时间片未用完而进程已完成
      • (2)一个时间片已用完而进程未完成
    • 3、时间片大小的确定:较可取的时间片大小是略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成,从而可以获得很小的响应时间
      这里出示了时间片分别为q = 1 和q = 4时对平均周转时间的影响
                                                              q = 1的情况在这里插入图片描述
                                                              q = 2的情况
      在这里插入图片描述
      其中带权周转时间 = 周转时间 / 服务时间
      大家可能对于完成时间、周转时间这些数字比较疑惑,这里我画个图解释一下
      在这里插入图片描述
      这个是根据p = 1 分析的,以此类推,p = 4你们同样可以推导出来。注:很明显,白色的图中p = 1的E情况的带权周转时间应该是3.25
  • 优先级调度算法:由于在时间片轮转调度算法中做了一个隐含的假设,即系统中所有进程的紧迫性都是相同的,但实际上并非如此,所以要引入优先级,把处理机分配给就绪队列中优先级最高的进程

    • 1、优先级调度算法的类型:
      • (1)非抢占式优先级调度算法
      • (2)抢占式优先级调度算法
    • 2、优先级的类型:
      • 1)静态优先级
        确定进程优先级大小的依据:
        • (1)进程类型:系统进程优先级高于一般用户进程
        • (2)进程对资源的需求:对资源需求少的优先级越高
        • (3)用户要求:根据进程紧迫程度以及用户所付费用多少确定优先级
          特点:简单易行,开销小,但不够精确
      • 2)动态优先级:优先级随进程的推进或等待时间的增加而改变
        防止一个长作业长期垄断处理机
  • 多队列调度算法:将不同类型或性质的进程固定分配在不同的就绪队列中,不同的就绪队列采用不同的调度算法

  • 多级反馈队列调度算法
    在这里插入图片描述
    在这里插入图片描述

    • 1、调度机制
      • (1)设置多个就绪队列:优先级越高的队列,其时间片越小
      • (2)每个队列都采用FCFS算法
      • (3)按队列优先级调度:首先调度最高优先级队列中的诸进程
    • 2、调度算法的性能
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • 基于公平原则的调度算法

    • 1、保证调度算法
    • 2、公平分享调度算法:主要针对用户而言,是所有用户获得相同的处理机时间

实时调度:实时系统中,存在两类性质不同的实时任务:HRT硬实时任务和SRT软实时任务

  • 实现实时调度的基本条件
    • 1、提供必要信息
      • (1)就绪时间
      • (2)开始截止时间和完成截止时间
      • (3)处理时间
      • (4)资源要求
      • (5)优先级:绝对优先级和相对优先级
    • 2、系统处理能力强
    • 3、采用抢占式调度机制
    • 4、具有快速切换机制:对中断的快速响应能力、快速的任务分派能力
  • 实时调度算法的分类:按调度方式分为非抢占式调度算法和抢占式调度算法
    • 1、非抢占式调度算法
    • 2、抢占式调度算法
  • 最早截止时间优先EDF算法

死锁概述

预防死锁

死锁的检验与解除

如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,明天我们不见不散!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值