操作系统原理课程03中断与处理机调度_2
操作系统调度课件
05 操作系统调度的实现
上下文切换
上下文切换是操作系统在进程切换时保存和恢复当前进程运行环境的过程 。
上下文切换包括保存当前进程的上下文(如CPU寄存器、内存信息等)和 恢复新进程的上下文,以便新进程能够继续执行。
上下文切换对于实现多任务处理和资源共享至关重要,可以提高系统的效 率和响应速度。
进程状态转换
VS
详细描述
这是一种常见的调度算法,适用于长作业 环境。系统为每个进程分配一个优先级, 优先级高的进程会优先获得处理器。当多 个进程同时等待时,系统会选择优先级最 高的进程进行调度。这种算法可以满足一 些紧急任务的需求,但可能导致一些低优 先级的进程长时间得不到服务。
多级反馈队列调度
总结词
根据进程的等待时间和优先级进行多级反馈 队列调度。
调度算法分类
先进先出(FIFO):按照进程到达的先后顺序进行调 度,先到达的进程优先获得处理器。
输标02入题
优先级调度:根据进程优先级的高低进行调度,优先 级高的进程优先获得处理器。
01
03
循环轮转调度(Round Robin):按照固定的时间片 长度,依次将处理器分配给就绪队列中的进程,时间
片用完后,进程回到就绪队列尾部重新等待。
04
最短剩余时间优先(Shortest Remaining Time First ):根据进程剩余执行时间进行调度,剩余时间最短 的进程优先获得处理器。
调度策略比较
01
先进先出策略简单易实现,但不 适用于所有场景;
02
优先级调度可以满足紧急任务的 需求,但可能导致低优先级进程
长时间等待;
最短剩余时间优先可以减少等待 时间,但可能导致处理器频繁切 换;
03第三章 中断与处理机调度
终止
运行 kernel
等待事件
无
创建
就绪
事件发生
等待
I/O中断,或资源释放并分给该进程,PCB进就绪队列。
考虑系统状态的进程状态转换图
运行 user
中断
终止
运行 kernel
调度选中 等待事件
无
创建
就绪
事件发生
等待
恢复核心级别现场(地址映射寄存器,regs, fregs, SP, PSW, PC)
3.1.3 中断处理程序(Cont.)
(2) 主存故障处理
海明校验,奇偶校验错误
下雨检查
划出系统
报告操作员
3.1.3 中断处理程序(Cont.)
5. 程序错误中断处理
只能由操作系统处理的中断 影响系统或其它进程 越界,非法指令,(处理:终止进程、调试)
阶码上溢系统进行 中断处理;阶码下 页故障,缺段,(处理:动态调入 ) 溢系统将数的各位 强置为0,也可由 可以由用户自己处理的中断 用户自己处理。
1. 输入输出中断处理 正常结束
继续传输; 唤醒相关进程。
传输错误
重复执行 (eg. 3次,认定设备故障); 报告系统操作员。
3.1.3 中断处理程序(Cont.)
2. 时钟中断处理 时钟分为硬时钟和软时钟。 本质上,硬件时钟产生中断,软时钟只是完成某种处理。 ① 进程管理:分时系统的进程切换; 重新计算进程调度参数(eg. 动态优先数) ; ② 作业管理:记录作业等待时间及优先级别; ③ 资源管理:统计运行进程占用处理器等资源的时间; ④ 事件处理:实时系统中定时发控制信号; ⑤ 系统维护:定时启动死锁检测程序、定时记账; ⑥ 实现软时钟,启动定时程序 硬时钟5ms发生一次中断,软时钟50ms.
中断处理与进程调度的区别与联系
中断处理与进程调度的区别与联系
中断处理
中断(Interruption)⼜称外中断,指CPU所执⾏指令之外的事件发⽣,如时钟中断。
异常(Exception)⼜称内中断、例外、陷⼊(trap),指来⾃CPU内部执⾏指令的事件发⽣,对异常的处理⼀般依赖当前程序的运⾏现场,且异常不能被屏蔽。
中断处理的主要⽬的是利⽤中断服务程序对中断源进⾏处理,以下从外中断与内中断两个例⼦进⾏分析:
系统会依赖时钟中断定期的获取到系统的控制权,如果没有时钟中断的话操作系统有可能永远获取不到处理机,也就⽆法实现对其它进程的时间⽚管理等⼯作。
请求系统调⽤服务必须利⽤到内中断,此内中断的根本⽬的就是获取中断服务程序所提供的只能在核⼼态实现的服务。
总结下上述⽂字:中断的⽬的地是程序。
进程调度
在进程调度完成之后,往往会⽴刻进⾏进程切换,涉及到进程切换的具体过程就不再展开了,但是现在已经能够发现进程调度和中断处理的区别了,那就是进程调度的⽬的地是切换进程。
那为什么刚学习的时候会分不清中断与调度的关系呢,那就是因为进程切换是在核⼼态下执⾏,从⽤户态转到核⼼态的唯⼀⽅式是通过中断,也就是进程调度切换⼀定是通过中断实现的。
(这⾥后续详细的说下,该吃饭了。
)。
操作系统课件os03处理机调度
1 低级调度的功能
1. 保存处理机的现场信息。 • 处理机的现场信息进程控制块(PCB)
2. 按某种算法选取进程。 3. 把处理器分配给进程。
2 优先权的类型
静态优先权 • 在创建进程时确定的,且在进程的整个运行期间保持 不变
动态优先权 • 在创建进程时所赋予的优先权 • 可以随进程的推进或随其等待时间的增加而改变的
确定静态进程优先权的依据
进程类型 • 系统进程(如接收进程、对换进程、磁盘I/O进程)的优 先权高于一般用户进程的优先权。
• 因而不能保证紧迫性作业(进程)会被及时处理。 无法精确知道一个作业的运行时间。
• 作业(进程)的长短只是根据用户所提供的估计执行时 间而定的。
3.3.2 高优先权优先调度算法
优先权调度算法的类型 • 非抢占式优先权算法 用于批处理系统中; 也可用于某些对实时性要求不严的实时系统中。 • 抢占式优先权调度算法 常用于要求比较严格的实时系统中 对性能要求较高的批处理和分时系统中。
16/5=3.2
3/2=1.5
9/4=2.25
平均周转时间=(4+8+16+3+9)/5=8 平均带权周转时间 =(1+2.67+3.2+1.5+2.25)/5=2.1
作业 情况
调度 算法
FCFS (a)
进程名 到达时间 服务时间 完成时间 周转时间
带权周转时间
完成时间
SJF
周转时间
第3章 中断与处理机调度
• 中断的实现需要硬件和软件的合作,硬件部分称作 中断装置,软件部分称作中断处理程序。中断装置 和中断处理程序统称为中断系统。
图:计算机的基本硬件元素
图:指令的执行周期
图:中断处理时的指令执行周期
3.2 中断装置
中断装置是用于发现并响应中断的硬件机构 发现并响应中断的硬件机构
识别中断源,当有多个中断源时,按紧迫程度排队; 保存现场; 引出中断处理程序。
同。
有些系统中:仅采用一级调度; 另一些系统:可能采用两级或三级调度。 在执行调度时所采用的调度算法也可能不同。
一、高级调度(1)
一个作业从提交开始,往往要经历三级调
度:高级调度、低级调度、中级调度。
二、高级调度(2)
高级调度(长程/作业/宏观调度)
(1)用于决定把外存上处于后备队列中的哪些作
业调入内存,并为它们创建进程、分配必要的
前正执行的进程高。
调度方式--非抢占式进程调度、抢占式进程调度
非抢占方式:一旦把处理机分配给某进程后,便让该进
程一直执行,直到该进程完成或因某事件而被阻塞,才
再把处理机分配给其它进程,决不允许某进程抢占已分 配出去的处理机。 实现简单,系统开销小,常用于批处理系统;但不利 于处理紧急任务,故实时、分时系统不宜采用。
自愿性中断:自愿性中断是正在运行程序所期 待的,它们通常由于正运行程序执行访管指令 而引起,目的是要求系统为其提供某种服务
访管指令
与文件有关的系统调用:如建立文件、撤消文件、
打开文件、关闭文件、读写文件、文件指针定位等 与进程有关的系统调用:如创建进程、撤消进程、 创建线程、监督进程运行状况等 与通信有关的系统调用:如发送消息、接收消息等 与同步有关的系统调用:如P操作、V操作等
OS-03中断与处理机调度
调度算法
时间片的长短由如下四个因素决定:
系统的响应时间 当进程数目一定时,时间片的长短直
当系统对响应时间要求一定时, 接影响系统的响应时间 就绪队列中进程的数目 就绪队列中进程数少则时间片长,反之亦然 进程状态转换 (即进程由就绪态到运行,或反之) 的时间
• 处理机调度必须设计成可以满足多个目标,例如公平、任 何进程都不会饿死、有效地使用处理器时间和低开销等
调度算法设计指标
• 面向用户准则所关心的性能指标 – 周转时间 T :指一个进程从提交到完成之间的时间间隔,
包括实际执行时间加上等待时间(等待+就绪)。
– 带权的周转时间 W:周转时间与执行时间的比值 – 响应时间 从提交一个请求到开始处理的时间间隔。 – 最后期限 当可以指定进程完成的最后期限时,调度 原则将服从于其他目标,使得距最后期限最近
RQ0
允许进入
RQ1
释放
CPU
释放
CPU
RQ2 释放
CPU 不同优先级的 就绪队列可以 给予相同的时 间片,也可以 不同。
RQn
释放
CPU
反馈调度
调度算法
反馈FB
在反馈调度算法中,长进程也存在饿死的现象
当比运行进程更高优先级队列到来一个新进程时,则 应该处理高优先级队列的进程。有两种方案:
调度算法
大多数动态优先级设计方案
• 把交互式和I/O频繁的进程移到优先级队列的顶端,而 让计算量大的进程移到较低的优先级上 • 对与优先级相同的进程,按先来先服务或轮转法则分 配处理机 • 对于一给定时间周期,一个正在运行的进程,每请求 一次I/O操作后其优先级就自动加 1,直接反映出I/O 请求的频率,从而使I/O设备具有很高的利用率
操作系统课件第三章
例
进程名 到达时 服务时 开始执 完成时 周转时 带权周
间
间
行时间 间
间
转时间
A
0
1
0
1
1
1
B
1
100 1
101 100 1
C
2
1
101 102 100 100
C
3
100 102 202 199 1.99
处理机调度与死锁
FCFS SJF
图3.4FCFS和SJF比较
进程名 到达时间 服务时间 完成时间 周转时间 带权周转时间 完成时间 周转时间 带权周转时间
1、先来先服务调度算法 2、时间片轮转调度算法(时间片为1ms) 3、非剥夺式SJF调度算法 4、剥夺式优先级调度算法
处理机调度与死锁
表1
进程
创建时间
运Hale Waihona Puke 时间(ms)优先级P1
0
3
3
P2
2
6
5
P3
4
4
1
P4
6
5
2
P5
8
2
4
解: (1) FCFS调度算法,进程的运行过程如图所示:
处理机调度与死锁
(2) 时间片轮转调度算法,进程的运行情况如图所示:
❖3.截止时间的保证(特别于实时系统) ❖4.优先权准则:(即需要抢占调度)
处理机调度与死锁
3.1.3选择调度方式和算法的若干准则
❖ 二、面向系统的准则
❖1.吞吐量高(特别于批处理):单位时间完成作 业数
❖2.处理机利用率好:(因CPU贵,特别于大中型 多用户系统)
❖3.各类资源的平衡利用。(?折算标准)
操作系统之处理机调度课件
轮转法调度只适合于可抢占式资源
时间片长的选取: 太长:? 太短:? g = R / Nmax
R ---系统对响应时间的要求 Nmax---就绪队列允许最大进程数 响应时间和服务时间成正比,在响应时间 上优于FCFS,对长作业不利
操作系统之处理机调度
• 多级反馈队列调度算法
1)系统中有多个进程就绪队列,每个就绪队列对应一个 调度级别,各级具有不同运行优先级,第一级最高。 2)各级队列有不同的时间片,优先级越高时间片越小。 3)各级队列均按先来先服务原则排序 4)调度方法:新进程进入后,被放入1级队列末尾;队列 中按先来先服务分配处理机;时间片用完还未完成,进入 下一级队列末尾;如果因输入输出或等待时间主动放弃处 理机的进程,离开就绪队列,待事件发生后返回同级队列 队尾。 5)当1级队列空后调度程序才去调度2级队列中的进程,3 级、4级。。。依次类推。 6)当比运行进程更高级别队列中到来一个新的进程时, 它将抢占处理机,被抢占进程回到原队列尾
操作系统之处理机调度
20
3
50
150
4
200
1300
5
500
20
6
700
100
操作系统之处理机调度
• 先来先服务
从就绪队列队首选择进程,新进程排在队尾 短作业在系统中的驻留平均时间与长作业 驻留平均时间相同,对短作业不利。
• 轮转法
将CPU的处理时间分成固定大小的时间片。 如果一个进程在被调度选中后用完了系统 规定的时间片,但未完成要求的任务,则 它自行释放自己所占有的CPU而排列在就绪 队列队尾。
1)静态表格驱动 对可能的调度条件和参数进行静态分析 结果作为实际调度结果
2)静态优先级驱动抢先式调度算法 先进行静态分析,但结果只作为任务的优先级
操作系统原理-第3章-处理机调度与死锁(2)PPT课件
◆ 已分配资源矩阵Allocation:n×m矩阵定义了每个进程现在已分配到 的各类资源的实际数目。如果Allocation [i,j]=k,表示进程Pi当前分到 k个Rj类资源。
④ 环路等待条件:存在一个进程——资源环形链,各个进 程将申请的新资源被其它进程依次占用,此时死锁必然 发生。
3.5.3 处理死锁的基本方法
1. 预防死锁:通过设置某些条件,直接破坏产生死锁的 4个必要条件一个或几个,从而达到预防死锁的目的。
2. 避免死锁:避免亦乃预防,方法是在资源的动态分配 过程,施加一些较弱的限制条件,来防止系统进入不 安全状态而避免死锁。
…
进程p2 request(扫描仪); holding 扫描仪;
… request(打印机);
P1
产生环路死锁啦!
竞争非剥 夺资源死 锁状态图
R1
R2
P2
3)竞争临时性资源 永久性资源:类似打印机可顺序重复使用的资源(生命的永久性)。 临时性资源:由一个进程产生,被另一个进程使用一短暂时间后便无用的资
<P1,P2,…, Pn>,当系统按此序列顺序逐个地为每个 进程分配其所需的资源,直至最大需求,可使每个进 程均可顺利完成。则称此时系统的状态为安全状态, 称这样的一个进程序列<P1,P2,…,Pn>为安全序列。
2、不安全状态 定义:若在某一时刻,系统中的进程不存在一个安全序列,
则称系统处于不安全状态。
3、由安全状态向不安全状态的转换
如果不按照安全序列分配资源,则系统可能会由安全状态进入不 安全状态。
操作系统课件 第三章 中断与处理机调度s
强迫性中断事件
保存现场信息
自愿性中断事件
保存现场信息
取中断码
分析中断原因 转中断处理程序 T 是嵌套中断? F
取访管号
分析调用功能
F
由系统栈恢复现场
返回上层中断
需切换进程?
T
由系统栈恢复现场
转CPU分派
返回目态程序
访管指令通常分为如下几类: (1)与文件有关的系统调用:如建立文件、撤消 文件、打开文件、关闭文件、读写文件、文件指 针定位等。 (2)与进程有关的系统调用:如创建进程、撤消 进程、创建线程、监督进程运行状况等。 (3)与通讯有关的系统调用:如发送消息、接收 消息等。 (4)与同步有关的系统调用:如P操作、V操作等
3.2 处理机调度
处理机调度指CPU资源在可运行实体之间的分 配。不支持线程的 OS 将 CPU 分配给进程;支持线 程的 OS ,若线程是系统级的, OS 将 CPU 分配给线 程,若线程是用户级的,OS将CPU分配给进程。 处理机资源管理需解决三个问题: (1)按什么原则分配处理机 --确定调度算法 (2)何时分配处理机 --确定调度时机 (3)如何分配处理机 --给出调度过程
自愿性中断与中断装置之间的关系如图所示:
运行程序 访管指令 中断装置
中断处理程序
中断向量与中断处理程序的存储方法如下:
PC1: 时钟中断 处理程序 PC2: I/O中断 处理程序
0000 0008 0016 0024 0032 …
PSW1, PC1 时钟中断向量 PSW2, PC2 I/O中断向量 PSW3, PC3 console中断向量 PSW4, PC4 硬件故障中断向量 PSW5, PC5 程序错误中断向量 … …
操作系统课程第3章处理机调度ppt课件
A、后备
B、阻塞
C、执行
D、完成
2024/7/3
Page 17
为了规范事业单位聘用关系,建立和 完善适 应社会 主义市 场经济 体制的 事业单 位工作 人员聘 用制度 ,保障 用人单 位和职 工的合 法权益
3.1处理机调度的基本概念
高级、中级和低级调度
进程调度的任务
确定算法的原则 进程调度方式 调度队列模型 选择调度方式和调度算法的若干准则
缺点:紧急任务不 能及时响应;短进 程到达要等待长进
程运行结束
2024/7/3
Page 24
为了规范事业单位聘用关系,建立和 完善适 应社会 主义市 场经济 体制的 事业单 位工作 人员聘 用制度 ,保障 用人单 位和职 工的合 法权益
进程调度方式
抢占方式
抢占式调度主要有以下原则 ✓ 优先权原则 允许高优先权的新到进程抢 占当前进程的处理机 ✓ 短 的新作到业进(进程程抢)优占优求先当点严原前格:则的适进允实于程时时许的系间执处统要行理时机间短 ✓ 时间片原则 时缺间点片:用调完度后算停法复止执行,重 新进行调度,适杂用,于系分统时开系销统大
回该作业所占用的全部资源, 撤消与该作业相关的全部进程 和该作业的JCB。
2024/7/3
Page 11
为了规范事业单位聘用关系,建立和 完善适 应社会 主义市 场经济 体制的 事业单 位工作 人员聘 用制度 ,保障 用人单 位和职 工的合 法权益
周转时间:从作业被提交给系统开始,到作业完成为 止高的级这、段中时级间和间低隔级。调度
2024/7/3
Page 4
作业调度
作业是用户在一次解题或一个事务处理过程 中要求计算机系统所做工作的集合,包括用 户程序、所需的数据及命令等
操作系统原理
操作系统原理处理机调度是操作系统中非常重要的一个概念,它是操作系统实现多任务并发执行的关键之一、处理机调度负责决定哪个进程可以占用CPU执行指令,从而最大程度地提高系统的资源利用率和吞吐量。
在本文中,我们将详细介绍处理机调度的原理。
首先,让我们来了解处理机调度的基本概念。
处理机调度通常分为两个层次:长期调度和短期调度。
长期调度(也称作作业调度)主要负责决定哪些任务可以从外部存储器中加载到内存中执行;而短期调度(也称作进程调度)则负责在内存中选择一个就绪队列中的进程,并分配CPU执行指令。
长期调度是一个比较低频率的操作,一般情况下只在进程完成或阻塞时才会触发。
它的主要目标是保持系统的吞吐量和响应时间。
长期调度可以根据多种策略来选择要加载的进程,例如根据优先级、内存中的可用空间以及进程的历史执行时间。
一旦进程被选择并加载到内存中,它就会进入就绪队列,等待短期调度的分配。
短期调度是一个高频率的操作,会在每个时钟周期或者每次发生中断时触发。
它的主要目标是保证CPU的公平分配和高效利用。
短期调度可以根据多种调度算法来选择一个进程,例如先来先服务调度、最短作业优先调度、最高优先级调度、轮转法调度等。
不同的算法有不同的优势和劣势,需要根据系统的具体需求来选择合适的调度算法。
先来先服务调度是最简单的一种调度算法,它按照进程到达的先后顺序进行调度。
当一个进程到达时,它会被放置在就绪队列的末尾,等待CPU分配。
如果多个进程同时到达,那么系统会按照它们到达的先后顺序进行分配。
这种调度算法的优点是简单易实现,但是缺点是可能导致长作业时间的进程无法及时执行,从而影响响应时间。
最短作业优先调度是一种根据进程服务时间进行调度的算法。
当一个进程到达时,系统会检查就绪队列中的所有进程的服务时间,并选择服务时间最短的进程来执行。
这种调度算法的优点是可以最大程度地减少平均等待时间,但是缺点是可能导致长作业时间的进程等待时间过长,从而降低了响应时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在不可调度的条件下,可使错过截止期任务最小 化
3.4.1 最早截止期调度
17
例如:表3-1所示,按最早截止期、可抢先 原则调度的结果如图3-17所示.
10/20 + 25/50 = 1, 可调度(不考虑开销)
例子: Completion deadline scheduling 18
31
调度发生在如下时刻:
运行进程的Counter减到0,运行进程执行 exit系统调用
运行进程被阻塞 具有高goodness进程被解封锁 实时优先分时、交互和IO进程优先CPU进程
Linux2.1支持对称多处理机
32
3.6.2 Windows 2000/XP线程调度
Windows核心以线程作为调度的基本单位 调度算法为可剥夺动态优先级,结合了时
提出于1973年
面向周期性实时事务,非剥夺式 优先调度发生周期最短(频度最高)的实时任务
可调度条件:
RMS的上限值
n
1
1.0
2
0.828
3
0.779
4
0.756
5
0.743
6
0.734
┇
┇
ln20.693
20
RMS vs. EDF 1) RMS可调度条件强于
EDF 2) RMS调度较EDF实现简
priority=20-value.
counter
进程尚可运行的剩余时间
3.6.1 Linux 进程调度
30
counter
对运行进程,每个时钟间隔(10ms,称为一个瞬间), 将counter减1
当所有就绪进程的counter配额下降到0时,重新计 算所有进程(包括等待进程)的counter值
周期性实时事务
12
周期性实时事务:
令 期C,i为则任任务务PPi1处,…理,P时m间可,调T度i为的任必务要P条i的件发为生:周
周期性实时事务
13
例:
– T1=100, T2=200, T3=500 (ms) – C1=50, C2=30, C3=100 (ms) – C1/T1+C2/T2+C3/T3=0.5+0.15+0.2=0.85<1 – Schedulable
中级调度(mid-level scheduling)
是系统控制并发程度的一个调度级别
当并发度过高时,将内存中的某些进程暂时交换到外 存,待并发度较低时再调回内存
进程在内存和外存之间的调度需依据某种调度原则, 即调度算法
3.3.1 交换与中级调度
4
中级调度目标:控制并发度
并发度过高
作业调度1
作业调度2
SPOOLin g输出
9
3.4 实时调度(real-time scheduling)
实时任务:
具有明确时间约束的计算任务。 Eg.
某时刻前必须开始处理 某时刻前必须处理完毕
实时调度:
合理安排就绪实时任务的执行次序,满足每 个实时任务时间约束条件的调度。
3.3.2 作业与高级调度
8
状态转换:
– 提交后备: 由SPOOLing(假脱机)输入进程完成 – 后备执行: 由作业调度(1)(高级调度)完成
– 高级调度: 系统进程 – 执行完成: 由作业调度(2)完成 – 完成退出: 由SOOPLing输出进程完成
提交
后备
执行
完成
退出
SPOOLin g输入
单
RMS例子:
21
进程
Ti
Ci
A
100
20
B
150
40
C
350
100
RMS能满足所有任务的调度要求,具体调度结果:
A1 B1
C1
A2 B2 A3
A4 B3
C2
0 20 60
160 180 220 240 300 320 360
460
RMS例子:
22
算法演示
从CPU效率来说,RMS算法不及EDF算法 效率高,但具有如下优势:
每个进程有一个处理器亲合掩码,缺省为所 有处理器的集合
线程继承其进程的亲合掩码 亲合掩码可以修改
SetProcessAffinityMask, SetThreadAffinityMask;
SMP上的线程调度
39
线程的理想处理器(Ideal processor)
首选处理器: 第二处理器:(在内核线程控制块中)
运行连接装配程序对前两步产生的浮动程序进行连接 装配
执行上一步产生的目标代码
3.3.2 作业与高级调度
7
作业状态:
提交: 输入机向输入井传送 后备: 在输入井,尚未进入内存 执行: 分解为进程,在内存处理 完成: 处理完毕,结果在输出井 退出: 由输出井向打印机传送
实时任务分类
10
按对时间约束强弱的程度分为硬实时与软 实时
硬实时:必须满足任务截止期要求 . 软实时:期望满足截止期要求 .
按其发生规律可分为周期性与随机性
周期性:每隔固定时间发生一次
随机性:由随机事件触发,其发生时刻不确 定
术语解释
11
Ready time就绪时间:实时任务产生并可开始 处理的时间
自调度(self scheduling)
25
进程(线程) 进程(线程) 进程(线程)
CPU
就绪队列
CPU
CPU
自调度(self scheduling)
26
例子:
Mach, 改进的自调度
全局队列 局部队列
调度时
首先考虑局部队列 然后考虑全局队列
3.5.2 组调度(gang scheduling) 27
间片轮转算法的思想 时间片称为时间配额(quantum),如图3-
19所示 不支持截止期,不是真正意义上的实时调
度。
3.6.2 Windows 2000/XP线程调度
33
优先级别
34
16个实时优先级(16-31)
一些内核线程 应用程序提升为实时优先级需要有权限 不是真正意义上的实时调度
3.3.2 作业与高级调度
Job and high-level scheduling
处理机调度为低级调度 CPU scheduling = low
level scheduling
3.3.1 交换与中级调度
3
交换(swapping):进程在内存与外存之间的调 度
交换的目标:
缓解内存空间等资源紧张的矛盾 减小并发度以降低系统开销
3.3.2 作业与高级调度
6
又称高级调度(high-level scheduling)或宏观调 度:将一个作业由输入井调入内存,并为其建立 相应的进程,使其具有运行的资格
作业的处理分为若干相对独立的执行步骤,称为 作业步,每个作业步可能对应一个进程或线程。
例如:
运行C编译程序对C代码部分进行编译 运行汇编对汇编代码部分进行汇编
29
三种特征进程
Real-time FIFO Real-time Round Robin实时循环轮转 Timesharing 分时
调度基于Goodness度量指标:
priority
1-40, (缺省值20 ),可通过nice系统调用调整 nice(value)中value的取值范围为(-20,20)之间 ,取
将一组相关(合作)的线程同时分派到多个 处理机上运行
避免合作线程之间的相互等待 降低开销,提高运行效率
例子:
Cm
Task force (一组相关的计算)
3.6 系统举例
28
Linux进程调度 Windows2000/XP线程调度 UNIX进程调度(见第12章)
3.6.1 Linux 进程调度
也称均衡调度(balanced scheduling)
系统中保持唯一的一个就绪队列 新创建的线程或被唤醒的线程都进入这个唯一的就绪
队列 系统中某个处理机空闲时,在该就绪队列中按调度算
法选取下一个运行的线程
优点
不需要专门的处理机从事任务分派工作 任务分配均衡
缺点
当CPU较多时,就绪队列成为瓶颈 线程两次调度可能处于不同处理机 不能保证同组线程同时调度
goodness
if(Real-time)goodness=1000+priority
if(Timesharing && counter =0)goodness=0
if(Timesharing && counter >0)goodness=counter+priority
3.6.1 Linux 进程调度
系统开销大 响应速度慢 内存等资源紧张 进程(线程)频繁进入等待状态 More deadlocks
3.3.1 交换与中级调度
5
具有中级调度的进程状态转换关系如图3-15所示
运行
选中 剥夺
结束 等待事件
终止
创建
就绪
等待
事件发生
无
换入 换出
换入 换出
创建
就绪 挂起
事件发生
等Байду номын сангаас 挂起
15个可变线程优先级(1-15)
基本优先级 vs. 当前优先级 可动态提升 运行完一个quantum之后自动下降
1个系统线程优先级(0)