2.3 处理机调度
在计算机系统中,可能同时有数百个批处理作业存放在磁盘的作业队列中,或者有数百个终端与主机相连接,这样一来,内存和处理机等资源便供不应求。如何从这些作业中挑选作业进入主存运行、如何在进程之间分配处理机时间,无疑是操作系统资源管理中的一个重要问题。处理机调度就是用来解决这些问题的。
2.3.1 调度的基本概念
在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。由于处理机是计算机系统中最重要的资源,而分配处理机的任务由进程调度程序完成;因而,能否提高处理机的利用率及改善系统性能(吞吐量、响应时间)是进程调度程序性能好坏的重要依据。因此,这就要求系统能够采用一定的算法,动态地把处理机分配给就绪队列中的每个进程,使之能公平、合理和高效地参与运行。
一个作业从提交开始,直到完成,往往要经历如下的三级调度。
1.作业调度
作业调度又称宏观调度或高级调度。其主要任务是按一定的原则,对外存上处于后备状态的作业进行选择。给选中的作业分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使该作业的进程获得竞争处理机的权利。一般在批处理系统中,大多配有作业调度,而在其他系统中,通常不需要配置作业调度。作业调度的执行频率较低,通常为几分钟一次。
2.进程调度
进程调度是指决定就绪队列中哪个进程获得处理机,并将处理机分配给该进程的操作。执行分配处理机的程序称为分派程序,分派程序的执行频率非常高,典型情况是几十毫秒一次,因此,它必须常驻内存。进程调度是操作系统中最基本的调度。
3.交换调度
交换调度又称中级调度。其主要任务是按照给定的原则和策略,将处于外存对换区中,且具备运行条件的就绪进程调入内存,或将处于内存就绪状态或内存阻塞状态的进程交换到外存对换区。交换调度主要涉及内存管理与扩充。
调度目标和原则主要有以下几点:
公平性:确保每个进程都能获得公平的CPU时间片;
高效性:使CPU 100%的时间都在工作;
响应时间:系统对用户的反应时间;
吞吐量:单位时间内处理的作业量。
2.3 处理机调度