内容正文:
操作系统原理(第2版)
2.4.3 处理器
调度队列模型
1. 仅有进程调度的调度队列模型
2.4 处理器调度
2. 具有高级
和低级调度的
调度队列模型
2.4 处理器调度
3. 同时具有三级调度的调度队列模型
2.4.4 进程调度的方式和时机
1. 进程调度方式
2.4 处理器调度
(1)非抢占式调度。在使用该方式的系统中,进程调度算法选中一个进程后就让该进程一直运行下去,直到该进程运行结束自动释放CPU的使用权;或者在运行过程中因发生某等待事件而阻塞时,才将CPU的使用权返还给进程调度程序。非抢占式调度的优点是实现简单、系统开销小。但系统出现了紧急事件时不能立即处理,即实时性差。因此,非抢占式调度方式不适用于实时系统和分时系统。
(2)抢占式调度。在没有发生等待事件的情况下也允许进程调度程序暂停当前运行进程的执行,并按照某种原则将当前运行进程占用的CPU分配给另一个更重要、更紧迫的进程使用。在这种调度方式下,被暂停运行的进程其他所需资源均已满足而只是被剥夺了CPU的使用权,故其状态应由运行状态返回到就绪状态,并将其PCB插入到进程就绪队列。
2.4 处理器调度
常用的抢占原则主要有以下两种:
(1)高优先级原则。允许拥有更高优先级的进程抢占当前运行进程所使用的CPU。
(2) 时间片原则。在分时系统中各就绪进程按照时间片轮流执行,当运行进程的时间片到时,则进程调度程序立即暂停当前运行进程的执行(由运行态变为就绪态),然后将CPU分配给下一个就绪进程。
抢占式调度方式适合于大多数实时系统以及所有分时系统。抢占式调度能够防止一个进程较长时间占用CPU,尤其是能够满足实时系统对响应时间的要求,且能获得较好的响应时间。但是,抢占式调度会增加系统中进程切换的频率,与非抢占式调度相比则增加了进程切换的开销。
2.4 处理器调度
2. 进程调度的时机
进程调度程序调度性能的优劣将直接影响CPU的利用率,因此什么时候运行进程调度程序是操作系统处理进程调度的关键。进程调度的原则是始终使CPU处于忙状态,一旦CPU空闲就立即进行调度。
(1)当前运行进程执行结束而终止,或因等待某个事件的完成而无法继续执行,需要启动进程调度程序来选择一个新的就绪进程运行;
(2)在抢占式调度系统中,就绪队列中出现了优先级更高的进程,或当前运行进程的时间片已经用完,需要剥夺当前运行进程的CPU使用权,并将其分配给更高优先级的进程或时间片轮转的下一个就绪进程。
进程调度的方式和时机
3. 进程调度实现
出现进程调度后,主要完成的任务是进程切换:
(1)保存当前运行进程的现场信息。当运行进程因某种原因(如时间片到或等待I/O)需要放弃CPU时,进程调度程序将运行进程的CPU现场信息,保存到内存该进程PCB中的CPU状态保护区。
(2)选择即将运行的进程。进程调度程序根据某种调度算法从进程就绪队列中挑选一个进程,把它的状态由就绪状态改为运行状态,并准备将CPU分配给它。
(3)为新选中的进程恢复现场。将选中进程在内存PCB保存的CPU现场信息送入CPU的各寄存器,然后将CPU的使用权交给选中的进程,使它从上次中断运行的断点处恢复正常运行。
例题
在单CPU系统中,进程三种基本状态变迁如图所示。是否会发生如右的状态变迁? (1)2→1 (2)3→2
(3)4→1 (4)3→1
2.5 单处理器调度算法
CPU的调度算法就是根据系统的资源分配策略设计出来的一种资源分配算法,在CPU的调度中,究竟采用何种调度策略以及使用何种调度算法,取决于操作系统的类型和设计目标。
在批处理系统中,系统的主要设计目标是增加系统的吞吐量及提高资源的利用率,因此CPU的调度可以使用先来先服务调度算法。
分时系统的设计目标重点考虑响应时间和使用计算机的公平性,CPU的调度通常采用基于时间片的轮转调度算法。
在实时系统中,要保证系统对随机发生的外部事件能够及时做出响应,则CPU的调度通常采用高优先级的抢占式调度算法。
2.5 单处理器调度算法
2.5.1 调度原则
1. 面向系统的准则
(1)吞吐量:系统单位时间内完成工作的一种度量。
(2)CPU利用率:
(3)系统资源平衡利用
(4)公平性
2.5 单处理器调度算法
2. 面向用户的准则
(1)周转时间:指该作业由提交到完成所花费的时间,即:
作业i周转时间Ti=作业i完成时间-作业i提交时间
也可表示为:
作业i周转