计算机操作系统_刘乃琦_处理机的调度和死锁
计算机操作系统 第三章 处理机调度与死锁

3.2.1 短作业(进程)优先算法
这是对FCFS算法的改进,其目标是减少平均 周转时间。
SJF:从后备队列中选择估计运行时间最短的 一个或几个作业调入内存。 SPF:从就绪队列中选择一个估计运行时间最 短的进程,将处理机分配给它。
短进程优先法调度方式
短进程优先算法既可以是非抢占式,也可以是抢 占式。
不同类型及目标的操作系统,其采用的调度方 式与调度算法通常不同。 1.面向用户的准则 2.面向系统的准则
1.面向用户的准则
(1)周转时间短 周转时间:作业提交计算机开始到完成返回用 户为止的时间间隔。 (2)响应时间快
响应时间:从提交一个请求到首次产生响应的 时间间隔。或者说,用户发送指令给计算机到计 算机返回结果给用户的时间间隔。
作业相关概念
作业:程序+数据+作业说明书 作业步:相对独立相互关联的顺序加工步骤 作业流 作业控制块JCB:作业在系统中的标识,保存有系 统对作业进行管理与调试所需要的全部信息
作业标识 用户名称、用户帐户 作业类型、作业状态 资源需求 调度信息 进入时间、开始处理时间、需求时间 ……
作业调度时要做的决定: (1)接纳多少个作业 (2)接纳哪些作业(调度算法) 作业调度的目标: (1)对所有作业尽量做到公平合理 (2)高设备利用率 (3)执行尽可能多的作业 (4)尽量短的响应时间
1.面向用户的准则
(3)截止时间的保证 评价实时系统的重要指标。
截止时间:任务必须开始执行的最迟时间,或必 须完成的最迟时间。 (4)优先权准则:关键任务得到更好的性能指 标
(5)公平性:确保每个用户每个进程获得合理 的CPU份额或其他资源份额。
2.面向系统的准则
(1)系统吞吐量高 吞吐量:单位时间内系统完成的作业数。 (2)处理机利用率高:大中型系统的主要指 标
操作系统第三章处理机调度与死锁

Event
Event Queue
32
Exit
Start
Ready Queue Time Slice CPU
Event
Event Queue
33
Exit
Start
Ready Queue Time Slice CPU
Event
Event Queue
34
3.2.2 短作业优先
(SJF, Shortest Job First)
2
主要内容
处理机调度的基本概念
调度算法
实时调度
多处理机系统中的调度
产生死锁的原因和必要条件
预防死锁的方法
死锁的检测与解除
3
3.1
处理机调度的基本概念
3.1.1 高级、中级和低级调度
处理机( CPU )在进程之间的动态分配和切换,
涉及到三种类型(或者说三个层次)的调度,
即高级调度(也叫作业调度、长程调度)、中
执行 时间 1 100 1 100
开始执 行时间 0 1 101 102
完成时 周转时 带权周 间 间 转时间 1 101 102 202 1 100 100 199 1 1 100 1.9919
CPU Scheduler Example
Process 1 burst computes for 14 time units Process 2 burst computes for 8 time units Process 3 burst computes for 8 time units
Hale Waihona Puke I/OChild Terminates
第三章 处理机的调度和死锁

3.1 处理机调度的层次
2、低级调度(即进程调度,短程调度) 调度对象是进程或内核级线程,是最基本的调度。 功能:将处理机分派给就绪队列中的进程。 具体步骤: ٭保存现场、依据调度算法调入进程、分配处理机给进程。 调度方式: ٭1.非抢占方式: 进程获得处理机后独占。简单、系统开销小、实时性差。 ٭2.抢占方式 可防止一个进程长时间的占用处理机。抢占原则: (1)时间片原则 (2)优先权原则 (3)短作业优先原则。 处理机调度与死锁
处理机调度与死锁
例 FCFS算法
进程名 到达时 服务时 开始执 完成时 周转时 带权周 间 间 行时间 间 间 转时间 A B C D 0 1 2 3 1 100 1 100 0 1 101 102 1 101 102 202 1 100 100 199 1 1 100 1.99
理解:周转时间、带权周转时间
p1
R1
设备共享引起的死锁
R2 p2
处理机调度与死锁
3.5产生死锁的原因和必要条件
2、进程推进顺序不当引起死锁 P2Rel(R1) P2Rel(R2) P2Req(R1) P2Req(R2) 4 D 3 1 2
阶段小结2:调度算法 【补充计算题,选作】 有5个批处理作业(ABCDE),按照先后顺序达到一 个计算中心,忽略先后到达的时差。估计运行时间 分别为2、4、6、8、10分钟,它们的优先数分别为 1、2、3、4、5(优先数越大,优先级越高)。对 下面的各种调度算法,分别计算作业的平均调度周 转时间(参照教材P92的列表计算) (1)先来先服务 (2)短作业优先 (3)优先级调度算法 (4)时间片轮转(设时间片为2分钟)
处理机调度与死锁
3.3.3基于时间片的轮转调度算法
处理机调度与死锁

概念1.用户与操作系统的接口(即操作系统留 给用户的操作系统的接口): (1)命令口(使用操作系统命令的接口) (2)程序口 (3)图形用户接口
2
复习几个概念:
概念1.用户与操作系统的接口(即操作系统留给 用户的操作系统的接口): (1).程序口:用户在程序中通过一系列的系统调 用向操作系统提出服务请求 (2).命令口(作业级接口):操作系统为用户对 作业运行的全过程提供控制功能 (3).图形用户接口
13
4.1 处理机调度的层次
用户作业从进入系统成为后备作业,直到运 行程序、退出系统,可能会经历三级调度: 高级调度:又称作业调度、长程调度 中级调度:又称平衡负载调度、中程调度 低级调度:又称进程调度、短程调度
14
高级调度(或作业调度)
一个作业从进入系统到运行结束要经历4种状态: 提交状态:由输入设备进入外存 后备状态:给输入到外存上的作业建立一个JCB, 并插入后备队列等待调度 运行状态:外存上的作业被选中调入内存,为其分 配必要的资源,建立一组相应的进程后,作业就 由后备状态转为运行状态。 完成状态:作业正常完成或因错误而终止运行时进 入完成状态。
5
(2)程序口(2)
所以系统调用命令是操作系统提供给用户的程 序级接口,用户程序通过该接口可以调用底层 的“系统程序模块”,实现一些操作。 这些例行子程序不能像一般的用户子程序那样 随便调用,因为它们是操作系统的程序部分, 它运行时,操作系统处于“管态”(系统管理 程序控制状态),而用户程序运行时,机器处 于“目态”(目标程序控制态)
16
高级调度(或作业调度)
每次执行作业调度时都必须作出决定: 1)接纳多少个作业 即允许多少个作业同时在内存中运行。 2)接纳哪些作业 取决于所采用的调度算法。 最简单的是先来先服务调度算法,即较早调入 外存的先调入内存。最常用的是短作业优先算 法;此外还有基于作业优先权的算法、响应比 高者优先算法等
第三章 处理机调度与死锁

2
操 作 系 统
处理机调度可以分为4 处理机调度可以分为4级: 1)作业调度(高级调度): 作业调度(高级调度) 按一定原则选择若干个后备作业调入主存,分配资源, 按一定原则选择若干个后备作业调入主存,分配资源, 若干个后备作业调入主存 并建立相应的进程,投入运行.当该作业执行完毕时, 并建立相应的进程,投入运行.当该作业执行完毕时,还负 责回收资源. 责回收资源. 交换调度(中级调度) 均衡调度) 2)交换调度(中级调度)(均衡调度):
三,作业控制块
作业控制块JCB是作业存在的标志, 作业控制块JCB是作业存在的标志,记录与该作业有 JCB是作业存在的标志 关的信息. 关的信息.
操 作 系 统
作业控制块
作业名 估计执行时间 最迟完成时间 要求的主存量 要求外设的类型及台数 要求文件量和输出量 进入系统时间 开始执行时间 已执行时间 主存地址 联机和脱机 外设台号 控制方式 作业类型
第 三 章
影响整个系统的性能. 影响整个系统的性能. 处理机调度需要解决三个问题: 处理机调度需要解决三个问题: 处理机分配的策略,即需要确定处理机的调度算法; (1) 处理机分配的策略,即需要确定处理机的调度算法; 什么时候分配处理机,即需要确定处理机的调度时机; (2) 什么时候分配处理机,即需要确定处理机的调度时机; 如何分配处理机,即需要给出处理机的调度过程. (3) 如何分配处理机,即需要给出处理机的调度过程.
操 作 系 统
五,作业调度算法
1.先来先服务调度算法(FCFS) 1.先来先服务调度算法(FCFS) 先来先服务调度算法
第 三 章 处 理 机 调 度 与 死 锁
按照给定的原则实现进程在主存和外存交换区之间的换 按照给定的原则实现进程在主存和外存交换区之间的换 进程在主存和外存交换区之间的 进换出,以解决内存紧张问题, 进换出,以解决内存紧张问题,特别是具有虚拟存储器的系 统中. 统中. 3)进程调度(低级调度): 进程调度(低级调度) 按照某种策略从进程就绪队列中选择一个就绪进程, 按照某种策略从进程就绪队列中选择 一个就绪进程, 一个就绪进程 使其占有处理机运行. 使其占有处理机运行. 占有处理机运行 4)线程调度
计算机操作系统第三章处理机调度与死锁

事件1发生 事件2发生
阻塞队列 等待事件2
阻塞队列
…… 等待事件n
事件n发生
阻塞队列
具有高、低两级调度的调度队列模型
同时具有三级调度的调度队列模型
作业 调度
时间片完 进程调度 挂起 就绪、挂起队列 事件出现 阻塞、挂起队列 挂起 进程完成
后备队列
中级 调度
就绪队列
CPU
事件发生
等待事件 阻塞队列 具有高、低、中三级调度的调度队列模型
3.2 调度队列模型和调度准则
仅有进程调度的调度队列模型
FIFO队列 时间片完 交互用户 进程调度 就绪队列 进程完成
CPU
事 件 发 生
等待事件 阻塞队列 仅具有进程调度的调度队列模型
具有高级和低级调度的调度队列模型
优先权队列
作业 调度
时间片完 进程调度 进程完成
后备队列
就绪队列
CPU
等待事件1
第三章 处理机调度与死锁
要解决的三个问题:
WHAT:按什么原则分配CPU? —进程调度算法 WHEN:何时分配CPU? —进程调度的时机 HOW: 如何分配CPU? —CPU调度过程(进程的上下文切换)
主要内容
处理机调度的层次 调度队列模型和调度准则 调度算法 实时调度 产生死锁的原因和必要条件 预防和避免死锁的办法 死锁的检测与解除
时间片轮转
• 特别适用于分时系统的调度算法。 • 实现方法:
– 由计时器发出时钟中断,引起一次轮转调度。
基本思想:基于时钟的剥夺。
以一定的时间间隔周期性产生一个时 钟中断,当中断发生时,当前正在运行的 进程被置于就绪队列末尾,然后基于FCFS 选择下一个就绪进程运行。 保证就绪队列中的所有进程在给定的 时间内都能获得一时间片(time slice)的 处理机执行时间。
计算机操作系统 处理机调度与死锁
2. 多级反馈队列调度算法
多个就绪队列,各个队列赋予不同的优先级。 第一个队列的优先级最 高,第二个队列次之,其余各队列的优先权逐个降低。
各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列 中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时 间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要 比第i个队列的时间片长一倍。
程序等。
进程的执行是在其上下文中执行。当正在执行的进程由于某种原因要让出处 理机时,系统要做进程上下文切换,以使另一个进程得以执行。
当进行上下文切换时,系统要: • 首先检查是否允许做上下文切换(优先级 ); • 保留被切换进程的当前信息(现场),以便返回该进程时,从断点恢复该进
程的执行。
系统保留了CPU现场之后,调度程序选择一个新的处于就绪状态的进程,并 装配(布置)该进程的上下文(现场) ,使CPU的控制权转换到被选中进程中。
进程上下文切换 进程上下文由正文段、数据段、硬件寄存器的内容以及有关数 据结构等组成。 硬件寄存器主要包括存放CPU将要执行的下条指令虚拟地址的 程序计数器PC。 指出机器与进程相关联的硬件状态的处理机状态寄存器PS。 存放过程调用(或系统调用)时所传递参数的通用寄存器R以及 堆栈指针寄存器S等。
作业调度
交换调度
进程调度
线程调度 作业调度
3.1 处理机调度的基本概念
3.1.1 高级、中级和低级调度
1. 高级调度(High Scheduling) ,即作业调度 在每次执行作业调度时,须做出以下两个决定
1) 接纳多少个作业
2) 接纳哪些作业
调度目标: (1) 对所有作业应该是公平合理的; (2) 应使设备有高的利用率; (3) 单位时间内执行尽可能多的作业; (4) 有快的响应时间。
计算机操作系统 第三章 处理机调度和死锁
3.1 处理机调度的层次作业需经过处理机调度后才可以获得处理机来执行。
批量型作业需经过作业调度和进程调度终端型作业只需经过进程调度。
而终端型作业是指用户从中断打入键盘命令,直接控制其运行的作业。
批量型不知道什么意思,就是感觉很大的作业。
1.作业调度即高级调度功能是根据某种算法,把外存上处于后备队列的作业调入内存,调度对象是作业什么是作业??作业就是程序,数据和作业说明书,系统会根据作业说明书队程序加以控制作业步就是做了一步作业。
典型的作业步有三个:(1)编译,(2)连接装配,(3)运行,感觉像是C程序编译运行...作业中包括:作业控制块JCB 保存了系统对作业进行管理和调度所需的全部信息。
感觉就像是进程的PCB,作业进入系统时系统给他创建一个JCB,完成作业后要撤销掉。
作业调度就是根据JCB中信息看能不能为他分配资源,以及按照一定的算法来判断哪些作业可以从外存调入内存...因为用户总是希望自己的作业最快完成,但是系统希望完成所有作业的平均时间最小,所以系统既要考虑用户的感受又要考虑效率,所以要考虑两个问题,接纳多少作业,先接纳谁后接纳谁.....那么重点来了,先到先服务和短作业优先...2.进程调度即低级调度他的调度对象是进程进程调度的功能:(1)保存处理机的当前信息(2)按某种算法选个进程放处理机里(3)把进程放处理机里进程调度方式:1)非抢占式:就是把处理机分给一个进程后,就让他一直运行下去,不许抢2)抢占式:把正在运行的进程踢出去,然后符合某种条件的进来,某种条件是指,优先权高,短作业或者是按时间片运行的,按时间片就是就绪队列的每个进程先运行一个时间片,如果完成了,就完成了,没完成就把他查到就绪队列最后3.中级调度就是介入上面两种之间,不知道什么意思,第四章讲3.2 调度队列模型和调度准则1.低级中级高级调度都有一个调度对列,就是处理机从这个队列中取出进程来运行,这个队列就是调度队列2.这个队列是怎么排出来的呢?由一些准则,包括面向用户准则面向系统准则1)面向用户准则周转时间短,就是我的这个进程需要等待的时间+进程要运行的时间响应要快,就是用户通过键盘输入一个命令后到系统首次做出反应的时间截止时间的保证,系统要在这个时间内必须完成优先权准则。
3操作系统 - 处理机调度与死锁
0
A B C D E
Page 25
5
10
15
20
3.3调度算法
3.3.3高优先权优先调度算法(HRRN)
进程 到达时间 服务时间 完成时间 周转时间 带权周转时间 平均
等待时间相同时,有利于短作业 要求服务时间相同时,先来先服务
长作业随着等待时间优先级增加,从而可以获得处理机。
就绪队列n ( 时间片:S1 <S 2 <S 3 )
Page 29
3.3调度算法
3.3.5多级反馈队列调度算法
过程
(1)按优先级由高到低设臵多个队列 RQ0,RQ1 … RQn,高优先级队列时间片小。
(2)刚进入系统的进程按FCFS放入最高的RQ0中
(3)进程一次时间片没执行完,就降至下一级队列,以 此类推,降至最低优先级队列后,一直在此队列中不 再下降。 (4)系统优先调度高优先级队列中的进程,仅当RQ0空 闲时才调度RQ1队列进程,以此类推。
3.5.1 死锁的定义
一个批处理作业,可能经历三级调度:
3.1.1高级调度 3.1.2低级调度 3.1.3中级调度
Page 3
3.1处理机调度的层次
3.1.1高级调度
高级调度又称为作业调度或长程调度,其主要功能是根据某种算法,把 外存上处于后备队列中的哪些作业调入内存。
根据JCB的信息决定:
(1)接纳多少个作业 (2)接纳哪些作业
缺点:处罚长进程,长进程可能被饿死
Page 30
优点:不需要知道进程执行所需时间
3.3调度算法
练习题
请按照FCFS、SPF、HRRN、RR(1)算法对上 面的进程进行调度,要求画出调度过程。
计算机操作系统(第四版)第3章 处理机调度与死锁
第三章处理机调度与死锁31处3.1处理机调度的层次和调度算法的目标32理机调3.2作业与调度算法3.3进程调度度与3.4 实时调度死锁3.5 死锁概述3.6 预防死锁3.7避免死锁383.8死锁的检测与解除3.13.1处理机调度的层次处311P85理机调 3.1.1 高级调度312度与 3.1.2 低级调度313死锁 3.1.3中级调度❑高级调度(High-Level Scheduling)又称作业调度,决定后备作业中谁调入内存运行处❑低级调度(Low-Level Scheduling)理机调又称进程调度,决定就绪队列中哪个进程获得度与CPU ;死锁❑中级调度(Intermediate-Level Scheduling)又称在虚拟存储器中引入,在内、外存对换区进行进程对换行进程对换。
高级调度(High Level Scheduling)又称作业调度或长程调度处 功能:按照一定的算法,从外存的后备队列中选取某些并为它们创建进程理机调作业调入内存,并为它们创建进程、分配资源,再将进程插入就绪队列,准备执行。
度与死锁 作业和作业步作业控制块 作业调度作业和作业步(1)作业(Job)比程序更为广的概念含:程序+数据+作业说明书处比程序更为广的概念,含:程序+数据+作业说明书根据说明书,对程序进行控制。
批处理系统中,以作业为基本单位从外存调入内存理机调作业为基本单位从外存调入内存。
(2)作业步(Job Step),Demo run作的行过若个相独立相关联的序加步度与作业的运行经过若干个相对独立、又相互关联的顺序加工步骤,每个加工步骤称为一个作业步。
“编译”作业步,死锁例如,典型的作业可分成三个作业步:①编译作业步,②“连结装配”作业步;③“运行”作业步(3)作业流()作流若干个作业进入系统后,依次存放,形成输入的作业流;在操作系统的控制下,逐个作业进行处理,形成处理作业流。
事物都需操控指挥中心事物都需操控、指挥中心,so is the 作业处理机调度与死锁为管理和调度作业,多道批处理系统为每个作业设置个作业控制块是作业在系统中处置一个作业控制块JCB,JCB是作业在系统中存在的标志,保存系统对作业进行管理和调度所需的全部信息理机调信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
处理机调度与死锁
3.2调度算法 3.2调度算法——是一个资源分配问题 调度算法——是一个资源分配问题
3.2.1先来先服务和短作业(进程) 3.2.1先来先服务和短作业(进程)优先调度算法 先来先服务和短作业 .1 ٭FCFS ▪ 特点:简单,有利于长作业 即CPU繁忙性作业 特点:简单, CPU繁忙性作业 .2 ٭短作业进程优先调度算法:SJ(P)F 2.短作业进程优先调度算法 短作业进程优先调度算法: ▪ 提高了平均周转时间和平均带权周转时间(从而提 提高了平均周转时间和平均带权周转时间( 高了系统吞吐量) 高了系统吞吐量) ▪ 特点:对长作业不利,有可能得不到服务(饥饿) 特点:对长作业不利,有可能得不到服务(饥饿) ▪ 估计时间不易确定
一、面向用户的准则 .2 ٭响应时间快:(对交互性作业) 响应时间快:(对交互性作业) :(对交互性作业 ▪ 概念:键盘提交请求到首次响应时间 概念: ▪ (1)输入传送时间 ▪ (2)处理时间 ▪ (3)响应传送时间 .3 ٭截止时间的保证(特别于实时系统) 截止时间的保证(特别于实时系统) .4 ٭优先权准则:(即需要抢占调度) 优先权准则:(即需要抢占调度) :(即需要抢占调度
一、面向用户的准则 .1 ٭周转时间短 ▪ 概念:作业从提交――> 概念:作业从提交―― ――> ▪ (1)驻外等待调度时间 ▪ (2)驻内等待调度时间 ▪ (3)执行时间 ▪ (4)阻塞时间
完成的时间.分为: 完成的时间.分为:
处理机调度与死锁
3.1.3选择调度方式和算法的若干准则 3.1.3选择调度方式和算法的若干准则
当前进程 调度时间
实时进程
b 立即抢占优先权调度
3.3.3常用的几种实时调度算法 3.3.3常用的几种实时调度算法
1.最早截止时间优先EDF( first)算 1.最早截止时间优先EDF(earliest deadline first)算 最早截止时间优先EDF 法 ٭根据任务的截止时间来确定任务的优先级 ٭截止时间越早,优先级越高 截止时间越早, ٭可以是抢占式或非抢占式
8 2.1
2.67 3.1
1.5 2.25
处理机调度与死锁
3.2.2高优先权优先调度算法 3.2.2高优先权优先调度算法
1.优先权调度算法类型 1.优先权调度算法类型 ٭非抢占式优先权算法 ٭抢占式优先权算法,实时性更好。 抢占式优先权算法,实时性更好。 2.优先权类型 优先权类型: 2.优先权类型: .1 ٭静态优先权: 静态优先权: ▪ 进程优先权在整个运行期不变。 进程优先权在整个运行期不变。 ▪ 确定优先权依据 –(1)进程类型 ( –(2)进程对资源的需求; 进程对资源的需求; ( –(3)根据用户需求。 根据用户需求。 ( ▪ 特点:简单,但低优先权作业可能长期不被 特点:简单, 调度。 调度。
处理机调度与死锁
3.3.2实时调度算法的分类 3.3.2实时调度算法的分类
1非抢占式调度算法 ٭时间片轮转 秒级 ٭非抢占优先权(协同) 非抢占优先权(协同) 秒~毫秒级 2抢占式调度算法 ٭时钟中断抢占优先权 毫秒级 ▪ 基于抢占点抢占 ٭立即抢占immediate preemption 立即抢占immediate 毫秒~ 毫秒~微秒级 ▪ 只要不在临界区即抢占(中断引发) 只要不在临界区即抢占(中断引发)
处理机调度与死锁
例
进程名 到达时 服务时 开始执 完成时 周转时 带权周 间 间 行时间 间 间 转时间 A B C D 0 1 2 3 1 100 1 100 0 1 101 102 1 101 102 202 1 100 100 199 1 1 100 1.99
处理机调度与死锁
图3.4FCFS和SJF比较 3.4FCFS和SJF比较
进程名 到达时间 服务时间 FCFS 完成时间 周转时间 带权周转时间 SJF 完成时间 周转时间 带权周转时间 A 0 4 4 4 1 4 4 1 B 1 3 7 6 2 9 8 C 2 5 12 10 2 18 16 D 3 2 14 11 E 4 4 18 14 9 2.8 平均
5.5 3.5 6 3 13 9
处理机调度与死锁
3.2.2高优先权优先调度算法 3.2.2高优先权优先调度算法(2) 高优先权优先调度算法(2) 2.动态优先权: 动态优先权: ٭如:优先权随执行时间而下降,随等待时间而升高。 优先权随执行时间而下降,随等待时间而升高。 ٭响应比Rp=(等待时间+服务时间)/服务时间 作为优 响应比Rp=(等待时间+服务时间) Rp= 先权 ٭优点:长短兼顾 优点: 缺点:需计算Rp 缺点:需计算Rp 3.高响应比优先算法: 3.高响应比优先算法: 高响应比优先算法 ٭特点: 特点: ٭响应比Rp=(tw+ts)/ts 响应比Rp= tw+ts) Rp=( )1( ٭短作业RP大。 短作业R )2( ٭ts(要求服务时间)相同的进程间相当于FCFS。 ts(要求服务时间)相同的进程间相当于FCFS FCFS。 )3( ٭长作业等待一段时间仍能得到服务。 长作业等待一段时间仍能得到服务。
后备队列
就绪队列
事件1出现 事件 出现
事件2出现 事件 出现
处理机调度与死锁
三、具有三级调度
作业调度 时间片完 进程调度 后备队列 就绪队列 中级调度 就绪、 就绪、挂起队列 事件出现 事件出现 阻塞、 阻塞、挂起队列 挂起 阻塞队列 等待事件 CPU 进程 完成
交互型作业
处理机调度与死锁
3.1.3选择调度方式和算法的若干准则 3.1.3选择调度方式和算法的若干准则
处理机调度与死锁
处理机调度的基本概念(2)
2、低级调度(进程调度,短程调度) 低级调度(进程调度,短程调度) 主要是由分派程序(Dispatcher)分派处理机。 主要是由分派程序(Dispatcher)分派处理机。 .1 ٭非抢占方式: 1.非抢占方式 非抢占方式: 简单, 简单,实时性差 (如win31) .2 ٭抢占方式 2.抢占方式 (1)时间片原则 (2)优先权原则 (3)短作业优先原则。 短作业优先原则。 3、中级调度(中程) 中级调度(中程) 为提高系统吞吐量和内存利用率而引入的一内-----为提高系统吞吐量和内存利用率而引入的一内------外存 ------外存 对换功能(换出时,进程为挂起或就绪驻外状态) 对换功能(换出时,进程为挂起或就绪驻外状态) 运行频率: 运行频率:低>中>高。
处理机调度与死锁
3.2.3基于时间片的轮转调度算法 3.2.3基于时间片的轮转调度算法
1.时间片轮转 1.时间片轮转 ٭时间片大小的确定
▪ 太大:退化为FCFS; 太大:退化为FCFS FCFS; ▪ 太小:系统开销过大 太小:
٭系统对响应时间的要求;T=nq 系统对响应时间的要求; ٭就绪队列中进程的数目; 就绪队列中进程的数目; ٭系统的处理能力:(应保证一个时间片处理完常用命令) 系统的处理能力:(应保证一个时间片处理完常用命令) :(应保证一个时间片处理完常用命令
处理机调度与死锁
实时进程要求调度
调度实时进程运行
进程1
进程2
进程n
实时进程
调度时间 a 非抢占轮转调度 实时进程要求调度 当前进程运行完成
当前进程 调度时间
实时进程
b 非抢占优先权调度
实时进程要求调度
时钟中断到达时
当前进程 调度时间
实时进程
c 基于时钟中断抢占的优先权抢占调度 抢占时刻(其它中断) 实时进程要求调度 抢占时刻(其它中断)
处理机调度与死锁
图3-5多级队列反馈调度算法 - 多级队列反馈调度算法
S1 就绪队列1 就绪队列1 S2 就绪队列2 就绪队列2 S3 就绪队列3 就绪队列3 Sn 就绪队列n 就绪队列n 时间片: 时间片:S1<S2<S3
处理机调度与死锁
至CPU
至CPU
至CPU
至CPU
3.3实时调度 3.3实时调度
一、面向用户的准则 ٭平均周转时间
1 n T = [∑ Ti ] n i =1
٭平均带权
1 n Ti W = [∑ ] n i =1 T s
٭可见带权w越小越好,Ts为实际服务时间。 可见带权w越小越好,Ts为实际服务时间。 ,Ts为实际服务时间
处理机调度与死锁
3.1.3选择调度方式和算法的若干准则 3.1.3选择调度方式和算法的若干准则
第三章 处理机的调度和死锁
3.1 处理机调度的基本概念
3.1高 3.1高、中、低三级调度 高级调度(作业调度、长程调度、接纳调度) 1、高级调度(作业调度、长程调度、接纳调度) ▪ 将外存作业调入内存,创建PCB等,插入就绪 将外存作业调入内存,创建PCB PCB等 队列。 队列。 ▪ 一般用于批处理系统,分/实时系统一般直接 一般用于批处理系统, 入内存,无此环节。 入内存,无此环节。 ٭调度特性 ▪ 1.接纳作业数(内存驻留数) 1.接纳作业数 内存驻留数) 接纳作业数( 太多――― ―――> 周转时间T 太多―――> 周转时间T长 太少――― ―――> 太少―――> 系统效率低 ▪ 2.接纳策略:即采用何种调度算法:FCFS、短 2.接纳策略 即采用何种调度算法:FCFS、 接纳策略: 作业优先等
3.3.1实现实时调度的基本条件 3.3.1实现实时调度的基本条件 .1 ٭提供必要的调度信息 ▪ (1)就绪时间; 就绪时间; ▪ (2)开始/完成截止时间; 开始/完成截止时间; ▪ (3)处理时间; 处理时间; ▪ (4)资源要求; 资源要求; ▪ (5)优先级; 优先级; .2 ٭系统处理能力强
处理机调度与死锁
3.2.3基于时间片的轮转调度算法 3.2.3基于时间片的轮转调度算法