处理机调度是为了解决多个进程或线程争夺CPU的问题。在多道程序系统中,通常会有多个进程或线程同时竞争CPU,只要有两个及以上的进程或线程处于就绪状态就有可能出现这样的情况。当可用的CPU个数少于进程和线程数时,就必须选择下一个进入CPU的进程或线程,而这部分工作由处理机执行。处理机的调度分为高级调度、中级调度和低级调度。
1、高级调度
高级调度发生在作业对应的新进程创建中,它决定一个进程是否被创建,或者创建后知否能被置为就绪状态,以参与竞争处理机资源从而获得运行。作业是用户要求计算机系统完成的工作,新提交的作业被输入到外存,并保存到批处理后备作业队列中。高级调度根据一定的算法从后备的作业队列中选出若干作业,并分配给必要的资源,为它建立相应的用户作业进程和为其服务的系统进程,最后把它们的程序和数据调入内存,等待进程调度程序对其进行调度。
高级调度控制多道程序的道数,调度选择进入主存的作业越多,每个作业获得的CPU时间就越少,所以有时候要限制多道程序的道数。
2、中级调度
中级调度是为了使内存中同时存放的进程数目不至于太多,有时需要把某些进程从内存中移到外存中,以减少多道程序的数目。特别是在采用虚拟存储技术的系统中或分时系统中。引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。它实际上就是存储器中的对换功能。
3、低级调度
低级调度的主要功能是根据一定的算法将CPU分派给就绪队列中的某个进程(或内核级线程)。执行低级调度功能的程序称作进程调度程序,由它实现CPU在进程间的切换。低级调度的运行频率很高。在一般的操作系统中必须要有低级调度(进程调度),而且其调度策略的优劣直接影响整个系统的功能。
4、调度准则
不同的CPU调度算法具有不同的属性,并可能对某些进程更有利,我们用用很多准则来比较特征对确定最佳算法是产生的影响。
(1)CPU利用率 当CPU的价格非常昂贵时,我们希望尽可能使它得到充分利用。通常,在一定的I/O等待时间百分比之下,运行程序道数越多,CPU空闲时间百分比越低。
(2)吞吐量 吞吐量是用来评估CPU工作量的,它表示单位时间内CPU完成的进程数量。
(3)周转时间 批处理系统中,从作业提交给系统到作业完成的时间间隔称为周转时间,批处理系统的调度性能主要用周转时间和带权周转时间衡量,时间越短,系统效率越高,作业吞吐量越大
(4)就绪等待时间:各种CPU调度算法仅影响进程在就绪队列中所花费的时间,因此更倾向于慨率进程在就绪队列中所花费的时间。
(5)响应时间:在交互系统中,提交第一个请求到产生第一个响应所用的时间,成为响应时间。