版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 中断与处理机调度3.1 中断与中断系统3.2 处理机调度3.3 调度级别与多级调度3.4 实时调度3.5 多处理机调度3.6 系统举例 操作系统是中断驱动的!Interrupt driven3.1 中断与中断系统3.1.1 中断的概念3.1.2 中断装置3.1.3 中断处理程序3.1.1 中断的概念处理机在运行过程中,出现了某一事件,必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为中断。中断系统:中断装置(硬件)中断处理程序(软件)3.1.2 中断装置发现并响应中断的硬件机构识别中断源,当有多个中断源时,按紧迫程度排队;保存现场;引出中断处理程序。中断响
2、应和处理的过程正运行程序 1 6处理程序 4PSW,PCPC:PSW, PC系统桟psw, pc.253HALOS中断3.1.2.1 中断源与中断字中断源引起中断的事件。中断寄存器保存与中断事件相关信息的寄存器。中断字中断寄存器的内容。例:IO中断:设备状态寄存器。3.1.2.2 中断类型与中断向量强迫性中断运行程序不期望的时钟中断IO中断控制台中断硬件故障中断power failure内存校验错程序性中断越界,越权缺页溢出,除0非法指令自愿性中断运行程序期望的系统调用访管指令系统调用fd=open(fname,mode)访管指令准备参数svc n取返回值3.1.2.2 中断类型与中断向量中断
3、装置 中断处 理程序运行程序访管指令运行程序中断装置 中断处 理程序clockIOconsolePowerfailuremalfunction强迫中断:自愿中断:SVC ntrap n3.1.2.2 中断类型与中断向量中断向量:中断处理程序的运行环境与入口地址(PSW,PC)每类中断事件有一个中断向量,中断向量的存放位置是由硬件规定的,中断向量的内容是OS在系统初始化时设置好的。 中断向量mode应为系统态3.1.2.2 中断类型与中断向量PSW1, PC1 时钟中断向量PSW2, PC2 I/O中断向量PSW3, PC3 console中断向量PSW4, PC4 硬件故障PSW5, PC5
4、程序错误 PSWn, PCn 访管中断向量00000008001600240030 0090时钟中断处理程序PC1:I/O中断处理程序PC2:访管中断处理程序PCn:系统空间3.1.2.3 中断嵌套与系统栈一般原则:高优先级别中断可以嵌入低优先级中断实现方法:中断响应后立即屏蔽不高于当前中断优先级的中断源。3.1.2.3 中断嵌套与系统栈进入中断后一般需要进一步保存现场 关中断(屏蔽所有中断) 进一步保存现场(通用寄存器等) 开中断(或开放高优先级中断) . 中断处理 . 关中断(屏蔽所有中断) 恢复现场 开中断(或开放高优先级中断) 中断返回3.1.2.3 中断嵌套与系统栈(Cont.)目态
5、PSW1: PC1管态PSW2: PC2管态PSWn: PCn中断嵌套:3.1.2.3 中断嵌套与系统栈(Cont.)PSWn-1 PCn-1PSW2 PC2PSW1 PC1栈顶指针:系统栈:3.1.2.4 中断优先级与中断屏蔽中断优先级:硬件规定的中断响应次序,依据:紧迫程度;处理时间。中断屏蔽:高优先级中断事件处理不受低优先级中断打扰;程序调整中断响应次序。3.1.3 中断处理程序强迫性中断: 自愿性中断: 转中断处理程序 是否嵌套中断由系统栈恢复现场 需要切换进程 返回上层中断 由系统栈恢复现场 转CPU分派 返回目态程序 (dispatcher)保存现场信息取中断字分析中断原因保存现场
6、信息取访管号分析调用功能TFFT3.1.3.1 IO中断处理正常结束继续传输;唤醒相关进程。传输错误复执(eg. 3次);报告系统操作员。3.1.3.2 时钟中断处理Housekeeping进程管理重新计算进程调度参数(eg. 动态优先数)实现软时钟,启动定时程序硬时钟5ms发生一次中断,软时钟50ms考虑进程切换3.1.3.3 控制台中断处理一个控制按钮,一个中断向量,一个中断处理程序。3.1.3.4 硬件故障处理电源故障处理掉电:内存,寄存器外存停止设备停止处理机恢复:启动处理机启动设备外存内存,寄存器 Use UPS for criticalapplications3.1.3.4 硬件故
7、障处理(cont.)内存故障处理海明校验,奇偶校验错误下雨检查划出系统报告操作员3.1.3.5 程序性中断的处理只能由操作系统处理的中断影响系统或其它进程越界,非法指令,(处理:终止进程、调试)需要系统管理或协助页故障,缺段,(处理:动态调入)可以由用户自己处理的中断不影响系统和其它进程除0,溢出,(处理:用户处理,或OS处理)应用程序自己处理中断调试语句:on 例如:on goto LA;除0中断时转LA处理除0中断时转LB处理 on goto LB除0中断续元除0中断续元LA:LB:相同中断发生在不同位置可采用不同处理方法应用程序自行处理中断(Cont.)编译时:生成中断续元表:中断续元入
8、口0中断续元入口1中断续元入口n中断事件0:中断事件1:中断事件n:.运行时:执行调试语句,填写中断续元表。中断时:根据中断原因查中断续元表, 为0,用户未规定中断续元,由OS标准处理; 非0,用户已规定中断续元,由用户处理。初始时均为0图3-9(P47)步骤:(1)发生溢出中断(2)保存旧PSW和PC(3)取中断向量(4)转到中断处理程序(5)访问中断续元表(假定非0)(6)系统栈中现场转移到用户栈(7)中断续元入口送寄存器(OS中断处理完成)(8)执行中断续元(9)用户栈PSW和PC送寄存器(10)返回中断断点3.1.3.6 自愿性中断的处理访管指令(SuperVisor Call)形式:
9、准备参数SVC n取返回值系统调用(system call)形式:返回值=系统调用名称(实参1,实参n) 参数和返回值的存放位置是由OS规定的。3.1.3.6 自愿性中断的处理系统调用驱动表:(table driven)服务程序入口addr0addrm-1访管号:0.m-1Eg. UNIX3.2 处理机调度3.2.1 处理机调度算法按什么原则分配3.2.2 处理机调度时机何时重新分配3.2.3 处理机调度过程如何完成分配scheduling3.2.1 处理机调度算法考虑因素(scheduling criteria)CPU利用率 ; (max)吞吐量 ; (max)周转时间 ; (min)响应时
10、间 ; (min)系统开销 ; (min)CPU burst vs. I/O burst 阵发期 :CPU burst cycle: 进程(线程)使用CPU计算;I/O burst cycle: 进程(线程)使用设备I/O。进程运行行为:CPU burst, I/O burst, CPU burst, I/O burst, CPU调度:考虑处于CPU burst进程集合 CPU burst时间根据以前行为推定。剥夺式调度与非剥夺式调度剥夺式(preemptive)就绪进程可以从运行进程手中抢占CPU。进程运行,直到结束、等待或被抢先非剥夺式(non-preemptive)就绪进程不可从运行进程
11、手中抢占CPU。进程运行,直到结束或等待3.2.1.1 先到先服务算法FCFS(First Come First Serve)按进程申请CPU(就绪)的次序。Gantt图(到达次序:P1,P2,P3)processBurst timeP127P23P35P1P2P30 27 30 353.2.1.1 先到先服务算法(Cont.)平均等待时间:(0+27+30)/3 = 19(ms)Gantt图(到达次序:P2,P3,P1)平均等待时间(0+3+8)/3 = 3.67P1P2P30 3 8 353.2.1.1 先到先服务算法(Cont.)优点:“公平”;短作业等待时间长。3.2.1.2 短作业优
12、先SJF(Shortest Job First)按CPU burst长度Gant chart:ProcessBurst timeP112P25P37P43P1P3P2P40 3 8 15 273.2.1.2 短作业优先(SJF)平均等待时间:(0+3+8+15)/4 = 6.5 (ms)特点:假定所有任务同时到达,平均等待时间最短。长作业可能被饿死。进程到达时间运行时间开始时间完成时间周转时间带权周转时间P10121527272.25P2053881.6P307815152.14P4030331平均周转时间= 13.25 ,平均带权周转时间1.753.2.1.3最短剩余时间优先(SRTN)选择
13、剩余执行时间最短的进程或线程执行.是剥夺式调度算法实现: 1.CPU空闲时选择剩余时间最短的进程或线程 2. 当一个新进程或线程到达时,比较新进程所需时间与当前运行进程的估计剩余时间,如果新进程所需运行时间短则切换运行进程进程到达时间运行时间开始时间完成时间周转时间带权周转时间P10121030302.5P219119182P33631291.5P4535831平均周转时间= 15ms ,平均带权周转时间1.75ms3.2.1.4最高响应比优先(HRN)Highest Response Ratio NextRR=(BT+WT)/BT=1+WT/BT其中:BT=burst timeWT=wait
14、 time优点:同时到达任务, 短者优先长作业随等待时间增加响应比增加3.2.1.5 最高优先数算法(HPF)静态优先数(static)优先数在进程创建时分配,生存期内不变。响应速度慢,开销小。适合批处理进程动态优先数(dynamic)进程创建时继承优先数,生存期内可以修改。响应速度快,开销大。适用于实时系统3.2.1.5 最高优先数算法(Cont.)非剥夺式静态优先数获得处理机的进程运行,直至终止等待剥夺式动(静)态优先数获得处理机的进程运行,直至终止等待出现高优先级的进程3.2.1.5 最高优先数算法(Cont.)例子UNIX:preemptive+dynamic priority(可抢占
15、CPU动态优先数)。计算公式:p_pri=min127, USER+p_cpu/16+p_nice定义USER=100;p_cpu: 运行进程每20ms加1(优先级降低),其它进程每1200ms减10(优先级提高);p_nice: 可以通过系统调用nice()修改的量:规定用户进程020之间(低),系统进程-20+20之间(高)。3.2.1.6 循环轮转算法(RR)Round Robin(RR)基本轮转时间片(quantum,time slice)长度固定,不变;所有进程等速向前推进。改进轮转时间片长度不定,可变。适用于分时系统3.2.1.6 循环轮转算法(RR)例:有如下进程集合,假定进程按
16、下标次序进入就绪队列,但彼此相差时间很短,可以近似认为“同时”到达,采用基本轮转法,假定时间片长度为2ms。进程到达时间运行时间开始时间完成时间周转时间带权周转时间P1012026262.17P204212123P307422223.14P403615155平均周转时间= 18.75ms ,平均带权周转时间3.33ms3.2.1.6 循环轮转算法 (Cont.)时间片长度: 几十毫秒几百毫秒(eg. 50ms)过长:响应速度慢;过短:系统开销(overhead)大。适应系统:分时3.2.1.7 分类排队算法(MLQ)多级队列多个就绪队列,进程所属的队列固定。例如:通用系统中: 队列1:实时进程
17、就绪队列(HPF) 队列2:分时进程就绪队列 (RR) 队列3:批处理进程就绪队列 (HPF)3. 2.1.8 反馈排队算法(FB)Feed-Back:多个就绪队列,进程所属队列可变。Q1(RR,HPF)Q2(RR,HPF)Qn(RR,HPF)运行s1时间片运行s2时间片.创建唤醒优先级 时间片运行sn时间片3.2.1.8 反馈排队算法 (Cont.)调度效果: 资源利用率高P1等待P2占有的资源R, P2释放R, 分给P1, P1被唤醒, 进入最高级队列, 可尽早投入运行, 使用资源R; 响应速度快交互式进程经常进入等待状态(等待用户输入),一旦被唤醒(输入完成),进入最高级队列,可尽快被调
18、度选中,投入运行,反应及时; 系统开销小计算量大的进程用完前面n-1级时间片,没有处理完,落入底层队列,调度频率下降,但每次获得较长的时间片。Feed Back3.2.2 处理机调度时机中断处理完毕,没有嵌套中断,即将返回目态。目态(Pi运行)目态(Pj运行)管态管态.中断中断中断返回返回返回Pi=Pj: 未发生进程切换;PiPj: 发生了进程切换。3.2.2 处理机调度时机(Cont.)必然引起进程切换的中断进程自愿结束, exit()进程被强行终止;非法指令,越界,kill进程等待可能引起进程切换的中断时钟系统调用3.2.3 处理机调度过程保存下降进程的现场系统栈PCB选择上升进程按处理机
19、调度算法恢复上升进程的现场PCB 寄存器先恢复通用寄存器和地址寄存器,最后恢复PSW,PCPSW和PC必须用一条指令恢复3.3 调度级别与多级调度3.3.1 交换与中级调度Swapping and mid-level scheduling3.3.2 作业与高级调度Job and high-level scheduling处理机调度为低级调度CPU scheduling = low level scheduling3.3.1 交换与中级调度术语交换(swapping)中级调度(mid-level scheduling)并发度(degree of multi-programming)目标:控制并发
20、度并发度过高系统开销大响应速度慢内存等资源紧张进程(线程)频繁进入等待状态More deadlocks3.3.1 交换与中级调度剥夺就绪等待运行 选中等待事件事件发生就绪挂起等待挂起无终止创建创建结束换出换出换入换入事件发生UNIX的中级调度(sched #0)移入SRUN状态进程如内存不够,移出SWAIT和SSTOP状态进程;如还不够,移出SSLEEP和SRUN状态进程;条件:待移入进程在外存时间=3秒;待移出进程在内存时间=2秒。3.3.2 作业与高级调度作业状态:提交: 输入机向输入井传送后备: 在输入井,尚未进入内存执行: 分解为进程,在内存处理完成: 处理完毕,结果在输出井退出: 由
21、输出井向打印机传送3.3.2 作业与高级调度状态转换:提交后备: 由SPOOLing输入进程完成Simultaneous Peripheral Operation On-Line后备执行: 由作业调度(1)(高级调度)完成高级调度: 系统进程执行完成: 由作业调度(2)完成完成退出: 由SPOOLing输出进程完成提交后备执行完成退出SPOOLing输入作业调度1作业调度2SPOOLing输出3.4 实时调度(real-time scheduling)实时任务:具有明确时间约束的计算任务。Eg.某时刻前必须开始处理某时刻前必须处理完毕实时调度:合理安排就绪实时任务的执行次序,满足每个实时任务时
22、间约束条件的调度。实时任务分类硬实时 vs. 软实时 硬实时: 必须满足任务截止期要求 . 软实时: 期望满足截止期要求 . 周期性 vs. 随机性 周期性: 每隔固定时间发生一次 随机性: 由随机事件触发,其发生时刻不确定 术语解释Ready time: 就绪时间Starting deadline: 开始截止期Processing time: 处理时间Completion deadline: 完成截止期Occurring frequency: 发生频率周期性实时事务周期性实时事务:令Ci为任务Pi处理时间,Ti为任务Pi的发生周期,则任务P1,Pm可调度的必要条件为: 周期性实时事务例:T1
23、=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.850)goodness=quantum+priorityLinux 进程调度调度发生时刻: 运行进程的quantum减至0; 运行进程执行系统调用exit ;运行进程因等待I/O、信号灯而被封锁 ;原来具有高goodness的进程被解除封锁 .调度效果 :实时优先于分时 交互和I/O进程优先于CPU进程 Linux 对称多处理Linux2.0是支持对称多处理硬件的第一个Linux核心 ; 进程或线程可以同时运行在多个处理机上 .
24、为保持核心非剥夺同步要求,SMP通过一个唯一的核心自旋锁(spin-lock)来保证任何时刻最多只有一个处理机执行核心代码, 支持真正意义上的SMP:将一个自旋锁分解为若干个相互独立的自旋锁,分别用于保护核心代码不相交的子集 .3.6.2 Windows 2000/XP线程调度Main Features:Thread level scheduling;Real time + foreground + background;real time: no deadline scheduling;foreground: GUI windowbackground: non-interactivePreemptive + dynamic priority + RR + Feed back;Symmetric Multi-Processor(SMP) support;优先级别16个实时优先级(16-31)一些内核线程应用程序提升
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 子宫动脉栓塞介入治疗
- 打印与艺术品创作的数字创新与展望考核试卷
- 摩托车的品质与销售价格考核试卷
- 合成材料制造对于化学工业的改进与创新考核试卷
- 创业空间激发创新创业潜力考核试卷
- 店铺转让合同模板(一)
- 交警个人总结
- 清理垃圾施工合同范例
- 灯品合同范例
- 特殊教具采购合同范例
- 《公共科目》军队文职考试试题及解答参考(2024年)
- 2024年秋季新人教版七年级上册英语全册教案设计
- 法律服务投标方案(技术方案)
- 2024年人教版七年级上册历史第三单元综合检测试卷及答案
- 2024年江苏省高中学业水平合格性考试数学试卷试题(答案详解1)
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
- 创建五星级班组PPT课件
- TBJWA001-2021健康直饮水水质标准
- 监理日报模板
- 社区卫生服务中心创建汇报材料
- 社会工作评估
评论
0/150
提交评论