操作系统–处理机调度
三个层次
- 高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程
- 中级调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内存
- 低级调度(进程调度):按照某种规则,从就绪队列中选择一个进程为其分配处理机
三种调度对进程状态的影响
- 高级调度:无->创建态->就绪态
- 中级调度:挂起态->就绪态(阻塞挂起->阻塞态)
- 低级调度:就绪态->运行态
低级调度时机
进程调度(低级调度)按照某种算法从就绪队列中选择一个进程为其分配处理机
调度时机:
- 当前运行的进程主动放弃处理机,如:进程正常终止,方式异常,请求阻塞
- 当前运行的进程被动放弃处理机,如:时间片用完,I/O中断
不能调度的时机:
- 处理中断过程中
- 进程在操作系统内核程序临界区时
- 原子操作过程中
进程调度方式
- 剥夺调度方式(抢占式)
- 非剥夺调度方式(非抢占式)
调度算法的评价指标
- CPU利用率
- 系统吞吐量
- 周转时间
- 等待时间
- 相应时间
调度算法分类
- 先来先服务(FCFS)
- 短作业优先(SJF)
- 高响应优先(HRRN)
- 时间片轮转调度
- 优先级调度
- 多级反馈队列调度
调度算法
-
先来先服务:顾明思意,先来的先服务,优点:公平,简单,缺点:对短作业不利,对长作业有利。不会出现饿死。
-
短作业优先:短的先运行,优点:“最短的”平均等待时间,平均周转时间。缺点:对长作业不利,对短作业有利。并且会出现饿死。
-
高响应比优先:综合考虑进程的等待时间和要求服务时间,高响应比的先服务。优点:综合考虑了等待时间和运行时间。不会出现饿死。
-
时间片轮转:公平地,轮流为各个进程服务,优点:公平,响应快,适用于分时操作系统,缺点:切换进程率高,有一定的开销。
-
优先级调度算法:根据任务优先级来决定顺序。优点:用优先级区分紧急程度,重要程度,适用于实时操作系统。缺点:会出现饿死现象。
-
多级反馈队列:是对其他调度算法的折中权衡,设置多级就绪队列,各个队列优先级从高到低,时间片从小到大。(UNIX用的是多级反馈队列)