68
软软软软软 软软软软软 软软软 软软软软软软软软 • 软软软软软软• 软软软软软 • 软软软软软软软软软 • 软软软软

第三章 中断与处理机调度

  • Upload
    shayna

  • View
    141

  • Download
    0

Embed Size (px)

DESCRIPTION

第三章 中断与处理机调度. 中断与中断系统 处理机调度 调度级别与多级调度 实时调度. 3.1 中断与中断系统. 3.1.1 中断的概念 3.1.2 中断装置 3.1.3 中断处理程序. 3.1.1 中断的概念. 处理机在运行过程中,出现了某一事件,必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为 中断 。 中断系统: 中断装置 ( 硬件 ) 中断处理程序 ( 软件 ). 3.1.2 中断装置. 发现并响应中断的硬件机构 识别中断源,当有多个中断源时,按紧迫程度排队; 保存现场; 引出中断处理程序。. - PowerPoint PPT Presentation

Citation preview

Page 1: 第三章 中断与处理机调度

软件教研室软件教研室

第三章 中断与处理机调度

• 中断与中断系统• 处理机调度• 调度级别与多级调度• 实时调度

Page 2: 第三章 中断与处理机调度

软件教研室软件教研室

3.1 中断与中断系统

• 3.1.1 中断的概念• 3.1.2 中断装置• 3.1.3 中断处理程序

Page 3: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.1 中断的概念• 处理机在运行过程中,出现了某一

事件,必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为中断。

• 中断系统:– 中断装置 ( 硬件 )– 中断处理程序 ( 软件 )

Page 4: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2 中断装置

• 发现并响应中断的硬件机构– 识别中断源,当有多个中断源时,

按紧迫程度排队;– 保存现场;– 引出中断处理程序。

Page 5: 第三章 中断与处理机调度

软件教研室软件教研室

中断响应和处理的过程正运行程序

1 6

处理程序

4

PSW’ , PC’PC’:

PSW, PC

系统桟

psw, pc

……...

25 3

HAL

OS

Page 6: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2.1 中断源与中断字• 中断源

– 引起中断的事件。• 中断寄存器

– 保存与中断事件相关信息的寄存器。• 中断字

– 中断寄存器的内容。

• 例: IO 中断:设备状态寄存器。

Page 7: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2.2 中断类型与中断向量• 强迫性中断

– 运行程序不期望的• 时钟中断、 IO 中断、控制台中断• 硬件故障中断( power failure 、内存校验错)• 程序性中断(越界,越权、非法指令)

• 自愿性中断– 运行程序期望的

• 系统调用: fd=open(fname,mode)• 访管指令:准备参数 svc n 取返回值

Page 8: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2.2 中断类型与中断向量

运行程序中断装置

中断处

理程序

clockIO

consolepower failure

malfunction

强迫中断:

中断装置

中断处

理程序

运行程序

访管指令

自愿中断:SVC ntrap n

Page 9: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2.2 中断类型与中断向量• 中断向量:中断处理程序的运行环

境与入口地址( PSW , PC )– 每类中断事件有一个中断向量 ,– 中断向量的存放位置是由硬件规

定的 ,– 中断向量的内容是 OS 在系统初始

化时设置好的。

Page 10: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2.2 中断类型与中断向量PSW1, PC1 时钟中断向量PSW2, PC2 I/O 中断向量PSW3, PC3 控制台中断向量PSW4, PC4 硬件故障PSW5, PC5 程序错误

… …

PSWn, PCn 访管中断向量

00000008001600240030

0090

时钟中断处理程序

PC1:

I/O 中断处理程序

PC2:

访管中断处理程序

PCn:

系统空间

Page 11: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2.3 中断嵌套与系统栈

• 一般原则:– 高优先级别中断可以嵌入低优先

级中断• 实现方法:

– 中断响应后立即屏蔽不高于当前中断优先级的中断源。

Page 12: 第三章 中断与处理机调度

软件教研室软件教研室

中断嵌套与系统栈进入中断后一般需要进一步保存现场进入中断后一般需要进一步保存现场

关中断(屏蔽所有中断)

进一步保存现场(地址寄存器,通用寄存器等)

开中断(或开放高优先级中断)

…...

中断处理

…...

恢复现场

中断返回

Page 13: 第三章 中断与处理机调度

软件教研室软件教研室

中断嵌套与系统栈中断嵌套 :

目态

PSW1: PC1

管态

PSW2: PC2

管态

PSWn: PCn

……PSWn-1 PCn-1

……PSW2 PC2PSW1 PC1

系统栈 :

指针

Page 14: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.2.4 中断优先级与中断屏蔽• 中断优先级:

– 硬件规定的中断响应次序,依据 :• 紧迫程度;• 处理时间。

• 中断屏蔽:– 高优先级中断事件处理不受低优

先级中断打扰;– 程序调整中断响应次序。

Page 15: 第三章 中断与处理机调度

软件教研室软件教研室

3.1.3 中断处理程序强迫性中断: 自愿性中断:

转中断处理程序 是否嵌套中断

由系统栈恢复现场 需要切换进程 返回上层中断 由系统栈恢复现场 转 CPU 分派 返回目态程序 ( dispatcher )

保存现场信息取中断字

分析中断原因

保存现场信息取访管号

分析调用功能

T F

F T

Page 16: 第三章 中断与处理机调度

软件教研室软件教研室

3.2 处理机调度

• 处理机调度算法– 按什么原则分配

• 处理机调度时机– 何时重新分配

• 处理机调度过程– 如何完成分配

Page 17: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1 处理机调度算法

• 考虑因素( scheduling criteria )– CPU 利用率 ; (max)

– 吞吐量 ; (max)

– 周转时间 ; (min)

– 响应时间 ; (min)

– 系统开销 ; (min)

Page 18: 第三章 中断与处理机调度

软件教研室软件教研室

基本概念 • 阵发期 :

– CPU burst cycle: 进程 ( 线程 ) 使用 CPU 计算;

– I/O burst cycle: 进程 ( 线程 ) 使用设备 I/O 。• 剥夺式 (preemptive)

– 就绪进程可以从运行进程手中抢占 CPU 。• 非剥夺式 (non-preemptive)

– 就绪进程不可从运行进程手中抢占 CPU 。

Page 19: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.1 先到先服务算法• FCFS ( First Come First Serve)

– 按进程申请 CPU (就绪)的次序。

• Gantt 图(到达次序: P1 , P2 , P3 )

process Burst time

P1 27

P2 3

P3 5

P1 P2 P3

0 27 30 35

Page 20: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.1 先到先服务算法– 平均等待时间:

( 0+27+30 ) /3 = 19 ( ms)– Gantt 图(到达次序: P2 , P3 , P

1 )

– 平均等待时间• ( 0+3+8 ) /3 = 3.67

P1P2 P3

0 3 8 35

Page 21: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.2 短作业优先• SJF ( Shortest Job First)

– 按 CPU burst 长度

– Gantt chart:

Process Burst time

P1 12

P2 5

P3 7

P4 3

P1P3P2P4

0 3 8 15 27

Page 22: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.2 短作业优先 (SJF)– 平均等待时间:

• ( 0+3+8+15 ) /4 = 6.5 ( ms)

–特点:•假定所有任务同时到达,平均等

待时间最短。• 长作业可能被饿死。

Page 23: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.3 最高优先数算法 (HPF)

• 静态优先数 (static)– 优先数在进程创建时分配,生存期内不变。– 响应速度慢,开销小。–适合批处理进程

• 动态优先数 (dynamic)– 进程创建时继承优先数,生存期内可以修改。

– 响应速度快,开销大。

Page 24: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.3 最高优先数算法 (Cont.)

• 非剥夺式静态优先数–获得处理机的进程运行,直至

•终止• 等待

• 剥夺式动 (静 ) 态优先数–获得处理机的进程运行,直至

•终止• 等待• 出现高优先级的进程

Page 25: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.4 循环轮转算法 (RR)• 基本轮转

– 时间片 (quantum,time slice) 长度固定,不变;

– 所有进程等速向前推进。• 改进轮转

– 时间片长度不定,可变。

Page 26: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.4 循环轮转算法 (Cont.)

• 时间片长度: 几十毫秒几百毫秒 (eg. 50ms)

– 过长:响应速度慢;– 过短:系统开销 (overhead)大。

• 适应系统:– 分时

Page 27: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.5 多级队列算法 (MLQ)

• 多级队列– 多个就绪队列,进程所属的队列固定。

• 例如:通用系统中:– 队列 1 :实时进程就绪队列( HPF )– 队列 2 :分时进程就绪队列 ( RR )– 队列 3 :批处理进程就绪队列 ( HP

F )

Page 28: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.6 最短剩余时间 (SRTN)

• Shortest Remaining Time Next

• 可剥夺 SJF

Page 29: 第三章 中断与处理机调度

软件教研室软件教研室

3. 2.1.7 反馈排队算法 (FB)

• Feed-Back:

– 多个就绪队列,进程所属队列可变。Q1 ( RR , HPF )Q2 ( RR , HPF )

Qn ( RR , HPF )

运行 s1 时间片

运行 s2 时间片

….

创建唤醒 优

先级

时间片运行 sn 时间

Page 30: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.1.7 反馈排队算法 (Cont.)

• 调度效果:– 资源利用率高

•被唤醒的进程尽早投入运行;– 响应速度快

•交互式进程反应及时;– 系统开销小

• 计算量大的进程落入底层队列。

Page 31: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.2 处理机调度时机中断处理完毕,没有嵌套中断,即将返

回目态。

Pi=Pj: 未发生进程切换;

Pi<>Pj: 发生了进程切换 。

目态( Pi 运行)

目态( Pj 运行)管态 管态…...

中断

返回 返回 返回

中断 中断

Page 32: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.2 3.2.2 处理机调度时机处理机调度时机 (Cont.)(Cont.)

必然引起进程切换的中断– 进程自愿结束 , exit()– 进程被强行终止;

非法指令,越界, kill

– 进程等待可能引起进程切换的中断

– 时钟– 系统调用

Page 33: 第三章 中断与处理机调度

软件教研室软件教研室

3.2.3 3.2.3 处理机调度过程处理机调度过程

保存下降进程的现场– 系统栈 PCB

选择上升进程– 按处理机调度算法

恢复上升进程的现场– PCB 寄存器

Page 34: 第三章 中断与处理机调度

软件教研室软件教研室

3.3 调度级别与多级调度

• 3.3.1 交换与中级调度– Swapping and mid-level scheduling

• 3.3.2 作业与高级调度– Job and high-level scheduling

Page 35: 第三章 中断与处理机调度

软件教研室软件教研室

3.3.1 交换与中级调度• 术语

–交换 (swapping)– 中级调度 (mid-level scheduling)– 并发度 (degree of multi-programming)

• 目标:控制并发度– 并发度过高

• 系统开销大、响应速度慢• 内存等资源紧张• 进程 ( 线程 )频繁进入等待状态

Page 36: 第三章 中断与处理机调度

软件教研室软件教研室

3.3.1 交换与中级调度

剥夺

就绪 等待

运行 选中 等待事件

事件发生

就绪挂起

等待挂起

终止

创建

创建

结束

换出 换出换入 换入

事件发生

Page 37: 第三章 中断与处理机调度

软件教研室软件教研室

3.3.2 作业与高级调度• 作业状态 :

–提交 : 输入机向输入井传送–后备 : 在输入井 ,尚未进入内存–执行 : 分解为进程 , 在内存处理–完成 : 处理完毕 ,结果在输出井–退出 : 由输出井向打印机传送

Page 38: 第三章 中断与处理机调度

软件教研室软件教研室

3.3.2 3.3.2 作业与高级调度作业与高级调度 状态转换 :

– 提交后备 : 由 SPOOLing输入进程完成– 后备执行 : 由作业调度 (1)( 高级调度 ) 完成– 执行完成 : 由作业调度 (2) 完成– 完成退出 : 由 SOOPLing输出进程完成

提交 后备 执行 完成 退出

SPOOLing输入

作业调度1

作业调度2

SPOOLing输出

Page 39: 第三章 中断与处理机调度

软件教研室软件教研室

3.4 实时调度 (real-time scheduling)

• 实时任务:–具有明确时间约束的计算任务。– Eg.

• 某时刻前必须开始处理• 某时刻前必须处理完毕

• 实时调度:–合理安排就绪实时任务的执行次序,满足每个实时任务时间约束条件的调度。

Page 40: 第三章 中断与处理机调度

软件教研室软件教研室

实时任务分类• 硬实时 与 软实时

– 硬实时 : 必须满足任务截止期要求 .

– 软实时 : 期望满足截止期要求 . • 周期性与随机性

– 周期性 : 每隔固定时间发生一次 –随机性 : 由随机事件触发,其发生

时刻不确定

Page 41: 第三章 中断与处理机调度

软件教研室软件教研室

术语解释• Ready time: 就绪时间• Starting deadline: 开始截止期• Processing time: 处理时间• Completion deadline: 完成截止期• Occurring frequency: 发生频率

Page 42: 第三章 中断与处理机调度

软件教研室软件教研室

周期性实时事务• 周期性实时事务 :

– 令 Ci为任务 Pi处理时间, Ti为任务 Pi的发生周期,则任务 P1,…,Pm可调度的必要条件为:

1

1m

i

i i

C

T

Page 43: 第三章 中断与处理机调度

软件教研室软件教研室

周期性实时事务周期性实时事务例:

– 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

Page 44: 第三章 中断与处理机调度

软件教研室软件教研室

周期性实时事务

进程 就绪时间 处理时间 完成截止期 发生周期A 0 10 20 20

B 0 25 50 50

10/20 + 25/50 = 1, 可调度 ( 不考虑开销 )

Page 45: 第三章 中断与处理机调度

软件教研室软件教研室

例子Process Arrival time Execution time completion deadline

A(1)A(2)A(3)A(4)A(5)…...B(1)B(2)

020406080…...050

1010101010……2525

20406080100…...50100

Page 46: 第三章 中断与处理机调度

软件教研室软件教研室

3.4.1 最早截止期调度• EDF ( Earliest Deadline First)

– 优先选择截止期最早的实时任务– 可抢先

• 可以证明:对 EDF 来说,可调度充分条件是:

• 在不可调度的条件下,可使错过截止期任务最小化

1

1m

i

i i

C

T

Page 47: 第三章 中断与处理机调度

软件教研室软件教研室

例子例子 : Completion deadline scheduling: Completion deadline scheduling

0 10 20 30 40 50 60 70 80 90 100 Time

A2

A2 dl

A3

A3 dl

A4

A4 dl

B1A1

A1dl

B1 dl

B2

B2 dl

A5

A5 dl

A1 B1 A2 B1 A3 B2 A5B2 A4

A1 A2 B1 A3 A4 A5B2

Page 48: 第三章 中断与处理机调度

软件教研室软件教研室

3.4.2 速率单调调度• RMS ( Rate Monotonic Scheduling )

–提出于 1973年•面向周期性实时事务,非剥夺式• 优先调度发生周期最短(频度最

高)的实时任务– 可调度条件:

)12(1

1

n

i

n

i

i nT

C

Page 49: 第三章 中断与处理机调度

软件教研室软件教研室

RMS 的上限值

)12( /1 nnn

123456┇

1.00.8280.7790.7560.7430.734

┇ln20.693

RMS vs. EDF

1) RMS 可调度条件强于 EDF

2) RMS 调度较 EDF 实现简单

Page 50: 第三章 中断与处理机调度

软件教研室软件教研室

RMS 例子:进程 T i Ci

A 100 20

B 150 40

C 350 100

779.0)12(3753.0286.0267.02.03

3

2

2

1

1 31

T

C

T

C

T

C

可调度,具体调度结果:

A1 B1 C1 A2 B2 A3 A4 B3 C2

0 20 60 160 180 220 240 300 320 360 460

Page 51: 第三章 中断与处理机调度

软件教研室软件教研室

3.5 多处理机调度• 问题:

–M processes (threads)– N processors

• SMP : all processors are identical (homogeneous)• 目标: load-sharing

– separate ready queue for each processor, • not really balanced;

– common ready queue Q for all processors• each process accesses Q on its own,• master/slave assignment.

Page 52: 第三章 中断与处理机调度

软件教研室软件教研室

3.5.1 自调度 (self scheduling)• 均衡调度 (balanced scheduling)• 一个就绪队列 ( 多处理机访问互斥 )

– 优点• 不需要专门的处理机从事任务分派工作•任务分配均衡

–缺点• 当 CPU较多时 , 就绪队列成为瓶颈• 线程两次调度可能处于不同处理机• 不能保证同组线程同时调度

Page 53: 第三章 中断与处理机调度

软件教研室软件教研室

自调度 (self scheduling)

就绪队列

进程 ( 线程 )进程 ( 线程 )进程 ( 线程 )

CPU

CPU

CPU

Page 54: 第三章 中断与处理机调度

软件教研室软件教研室

3.5.2 组调度 (gang scheduling)• 将一组相关 (合作 ) 的线程同时分派到

多个处理机上运行–避免合作线程之间的相互等待–降低开销 ,提高运行效率

• 例子 :

– Cm*

• Task force ( 一组相关的计算 )

Page 55: 第三章 中断与处理机调度

软件教研室软件教研室

3.6 系统举例

• Linux 进程调度• Windows2000/XP 线程调度• UNIX 进程调度(见第 12 章)

Page 56: 第三章 中断与处理机调度

软件教研室软件教研室

3.6.1 Linux 3.6.1 Linux 进程调度进程调度三种特征进程

– Real-time FIFO– Real-time Round Robin– Timesharing

Goodness-based scheduling– priority

1-40, (缺省值 20 ), 可通过 nice 系统调用调整 , nice(value)中 value 的取值范围为 (-20,20) 之间 , 取 priority=20-value.

– quantum 进程尚可运行的剩余时间

Page 57: 第三章 中断与处理机调度

软件教研室软件教研室

Linux Linux 进程调度进程调度– quantum

对于运行进程来说,每个时钟间隔 (10ms ,称为一个 jiffy),将 quantum减 1

当所有就绪进程的 quantum 配额下降到 0 时,重新计算所有进程 ( 包括等待进程 )的 quantum 值

– quantum= (quantum/2) + priority

– goodness if(Real-time)goodness=1000+priority if(Timesharing && quantum=0)goodness=0 if(Timesharing && quantum>0)goodness=quantum+pri

ority

Page 58: 第三章 中断与处理机调度

软件教研室软件教研室

Linux Linux 进程调度进程调度调度发生时刻:

– 运行进程的 quantum减至 0; – 运行进程执行系统调用 exit ;– 运行进程因等待 I/O 、信号灯而被封锁 ;– 原来具有高 goodness 的进程被解除封锁 .

调度效果 :– 实时优先于分时 – 交互和 I/O 进程优先于 CPU 进程

Page 59: 第三章 中断与处理机调度

软件教研室软件教研室

Linux Linux 对称多处理对称多处理Linux2.0 是支持对称多处理硬件的第一个

Linux核心 ; – 进程或线程可以同时运行在多个处理机上 .

为保持核心非剥夺同步要求, SMP 通过一个唯一的核心自旋锁 (spin-lock)来保证任何时刻最多只有一个处理机执行核心代码 , – 支持真正意义上的 SMP :将一个自旋锁分解

为若干个相互独立的自旋锁,分别用于保护核心代码不相交的子集 .

Page 60: 第三章 中断与处理机调度

软件教研室软件教研室

3.6.2 Windows 2000/XP 线程调度• Main Features :

– Thread level scheduling;– Real time + foreground + background;

• real time: no deadline scheduling;• foreground: GUI window• background: non-interactive

– Preemptive + dynamic priority + RR + Feed back;

– Symmetric Multi-Processor(SMP) support;

Page 61: 第三章 中断与处理机调度

软件教研室软件教研室

优先级别• 16 个实时优先级( 16-31 )

– 一些内核线程– 应用程序提升为实时优先级需要有权限– 不是真正意义上的实时调度

• 15 个可变线程优先级( 1-15 )– 基本优先级 vs. 当前优先级– 可动态提升– 运行完一个 quantum之后自动下降

• 1 个系统线程优先级( 0 )

Page 62: 第三章 中断与处理机调度

软件教研室软件教研室

优先级提升• 优先级提升

– IO操作完成– 事件等待结束– 前台进程中的线程完成一个等待操作– 由于窗口活动而唤醒 GUI 线程– 就绪超过一定时限,未获得处理机

• 优先级提升不会超过 15

Page 63: 第三章 中断与处理机调度

软件教研室软件教研室

抢占 CPU• 抢先情形

–被唤醒线程优先级高于运行线程优先级;

– 某线程的优先级动态变化• 被抢先线程

– 回到相应就绪队列– 时间配额

• 实时线程:重新分配完整时间配额•其它线程:保持剩余配额

Page 64: 第三章 中断与处理机调度

软件教研室软件教研室

时间配额 (quantum)

• 配额长度: 6--36

• 时钟中断( 15ms 发生一次)减 3 ,2--12 次时钟中断( 30ms--180ms )配额用完

• 配额用完后进入就绪队列,优先级下降

Page 65: 第三章 中断与处理机调度

软件教研室软件教研室

SMP 上的线程调度• 线程与 CPU 的亲合关系

– 每个进程有一个处理器亲合掩码,缺省为所有处理器的集合

– 线程继承其进程的亲合掩码–亲合掩码可以修改

• SetProcessAffinityMask,

• SetThreadAffinityMask;

Page 66: 第三章 中断与处理机调度

软件教研室软件教研室

SMP 上的线程调度• 线程的理想处理器( Ideal processor )

–首选处理器:– 第二处理器:(在内核线程控制块

中)• 理想处理器确定

– 线程创建时随机确定,– 分散各个线程与处理机对应关系。– 线程可修改 SetThreadIdealProcessor

Page 67: 第三章 中断与处理机调度

软件教研室软件教研室

就绪线程的处理器选择• 有空闲处理器

– 首选处理器– 第二处理器– 当前执行处理器(正执行调度代码)– 由高到低顺序找空闲的处理器

• 无空闲处理器,考虑抢先– 首选处理器– 第二处理器– 可运行编号最大处理器

• 不能抢先进入相应的就绪队列

Page 68: 第三章 中断与处理机调度

软件教研室软件教研室

处理器对就绪线程的选择•空闲处理器调度–线程上次在此 CPU上运行(二级缓冲利用)

–线程的理想处理器是该 CPU–处于就绪状态时间超过 2个 quantum

–优先级别大于等于 24