第三章 处理机调度与死锁

3.1 一些基本概念:

一、处理机调度:

多道程序环境下,动态的把处理机分配给就绪队列中的一个进程使之执行。

ps:提高处理机的利用率、改善系统性能,很大程度上取决于处理机调度的性能。处理机调度便成为OS设计的中心问题之一。分配的任务由处理机调度程序完成。

二、作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度:

(一)、高级调度(High Scheduling)

又称作业调度长程调度(Long-Term Scheduling)或接纳调度(Admission Scheduling)

1.主要在早期批处理阶段,处理在外存上的作业。

2.决定外存后备队列中的哪些作业调入内存;

3.为它们创建进程、分配必要的资源;

4.将新创建的进程排在就绪队列上,准备执行。

* 管理的方面比较多。

5.在每次执行作业调度时,都须作出两个决定:

①.接纳多少作业——取决于多道程序度。应根据系统的规模和运行速度等情况综合考虑。

②.接纳哪些作业——取决于采用的调度算法。如先来先服务,短作业优先等

6.系统运行并不一定存在高级调度

①.批处理系统:作业进入系统后先驻留外存,故需要有作业调度。

②.分时系统:为及时响应,作业由终端直接送入内存,故不需作业调度。

③.实时系统中,通常也不需作业调度。

(二)、中级调度(Intermediate-Level Scheduling)

又称交换调度中程调度(Medium-Term Scheduling)引入目的:提高内存利用率和系统吞吐量。根据条件将一些进程调出或再调入内存。

(三)、低级调度(Low Level Scheduling)

也称为进程调度、微观调度或短程调度(Short-Term Scheduling)。决定内存就绪队列中的哪个进程获得处理机,进行分配工作。是最基本的一种调度,在三种基本OS中都有。

1.进程调度方式:

①.非抢占方式(Non-preemptive Mode)

一旦处理机分配给某进程,该进程一直执行。决不允许其他进程抢占已分配运行进程的处理机。

②.抢占方式(Preemptive Mode)允许调度程序根据某种原则,暂停2.某个正在执行的进程,将处理机重新分配给另一进程。

2.调度程序的任务职能:调度和分派。

①.记录系统中所有进程的有关情况

②. 确定分配处理机的原则

③. 分配处理机给进程

④. 从进程收回处理机


三、进程调度方式比较:


四、三种调度的频率和复杂度

(一)、进程调度:运行频率最高,算法不能太复杂,以免占用太多的CPU时间。分时系统通常10~100ms便进行一次。

(二)、作业调度:一个作业运行完毕退出系统时即触发重新调度一个新作业入内存,周期较长,大约几分钟一次。因而也允许作业调度算法花费较多的时间。

(三)、中级调度:运行频率基本上介于上述两种调度之间。

作业和进程的状态转换图
三级调度比较图

五、调度队列模型

不论高级、中级或者低级调度,都涉及到进程队列,由此形成了三类调度队列模型。从这三种方式中体验调度的过程。

(一)、仅有进程调度的调度队列模型

(二)、具有高级和低级调度的调度队列模型

(三)、同时具有三级调度的调度队列模型


3.2 调度算法

一、调度实质

是一种资源分配。不同的系统和系统目标,通常采用不同的调度算法


二、先来先服务调度算法FCFS

一种最简单的调度算法,按先后顺序进行调度。既可用于作业调度,也可用于进程调度。

(一)、按照作业提交,或进程变为就绪状态的先后次序分派CPU;

(二)、新作业只有当当前作业或进程执行完或阻塞才获得CPU运行

(三)、被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程出让CPU。(所以,默认即是非抢占方式)

你可能感兴趣的:(第三章 处理机调度与死锁)