太原理工大学操作系统-第三章处理机调度与死锁分析

合集下载

计算机操作系统 第三章 处理机调度与死锁

计算机操作系统 第三章 处理机调度与死锁

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)处理机利用率高:大中型系统的主要指 标

第三章 处理机调度与死锁

第三章    处理机调度与死锁
8
第三章 处理机调度与死锁
3. 分时系统的目标 (1) 响应时间快
响应时间指用户提交请求到系统首次响应为止的时 间。
(2) 均衡性。 系统响应时间的快慢应与用户所请求的复杂性相适
应。
9
第三章 处理机调度与死锁
4. 实时系统的目标 (1) 截止时间的保证。 (2) 可预测性。
10
第三章 处理机调度与死锁
第三章 处理机调度与死锁
第三章 处理机调度与死锁
3.1 处理机调度的层次和调度算法的目标 3.2 作业与作业调度 3.3 进程调度 3.4 实时调度 3.5 死锁概述 3.6 预防死锁 3.7 避免死锁 3.8 死锁的检测与解除 习题
1
第三章 处理机调度与死锁
3.1 处理机调度的层次和调度算法的目标
为了提高系统效率,应当让管理输入输出的I/O进程与计算 进程搭配起来,并给予I/O进程较高的优先级。这样,一旦 I/O进程被唤醒就可很快得到运行,启动低速外设,而后再 被阻塞起来让计算进程使用CPU,使主机和外设高度并行 运行。
24
第三章 处理机调度与死锁
2. 高响应比优先调度算法(Highest Response Ratio Next,HRRN)
16
第三章 处理机调度与死锁 17
第三章 处理机调度与死锁
FCFS算法的优缺点 • 比较有利于长作业(进程),而不利于短作业(进
程)。 上图中短作业C的带权周转时间高达100,不能容忍。 而D仅为1.99。 • FCFS算法有利于CPU繁忙型作业(该类型的作业需 要大量CPU时间进行计算,很少I/O。)不利于I/O繁 忙型作业(频繁的请求I/O服务的作业)
5
第三章 处理机调度与死锁
2. 批处理系统的目标 (1) 平均周转时间短。 对每个用户而言,都希望自己作业的周转时间最短。但 作为计算机系统的管理者,则总是希望能使平均周转时间最 短,这不仅会有效地提高系统资源的利用率,而且还可使大 多数用户都感到满意。应使作业周转时间和作业的平均周转 时间尽可能短。否则,会使许多用户的等待时间过长,这将 会引起用户特别是短作业用户的不满。可把平均周转时间描 述为:

操作系统第三章处理机调度与死锁

操作系统第三章处理机调度与死锁

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

操作系统调度和死锁理论题答案及解析

操作系统调度和死锁理论题答案及解析

第三章处理机调度与死锁1.高级调度与低级调度的主要任务是什么? 为什么要引入中级调度?(1)高级调度又称为作业调度。

它是批处理系统中使用的一种调度。

其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。

(2)低级调度又称进程调度。

它是距离硬件最近的一级调度。

其主要任务是按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU。

(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。

其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。

此时的进程状态为挂起状态。

当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。

2. 处理机调度算法的共同目标是什么? 批处理系统的调度目标又是什么?共同目标:资源利用率,公平性,平衡性,策略强制执行。

批处理系统的调度目标:平均周转时间短,系统吞吐量高,处理机利用率高。

6.为什么要引入高响应比优先调度算法?它有何优点?在批处理系统中,FCFS算法所考虑的只是作业的等待时间,而忽视了作业的运行时间。

而SJF算法正好与之相反,只考虑作业的运行时间,而忽视了作业的等待时间。

高响应比优先调度算法则是既考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。

7.试说明低级调度的主要功能。

保存处理机的现场信息、按某种算法选取进程、把处理机分配给进程。

12.试比较FCFS和SJF两种进程调度算法。

相同点:两种调度算法都可用于作业调度与进程调度不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。

该算法有利于长作业/进程,不利于短作业/进程。

SJF算法每次调度都从后备队列中选择一个或若干个运行时间最短的作业,调入内存中运行。

第三章 处理机的调度和死锁

第三章 处理机的调度和死锁
处理机调度与死锁
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基于时间片的轮转调度算法

第3章-处理机调度与死锁

第3章-处理机调度与死锁
S2 就绪队列 2
S3 就绪队列 3
就绪队列 n
(时 间片 : S1<S2<S3)
20
第三章 调度与死锁
最短剩余时间
21
第三章 调度与死锁
3.3.2 高优先权优先调度算法
适合于作业调 度和进程调度
1. 优先权调度算法旳类型 1)非抢占式优先权算法(用于批处理、要求不严旳实时)
系统一旦把处理机分配给就绪队列中优先权最高旳进 程后,该进程便一直执行下去,直至完毕;或因发生某事 件使该进程放弃处理机时,系统方可再将处理机重新分配 给另一优先权最高旳进程。
1 1.17
2.25
18 12 2.4
20 12 6
8. 60 2.56
• 完 周转 带权周转 毕 时间 时间
3时 3
1
9间 7
1.17
15 11 2.75
20 14 2.8
11 3
1.5
7.60 1.84
例1 FCFS和SJF调度算法旳性能比 较
第三章 调度与死锁
例2. FCFS和SJF调度算法旳性能比较
31
第三章 调度与死锁
(2) 时间片大小旳拟定
退化成
• 时间片太大
FCFS算法
• 时间片过小切换开销大。
时间片大小拟定要考虑旳原因: (1) 系统对响应时间旳要求。(顾客数一定时,成正比)
(2)就绪队列中旳进程数目。(确保响应时间,成反比)
(3)系统旳处理能力。(确保顾客键入旳命令能在一种时 间片内处理完毕)
优点:简朴、系统开销小,合用于大多数批处理系统环境。 缺陷:难以满足紧急任务旳要求——立即执行,在要求比较 严格旳实时系统中,不宜采用这种调度方式。
3
第三章 调度与死锁

第3章 处理机调度与死锁(part4)

第3章 处理机调度与死锁(part4)

第三章 处理机调度与死锁
进入不安全状态后,便可能进入死锁状态;反之,只要处于 1. 安全状态 安全状态就不会死锁。
在避免死锁的方法中,允许进程动态地申请资源,但系统在进行资 避免死锁的实质是:系统在进行资源分配时,设法使系统不 源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系 统进入不安全状态,则将资源分配给进程; 否则,令进程等待。 进入不安全状态。
P1 S3 S1
P3 S2
P2
图 3-13 进程之间通信时的死锁
3.5.1 产生死锁的原因
1. 竞争资源引起进程死锁 2. 进程推进顺序不当引起死锁
第三章 处理机调度与死锁

由于进程在运行中具有异步性特征,这就可 能使上述P1和P2两个进程按下述两种顺序向 前推进。

进程推进顺序合法 进程推进顺序非法
第三章 处理机调度与死锁 3.5.1 产生死锁的原因 1. 竞争资源引起进程死锁

竞争非剥夺性资源引起死锁

竞争临时性资源引起死锁
打印机之类的资源属于可顺序重复使用型资源,称为永久性资源。与之 相对的是临时性资源,是指由一个进程产生,被另一进程使用一短暂时间 后便无用的资源,也称为消耗性资源,它也可能引起死锁。
12
第三章 处理机调度与死锁
3.5.3 处理死锁的基本方法
1.预防死锁 这是一种较简单和直观的事先预防方法。该方法是通过设置某 些限制条件,去破坏产生死锁的四个必要条件的一个或几个, 来预防发生死锁。预防死锁是一种较易实现的方法,已被广泛 使用。但由于所施加的限制条件往往太严格。可能会导致系统 资源利用率和系统吞吐量降低。
便进入不安全状态。 因为,此时也无法再找到一个安全序
列, 例如,把其余的2台分配给P2,这样,在P2完成后只能 释放出4台,既不能满足P1 尚需5台的要求,也不能满足P3 尚需6台的要求,致使它们都无法推进到完成,彼此都在等 待对方释放资源,即陷入僵局,结果导致死锁。

第3章处理机调度与死锁解析

第3章处理机调度与死锁解析

进程调度采用两种方式: ①非抢占方式: • 一旦分配处理机,进程就一直执行,直至完成或
发生某事件而被阻塞,不允许其它进程抢占处理 机。
• 优点:简单、系统开销小,适合大多数批处理系统 • 缺点:无法满足紧急任务的需要,不适合实时系统
②抢占方式: • 允许调度程序根据某原则,暂停正在执行的进 程,将处理机重新分配。 • 抢占原则:优先权原则 、短作业(进程)优先原 则、时间片原则
包括四部分:
等待作业调度时间(高级调度) 等待进程调度时间(低级调度) 执行时间 进程等待I/O操作完成时间
平均周转时间: t
1 n
n
ti
i 1
ti = tci-tsi
ti: 作业周转时间,tci:作业完成时间,tsi: 作业提 交(到达)时间
带权周转时间:
wi
ti tr
tr: 作业实际运行时间
先来先服务 短作业(进程)优先 高优先权先调度 时间片轮转 多级反馈队列
1、 先来先服务(FCFS)
可用于作业调度和进程调度
进程 到达 服务 开始执 完成 周转 带权周 名 时间 时间 行时间 时间 时间 转时间
A0 1
0
11
1
B 1 100 1 101 100 1
C 2 1 101 102 100 100
3、中级调度(中程调度)
目的:为了缓解内存紧张问题,将那些暂时不能 运行的进程调到外存上去等待。
当进程运行条件具备、且内存又空闲时,中级调 度程序决定将外存上的哪些进程重新调入内存。
进程状态:Ready <->Ready suspend, Blocked <->Blocked suspend
第三章 处理机调度与死锁

计算机操作系统第三章处理机调度与死锁

计算机操作系统第三章处理机调度与死锁

事件1发生 事件2发生
阻塞队列 等待事件2
阻塞队列
…… 等待事件n
事件n发生
阻塞队列
具有高、低两级调度的调度队列模型
同时具有三级调度的调度队列模型
作业 调度
时间片完 进程调度 挂起 就绪、挂起队列 事件出现 阻塞、挂起队列 挂起 进程完成
后备队列
中级 调度
就绪队列
CPU
事件发生
等待事件 阻塞队列 具有高、低、中三级调度的调度队列模型
3.2 调度队列模型和调度准则
仅有进程调度的调度队列模型
FIFO队列 时间片完 交互用户 进程调度 就绪队列 进程完成
CPU
事 件 发 生
等待事件 阻塞队列 仅具有进程调度的调度队列模型
具有高级和低级调度的调度队列模型
优先权队列
作业 调度
时间片完 进程调度 进程完成
后备队列
就绪队列
CPU
等待事件1
第三章 处理机调度与死锁
要解决的三个问题:
WHAT:按什么原则分配CPU? —进程调度算法 WHEN:何时分配CPU? —进程调度的时机 HOW: 如何分配CPU? —CPU调度过程(进程的上下文切换)
主要内容
处理机调度的层次 调度队列模型和调度准则 调度算法 实时调度 产生死锁的原因和必要条件 预防和避免死锁的办法 死锁的检测与解除
时间片轮转
• 特别适用于分时系统的调度算法。 • 实现方法:
– 由计时器发出时钟中断,引起一次轮转调度。
基本思想:基于时钟的剥夺。
以一定的时间间隔周期性产生一个时 钟中断,当中断发生时,当前正在运行的 进程被置于就绪队列末尾,然后基于FCFS 选择下一个就绪进程运行。 保证就绪队列中的所有进程在给定的 时间内都能获得一时间片(time slice)的 处理机执行时间。

计算机操作系统---第3章 处理机调度与死锁

计算机操作系统---第3章 处理机调度与死锁
第三章 处理机调度与死锁
2018/11/22
1
本章主要内容
3.1 处理机调度的层次 3.2 调度队列模型和调度准则 3.3 调度算法 3.4 实时调度(选讲) 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除
2018/11/22 2
本章重点:
调度:处理机调度的层次;各种调度算法 的原理及应用 死锁:死锁的定义;产生死锁的原因和必 要条件;预防死锁的方法;利用银行家算 法避免死锁
(1)正在执行的进程执行完毕,或因发生某事件而不能再继 续执行 (2)执行中的进程因提出I/O请求而暂停执行 (3)在进程通信或同步过程中执行了某种原语操作
优点:实现简单、系统开销小,适用于大多数的 批处理系统环境。 缺点:难以满足紧急任务的要求。
2018/11/22 14
2) 抢占方式 抢占的原则:(1)时间片原则 (2)优先权原则
放入阻塞队列。
2018/11/22 20
2018/11/22
21
2. 具有高级和低级调度的调度队列模型
与上一模型的不同: (1)在OS中不仅引入了进程调度,而且还引入了作业 调度。后者从外存的后备队列中选择一批作业调入内存,
为之创建进程后,送入就绪队列;
(2)在OS中设置多个阻塞队列。
3. 同时具有三级调度的调度队列模型
运行。
内存中作业过多,使周转时间拉长,影响系 统的服务质量;
内存总作业过少,使得系统资源利用率和系 统吞吐量降低; 2)接纳哪些作业
2018/11/22
这取决于所用的算法。
9
3.1.2 低级调度 P86
又称进程调度、短程调度,它决定就绪队列中的哪个进程 将获得处理机。

3-处理机调度与死锁全解

3-处理机调度与死锁全解
2018/10/23 1
处理机三级调度
2.低级(Short-term)调度――进程调度 进程调度决定就绪队列中哪个进程将获得处理机,然 后由分派程序执行把处理机分配给该进程的操作。进 程调度是最基本的调度,任何操作系统都有进程调度 3.中级(Medium-term)调度——对换 目的是为了提高主存利用率和系统吞吐量。进程并发 执行过程中,为了充分发挥内存的效能,将那些暂时 不能运行的进程从内存调到外存盘交换区去等待,而 将那些在盘交换区的等待事件已经发生急需调度运行 的进程从盘交换区调入内存。在UNIX系统中中级调度 就是存储管理中的对换,采用虚拟存储技术的分时系 统往往设立中级调度。
是按照进程进入就绪队列的先后次序来选择进程。
FCFS算法属于非抢占方式,一旦一个进程占有处理
机,它就一直运行下去,直到该进程完成或者因等 待某事件而不能继续运行时才释放处理机。FCFS算 法易于实现,表面上很公平。
2018/10/23 11
时间片轮转(RR)调度算法
RR是分时系统采用的主要调度算法。进程调度
2018/10/23



23
3.处理死锁的基本方法
a. 死锁的预防 静态方法:在进程执行前采取的措施,通过设 置某些限制条件,去破坏产生死锁的四个必要条件 之一,防止发生死锁。 B.死锁的避免 动态的方法:在进程执行过程中采取的措施, 不需事先采取限制措施破坏产生死锁的必要条件, 而是在进程申请资源时用某种方法去防止系统进入 不安全状态,从而避免发生死锁。
2018/10/23 15
多级队列调度算法

根据进程的性质和类型的不同,将就绪进程再分为 若干个子队列,所有的进程按其性质排入相应的队 列中,而不同的就绪队列采用不同的调度算法。 例如前后台系统可以建立两个就绪队列,批处 理作业所建立进程进入后台就绪队列;交互型作业 所建立的进程进入前台就绪队列。前台采用时间片 轮转算法,进程按FCFS等策略排序,后台采用优先 权高优先的调度算法。

第三章处理机调度与死锁

第三章处理机调度与死锁

2. 调度性能的衡量 通常采用平均周转时间和平均带权周转时间衡量. (1)周转时间和平均周转时间 作业的周转时间ti:一个作业在系统中停留的时间. ti = tci-tsi tci:作业完成时间 tsi:作业进入输入井时间 n个作业的平均周转时间t: t越小调度性能越好; 系统吞吐量大, 资源利用率越高. (2)带权周转时间和平均带权周转时间 带权周转时间wi:周转时间/运行时间 作业在系统中相对等待时间
注:平均周转时间:用来衡量不同的调度算法对 同一作业流的调度性能。 平均带权周转时间:用来衡量某种调度算法 对不同作业流的调度性能。
五. 作业调度算法 ●先来先服务调度算法 ●短作业优先调度算法 ●响应比高者优先调度算法 ●优先数调度算法 ●均衡调度算法 1.先来先服务调度算法(FCFS) 按作业到达输入井的先后次序,且满足资源要 求挑选作业进行的调度。
根据达到输入井的先后次序和满足资源要求条件,4个作业的调度次 序:A→B →D →C →E
先来先服务算法(0.1小时=6分钟)
作业
进入输 入井时间 (小时)
入内存时间 (小时)
执行时间
(分钟)
开始时间 完成时 周转时间 (小时) 间(小时)
(小时)
带权周转 时间 (小时)
A
B C
10.1
10.3 10.5
比先来先服务算法调度,t,w都下降了.
短作业优先调度算法的优缺点: 优点:提高了系统的吞吐能力. 缺点:不断地接受计算时间短的作业,会使计算时间长的作业长 期等待,长作业用户不满意. 3.响应比高者优先调度算法 每一次计算每个作业的响应比,从满足资源的作业中挑选响应比高 者优先调度. 注:该算法是先来先服务调度算法和短作业优先调度算法的折衷 方案. 等待时间 响应比=———— 计算时间

计算机操作系统 第三章 处理机调度和死锁

计算机操作系统  第三章 处理机调度和死锁

3.1 处理机调度的层次作业需经过处理机调度后才可以获得处理机来执行。

批量型作业需经过作业调度和进程调度终端型作业只需经过进程调度。

而终端型作业是指用户从中断打入键盘命令,直接控制其运行的作业。

批量型不知道什么意思,就是感觉很大的作业。

1.作业调度即高级调度功能是根据某种算法,把外存上处于后备队列的作业调入内存,调度对象是作业什么是作业??作业就是程序,数据和作业说明书,系统会根据作业说明书队程序加以控制作业步就是做了一步作业。

典型的作业步有三个:(1)编译,(2)连接装配,(3)运行,感觉像是C程序编译运行...作业中包括:作业控制块JCB 保存了系统对作业进行管理和调度所需的全部信息。

感觉就像是进程的PCB,作业进入系统时系统给他创建一个JCB,完成作业后要撤销掉。

作业调度就是根据JCB中信息看能不能为他分配资源,以及按照一定的算法来判断哪些作业可以从外存调入内存...因为用户总是希望自己的作业最快完成,但是系统希望完成所有作业的平均时间最小,所以系统既要考虑用户的感受又要考虑效率,所以要考虑两个问题,接纳多少作业,先接纳谁后接纳谁.....那么重点来了,先到先服务和短作业优先...2.进程调度即低级调度他的调度对象是进程进程调度的功能:(1)保存处理机的当前信息(2)按某种算法选个进程放处理机里(3)把进程放处理机里进程调度方式:1)非抢占式:就是把处理机分给一个进程后,就让他一直运行下去,不许抢2)抢占式:把正在运行的进程踢出去,然后符合某种条件的进来,某种条件是指,优先权高,短作业或者是按时间片运行的,按时间片就是就绪队列的每个进程先运行一个时间片,如果完成了,就完成了,没完成就把他查到就绪队列最后3.中级调度就是介入上面两种之间,不知道什么意思,第四章讲3.2 调度队列模型和调度准则1.低级中级高级调度都有一个调度对列,就是处理机从这个队列中取出进程来运行,这个队列就是调度队列2.这个队列是怎么排出来的呢?由一些准则,包括面向用户准则面向系统准则1)面向用户准则周转时间短,就是我的这个进程需要等待的时间+进程要运行的时间响应要快,就是用户通过键盘输入一个命令后到系统首次做出反应的时间截止时间的保证,系统要在这个时间内必须完成优先权准则。

第3章处理机调度与死锁part

第3章处理机调度与死锁part

22
第三章 处理机调度与死锁
【例】有5个任务A,B,C,D,E,它们几乎同时到达,预 计它们的运行时间为10,6,2,4,8min。其优先级分别为3,5, 2,1和4,这里5为最高优先级。对于下列每一种调度算法,计 算其平均进程周转时间(进程切换开销可不考虑)。 (1)先来先服务(按A,B,C,D,E)算法。
调度算法比较
短作业优先 高响应比优先 时间片轮转 多级反馈队列
否 能
能 能
能 能
能 否
队列内不一定 队列内不一定
兼顾长短作业, 有较好的响应时 间,利于终端型 作业和短批处理 作业
优点
公平,实 现简单, 利于CPU 繁忙型
不利于短作 业,不利用 I/O繁忙型
平均等待时 间最少,效 率最高
兼顾长短作 业

批处理系统中即设有作业调度,又设有进程调度。批处理系
统中的作业调度算法有先来先服务(FCFS)、短作业优先 (SJF)、优先级调度(HPF)和高响应比优先(RF)。批 处理系统的进程调度算法有:先进先出(FIFO)、短进程优 先(SPF)、优先级调度(PRI)和高响应比优先(RF)。

分时系统中只设有进程调度,不设作业调度。其进程调度算
0
0 0
2
4 8
16
18 22
18
22 30
18
22 30
5个进程的平均周转时间T为: T=(10+16+18+22+30)/5=19.2min
24


等待事件 n
10
第三章 处理机调度与死锁
3. 同时具有三级调度的调度队列模型
作业调度 后备队列 批量作业 交互型作业 中级调度 时间片完 就绪队列 进程调度 进程完成

操作系统第三章调度与死锁

操作系统第三章调度与死锁

§3.2 调度算法 (七)
六、多级队列调度
根据作业性质不同分为若干个就绪队列, 如:系统进程队列,交互进程队列,批处理队 列等。对各队列采用不同的调度算法。
§3.2 调度算法 (八)
七、多级反馈队列
亦称多级反馈轮转法(Round Robin with Multiple Feedback)
实现基本思想:
Block)描述。 • 线程是进程内一个可调度的实体。具有独立的程序计数
器。
TCB
主线程 输入线程 计算线程 输出线程
§3.5 线程的基本概念 (二)
CPU 状态 堆栈
程序计数器
. ..
寄存器
PCB
图1
进程标识 资源清单
. ..
TCB
线程1的TCB 线程2的TCB 线程3的TCB
主线程
创建线程 1 。。。 创建线程 n
在进程运行过程中,优先级会有不同幅度(0 –6)的提 升,使进程获得调度的可能性。 优先级提升幅度的原则:
随着进程等待时间增加,优先级提升幅度增加。 因进程类型而定;受 I/O 限制的进程提升幅度大于受 计算限制的进程。
进程优先级下降 :当进程因为时间片到或者等待某事 件发生而释放CPU时,优先级下降。
对最短CPU运行期的估算,依赖于系统的下一个CPU周
期中,实现较困难。进程的CPU时间
n+1
tn
n的+1 估算公式: n
其中 n 为估计的第n个CPU 周期。tn 为实际值。
为控制值,0≤ ≤1,常取 0.5 该算法优于FCFS,但长进程等待时间长,估算误差较大。
§3.2 调度算法 (三)
三、 最高优先权(HPF)算法
思考题 1、各种调度算法的特点、性能如何?适宜于 哪类 OS?

第三章 处理机调度与死锁

第三章 处理机调度与死锁

4.银行家算法的举例:P110
情况1:检查T0时刻的安全性。 情况2:若P1发出资源请求Repuest1(1,0,2), 系统是否可以为P1分配资源?即如果为之 分配资源,系统是否安全? 情况3:之后若P4发出请求Repuest4(3,3,0), 系统是否可以为P4分配资源? 情况4:之后若P0发出请求Repuest0(0,2,0), 系统是否可以为P0分配资源?
1. 相关数据结构 (1)可利用资源向量Available。 Available(j)=k表示系统中有Rj类资源k个。 (2)最大需求矩阵Max。 Max[ i,j ]=k表示进程i需要Rj类资源最大数目为k 个。 (3)分配矩阵Allocation。 Allocation[ i,j ]=k表示进程i已分得Rj类资源k个。 (4)需求矩阵Need。 Need[ i,j ]=k表示进程i还需要Rj类资源k个。
3.6.2 系统安全状态 1. 安全状态 所谓安全状态,是指系统能按某种进程顺序为 每个进程分配资源,直至满足每个进程的资源需 求进而使每个进程顺利完成。 避免死锁的实质:使系统不进入不安全状态。
2. 安全状态举例。
3. 由安全状态向不安全状态转换。
3.6.3 利用银行家算法避免死锁 银行算法的思想:该算法需要检查申请者对资源的 最大需求量,如果系统现存的资源可以满足当前 它对资源的最大需求量时,就满足当前的申请, 而且要求申请者在一定时间内(进程结束时)无 条件地归还全部资源。
P1:释放R1;释放R2; P2:释放R2,释放R1;
3.5.2 产生死锁的四个必要条件 (1)互斥条件 (2)请求和保持条件 (3)不剥夺条件 (4)循环等待条件 注意: • 当四个条件都满足时才会发生死锁。 • 破坏上述任意一个条件可以消除死锁。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

统 都要经历4个状态:提交、后备(收容)、执行和完成。
1)提交状态:通过终端设备向计算机的磁盘输入作业信息 时所处的状态。
第 2)后备状态:作业的全部信息已输入到磁盘的一个专用区
三 (输入井)中等待作业调度时所处的状态。

处 3)执行状态:在后备作业队列中的作业一旦被作业调度程
理 序选中,为它分配了必要的资源,并且建立了进程, 开始处


6

作 系
二、调度队列模型

1. 仅有进程调度的调度队列模型
时间片完
第 交互用户














就绪 队列 阻塞队列
进程调度
进程完成 CP U
等待事件
仅具有进程调度的调度队列模型
7

作 2. 具有高级和低级调度的调度队列模型


作业
时间 片完
调度
后备队列
就绪 队 列
进程 调度
进程 完成 CP U
锁 不宜采用这种调度方式。
4

作 系
2)抢占式调度方式

当重要或紧迫的进程一到,便把正在执行的进程占
有的处理机强行剥夺下来,并转给这个优先级比它更高
的重要或紧迫的就绪进程,使其运行。

三 章
抢占的原则:

(1) 优先权原则
理 机
(2) 短作业(进程)优先原则
调 度
(3) 时间片原则



5

作 系
第 行的进程继续执行,直到该进程完成任务终止运行或发生某
三 种等待事件而进入阻塞状态时,才主动放弃占有的处理机, 章 把处理机分配给重要或紧迫的就绪进程,以使其运行。
处 理
优点:实现简单、系统开销小。
机 调
适用于大多数的批处理系统环境。
度 缺点:难以满足紧急任务的要求——立即执行,因而可能造
与 死
成难以预料的后果。显然,在要求比较严格的实时系统中,

处 (1) 处理机分配的策略,即需要确定处理机的调度算法;
理 机
(2) 什么时候分配处理机,即需要确定处理机的调度时机;
调 度
(3) 如何分配处理机,即需要给出处理机的调度过程。



2
操 作
一、处理机的分级调度:
系 统
1、作业调度(高级调度):
按一定原则选择若干个后备作业调入主存,分配资源
,并建立相应的进程,投入运行。当该作业执行完毕时

机 (2) 处理机利用率好。

度 (3) 各类资源的平衡利用。
与 死 锁
10
操 作
§3.2 作业调度

统 一、作业的组织
程序 作业由三部分组成 数据
作业说明书 (说明用户的控制意图)
第 三 章
处 理 机 调 度 与 死 锁
11
操 二、作业控制块

系 作业控制块(JCB):为了管理和调度已进入系统的各个作 统 业,系统设置的用于记录作业的基本情况的数据结构。
,还负责回收资源。

三 章
在每次执行作业调度时,都须做出以下两个决定。

1) 接纳多少个作业

2) 接纳哪些作业






3
操 2、进程调度(低级调度): (线程调度)
作 系
按照某种策略从进程就绪队列中选择一个就绪进程,使其
统 占有处理机运行。
进程调度方式:
1)非抢占式调度方式
当有重要或紧迫的进程进入就绪队列时,仍然让正在执

作 系
第三章 处理机调度与死锁

3.1 处理机调度的基本概念
第 三
3.2 作业调度


3.3 进程调度


3.4 死锁





1

作 系
3.1 处理机调度的基本概念

处理机资源是计算机系统中最重要的资源,它的调度策
略,常常表示操作系统的某种特征,其算法的优劣直接影
响整个系统的性能。

三 处理机调度需要解决三个问题:
3)交换调度(中级调度)(均衡调度):

按照给定的原则实现进程在主存和外存交换区之间的换
进换出,以解决内存紧张问题,特别是具有虚拟存储器的
系统中。



引入中级调度的主要目的:

是为了提高内存利用率和系统吞吐量。 为此,应使那些

机 暂时不能运行的进程不再占用宝贵的内存资源,而将它们

度 与
调至外存上去等待。
作业控制块(JCB)的主要内容:
(1)作业的基本情况

用户名、作业名、作业的状态和使用的语言等。

章 (2)作业的控制要求

控制方式、类型、优先数、操作顺序和出错处理等。
理 机
(3)作业的资源要求
调 度
作业建立的时间、要求运行的时间、最迟完成的时间、和资源使用情况。
处 理 机 调 度

件 出
挂起

阻塞队列
等待事件



具有三级调度时的调度队列模型
进程完成
9
操 三、 选择调度方式和调度算法的若干准则
作 系
1. 面向用户的准则
统 (1) 作业周转时间短。
(2) 响应时间快。
(3) 截止时间的保证。

(4) 优先权准则。

章 2.面向系统的准则
处 (1) 系统吞吐量高。

15
操 五、作业调度的功能
作 系
作业调度的主要任务:完成作业从后备状态到运行状态和
统 从运行状态到完成状态的转变。
作业调度程序应包括以下功能:
1)记录系统中各作业的状况。
作业调度程序为了挑选一个作业投入运行,并且在运行
第 三
中对它实施管理,它必须掌握该作业进入系统时的有关情
章 况并随时记录该作业在各运行阶段的变化。为此,系统为
处 每一个已进入系统的作业分配一个作业控制块JCB(Job
理 机
Contrl block)。每个作业的JCB在该作业进入后备状态时
调 度


12
作业控制块


作业名
系 统
估计执行时间
最迟完成时间
资源要求
要求的主存量
要求外设的类型及台数
要求文件量和输出量

进入系统时间

开始执行时间

资源使用情况
已执行时间
处 理
主存地址
联机和脱机

外设台号
调 度 与
类型
控制方式 作业类型
死 锁
优先级
状态
13
操 三、作业的状态
作 系
一个作业从提交给计算机系统到执行结束退出系统,一般
机 调
理时所处的状态。

与 4)完成状态:作业完成其全部任务后,进程撤消, 做善后处
死 锁
理时的作业状态称为完成状态。
14
四、作业状态的转换

作 系
内存

进程调度
线程调度
运 行
提 交 第
后 备
执就 行执 绪
等 待
完 成



作业调度
作业输入 作业调度
交换调度
处 理
外存
机 调 度
就 绪
等 待


作业的状态及其转换

事件1出现

等待 事件1


事件2出现
等待 事件2
… … … …



等待 事件n

事件n出现

死 锁
具有高、低两级调度的调度队列模型
8
操 作 系
3. 同时具有三级调度的调度队列模型
作业调度
时间片完

后备队列 批量作业
就绪队列
进程调度 CP U
交互型作业
中级调度 就绪,挂起队列

事件出现


阻塞,挂起队列
相关文档
最新文档