一、先来先服务(FCFS)
1.算法思想
First Come First Serve
2.算法规则
按照作业/进程到达的先后顺序进行服务
3.适用对象:
用于作业调度时,考虑作业到达后备队列的顺序
用于进程调度时,考虑进程到达就绪队列的顺序
4.特点:
非抢占式算法
公平,但对短作业不利
作业最终会被服务,因此不会导致饥饿。
二、短作业优先(SJF)
1.算法思想
Shortest Job First
2.算法规则
已到达的,最短的作业/进程优先得到服务(所谓“最短”,指要求服务时间最短)
3.适用对象:
用于作业调度时,短作业优先(SJF)
用于进程调度时,短进程优先算法-SPF(Shortest Process First)
4.特点:
非抢占式的算法:SJF与SPF
抢占式的算法:最短剩余时间优先算法SRTN(Shortest Remaining Time Next)
不公平,对短作业有利,对长作业不利。可能导致长作业长时间得不到服务,产生饥饿。
三、高响应比优先(HRRN)
1.算法思想
Highest Response Ratio Next
2.算法规则
调度前计算各作业/进程的响应比,选择响应比最高的作业/进程
响应比=(等待时间+要求服务时间)/要求服务时间
3.适用对象:
用于作业调度时,短作业优先(SJF)
用于进程调度时,短进程优先算法-SPF(Shortest Process First)
4.特点:
非抢占式的算法:只有当前运行作业/进程主动放弃处理机时,才需调度。
综合考虑等待时间和运行时间(要求服务时间)。
等待时间相同,要求服务时间短的优先;要求服务时间相同等待时间长的优先。
等待时间越长,其响应比也越大,这样就避免了长作业饥饿的问题。
四、补充与总结
饥饿-某进程/作业长期得不到服务的现象