计算机操作系统讲义 第三章
计算机操作系统课件(第四版)第三章
9
3.1.3、中级调度
中级调度(中程调度) 目的:提高内存利用率和系统吞吐量 按一定的算法将外存上已具备运行条件的挂起进
程换入内存,挂到就绪队列上,准备执行;而将 内存中处于阻塞状态的某些进程换出至外存。
2021/4/14 星期三
10
3.2、调度队列模型
调度队列模型 选择调度方式和调度算法的若干准则
RR
周转时间
4
6
9 10
q=4
带权周转时间 1 2 2.25 5
周转时间
= 完成时间 – 到达时间
带权周转时间 = 周转时间 / 服务时间
2021/4/14 星期三
E 平均
4 4 17 13 11.8 3.33 3.46 17 13 8.4 3.33 2.5
33
2、多级反馈队列调度算法 原理:
设置多个就绪队列,并为各个队列赋予不同的优 先级和不同长度的时间片;
2021/4/14 星期三
34
时间 片完
时间 片完
就绪队列一 就绪队列二 就绪队列三
进程
调度
进程完成
CPU
时间 片完
…… 就绪队列 n
多级反馈队列调度算法示意图
2021/4/14 星期三
入内存运行。 短进程优先(SPF) 从就绪队列中选出估计运行时间最短的进程,将
处理机分配给它,使它立即执行。 直到运行完成进程才会让出处理机--非抢占式。 缺点: 对长作业不利,有可能长期不被调度; 完全没考虑作业的紧迫程度(某些特殊的); 用户做出的估计时间带有很大的主观性。
2021/4/14 星期三
第三章 处理机调度与死锁
第一节 处理机调度的层次 第二节 调度队列模型和调度准则 第三节 调度算法 第四节 实时调度 第五节 产生死锁的原因和必要条件 第六节 预防死锁的方法 第七节 死锁的检测和解除
操作系统第三章PPT课件
2021
第三章 处理机调度和死锁4
一、处理机调度的层次
创建
高级调度
就绪态
运行态
退出
等待态
低级调度
挂起等待态 挂起就绪态
中级调度
2021
第三章 处理机调度和死锁5
一个作业从提交开始,往往要经历三级调度:
高级调度、低级调度、中级调度
P1 P2 P3 P4
❖ Gantt图
到达时间 0.0 2.0 4.0 5.0
服务时间 7 4 1 4
优先权 3 2 4 1
P1 P2
P4
P2 P1
P3
02
5
9 10
15 16
平均周转时间=((15-0)+(10-2)+(16-4)+(9-5))/4=9.75
2021
第三章 处理机调度和死锁30
3、优先权:通常用某范围内的整数表示,称为优先数。有些系 统中,优先数越大优先权越高,有些则反之。如: 优先权的类型:静态优先权和动态优先权
计算机操作系统
Computer Operating System
主讲:姜 华
聊城大学计算机学院
2021
1
第三章 处理机调度与死锁
Processor Scheduling and Deadlock
调度是操作系统的基本功能,几乎所有的计算机 资源在使用之前都要经过调度。处理机是最重要的计 算机资源,提高处理机的利用率及改善系统性能,在 很大程度上取决于处理机调度性能的好坏,因而,处 理机调度成为操作系统设计的中心问题之一。
❖ FCFS
P1 0 2 45
操作系统课件-OS-第三章-第3章-3.3+3.4
不能满足紧迫性作业要求
“短”值得怀疑
2021/3/18
13
3.3.2 高优先权优先调度算法
1.优先权调度算法的类型
为了照顾紧迫型作业,使之在进入系统后便获得优先处 理,引入了最高优先权优先(FPF)调度算法。此算法常被用于 批处理系统中,作为作业调度算法,也作为多种操作系统中 的进程调度算法,还可用于实时系统中。当把该算法用于作 业调度时,系统将从后备队列中选择若干个优先权最高的作 业装入内存。
2021/3/18
15
2) 抢占式优先权调度算法
在这种方式下,系统同样是把处理机分配给优先权最高 的进程,使之执行。但在其执行期间,只要又出现了另一个 其优先权更高的进程,进程调度程序就立即停止当前进程(原 优先权最高的进程)的执行,重新将处理机分配给新到的优先 权最高的进程。
显然,这种抢占式的优先权调度算法能更好地满足紧迫 作业的要求,故而常用于要求比较严格的实时系统中,以及 对性能要求较高的批处理和分时系统中。
短作业插队!
2021/3/18
12
SJ(P)F调度算法也存在不容忽视的缺点:
(2) 该算法完全未考虑作业的紧迫程度,因而不能保证 紧迫性作业(进程)会被及时处理。
(3) 由于作业(进程)的长短只是根据用户所提供的估计 执行时间而定的,而用户又可能会有意或无意地缩短其作业 的估计运行时间,致使该算法不一定能真正做到短作业优先 调度。
2021/3/18
14
1) 非抢占式优先权算法
在这种方式下,系统一旦把处理机分配给就绪队列中优 先权最高的进程后,该进程便一直执行下去,直至完成;或 因发生某事件使该进程放弃处理机时,系统方可再将处理机 重新分配给另一优先权最高的进程。
计算机操作系统(第三章)_3.1-3.4
2013-11-25
第三章 进程管理
第24页
3.程序并发执行的相互制约 在多道程序设计的环境下,程序是并发执行的。 即系统中有多道程序在“同时”执行,这些程序之间 要共享系统的资源,程序之间有共享资源(通信)的 关系。共享与竞争产生一系列的矛盾,这些矛盾实际 上是一种相互制约,有直接的,也有间接。 (1)资源共享 (间接制约关系) (2)进程合作 (直接制约关系)
2013-11-25
第三章 进程管理
第22页
五. 并发程序的特征
1. 失去程序的封闭性和可再现性 如果程序执行的结果是一个与时间无关的函数,即具有封 闭性。 若一个程序的执行可改变另一个程序的变量,象二个并发 程序完成誊抄的例子,程序执行的结果不仅依赖于程序的初始 条件,还依赖于程序执行时的相对速度,在这种情况下就失去 了程序的封闭性。 在并发环境中,机内资源状态将由多个程序来改变,因此 使程序的运行失去了封闭性。
回头来,我们再看看操作系统的第三个特性: 不确定性*
2013-11-25
第三章 进程管理
第25页
3.1.2
进程概念
操作系统的特性之一是并发与共享,即在系统中 (内存)同时存在几个相互独立的程序,这些程序在 系统中既交叉地运行,又要共享系统中的资源,这就 会引起一系列的问题,包括:对资源的竞争、运行程 序之间的通信、程序之间的合作与协同等等。
2013-11-25
特点: 1. 系统能够正确执行 2. 卡片输入机和打印机 可并行工作,并协调 速度。
第三章 进程管理
第21页
四. 与时间有关的错误
1. 什么是与时间有关的错误 执行结果与并发程序执行的相对速度相关。
2. 为什么会发生与时间有关的错误 当两个或多个程序有共同的临界资源时,由于程 序执行的速度不同,则会发生与时间有关的错误。
计算机操作系统第三章
计算机操作系统第三章1.⾼级调度与低级调度的主要任务是什么?为什么要引⼊中级调度?⾼级调度主要功能是根据某种算法,决定将外存上处于后备队列中的哪⼏个作业调⼊内存,为它们创建进程,分配必要的资源,并将它们放⼊就绪队列。
低级调度主要功能是根据某种算法,决定就绪队列中的哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。
引⼊中级调度的主要⽬的是,提⾼内存利⽤率和系统吞吐量。
使那些暂时不能运⾏的进程不再占⽤内存资源,将它们调⾄外存等待,把进程状态改为就绪驻外存状态或挂起状态。
2.处理机调度算法的共同⽬标是什么?批处理系统的调度⽬标⼜是什么?共同⽬标:资源利⽤率,公平性,平衡性,策略强制执⾏。
批处理系统的调度⽬标:平均周转时间短,系统吞吐量⾼,处理机利⽤率⾼。
3.何谓作业、作业步和作业流?作业:作业是⼀个⽐程序更为⼴泛的概念,它不仅包含了通常的程序和数据,⽽且还应配有⼀份作业说明书,系统根据该说明书来对程序的运⾏进⾏控制。
在批处理系统中,是以作业为基本单位从外存调⼊内存的。
作业步:通常,在作业运⾏期间,每个作业都必须经过若⼲个相对独⽴⼜相互关联的顺序加⼯步骤才能得到结果。
我们把其中的每⼀个加⼯步骤称为⼀个作业步。
各作业步之间存在着相互联系,往往是上⼀个作业步的输出作为下⼀个作业步的输⼊。
作业流:是指若⼲个作业进⼊系统后依次存放在外存上形成的输⼊作业流,在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4.在什么情况下需要使⽤作业控制块JCB,其中包含了哪些内容?每当⼀个作业进⼊系统时,便由“作业注册”程序为该作业建⽴⼀个作业控制块JCB。
再根据作业类型,将它放到相应的作业后背队列中等待调度。
通常在JCB中包含的内容有:作业标识、⽤户名称、⽤户账户、作业类型(CPU繁忙型、I/O繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业运⾏时间)、资源请求(预计运⾏时间、要求内存⼤⼩等)、资源使⽤情况等。
计算机操作系统原理知识点第三章教学文稿
计算机操作系统原理知识点第三章所谓的程序的并发执行,是指内存中可以同时驻留多个运行中的程序,他们共享cpu和各种系统资源,以并发方式进行运算。
进程:进程实质性各种定义:P63 .21.进程是程序的一次执行2.进程是可以和别的计算并发执行的计算3.进程可定义为一个数据结构以及能在其上执行的程序4.进程是一个程序及其数据在处理机上顺序执行时所发生的活动5.进程是一个程序在数据集上运行的过程,他是系统进行资源分配和调度的一个独立单位进程的特征:P63 .21.动态性2.并发性3.独立性4.异步性5.结构特征(进程通常是由程序段、数据段和堆栈、进程控制块三部分组成)进程控制块是系统对进程实施管理的唯一依据和系统能够感知到进程存在的唯一标识一个进程的至少具有的3基本状态:1.就绪状态:是指进程以获得cpu以外的所必要的资源,只要获得cpu,便可以立即执行时的状态2. 执行状态:是指进程以获得cpu ,其程序在cpu 上执行时的状态在单cpu 的系统中,任一时刻至多只有一个进程处于执行状态。
在多cpu 的系统中,则可以同时有多个进程处于执行状态3. 阻塞状态:是指正在cpu 上执行的进程,因需要等待某个事件暂时无法继续执行,而放弃cpu 时的状态。
1. 就绪→执行2. 执行→就绪3. 执行→阻塞4. 阻塞→就绪进程同步:是指多个合作进程为了完成一组相关任务在执行速度上的相互协调。
进程同步和进程互斥的联系与区别:联系:进程互斥从某种意义上可看是进程同步的一种特例。
区别:进程互斥是并发进程间因共享临界资源所产生的间接制约关系,而进程同步则是合作进程间因执行顺序所产生的直接制约关系PV 原语单机系统中普遍采用高级通信方式可分为3大类: 阻塞 时间片完成事件发生 事件等待进程的基本状态及其转换1.共享存储器:是指进程之间通过存在内存中开辟一个共享存储空间进行信息交换的一种通信方式。
2.消息传递:是指进程之间以消息为单位3.管道通信:是指unix操作系统开创的一种利用共享文件进行信息交换的一种通信方式。
操作系统第三章课件
Bernstein并发执行的条件:
如果对于语句S1和S2,有 ① R(S1)∩ W(S2)={∮}, ② W(S1)∩ R(S2)={∮}, ③ W(S1)∩ W(S2)={∮} 同时成立, 则语句S1和S2是可以并发执行的。
程序的并发执行所带来的影响
如果并发执行的程序段不按照特定的规则和方 法进行资源共享和竞争,则其执行结果将不可 避免地失去封闭性和可再现性。 例如: 图3.1 堆栈的取数和存数过程
进程和程序的区别:
进程是动态的,程序是静态的:程序是有序代码 的集合;进程是程序的执行。通常进程不可在计 算机之间迁移;而程序通常对应着文件、静态和 可以复制。 进程是暂时的,程序的永久的:进程是一个状态 变化的过程,程序可长久保存。 进程与程序的组成不同:进程的组成包括程序、 数据和进程控制块(即进程状态信息)。 进程与程序的对应关系:通过多次执行,一个程 序可对应多个进程;通过调用关系,一个进程可 包括多个程序。
例:设有堆栈S,栈指针top,栈中存放内存中相 应数据块地址(如图3.1(a))设有两个程序段 getaddr(top)和reladdr(blk): procedure getaddr(top) begin local r r ←(top) top ← top-1 return(r) end
procedure reladdr(blk) begin top ← top+1 (top)← blk end getaddr 和 reladdr程序段进行顺序执行,其执 行结果具有封闭性和可再现性 两个程序段采用并发执行 1. reladdr:执行完:top ← top+1 2. getaddr(top):执行后;出现读空出错;
计算机操作系统 第三章-62页文档资料
作 系 统
(1)通用寄存器的内容:包括数据寄存器、段 寄存器等。
操 作
操 (2)程序状态字PSW(Program Status Word) 系
作 及程序计数器PC(Program Count)值。
统
系 (3)进程的堆栈指针。
统
11
操
二十一世纪计算机本科教育
作 系
进程控制信息
统
这部分内容是系统对进程实施控制的依据,
操 主要包括程序代码及数据集的相关说明:
作
系
(1)程序代码和数据集所在的内存地址。
统
操
(2)资源清单,记载进程请求资源的情况和
作 已经占有资源的情况。
系
(3)同步与通信信息。
操
统 操
(4)外存地址。
作 系
作
(5)家族信息。
统
系
(6)链接指针。
统
12
操
二十一世纪计算机本科教育
作 系
3.2.2
进程基本状态及状态变迁
操 作 系 统
系 最具运行条件的进程投入运行。
统
10
操
二十一世纪计算机本科教育
作
处理机信息
系
统 当一个进程运行过程中发生某些事件,使该进
操 程运行不下去时,系统将剥夺它的CPU,交给别的
作 进程使用。则该进程的CPU现场信息可以保存在它
系 统 操
自己的PCB内,以便该进程重新获得CPU时可以从 此处恢复现场信息,继续运行。
作
系
状态变迁条件
统
操 作
(1) 后备就绪
系
统
当作业调度程序选中一个作业时,
统
操
作 一、进程的3种基本状态
计算机操作系统课件第3章
第三章 处理机调度与死锁
图 3-4 FCFS和SJF调度算法的性能
第三章 处理机调度与死锁
通过对上表的分析可以看出, 通过对上表的分析可以看出,不论是平均 周转时间还是平均带权周转时间, 周转时间还是平均带权周转时间,都有 较大的改善,尤其是对短作业D,其周转 较大的改善,尤其是对短作业 , 时间从原来的11降为 降为3; 时间从原来的 降为 ; 而平均带权周转时间从5.5降为 , 而平均带权周转时间从 降为1.5,这说明 降为 SJF算法能有效的降低作业的平均等待时 算法能有效的降低作业的平均等待时 提高系统的吞吐量。 间,提高系统的吞吐量。
第三章 处理机调度与死锁
短进程优先(SPF)调度算法,则是从就绪队列中 调度算法, 短进程优先 调度算法 选出一估计运行时间最短的进程, 选出一估计运行时间最短的进程, 将处理机分配给它, 将处理机分配给它,使它立即执行并一直执 行到完成, 行到完成,或发生某事件而被阻塞放弃处理 机时,再重新调度。 机时,再重新调度。 FCFS算法和 算法和SJ(P)F算法的比较: 算法的比较: 算法和 算法的比较
该种调度队列模型的特征: 该种调度队列模型的特征: 就绪状态:内存就绪; 就绪状态 内存就绪;外存就绪 内存就绪 阻塞状态:内存阻塞;外存阻塞 阻塞状态:内存阻塞;
第三章 处理机调度与死锁
3.1.3 选择调度方式和调度算法的若干准则
1. 面向用户的准则 (1) 周转时间短(批处理系统) 周转时间短(批处理系统) 1)周转时间的含义: )周转时间的含义: 2)可把平均周转时间描述为: )可把平均周转时间描述为:
第三章 处理机调度与死锁
3. 同时具有三级调度的调度队列模型
作业调度 后备队列 批量作业 交互型作业 中级调度 时间片完 就绪队列
最新计算机操作系统第3章
堆栈的取数和存数过程图
例:设有堆栈S,栈指针top,栈中存放内存中相应数 据块地址(如图3.1(a))设有两个程序段 getaddr(top)和reladdr(blk),其中getaddr(top)从给 定的top所指栈中取出相应的内存数据块地址,而 reladdr(blk)则将内存数据块地址blk放入堆栈S中。 getaddr(top)和reladdr(blk)可分别描述为: procedure getaddr(top)
从上述讨论可以看出,由于程序的顺序性、静态性 以及孤立性,用程序段作为描述其执行过程和共享 资源的基本单位既增加操作系统设计和实现的复杂 性,也无法反映操作系统所应该具有的程序段执行 的并发性、用户随机性,以及资源共享等特征。也 就是说,用程序作为描述其执行过程以及共享资源 的基本单位是不合适的。需要有一个能描述程序的 执行过程且能用来共享资源的基本单位。这个基本 单位被称为进程(或任务)。
(2) 程序的并发执行所带来的影响
程序的并发执行充分地利用了系统资源,从而提高 了系统的处理能力,这是并发执行好的一方面。但 是,正如前面所提到的那样,由于系统资源有限, 程序的并发执行必然导致资源共享和资源竞争,从 而改变程序的执行速度。如果并发执行的各程序段 中语句或指令满足上述Bernstein 的三个条件,则 认为并发执行不会对执行结果的封闭性和可再现性 产生影响。但在一般情况下,系统要判定并发执行 的各程序段是否满足Bernstein 条件是相当困难的。 从而,如果并发执行的程序段不按照特定的规则和 方法进行资源共享和竞争,则其执行结果将不可避 免地失去封闭性和可再现性。下面的例子说明了这 一点。
计算机操作系统第3章
3.1 进程的概念 现代操作系统的重要特点:
程序的并发执行、资源共享、用户随机地使用。 1.程序的顺序执行 程序的顺序执行:程序独占处理机直至最终结束的过
计算机基础课件 第3章 操作系统基础知识
系统区,存放操作系统和其他系统程序和数据 用户区,存放用户程序和数据
第3章 操作系统基础知识
存储管理
存储管理包括四个方面的功能:
内存分配与回收 地址转换 存储保护 存储扩充
第3章 操作系统基础知识
存储分配
按一定的策略或算法为各个并发的进程及相 关数据分配内存空间,最终目标是提高内存 利用率,并保证正常运行
第3章 操作系统基础知识
进程概念的引入
程序是一个“静态”的概念 在多个程序并发执行的情况下,“程序”不能解 释、描述和管理程序的并发过程 操作系统无法用“程序”的概念,表述和管理对 处理机资源的分配调度
引入了“进程”的概念
第3章 操作系统基础知识
进程的定义
进程是现代操作系统的基本概念,是并发程序出现后 必然出现的一个重要概念 进程是程序在一个数据集合上被运行的过程,即执行 起来的程序(“活起来”的程序;“活着”的程序) 在多程序执行的环境下,进程是处理机进行资源分配、 调度和程序运行的基本单位 处理机管理可归结为进程管理
整 管理复杂;但存储器的使用效率高 在现代多程序运行系统中,普遍采用此方式
第3章 操作系统基础知识
地址转换(重定位)
地址转换的定义: 将程序在外存空间中的逻辑地址转换为 内存空间中的物理地址
第3章 操作系统基础知识
地址转换(重定位) (了解) ——物理地址 vs 逻辑地址
内存由若干的存储单元组成;每个存储
存储扩充的目的是利用有限的内享部同存一储块空内间存运区行更大
的程序或更多个程序
将需要执行的程序段调入
内存区,覆盖已经执行结 存储扩充的一般方法有三种: 束的程序段
自动覆盖技术
交换技术 虚拟存储技术
计算机操作系统(第三版)第3章
是指某任务必须开始执行的最迟时间,或必须完成的最迟时
间。对于严格的实时系统,其调度方式和调度算法必须能保 证这一点,否则将可能造成难以预料的后果。
(4) 优先权准则。在批处理、分时和实时系统中选择调
度算法时,都可遵循优先权准则,以便让某些紧急的作业能 得到及时处理。在要求较严格的场合,往往还须选择抢占式 调度方式,才能保证紧急作业得到及时处理。
第三章 处理机调度与死锁 FCFS算法比较有利于长作业(进程),而不利于短作业 (进程)。下表列出了A、B、C、D四个作业分别到达系统的
时间、要求服务的时间、开始执行的时间及各自的完成时
间,并计算出各自的周转时间和带权周转时间。
进程名 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
第三章 处理机调度与死锁 2) 决定接纳哪些作业 应将哪些作业从外存调入内存,这将取决于所采用的调 度算法。 最简单的是先来先服务调度算法; 较常用的一种算法是短作业优先调度算法; 较常用的是基于作业优先级的调度算法; 比较好的一种算法是“响应比高者优先”的调度算法
第三章 处理机调度与死锁 3.1.2 低级调度
就 绪 队 列
CPU
事件1出现
等待事件1
事件2出现
等待事件2
„
事件n出现
图 3-2
„
具有高、低两级调度的调度队列模型
„
„
等待事件n
第三章 处理机调度与死锁 (1) 就绪队列的形式。 (2) 设置多个阻塞队列
第三章 处理机调度与死锁 3.同时具有三级调度的调度队列模型 当在OS中引入中级调度后,人们可把进程的就绪状态分 为内存就绪(表示进程在内存中就绪)和外存就绪(进程在外存 中就绪)。类似地,也可把阻塞状态进一步分成内存阻塞和外 存阻塞两种状态。在调出操作的作用下,可使进程状态由内 存就绪转为外存就绪,由内存阻塞转为外存阻塞;在中级调 度的作用下,又可使外存就绪转为内存就绪。图3-3示出了具 有三级调度的调度队列模型。
计算机操作系统第3章2
3.5.1 进程间的关系——并发执行举例
例2:一飞机订票系统,两 个终端,运行T1、T2进程 T1 : T2: ... ... Read(x); Read(x); y1:=x; y2:=x; if y1>=1 then if y2>=1 then y1:=y1-1; y2:=y2-1; x:=y1; x:=y2; write(x); write(x); ... ... 设x的当前值为:100 1. 若执行顺序为: 先T1; 后T2; 则结果:x = 98 2. 若执行顺序为: T1: Read(x); T2: Read(x); T1: if y1>=1 then y1:=y1-1; T2: if y2>=1 then y2:=y2-1; T1: write(x); T2: write(x); 5/236 则结果 x = 99
3.5 进程互斥和同步
3.5.1 进程间的关系——进程间的交互
进程的互斥(间接作用)mutual exclusion
由于各进程要求共享资源,而有些资源需要互 斥使用,因此各进程间竞争使用这些资源,进 程的这种关系为进程的互斥
临界资源 critical resource
系统中某些资源一次只允许一个进程使用,这 样的资源为临界资源或互斥资源或共享变量
16/236
第三章 进程管理
3.5 进程互斥和同步
3.5.2 互斥算法——进程互斥的软件方法
算法1:单标志 有两个进程Pi、Pj
Pi
while (turn != j); while (turn != i); 在Pi出让临界区之后, critical section critical section Pj使用临界区之前, Pi不可能 turn = j; 再次使用临界区 turn = i; remainder section remainder section
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
返回
实时调度算法的分类
• 非抢占式调度算法 轮转调度算法
进程1 进程2 …… 进程n
实时进程
实时进程到达
调度实时进程运行
非抢占式优先权调度算法
当前进程 实时进程
实时进程请求到
调度实时进程运行
返回
实时调度的特点
1.要求更详细的调度信息:如, 就绪时间、开始或完成截止 时间、处理时间、资源要求、 绝对或相对优先级(硬实时 或软实时)。 2.采用抢先式调度。
中级调度
• 又称:中程调度 • 将暂时不能运行的进程调至 外存等待;当这些进程又具备运 行条件、且内存有空闲时,由中 级调度决定将哪些具备条件的就 绪进程调进内存。
长程调度
新建
长程调度
就绪 挂起
阻塞 挂起
就绪
中程调度
短程调度
运行
阻塞
中程调度
处理机三级调度示意图
调度队列模型
1、仅有进程调度的调度队列模型 (分时系统) • 2、具有高级、低级调度(批处理) • 3、同时具有高、中、低级调度
(3)运行进程一定是就绪进程中优先权 最高的进程吗? [解析] 不一定。如果当前的运行进程 是系统进程或正处于系统态,此时即 使出现了比现行进程优先权更高的进 程,系统也不一定回抢占处理机。
返回
本节要求
• 1.了解实时调度的基本要求 • 2.了解抢占和非抢占式实时 进程调度算法的分类
3.3 实时调度
3.5产生死锁的原因和必要条件
• 一、产生的原因: 1. 争夺资源 2. 进程间推进顺序不当 涉及的概念:
可剥夺资源:处理机、内存储区 不可剥夺资源:磁带机、打印机
争夺资源
分配 R2 请求 P2 P1 请求 R1
分配
返回
进程间推进顺序不当
假设有内存200 kb • 进程p1 ……… 申请80 kb ……… 申请60 kb ……….
为什么说多级反馈队列调度算法能 较好地满足各类用户的需要?
• 2. 对于短批处理作业用户而言,他 们的作业开始时像终端型作业一样, 如果仅在第一队列中执行一个时间片 即可完成,使可获得与终端型作业一 样的响应时间,对于稍长的作业,通 常也只需要在第二队列和第三队列中 备执行一个时间片即可完成,其周转 时间仍然较短;
• 2. 系统中有4个进程都要使用某类资源, 若每个进程最多需要3个该类资源,则系 统至少提供( ) 个该类资源就一定不 会发生死锁。 A :3 B :4 C :9 D :12 答案:C [解析]可用公式 m-1>=(x-1)*n 推导 。 返回
多级反馈队列算法
1.设置多个就绪队列,分别赋予 不同的优先级,如逐级降低, 队列1的优先级最高。每个队列 执行时间片的长度也不同,规 定优先级越低则时间片越长。
多级反馈队列算法
2.新进程进入内存后,先投入队列 1的末尾,按FCFS算法调度;若 按队列1一个时间片未能执行完, 则降低投入到队列2的末尾,同 样按FCFS算法调度;如此下去, 降低到最后的队列,则按"时间 片轮转"算法调度直到完成。
返回
多CPU系统的类型
• 1、紧密耦合MPS: 高速总线互连处理器 •
松耦合MPS:
通道或通信线路互连处理器
多CPU系统的类型
• 2、对称多处理器系统
多处理器在功能及结构上相同
•
非对称多处理器系统 有主和从的区别
返回
进程分配方式 • 1、对称多处理器系统中的进 程分配方式 • 静态与动态分配方式 • 2、非对称多处理器系统中的 进程分配方式
第三章 处理机调度与死锁
• • • • • • • 1.处理机调度的基本概念 2.调度算法 3.实时调度 4.多处理机系统的调度 5.产生死锁的原因和必要条件 6.预防死锁的方法 7. 相关习题
本节要求
• 1.熟练掌握高、中、低三级调度的含义 • 2. 掌握三级调度队列的模型 • 3. 了解选择调度方式的准则
返回
进程调度方式
• 1、自调度方式 • 2、成组调度方式 : • 面向所有应用程序平均分配CUP时 间 • 面向所有线程平均分配CUP时间 • 3、专用处理器分配方式
返回
本节要求 • 1.掌握死锁产生的原因及必要 条件 • 2.熟练掌握避免死锁的银行家 算法
3.5产生死锁的原因和必要条件
• 死锁(deadlock):多个进程在运 行过程中因为争夺资源而造成的 一种僵局
外存
1
2
内存ቤተ መጻሕፍቲ ባይዱ
3
cpu
高级调度
• 又称:作业调度、长调度 • 调度实质:外存内存 • 调度内容:接纳多少作业、接纳 哪些作业 • 适用范围:用于批处理
低级调度
• • • • 又称:进程调度、短程调度 调度实质:就绪进程CPU 调度方式: 非抢占 、 抢占 适用范围:批处理系统、分时系统、 实时系统
• 1.系统有某类资源12个供若干进程共 享,若每个进程申请的资源数量不 超过4个,则最多允许( ) 个进 程共享资源就可以保证系统是安全 的。 • A ) 3 B)4 C )12 D )16 • 答案:A
• [解析]可用公式 m-1>=(x-1)*n 推导 。其 中 m=12, x=4, n为共享资源进程数。
时间片完
就
事 件 出 现
绪 队 列
进程调度
cpu
阻 塞 队
列
等待事件
仅有进程调度的调度队列模型
选择调度算法的准则
1.面向用户 周转时间短 响应时间快 截止时间保证 2.面向系统 系统吞吐量高 处理机利用率高 各类资源平衡利用
返回
3.2 处理机调度算法
• • • • • 1.先来先服务 2.短作业优先 3.高优先权优先 4.基于时间片的轮转调度算法 5.相关习题
• 1.静态优先权: 创建进程时就确定,直到进程终止前 都不改变。通常是一个整数。 • 依据: – 进程类型(系统进程优先级较高) – 对资源的需求(对CPU和内存需求较少 的进程,优先级较高) – 用户要求(紧迫程度和付费多少)
高优先权优先的调度算法
• 2.动态优先权: 在创建进程时赋予的优先级,在进 程运行过程中可以自动改变,如: • 在就绪队列中,等待时间延长则优先级 提高,从而使优先级较低的进程在等待 足够的时间后,其优先级提高到可被调 度执行; • 进程每执行一个时间片,就降低其优先 级,从而一个进程持续执行时,其优先 级降低到出让CPU。
时间片轮转算法
• 将系统中所有的就绪进程按照FCFS原则,排成 一个队列。 • 每次调度时将CPU分派给队首进程,让其执行 一个时间片。时间片的长度从几个ms到几百ms。 • 在一个时间片结束时,发生时钟中断。 • 调度程序据此暂停当前进程的执行,将其送到 就绪队列的末尾,并通过上下文切换执行当前 的队首进程。 • 进程可以未使用完一个时间片,就出让CPU (如阻塞)。
多级反馈队列算法
3.仅当较高优先级的队列为空,才 调度较低优先级的队列中的进程 执行。如果进程执行时有新进程 进入较高优先级的队列,则抢先 执行新进程,并把被抢先的进程 投入原队列的末尾。
返回
为什么说多级反馈队列调度算法能 较好地满足各类用户的需要?
• 解:多级反馈队列调度算法能较好地 满足各种类型用户的需要。 • 1. 对终端型用户而言, 由于终端型 作业用户所提交的作业大部属于交互 型作业,作业通常比较短小 , ,系统 只要能使这些作业在第一队列所规定 的时间片内完成,便可使终端型作业 用户感到满意;
• • • • 一、实时调度的基本条件 二、实时调度算法的分类 三、实时调度的特点 四、常用的几种实时调度算法
返回
实时调度的基本条件
• • • • • • 1、必要信息 1)就绪时间 2)开始截止时间、完成截止时间 3)处理时间 4)资源要求 5)优先级
实时调度的基本条件
• 2、系统处理能力 • 3、采用抢占式调度机制 • 4、有快速切换机制
返回
先来先服务(FCFS)调度算法
• 用于作业调度时: 按照作业提交或进程变为就 绪状态的先后次序,分派CPU; • 用于进程调度时: 当前作业或进程占用CPU, 直到执行完或阻塞,才出让CPU (非抢占方式)。
返回
短作业优先(SJF)
又称为“短进程优先” 这是对 FCFS算法的改进,其目标是减 少平均周转时间。 对预计执行时间短的作业(进程) 优先分派处理机。通常后来的短 作业不抢先正在执行的作业。
为什么说多级反馈队列调度算法 能较好地满足各类用户的需要?
3. 对于长批处理作业用户而言, 他们的长作业将依次在第1, 2 , … ,直到第 n 个队列中运行, 然后再按轮转方式运行,用户不 必担心其作业长期得不到处 理。
西安交通大学2000年试题
• 有5个任务A到E几乎同时到达,它们预 计运行时间为10,6,2,4,8分钟,其 优先级分别为3,5,2,1和4,这里5为 最高优先级。对于下列每一种调度,计 算其平 均进程周转时间(进程切换开销可 不考虑)。 ‘ • (1)先来先服务(按A,B.C,D,E) • (2)优先级调度
先来先服务
• • • • • • 进程 A B C D E 周转时间 0+10=10 10十6=16 16十2=18 18十4=22 22十8=30
• 平均周转时间:(10+16+18+22+30)/5=19.2 分钟
优先级调度
• • • • • • • 进程 周转时间 B 0+6=6 E 6+8=14 A 14+10=24 C 24+2=26 D 26+4=30 平均周转时问;(6+14+24+ 26+ 30)/ 5=20分钟
• 在类似于unix这种按进程的动态 优先权进行调度的系统中,问: (1)没有运行进程是否一定就没有 就绪进程? [解析] 不一定。如果有进程在盘上 就绪而不是在内存就绪的话。