算法
FCFS先来先服务、SJF短作业优先、HRRN高响应比优先、时间片轮转、优先级调度、多级反馈队列调度
FCFS先来先服务
公平,按照到达先后顺序进行服务
用于作业时,考虑哪个作业先到达后备队列
用于进程时,考虑哪个进程先到达就绪队列
非抢占式,不导致饥饿,公平简单,但对于短作业不友好
SJF短作业/SPF短进程优先
非抢占式,每次调度时选择已经到达且运行时间最短的作业/进程
平均周转时间短,但不公平,可能出现饥饿,且作业/进程运行时间由用户提供,不一定能做到真正的短作业优先
SRTN 短作业/短进程优先
每当有进程加入就绪队列时或一个进程完成时就需要调度,当新到达进程剩余时间少于当前进程剩余时间,则抢占处理机
HRRN高响应比优先
响应比 = (等待时间+要求服务时间)/ 要求服务时间
非抢占,结合了前面的优点
时间片轮转
公平、轮流为各个进程服务,按到达队列顺序进行调度
抢占式,因为当进程未能在时间片内运行完则会强行剥夺处理机,由时钟中断来通知CPU时间片已到
响应快,不导致饥饿,但切换高频,不区分紧急程度
时间片不能太长,不然就是先来先服务
时间片太短,会导致切换过多
优先级调度算法
调度时选择优先级最高的作业/进程
抢占式和非抢占式都有
用优先级区分紧急程度,灵活,但可能导致饥饿
多级反馈队列调度算法
设置多级反馈队列,优先级由高到低,时间片由小到大
当新进程到达时进入第一级队列,按先来先到原则等待分配,时间片结束后当进程还未结束,则将进程放到下一级队列列尾,若为最低一级队列则重新回到该列队尾
只有当k级队列为空,才会为k+1级别队伍分配时间片
抢占式,新进程进入更高优先级队列时,抢占处理机,但会导致饥饿