操作系统学习笔记(五)

来源:互联网 发布:c语言学习文档 编辑:程序博客网 时间:2024/06/06 00:11

处理机调度

3.1 处理机调度的层次

3.11 高级调度

又称为“作业调度”或“长程调度”,将外存中位于后备队列中的那些作业调入内存。
作业(Job):它不仅包含了通常的程序和数据而且还应配有一份作业说明书,系统根据作业说明书对程序进行运行控制,在批处理系统中,以作业为基本单位从外存调入内存。
作业步(Job Step):
一个典型作业分为三个作业步:编译,连接装配,运行
作业控制块:JCB(Job Control Block)其中保存了系统对作业进行调度和管理所需的全部信息。

3.12 低级调度

又称为“进程调度”或“短程调度”,他的对象是进程(或内核进程)。

低级调度的功能:

(1)保存处理机的现场信息
(2)按某种算法选取进程
(3)把处理机分配给进程
进程调度的三个基本机制:排队器,分派器,上下文切换机制
进程调度的方式:
(1)非抢占方式:一旦处理机分配给进程,便一直让他运行下去,直到进程结束或发生某种时间被阻塞。
(2)抢占方式:允许调度程序根据某种原则去暂停某个正在执行的进程,但是基于一定原则的主要有优先权原则,短作业(进程)优先原则,时间片原则。

3.13 中级调度

又称为“中程调度”,主要目的是为了提高内存的利用率和系统吞吐量。某些暂时不能运行的进程不再占用宝贵的内存资源,而将他们调到外存上面去等待,此时的进程状态
成为就绪驻外存状态或挂起状态。当这些进程重有具备运行条件且内存又稍有空闲的时候,由中级调度来决定吧外存上的那些就绪进程重新调入内存。

3.2 调度队列模型和调度准则

3.21 调度队列模型

1 仅有进程调度的调度队列模型:就绪队列为FIFO队列。任务在时间片内未完成或者阻塞后被放到阻塞队列末尾,下一次时间片来临或者事件出现的时候将阻塞队列
中的队首进程放到就绪队列末。
2 具有高级和低级调度的调度队列模型
注意两点:一,就绪队列是优先权队列,进程在进入对队列是根据其优先级被插入对应位置。
 二,设置多个阻塞队列,每个队列对应于某一进程阻塞事件。
3 同时具有三级调度的调度队列模型
就绪状态分内存就绪和外存就绪。则中级调度就是将外存就绪转为内存就绪。

3.22 选择调度方式和调度算法的若干准则

1 面向用户的准则:周转时间短、响应时间块、截止时间的保证、优先权准则。
截止时间,指某任务必须开始执行的最迟时间。或必须完成的最迟时间。
2 面向系统的准则:系统吞吐量高,处理机利用率好,各类资源的平衡利用

3.3 调度算法

根据系统的资源分配策略所规定的资源分配算法,对于不同的系统和系统目标,通常采用不同的调度算法。

3.31 先来先服务和短作业(进程)优先调度算法

先来先服务调度算法:FCFS,每次调度从后背队列中选取一个或多个最先进入队列的作业,将他们调入内存。
短作业优先调度算法:SJF,对短作业或短进程优先的算法。

3.32 高优先权先调度算法

优先权调度算法的类型:非抢占式优先权算法、抢占式优先权算法。
优先权的类型:
(1)静态优先权:创建进程是决定,整个运行期间不改变。
确定进程优先权的三个方面:进程类型、进程对资源的需求、用户要求。
(2)动态优先权:
在创建进程时赋予优先权,但是可以随进程的推进或者等待的时间增加而改变。
高响应比优先权调度算法:优先权等于响应比Rp.
Rp = (等待时间 + 要求服务时间) /要求服务时间 = 响应时间 /要求服务时间;
该算法既照顾了短作业,有考虑了作业到达的先后次序。

3.33 基于时间片的轮转调度算法

时间片轮转法:
基本原理:系统将所有就绪进程按照先来先服务的顺序排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片,时间片用完则停止该进程,将其送到队末,继续循环。

时间片大下的确定:一个较为可取的大小是:时间片略大于一次典型的交互所需要的时间,这样大多数进程都能在一个时间片内完成。

多级反馈队列调度算法:
(1)设置多个就绪队列,为每个队列赋予不同的优先级,优先级越高的被分配的时间片就越小。
(2)当一个新进程进入内存后,首先将他放入到第一队列末尾,按FCFS(First Come First Serve)原则排队等待。当轮到该进程执行时,如他能在时间片内完成则撤离系统
否则在第一个时间片结束将他调入第二队列的末尾,在循环执行。
(3)仅当第一队列空闲时,调度程序才调度第二队列中的进程运行。若处理机正在i队列中为某进程服务的时候,又有新进程进入优先级高的队列,则新进程抢占正在运行的进程处理机。

3.4 实时调度

3.41 实现实时调度的基本条件

(1)提供必要信息:就绪时间、开始截止时间和完成截止时间、处理时间、资源要求、优先级
(2)系统处理时间强:若处理机能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理从而导致发生难以预料的后果。
(3)采用抢占式调度机制
(4)具有快速切换机制

3.42 实时调度算法的分类

非抢占式调度算法:
(1)非抢占式轮转调度算法
(2)非抢占式优先调度算法
抢占式调度算法:
(1)基于时钟中断的抢占式优先权调度算法:高优先级任务到达后并不立即抢占当前任务处理机,等待时钟到来时再抢占。
(2)立即抢占的优先权调度算法:只要当前任务未处于临界区,便立即剥夺当前任务的执行,把处理机分配给请求中断更紧迫的任务。

3.43 常用的几种实时调度算法

(1)最早截止时间优先即EDF(Earlist Deadline First)
非抢占式调度方式用于调度实时任务,抢占式调度方式用于周期实时任务
(2)最低松弛度优先即LLF(Least Laxity First)算法
根据任务紧急(松弛)度来确定优先级
0 0
原创粉丝点击