4.2.5 进程调度

2025-06-06 02:07:16 更新

(一)进程调度

指当有更高优先级的进程到来时如何分配CPU。

(二)分类

当有更高优先级的进程到来时,

1)可剥夺式:强行将正在运行进程的CPU分配给高优先级的进程;

2)不可剥夺式:必须等待正在运行进程自动释放占用的CPU,然后将CPU分配给高优先级的进程。

(三)三级调度

在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。


等级

别名

说明

备注

1

高级调度

“长调度” “作业调度”或“接纳调度”

决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。

一个作业只需经过一次高级调度。

2

中级调度

“中程调度”或“对换调度”

决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。

在内存资源紧张时,使处于内存的进程和处于盘交换区的进程交换位置。

3

低级调度

“短程调度”或“进程调度"

决定处于内存中的哪个就绪进程可以占用CPU。

是操作系统中最活跃、最重要的调度程序,对系统的影响很大。

(四)调度算法



说明

备注

1

先来先服务(FCFS)

总是将就绪队列队首的进程投入运行。

主要用于宏观调度

特点:

利于长作业,不利于短作业;

利于CPU繁忙作业,不利于I/O繁忙作业。


2

时间片轮转

通过时间片轮转提高进程并发性和响应时间特性,从而提高资源利用率(设计目标)。

时间片长度可以从几毫秒到几百毫秒;

主要用于微观调度

选择方法:

固定时间片;

可变时间片;

3

优先级调度

让每一个进程都拥有一个优先数,数值大的表示优先级高,优先占用CPU

分类:

静态优先级;

动态优先级;

4

多级反馈调度

是时间片轮转算法和优先级算法的综合与发展。

优点:

照顾了短进程,以提高系统吞吐量,缩短了平均周转时间;

照顾I/O型进程以获得较好的I/O设备利用率和缩短响应时间;

不必估计进程的执行时间,动态调节优先级。

(五)进程优先级确定


针对场景

措施

备注

1

I/O型进程

进入最高优先级队列,及时响应需要I/O交互的进程。

在一个小时间片内处理完一次I/O请求数据,然后转入阻塞队列。

2

计算型进程

每次执行完时间片后进入更低级队列。

最终采用最大时间片来执行,以减少调度次数。

3

I/O次数不多(CPU处理的进程)

在I/O完成后,返回优先I/O请求时离开的队列

避免每次都回到最高优先级队列后再逐次下降。

4

某进程在不同时间段的运行特点

I/O完成时,提高优先级;

时间片用完时,降低优先级。