目录
知识导图
一、调度概述
在多道程序系统中,调度指的是资源的分配,处理机调度即是对处理机资源的分配。处理机调度分为高级调度(作业调度)、中级调度(内存调度)和低级调度(进程调度)。一般来说,处理机调度最常用的是进程调度。
处理机调度算法是处理机资源分配的策略,有以下四个共同目标:
- 资源利用率:即CPU利用率;
- 公平性:使进程都获得合理的CPU使用时间;
- 平衡性:使CPU及其他外部设备都能处于忙碌状态;
- 策略强制执行:算法中的安全策略必要时会强制执行。
调度算法分为两种:
- 抢占式调度:进程正在运行的时候,可以被打断,使其把 CPU 让给其他进程。
- 非抢占式调度:进程会一直运行,直到该进程完成或发生某个事件而被阻塞时,才会把 CPU 让给其他进程。
二、调度算法
(一)先来先服务算法
先来先服务(First Come First Severd, FCFS)算法属于非抢占式的调度算法。顾名思义,先来后到,每次从就绪队列选择最先进入队列的进程,然后一直运行,按照请求的顺序进行调度。
FCFS 对长作业有利,当一个长作业先运行了,那么后面的短作业等待的时间就会很长,不利于短作业。
适用于 CPU 繁忙型作业的系统,而不适用于 I/O 繁忙型作业的系统。。
(二)最短作业优先调度算法
最短作业优先(Shortest Job First, SJF)调度算法同样也属于非抢占式的调度算法,它会<