3第三章_cpu调度

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10
高级(作业)调度
作业控制块JCB(Job Control Block):为了管理和调度作业,在多 道批处理系统中为每个作业设置了一个作业控制块,它是作业在 系统中存在的标志,其中保存了系统对作业进行管理和调度所需 的全部信息。 (作业标识、作业类型、作业状态、调度信息、资源需求进入、 开始、完成、退出时间等) 作业调度:根据作业控制块中的信息,审查系统能否满足用户 作业的资源需求,以及按照一定的算法,从外存的后备队列中选 取某些作业调入内存,并为它们创建进程、分配必要的资源。然 后再将新创建的进程插入就绪队列,准备执行。
11
低级(进程)调度
通常也把低级调度(Low Level Scheduling)称为 进程调度或短程调度(Short Term Scheduling),它 所调度的对象是进程(或内核级线程)。 进程调度是最基本的一种调度,在多道批处 理、分时和实时三种类型的OS中,都必须配置 这级调度。(重点)
12
28
ቤተ መጻሕፍቲ ባይዱ
高优先级优先调度算法
为了照顾紧迫型作业, 使之在进入系统后便获得 优先处理, 引入了最高优先级优先调度算法。 1)当把该算法用于作业调度时,系统将从后备队 列中选择一个或若干个优先级最高的作业装入内存; 2)当用于进程调度时,该算法是把处理机分配给 就绪队列中优先级最高的进程。
29
高优先级优先调度算法
(1) 任务在给定的时间片内已经完成,该进程便在释放处理机后进入完成状态;
(2) 任务在本次分得的时间片内尚未完成,OS便将该任务再放入就绪队列的末尾;
(3) 在执行期间,进程因为某事件而被阻塞后,被OS放入阻塞队列。
19
高级和低级调度的调度队列模型
从外存的后备队列中选择一批作业调入内存,并为它们建立进 程,送入就绪队列,然后才由进程调度按照一定的进程调度算法选 择一个进程,把处理机分配给该进程。 流程图:
30
高优先级优先调度算法
优先级的类型:
(1)动态优先级 (2)静态优先级
31
高优先级优先调度算法
1)静态优先级(重点)
静态优先权是在创建进程时确定的,且在进程的整个运 行期间保持不变,一般用0~7 或 0~255中的某一整数来表示。 优先级的确立,主要参考以下几种依据:
(1) 进程类型。通常,系统进程(如接收进程、对换进程、磁 盘 I/O 进程)的优先级高于一般用户进程的优先级。 (2) 进程对资源的需求。如进程的估计执行时间及内存需要 量的多少,对这些要求少的进程应赋予较高的优先级。 (3) 用户要求。这是由用户进程的紧迫程度及用户所付费用 的多少来确定优先级的。
3)把处理器分配给进程:由分派程序(Dispatcher)把处理器 分配给进程。通常是先恢复处理现场,装入相关数据到寄存器, 取出断点继续执行。
16
中级调度
又称中程调度(Medium-Term Scheduling),那些暂时不能运行 的进程不再占用宝贵的内存资源,而将它们调至外存上去等待, 把此时的进程状态称为就绪驻外存状态或挂起状态。当内存稍有 空闲时,由中级调度来决定把外存上的那些又具备运行条件的就 绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列 上等待进程调度。(非重点) 目的:提高内存利用率和系统吞吐量 随着CPU的发展,上述这些调度方式,逐渐形成了一定规模的 各种调度模型!
6
基本概念
CPU-I/O区间周期
CPU调度程序 分派程序
7
CPU调度准则(目标)
处理机利用率高 系统吞吐量高
周转时间短
响应时间快
截止时间的保证
优先权准则 各类资源的平衡利用
8
CPU调度层次
高级(作业)调度
中级调度 低级(进程)调度
9
高级(作业)调度
又称为作业调度或长程调度(Long Term Scheduling), 其主 要功能是根据某种算法,把外存上处于后备队列中的那些作 业调入内存,也就是说,它的调度对象是作业。
作业:作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和 数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运 行进行控制 作业步:通常,在作业运行期间,每个作业都必须经过若干个相对独立, 又相互关联的顺序加工步骤才能得到结果,我们把其中的每一个加工步 骤称为一个作业步,各作业步之间存在着相互联系,往往是把上一个作 业步的输出作为下一个作业步的输入。 作业流:若干个作业进入系统后,被依次存放在外存上,这便形成了输 入的作业流;在操作系统的控制下,逐个作业进行处理,于是便形成了 处理作业流。
14
低级(进程)调度
进程调度方式:
抢占方式(Preemptive Mode):允许调度程序根据某种原则 去暂停某个正在执行的进程,将已分配给该进程的处理机重新 分配给另一进程。 优点:防止长时间占用处理器,公平,满足实时要求; 缺点:开销较大。
那么,采用进程调度,是要达到什么样的效果呢?
15
低级(进程)调度
多级队列调度算法
多级反馈队列调度
22
先到先服务调度(FCFS)算法
先来先服务(FCFS)调度算法是一种最简单的调度算法,该算 法既可用于作业调度,也可用于进程调度。 1)当在作业调度中采用该算法时,每次调度都是从后备作 业队列中选择一个或多个最先进入该队列的作业,将它们调入内 存,为它们分配资源、创建进程,然后放入就绪队列。 2)在进程调度中采用 FCFS算法时,则每次调度是从就绪队 列中选择一个最先进入该队列的进程,为之分配处理机,使之投 入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处 理机。 示例:已知A、B、C、D四种进程业分别到达系统的时间和要 求服务的时间,计算它们开始执行的时间及各自的完成时间, 并计算出各自的周转时间和带权周转时间。
23
先到先服务调度(FCFS)算法
进程处理顺序:
A
B 1
0
C 101 102
D 202
24
先到先服务调度(FCFS)算法
由示例和定义分析、总结: FCFS算法是非抢占式的,短作业C的带权周转时间高达 100,而长作业 D 的带权周转时间仅为1.99,由此可知, FCFS 调度算法有利于 CPU 繁忙型的作业,而不利于 I/O 繁忙型的作业(进程),而目前的大多数事务处理都属于 I/O 繁忙型作业(进程),如何解决这个问题呢?
17
调度模型
低级(进程)调度的调度队列模型(重点)
高级(作业)和低级(进程)调度的调度队 列模型 三级调度的调度队列模型
18
进程调度的调度队列模型(重点)
处于就绪状态的进程组织成栈、树或一个无序链表等,至于到 底采用其中哪种形式,则与OS类型和所采用的调度算法有关。
流程图:
由图分析,发现进程在执行时都可能出现以下三种情况:
该算法主要有以下几种方式:
(1)非抢占式优先级算法
在这种调度方式下,系统一旦把处理机分配给就绪队列中 优先级最高的进程后,该进程就能一直执行下去,直至完成; 或因等待某事件的发生使该进程不得不放弃处理机时,系统才 能将处理机分配给另一个优先级高的就绪进程。 (2)抢占式优先级算法
系统把处理机分配给优先级最高的进程,使之执行。但在 其执行期间,一旦出现一个优先级更高的就绪进程,进程调度 程序就立即停止当前进程(原优先级最高的进程)的执行,重新将 处理机分配给新到的优先级最高的进程。
各个兵种是什么?
指挥作战的人是什么? 何为兵法?
作业或进程 处理器(CPU)
4
追踪问题
CPU是什么
是一块超大规模的集成电路,是一台计 算机的运算核心和控制核心。
CPU干什么
按某种算法,动态地把处理机(CPU) 分配给就绪队列中的一个进程,使之执行。
提出问题:CPU如何去调度某个进程?
5
CPU 调度
由图分析,和进程调度模型比较,发现有两个方面不同:
(1) 就绪队列的形式。 在批处理系统中, 最常用的是最高优先权优先调度算法, 相应地,最常用的就绪队列形式是优先权队列; (2) 设置多个阻塞队列。当系统较大时,若仍只有一个阻塞队列,其长度必然会 很长,队列中的进程数可以达到数百个,这将严重影响对阻塞队列操作的效率。
低级(进程)调度
进程调度中的三个基本机制:
排队器:为了提高进程调度的效率,应事先将系统中所有的 就绪进程按照一定的方式排成一个或多个队列,以便调度程序能 最快地找到它。 分派器:把由进程调度程序所选定的进程,从就绪队列中取 出该进程,然后进行上下文切换,将处理机分配给它。 上下文切换机制:当对处理机进行切换时,会发生两对上下 文切换操作。在第一对上下文切换时,操作系统将保存当前进程 的上下文,而装入分派程序的上下文,以便分派程序运行;在第 二对上下文切换时,将移出分派程序,而把新选进程的CPU现场 信息装入到处理机的各个相应寄存器中。
13
低级(进程)调度
进程调度方式:
非抢占方式(Non-preemptive Mode):在采用这种调度方式 时,一旦把处理机分配给某进程后,不管它要运行多长时间, 都一直让它运行下去,决不会因为时钟中断等原因而抢占正在 运行进程的处理机,也不允许其它进程抢占已经分配给它的处 理机。直至该进程完成,自愿释放处理机,或发生某事件而被 阻塞时,才再把处理机分配给其他进程。 优点:实现简单,系统开销小,适用于大多数的批处理系统环境; 缺点:不能立即执行,不适合实时系统等。
20
三级调度的调度队列模型
当在 OS 中引入中级调度后,把进程的就绪状态分为内存就 绪(表示进程在内存中就绪)和外存就绪(进程在外存中就绪)。在 中级调度的作用下,可使外存就绪转为内存就绪。(非重点) 流程图:
上述模型中,内部是如何调度相关的进程呢?
21
调度算法
先到先服务调度(FCFS)算法 最短作业优先调度(SJ(P)F) 高优先级优先调度算法 轮转法调度
25
最短作业优先调度(SJ(P)F)
短作业(进程)优先调度算法SJ(P)F,是指对短作业或短 进程优先调度的算法。它们可以分别用于作业调度和进程 调度。 1)短作业优先(SJF)的调度算法是从后备队列中选择一 个或若干个估计运行时间最短的作业,将它们调入内存运 行。 2)短进程优先(SPF)调度算法则是从就绪队列中选出一 个估计运行时间最短的进程,将处理机分配给它,使它立 即执行并一直执行到完成,或发生某事件而被阻塞放弃处 理机时再重新调度。 示例:已知A、B、C、D、E五种进程分别到达系统的时间 和要求服务的时间,比较这五个进程分别采用FCFS算法和 SJF算法进行调度的执行结果。
26
最短作业优先调度(SJ(P)F)
SJF调度,进程的处理顺序: A D B 6 9
27
E 13
C 18
0
4
最短作业优先调度(SJ(P)F)
由示例和定义分析、总结: SJ(P)F调度算法可能是抢占式的或非抢占式的,相 对于FCFS调度算法,能有效降低作业的平均等待时 间,提高系统吞吐量,但是,并没有考虑到作业或 进程的紧迫程度,不能保证紧迫型作业(进程)的 及时处理
33
高优先权优先调度算法
进程 服务时 优先级 间 A 10 3 B 1 1 开始时 间 6 0 结束时 间 16 1 周转时 间 16 1 带权周转 时间 1.6 1
C D E
32
高优先级优先调度算法
1)静态优先级(重点)
示例:进程A、B、C、D和E在0时刻同时到达系统,已知他们的 要求服务时间以及优先级,计算它们各自的开始执行的时间及 完成时间,并计算出各自的周转时间和带权周转时间。
进程 A B C D E 服务时间 10 1 2 1 5 优先级 3 1 4 5 2
小数字表示 高优先级
进程调度的功能:
1)保存处理机的现场信息:保存当前进程的处理机的现场 信息,如程序计数器、多个通用寄存器中的内容等,将它们送 入该进程的进程控制块(PCB)中的相应单元。 2)按某种算法选取进程:进程调度程序按某种算法如优先 级算法、轮转法等,从就绪队列中选取一个进程,把它的状态 改为运行状态,并准备把处理机分配给它。
第3章 CPU调度
本章内容
1.1 场景引入
1.2 CPU调度 1.3 多CPU调度
1.4 总结
2
兴趣话题
两军对垒,实力相当,如何取胜?
3
分析问题
《宋史· 岳飞传》记载,岳飞对宗泽说:“阵而后战,兵法
之常,运用之妙,存乎一心。”
意思是摆好阵势以后出战,这是打仗的常规,但运用的 巧妙灵活,全在于善于思考。指高超的指挥作战的艺术。
相关文档
最新文档