处理机调度,也叫 CPU 调度,进程调度,讨论的是如何将处理机分给各个进程运行的问题。
它涉及到调度类型、调度方式、调度算法、调度时机和调度性能这样一些问题。而死锁是
操作系统中偶尔会出现的现象,它会使某些进程处于一种无法自我解脱的僵持状态,需要
系统花费一定的时空开销来解除并恢复它们的运行。
一、三种类型的调度
处理机(CPU)在进程之间的动态分配和切换,涉及到三种类型的调度,即高级调度(也
叫作业调度、长程调度)、中级调度(也叫进程对换)和低级调度(也叫处理机调度 、
CPU 调度、进程调度)。低级调度是所有的系统都有的,但高、中级调度不是所有的系统
都有。
二、处理机调度准则
不同的 CPU 调度算法有不同的性质并且可能会更适用于某个进程类型。在一个特定的
环境中采用哪个算法必须要考虑到各种算法的特性。
可以用有多个准则来比较 CPU 调度算法。在确定最好的算法中所用的特征可以使各种算法
产生实质性的不同。这些准则包括:
CPU 利用率:我们希望尽可能的保持 CPU 忙碌。CPU 利用率可能在 0 到 100 之间。在
实际的系统中,CPU 利用率的范围应该在 40%(系统负荷较轻)到 90%(系统负荷较重)
之间。
吞吐量:如果 CPU 忙于执行进程,那么工作正在进行(就要完成了)。对工作量的一
种测量是单位时间内完成的进程数,被称为吞吐量。对较长的进程来说吞吐量可能是每小
时一个进程;对于较短的事务来说可能是每秒十个进程。
周转时间:对一个进程来说,一个重要的指标是它执行所需要的时间。从进程提交到
进程完成的时间间隔为周转时间。周转时间是等待进入内存的时间、在就绪队列中等待的
时间、在 CPU 中执行的时间和 I/O 操作的时间的总和。
等待时间:CPU 调度算法并不能影响进程的执行时间和 I/O 操作时间;它只能影响进
程在就绪队列中等待的时间。等待时间是进程在就绪队列中耗费时间的总和。
响应时间:在交互式系统中,周转时间可能不是最好的指标。进程通常会很早的产生
一些输出,并且在先前的结果输出给用户时继续计算。因此,另一个度量标准是从进程提
交请求到产生首次响应的时间。这被称为响应时间,是开始响应所需的时间,而不是到产
生输出结果所需的时间。周转时间通常受限于输出设备的速度。
我们希望最大化 CPU 利用率和吞吐量,最小化周转时间、等待时间和响应时间。在大
多数情况下,我们最优化平均值。然而,在某些情况下我们需要最优化最小或最大值,而
不是平均值。例如,为了保证所有的用户获得满意的服务,我们可能需要最小化最大的响
应时间。
三、处理机调度
处理机有两种基本的调度方式,即抢占式和非抢占式。在抢占式方式下,操作系统有权按
某种原则剥夺一个正在运行的进程的处理机;而在非抢占式方式下,除非进程主动放弃,
否则操作系统不得剥夺一个正在运行的进程的处理机。调度的方式与调度算法密切相关。
处理机调度所追求的性能主要是响应时间短、周转时间快和对截止完成时间的保证。
四、处理机调度算法
1,先来先服务(FCFS)调度算法是最简单的调度算法,但是它会造成短进程等待非常长的