由“画出下列调度算法下的调度时间图”引入
结束时间 = 开始时间 + 服务/执行时间
周转周期 = 结束时间 - 到达时间
带权周转时间 = 周转时间 / 服务时间
————————————————————————————
FCFS(先来先服务)
顾名思义,按照到达时间得先后顺序进行调度,是一个很简单的算法。
————————————————————————————
SJ§F 短作业 / 进程优先
以作业的长短来计算优先级,(已到达的作业中比较)作业越短,其优先级越高。
缺点:较之FCFS虽有明显改进,但是此算法“ 必须先知作业的运行时间 + 对长作业不利(周转时间明显的增长) + 用FCFS时无法实现人-机交互 + 不能保证紧迫性作业得到及时处理 ”
PS: 短作业进程,如果新来的进程的运行时间与原先程序执行剩余的时间相同,是继续执行原程序,还是调度新的?
——执行原程序!!!!(时间一样的话,按先来先服务原则)
————————————————————————————
HPF(高优先权优先)
————————————————————————————
HRRN(高响应比优先)
响应比 Rp = (等待时间 + 服务时间) / 服务时间
————————————————————————————
RR(时间片轮转算法)//“FCFS+时间片”
————————————————————————————
FB(多级反馈队列调度)//“RR+优先级”
调度机制
- 设置多个就绪队列
- 每个队列都采用FCFS算法
- 按队列优先级调度
question:
如果正在执行的进程遇到比它高的优先级来了,怎么办?
——非抢占式,继续执行原进程直到发生时钟中断。
——抢占式,新来的进程立即抢占处理机的使用权!而被强占处理机使用权的进程,回到本级就绪队列的队尾(不是下一级哦~因为不是因为发生时钟中断,所以要回到本级队尾)
Atention:这种调度算法当中,所有新到达的进程都先进入队列一(即优先级最高的队列)