在多道程序系统中,用户进程数往往多于处理器数,这将导致用户进程争夺处理器。
此外,系统进程同样需要使用处理器。因此,系统需要按照一定的策略动态地把处理器分配给
就绪队列中的某个进程,以便使之执行。处理器分配的任务由进程调度程序完成。

进程调度的功能:
1、记录系统中所有进程的有关情况以及状态特征。(PCB)
2、选择获得处理器的进程。
3、处理器分配。

常见调度算法:
1、先来先服务调度算法(作业调度、进程调度)(FCFS)
最简单的调度算法,其基本思想是按照进程进入就绪队列的先后次序来分配处理器。
2、短作业优先调度算法(作业调度、进程调度)(SJF)
短作业优先调度算法用于进程调度时被称为短进程优先调度算法。
基本思想是把处理器分配给最快完成的作业(或进程)。
3、优先级调度算法(作业调度、进程调度)
基本思想是吧处理器分配给优先级最高的进程。该算法的核心问题是如何确定进程的优先级。
4、时间片轮转调度算法(进程调度)
5、高响应比优先调度算法(作业调度)
高响应比优先调度算法综合了先来先服务与短作业优先两种调度算法的特点,即考虑了作业的
等待时间和作业的运行时间两个因素,弥补了之前两种调度算法只考虑一个因素的不足。
高响应比优先调度算法主要用于作业调度。其基本思想是每次进行作业调度时,先计算就绪队列中的每个
作业的响应比,挑选响应比最高的作业投入运行。响应比的计算公式为
响应比=作业响应时间/估计运行时间
响应比=(作业等待时间+估计运行时间)/估计运行时间
6、多级队列调度算法(进程调度)
多级队列调度算法的基本思想是根据进程的性质或类型,将就绪队列划分为若干个独立的队列,
每个进程固定地分属于一个队列。每个队列采用一种调度算法,不同的队列可以采用不同的
调度算法。例如,为交互型任务设置一个就绪队列,该队列采用时间片轮转调度算法;
再如,为批处理任务另外设置一个就绪队列,该队列采用先来先服务调度算法。
7、多级反馈队列调度算法(进程调度)
多级反馈队列调度算法是时间片轮转调度算法和优先级调度算法的综合发展。通过动态调整进程
优先级和时间片的大小,多级反馈队列调度算法可兼顾多方面的系统目标。例如,为提高系统吞吐量
和缩短平均周转时间而照顾短进程;为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程;
同时,也不必事先估计进程的执行时间。