操作系统(二):5.调度算法


操作系统(二):5.调度算法
用于早期的批处理系统:

  • 先来先服务 FCFS(First Come First Serve)
  • 短作业/进程优先 SJF(Shortest Job/Process First)
  • 最短剩余时间优先算法 SRTN(Shortest Remaining Time Next)
  • 高响应比优先 HRRN(Highest Response Ratio Next)

用于交互式系统:

  • 时间片轮转 RR(Round-Robin)
  • 优先级调度
  • 多级反馈队列

操作系统(二):5.调度算法

操作系统(二):5.调度算法


操作系统(二):5.调度算法

一、用于早期的批处理系统

1.FCFS

操作系统(二):5.调度算法

  • 饥饿问题:某进程/作业长期得不到服务。

例子:
操作系统(二):5.调度算法

2.SJF/SPF

操作系统(二):5.调度算法
操作系统(二):5.调度算法
【SJF/SPF的例子】
操作系统(二):5.调度算法
【SRTN的例子】
操作系统(二):5.调度算法

3.HRRN

操作系统(二):5.调度算法
【HRRN的例子】
操作系统(二):5.调度算法

二、用于交互式系统

1.RR

操作系统(二):5.调度算法
【RR的例子】
操作系统(二):5.调度算法
注意:A进程刚下CPU和B进程此时到达,在就绪队列中到底谁先谁后?
要看题干有没有特殊的说法。默认是新到达的先插入队尾,下CPU的然后插入队尾

【RR的时间片太大或太小的问题】
操作系统(二):5.调度算法
增大进程的响应时间的意思:因为新进程的响应时间 = 就绪队列中进程的个数 × 时间片。
一般来说,时间片要让切换进程的开销占比不超过1%。

2.优先级调度

操作系统(二):5.调度算法
【优先级调度(非抢占式)的例子】
操作系统(二):5.调度算法
【优先级调度(抢占式)的例子】
操作系统(二):5.调度算法

感觉有点问题,应该是5时刻,p4先来吧。(前面RR不是说,先插入新进程吗)╮(╯_╰)╭

【补充:常见优先级设置】
操作系统(二):5.调度算法
操作系统(二):5.调度算法

3.多级反馈队列

操作系统(二):5.调度算法
PS:这个其实和多级队列不一样,那个是题目自己规定每级的调度算法很随意,这个是有着特定的规则。

【三级反馈队列的例子:】
操作系统(二):5.调度算法