1 / 68

第三章 中断与处理机调度

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

shayna
Download Presentation

第三章 中断与处理机调度

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 中断与处理机调度 • 中断与中断系统 • 处理机调度 • 调度级别与多级调度 • 实时调度

  2. 3.1 中断与中断系统 • 3.1.1 中断的概念 • 3.1.2 中断装置 • 3.1.3 中断处理程序

  3. 3.1.1 中断的概念 • 处理机在运行过程中,出现了某一事件,必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为中断。 • 中断系统: • 中断装置(硬件) • 中断处理程序(软件)

  4. 3.1.2 中断装置 • 发现并响应中断的硬件机构 • 识别中断源,当有多个中断源时,按紧迫程度排队; • 保存现场; • 引出中断处理程序。

  5. 中断响应和处理的过程 正运行程序 16 PSW, PC 5 2 3 PSW’,PC’ psw, pc PC’: 处理程序 4 ……... OS 系统桟 HAL

  6. 3.1.2.1 中断源与中断字 • 中断源 • 引起中断的事件。 • 中断寄存器 • 保存与中断事件相关信息的寄存器。 • 中断字 • 中断寄存器的内容。 • 例:IO中断:设备状态寄存器。

  7. 强迫性中断 运行程序不期望的 时钟中断、IO中断、控制台中断 硬件故障中断(power failure、内存校验错) 程序性中断(越界,越权、非法指令) 自愿性中断 运行程序期望的 系统调用: fd=open(fname,mode) 访管指令:准备参数 svc n 取返回值 3.1.2.2 中断类型与中断向量

  8. 3.1.2.2 中断类型与中断向量 clock 强迫中断: IO 自愿中断: console power failure SVC n trap n malfunction 运行程序 访管指令 运行程序 中断装置 中断装置 中断处 理程序 中断处 理程序

  9. 3.1.2.2 中断类型与中断向量 • 中断向量:中断处理程序的运行环境与入口地址(PSW,PC) • 每类中断事件有一个中断向量, • 中断向量的存放位置是由硬件规定的, • 中断向量的内容是OS在系统初始化时设置好的。

  10. 3.1.2.2 中断类型与中断向量 PC1: 时钟中断 处理程序 PSW1, PC1 时钟中断向量 PSW2, PC2 I/O中断向量 PSW3, PC3 控制台中断向量 PSW4, PC4 硬件故障 PSW5, PC5 程序错误 … … PSWn, PCn 访管中断向量 0000 0008 0016 0024 0030 … 0090 PC2: I/O中断 处理程序 … PCn: 访管中断 处理程序 系统空间

  11. 3.1.2.3 中断嵌套与系统栈 • 一般原则: • 高优先级别中断可以嵌入低优先级中断 • 实现方法: • 中断响应后立即屏蔽不高于当前中断优先级的中断源。

  12. 中断嵌套与系统栈 进入中断后一般需要进一步保存现场 关中断(屏蔽所有中断) 进一步保存现场(地址寄存器,通用寄存器等) 开中断(或开放高优先级中断) …... 中断处理 …... 恢复现场 中断返回

  13. 中断嵌套与系统栈 系统栈: …… PSWn-1 PCn-1 …… PSW2 PC2 PSW1 PC1 指针 … PSW2: PC2 PSWn: PCn PSW1: PC1 … … … … … … … … 管态 管态 目态 中断嵌套:

  14. 3.1.2.4 中断优先级与中断屏蔽 • 中断优先级: • 硬件规定的中断响应次序,依据: • 紧迫程度; • 处理时间。 • 中断屏蔽: • 高优先级中断事件处理不受低优先级中断打扰; • 程序调整中断响应次序。

  15. 3.1.3 中断处理程序 强迫性中断: 自愿性中断: 转中断处理程序 是否嵌套中断 由系统栈恢复现场 需要切换进程 返回上层中断 由系统栈恢复现场 转CPU分派 返回目态程序 (dispatcher) 保存现场信息 取中断字 分析中断原因 保存现场信息 取访管号 分析调用功能 F T F T

  16. 3.2 处理机调度 • 处理机调度算法 • 按什么原则分配 • 处理机调度时机 • 何时重新分配 • 处理机调度过程 • 如何完成分配 scheduling

  17. 3.2.1 处理机调度算法 • 考虑因素(scheduling criteria) • CPU利用率 ; (max) • 吞吐量 ; (max) • 周转时间 ; (min) • 响应时间 ; (min) • 系统开销 ; (min)

  18. 基本概念 • 阵发期 : • CPU burst cycle: 进程(线程)使用CPU计算; • I/O burst cycle: 进程(线程)使用设备I/O。 • 剥夺式(preemptive) • 就绪进程可以从运行进程手中抢占CPU。 • 非剥夺式(non-preemptive) • 就绪进程不可从运行进程手中抢占CPU。

  19. 3.2.1.1 先到先服务算法 P1 P2 P3 0 273035 • FCFS(First Come First Serve) • 按进程申请CPU(就绪)的次序。 • Gantt图(到达次序:P1,P2,P3)

  20. 3.2.1.1 先到先服务算法 • 平均等待时间: (0+27+30)/3 = 19(ms) • Gantt图(到达次序:P2,P3,P1) • 平均等待时间 • (0+3+8)/3 = 3.67 P2 P3 P1 03835

  21. 3.2.1.2 短作业优先 P4 P2 P3 P1 03 81527 • SJF(Shortest Job First) • 按CPU burst长度 • Gantt chart:

  22. 3.2.1.2 短作业优先(SJF) • 平均等待时间: • (0+3+8+15)/4 = 6.5 (ms) • 特点: • 假定所有任务同时到达,平均等待时间最短。 • 长作业可能被饿死。

  23. 3.2.1.3 最高优先数算法(HPF) • 静态优先数(static) • 优先数在进程创建时分配,生存期内不变。 • 响应速度慢,开销小。 • 适合批处理进程 • 动态优先数(dynamic) • 进程创建时继承优先数,生存期内可以修改。 • 响应速度快,开销大。

  24. 3.2.1.3 最高优先数算法(Cont.) • 非剥夺式静态优先数 • 获得处理机的进程运行,直至 • 终止 • 等待 • 剥夺式动(静)态优先数 • 获得处理机的进程运行,直至 • 终止 • 等待 • 出现高优先级的进程

  25. 3.2.1.4 循环轮转算法(RR) • 基本轮转 • 时间片(quantum,time slice)长度固定,不变; • 所有进程等速向前推进。 • 改进轮转 • 时间片长度不定,可变。

  26. 3.2.1.4 循环轮转算法 (Cont.) • 时间片长度: 几十毫秒几百毫秒(eg. 50ms) • 过长:响应速度慢; • 过短:系统开销(overhead)大。 • 适应系统: • 分时

  27. 3.2.1.5 多级队列算法(MLQ) • 多级队列 • 多个就绪队列,进程所属的队列固定。 • 例如:通用系统中: • 队列1:实时进程就绪队列(HPF) • 队列2:分时进程就绪队列 (RR) • 队列3:批处理进程就绪队列 (HPF)

  28. 3.2.1.6 最短剩余时间(SRTN) • Shortest Remaining Time Next • 可剥夺SJF

  29. 3. 2.1.7 反馈排队算法(FB) 创建唤醒 Q1(RR,HPF) 运行s1时间片 优先级 时间片 Q2(RR,HPF) 运行s2时间片 …. Qn(RR,HPF) 运行sn时间片 • Feed-Back: • 多个就绪队列,进程所属队列可变。

  30. 3.2.1.7 反馈排队算法 (Cont.) • 调度效果: • 资源利用率高 • 被唤醒的进程尽早投入运行; • 响应速度快 • 交互式进程反应及时; • 系统开销小 • 计算量大的进程落入底层队列。

  31. 3.2.2 处理机调度时机 中断 中断 中断 目态(Pi运行) 目态(Pj运行) …... 管态 管态 返回 返回 返回 • 中断处理完毕,没有嵌套中断,即将返回目态。 Pi=Pj: 未发生进程切换; Pi<>Pj: 发生了进程切换。

  32. 3.2.2 处理机调度时机(Cont.) • 必然引起进程切换的中断 • 进程自愿结束, exit() • 进程被强行终止; • 非法指令,越界,kill • 进程等待 • 可能引起进程切换的中断 • 时钟 • 系统调用

  33. 3.2.3 处理机调度过程 • 保存下降进程的现场 • 系统栈PCB • 选择上升进程 • 按处理机调度算法 • 恢复上升进程的现场 • PCB 寄存器

  34. 3.3 调度级别与多级调度 • 3.3.1 交换与中级调度 • Swapping and mid-level scheduling • 3.3.2 作业与高级调度 • Job and high-level scheduling

  35. 3.3.1 交换与中级调度 • 术语 • 交换(swapping) • 中级调度(mid-level scheduling) • 并发度(degree of multi-programming) • 目标:控制并发度 • 并发度过高 • 系统开销大、响应速度慢 • 内存等资源紧张 • 进程(线程)频繁进入等待状态

  36. 3.3.1 交换与中级调度 结束 运行 终止 选中 等待事件 剥夺 就绪 等待 创建 事件发生 无 换入 换出 换入 换出 就绪 挂起 创建 等待 挂起 事件发生

  37. 3.3.2 作业与高级调度 • 作业状态: • 提交: 输入机向输入井传送 • 后备: 在输入井,尚未进入内存 • 执行: 分解为进程,在内存处理 • 完成: 处理完毕,结果在输出井 • 退出: 由输出井向打印机传送

  38. 3.3.2 作业与高级调度 提交 完成 后备 执行 退出 SPOOLing输入 SPOOLing输出 作业调度1 作业调度2 • 状态转换: • 提交后备: 由SPOOLing输入进程完成 • 后备执行: 由作业调度(1)(高级调度)完成 • 执行完成: 由作业调度(2)完成 • 完成退出: 由SOOPLing输出进程完成

  39. 3.4 实时调度(real-time scheduling) • 实时任务: • 具有明确时间约束的计算任务。 • Eg. • 某时刻前必须开始处理 • 某时刻前必须处理完毕 • 实时调度: • 合理安排就绪实时任务的执行次序,满足每个实时任务时间约束条件的调度。

  40. 实时任务分类 • 硬实时 与 软实时 • 硬实时 :必须满足任务截止期要求 . • 软实时 :期望满足截止期要求 . • 周期性与随机性 • 周期性 :每隔固定时间发生一次 • 随机性:由随机事件触发,其发生时刻不确定

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

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

  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

  44. 周期性实时事务 10/20 + 25/50 = 1, 可调度(不考虑开销)

  45. 例子 Process Arrival time Execution time completion deadline 0 20 40 60 80 …... 0 50 A(1) A(2) A(3) A(4) A(5) …... B(1) B(2) 10 10 10 10 10 …… 25 25 20 40 60 80 100 …... 50 100

  46. 3.4.1 最早截止期调度 • EDF(Earliest Deadline First) • 优先选择截止期最早的实时任务 • 可抢先 • 可以证明:对EDF来说,可调度充分条件是: • 在不可调度的条件下,可使错过截止期任务最小化

  47. 例子: Completion deadline scheduling B1 dl B2 dl A4 dl A5 dl A1dl A2 dl A3 dl A2 A3 A4 A5 A1 B1 B2 0 10 20 30 40 50 60 70 80 90 100 Time A1 B1 A2 B1 A3 B2 A4 B2 A5 A1 A2 B1 A3 A4 A5B2

  48. 3.4.2 速率单调调度 • RMS(Rate Monotonic Scheduling) • 提出于1973年 • 面向周期性实时事务,非剥夺式 • 优先调度发生周期最短(频度最高)的实时任务 • 可调度条件:

  49. n RMS的上限值 1 2 3 4 5 6 ┇  1.0 0.828 0.779 0.756 0.743 0.734 ┇ ln20.693 • RMS vs. EDF • RMS可调度条件强于EDF • RMS调度较EDF实现简单

  50. RMS例子: 可调度,具体调度结果: 0 20 60 160 180 220 240 300 320 360 460

More Related