由“画出下列调度算法下的调度时间图”引入

ospf中cost的累加方法_运行时间

结束时间 = 开始时间 + 服务/执行时间
周转周期 = 结束时间 - 到达时间
带权周转时间 = 周转时间 / 服务时间
————————————————————————————

FCFS(先来先服务)

顾名思义,按照到达时间得先后顺序进行调度,是一个很简单的算法。

ospf中cost的累加方法_运行时间_02


————————————————————————————

SJ§F 短作业 / 进程优先

以作业的长短来计算优先级,(已到达的作业中比较)作业越短,其优先级越高。

缺点:较之FCFS虽有明显改进,但是此算法“ 必须先知作业的运行时间 + 对长作业不利(周转时间明显的增长) + 用FCFS时无法实现人-机交互 + 不能保证紧迫性作业得到及时处理 ”

ospf中cost的累加方法_调度算法_03


PS: 短作业进程,如果新来的进程的运行时间与原先程序执行剩余的时间相同,是继续执行原程序,还是调度新的?

——执行原程序!!!!(时间一样的话,按先来先服务原则)

ospf中cost的累加方法_运行时间_04


————————————————————————————

HPF(高优先权优先)

ospf中cost的累加方法_运行时间_05

————————————————————————————

HRRN(高响应比优先)

响应比 Rp = (等待时间 + 服务时间) / 服务时间

ospf中cost的累加方法_算法_06


ospf中cost的累加方法_ospf中cost的累加方法_07

————————————————————————————

RR(时间片轮转算法)//“FCFS+时间片”

ospf中cost的累加方法_运行时间_08

ospf中cost的累加方法_运行时间_09

ospf中cost的累加方法_ospf中cost的累加方法_10


————————————————————————————

FB(多级反馈队列调度)//“RR+优先级”

调度机制

  1. 设置多个就绪队列
  2. 每个队列都采用FCFS算法
  3. 按队列优先级调度

    question:
    如果正在执行的进程遇到比它高的优先级来了,怎么办?
    ——非抢占式,继续执行原进程直到发生时钟中断。
    ——抢占式,新来的进程立即抢占处理机的使用权!而被强占处理机使用权的进程,回到本级就绪队列的队尾(不是下一级哦~因为不是因为发生时钟中断,所以要回到本级队尾)
    Atention:这种调度算法当中,所有新到达的进程都先进入队列一(即优先级最高的队列)