《03第三章 中断与处理机调度(1)1.ppt》由会员分享,可在线阅读,更多相关《03第三章 中断与处理机调度(1)1.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章 中断与处理机调度中断与处理机调度n3.1 中断与中断系统中断与中断系统n3.2 处理机调度处理机调度n3.3 调度级别与多级调度调度级别与多级调度n3.4 实时调度实时调度n3.5 多处理机调度多处理机调度n3.6 系统举例系统举例 操作系统是中断驱动的!操作系统是中断驱动的!Interrupt driven3.1 中断与中断系统中断与中断系统n3.1.1 中断的概念中断的概念n3.1.2 中断装置中断装置n3.1.3 中断处理程序中断处理程序3.1.1 中断的概念中断的概念n处理机在运行过程中,出现了某一事件,处理机在运行过程中,出现了某一事件,必须中止正在运行的程序,转去处理
2、这必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,个事件,然后再返回原来运行的程序,这一过程称为中断。这一过程称为中断。n中断系统:中断系统:n中断装置中断装置(硬件硬件)n中断处理程序中断处理程序(软件软件)3.1.2 中断装置中断装置n发现并响应中断的硬件机构发现并响应中断的硬件机构n识别中断源,当有多个中断源时,按紧迫程识别中断源,当有多个中断源时,按紧迫程度排队;度排队;n保存现场;保存现场;n引出中断处理程序。引出中断处理程序。中断响应和处理的过程中断响应和处理的过程正正运运行行程程序序 处处理理程程序序 PSW,PCPC:PSW,PC系统桟系统桟.HALOS中断
3、正正运运行行程程序序 处处理理程程序序 PSW,PCPC:PSW,PC系统桟系统桟psw,pc.HALOS中断中断响应和处理的过程中断响应和处理的过程正正运运行行程程序序 处处理理程程序序 PSW,PCPC:PSW,PC系统桟系统桟psw,pc.HALOS中断中断响应和处理的过程中断响应和处理的过程正正运运行行程程序序 处处理理程程序序 PSW,PCPC:PSW,PC系统桟系统桟psw,pc.HALOS中断中断响应和处理的过程中断响应和处理的过程正正运运行行程程序序 处处理理程程序序 PSW,PCPC:PSW,PC系统桟系统桟psw,pc.HALOS中断中断响应和处理的过程中断响应和处理的过程
4、正正运运行行程程序序 处处理理程程序序 PSW,PCPC:PSW,PC系统桟系统桟psw,pc.HALOS中断中断响应和处理的过程中断响应和处理的过程3.1.2.1 中断源与中断字中断源与中断字n中断源中断源n引起中断的事件。引起中断的事件。n中断寄存器中断寄存器n保存与中断事件相关信息的寄存器。保存与中断事件相关信息的寄存器。n中断字中断字n中断寄存器的内容。中断寄存器的内容。n例:例:IO中断:设备状态寄存器。中断:设备状态寄存器。3.1.2.2 中断类型与中断向量中断类型与中断向量n强迫性中断强迫性中断n运行程序不期望的运行程序不期望的n时钟中断时钟中断nIO中断中断n控制台中断控制台中
5、断n硬件故障中断硬件故障中断npower failuren内存校验错内存校验错n程序性中断程序性中断n越界,越权越界,越权n缺页缺页n溢出,除溢出,除0n非法指令非法指令n自愿性中断自愿性中断n运行程序期望的运行程序期望的n系统调用系统调用n访管指令访管指令n系统调用系统调用nfd=open(fname,mode)n访管指令访管指令n准备参数准备参数nsvc nn取返回值取返回值3.1.2.2 中断类型与中断向量中断类型与中断向量中断装置中断装置 中断处中断处 理程序理程序运行程序运行程序访管指令访管指令运行程序运行程序中断装置中断装置 中断处中断处 理程序理程序clockIOconsoleP
6、owerfailuremalfunction强迫中断强迫中断:自愿中断自愿中断:SVC ntrap n3.1.2.2 中断类型与中断向量中断类型与中断向量n中断向量:中断处理程序的运行环境与中断向量:中断处理程序的运行环境与入口地址(入口地址(PSW,PC)n每类中断事件有一个中断向量每类中断事件有一个中断向量,n中断向量的存放位置是由硬件规定的中断向量的存放位置是由硬件规定的,n中断向量的内容是中断向量的内容是OS在系统初始化时设置在系统初始化时设置好的。好的。中断向量中断向量mode应为系统态应为系统态3.1.2.2 中断类型与中断向量中断类型与中断向量PSW1,PC1 时钟中断向量时钟中
7、断向量PSW2,PC2 I/O中断向量中断向量PSW3,PC3 console中断向量中断向量PSW4,PC4 硬件故障硬件故障PSW5,PC5 程序错误程序错误 PSWn,PCn 访管中断向量访管中断向量00000008001600240030 0090时钟中断时钟中断处理程序处理程序PC1:I/O中断中断处理程序处理程序PC2:访管中断访管中断处理程序处理程序PCn:系统空间系统空间3.1.2.3 中断嵌套与系统栈中断嵌套与系统栈n一般原则:一般原则:n高优先级别中断可以嵌入低优先级中断高优先级别中断可以嵌入低优先级中断n实现方法:实现方法:n中断响应后立即屏蔽不高于当前中断优先级中断响应
8、后立即屏蔽不高于当前中断优先级的中断源。的中断源。3.1.2.3 中断嵌套与系统栈中断嵌套与系统栈中断响应后一般需要进一步保存现场中断响应后一般需要进一步保存现场中断响应后一般需要进一步保存现场中断响应后一般需要进一步保存现场 关中断关中断(屏蔽所有中断)(屏蔽所有中断)进一步保存现场(通用寄存器等)进一步保存现场(通用寄存器等)开中断开中断(或开放高优先级中断)(或开放高优先级中断).中断处理中断处理 .关中断关中断(屏蔽所有中断)(屏蔽所有中断)恢复现场恢复现场 开中断开中断 中断返回中断返回3.1.2.3 中断嵌套与系统栈中断嵌套与系统栈(Cont.)目态目态PSW1:PC1管态管态PS
9、W2:PC2管态管态PSWn:PCn中断嵌套中断嵌套:3.1.2.3 中断嵌套与系统栈中断嵌套与系统栈(Cont.)PSWn-1 PCn-1PSW2 PC2PSW1 PC1栈顶指针栈顶指针:系统栈系统栈:3.1.2.4 中断优先级与中断屏蔽中断优先级与中断屏蔽n中断优先级:中断优先级:n硬件规定的中断响应次序,依据硬件规定的中断响应次序,依据:n紧迫程度;紧迫程度;n处理时间。处理时间。n中断屏蔽:中断屏蔽:n高优先级中断事件处理不受低优先级中断打高优先级中断事件处理不受低优先级中断打扰;扰;n程序调整中断响应次序。程序调整中断响应次序。强迫性中断强迫性中断:自愿性中断自愿性中断:关中断关中断
10、进一步保存现场到系统栈进一步保存现场到系统栈取中断字取中断字分析中断原因分析中断原因关中断关中断进一步保存现场到系统栈进一步保存现场到系统栈取调用号取调用号分析何种系统调用分析何种系统调用中断处理中断处理由系统栈恢复现场由系统栈恢复现场返回目态程序返回目态程序保存下降进程现场到保存下降进程现场到PCB(核心栈核心栈=PCB)选择上升进程选择上升进程由由PCB恢复上升进程现场恢复上升进程现场TF开放高优先级中断开放高优先级中断关中断关中断终止终止收回资源收回资源,撤销撤销PCB选择上升进程选择上升进程由由PCB恢复上升进程现场恢复上升进程现场T等待等待保存下降进程现场到保存下降进程现场到PCB选
11、择上升进程选择上升进程由由PCB恢复上升进程现场恢复上升进程现场FT剥夺剥夺F中断处理完中断处理完TF3.1.3 中断处理程序中断处理程序由系统栈回复现场由系统栈回复现场返回目态程序返回目态程序是嵌套中断是嵌套中断由系统栈恢复现场由系统栈恢复现场返回上层中断返回上层中断F中断分析中断分析n关于等待关于等待n何时等待?何时等待?n没有嵌套,中断与运行进程相关没有嵌套,中断与运行进程相关n等待几次?等待几次?n可能多次可能多次n什么级别现场?什么级别现场?n核心级别现场核心级别现场n等待时系统栈如何?等待时系统栈如何?n栈底是目态现场,然后是嵌套函数的返回点、参数、局部栈底是目态现场,然后是嵌套函
12、数的返回点、参数、局部变量、返回值变量、返回值中断分析中断分析n关于剥夺关于剥夺n何时剥夺?何时剥夺?n没有中断嵌套没有中断嵌套n中断处理完中断处理完n什么级别现场?什么级别现场?n目态现场目态现场n(核心栈内容核心栈内容=PCB)运行运行user运行运行kernel等待等待就绪就绪无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图建立建立PCB,分配必要资源,初始化分配必要资源,初始化PCB,入就绪队列入就绪队列调度选中调度选中运行运行user运行运行kernel等待等待就绪就绪无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图PCB切换,
13、恢复地址映射寄存器,通用切换,恢复地址映射寄存器,通用(浮点浮点)寄存器,寄存器,SP调度选中调度选中运行运行user运行运行kernel等待等待就绪就绪(置(置PSW)无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图恢复恢复PSW和和PC中断中断运行运行user运行运行kernel等待等待就绪就绪无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图现场在核心栈现场在核心栈等待事件等待事件中断中断运行运行user运行运行kernel等待等待就绪就绪无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图保存核心级现场到保存
14、核心级现场到PCB等待事件等待事件中断中断运行运行user运行运行kernel等待等待就绪就绪事件发生事件发生无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图I/O中断,资源释放并分给该进程中断,资源释放并分给该进程等待事件等待事件调度选中调度选中中断中断运行运行user运行运行kernel等待等待就绪就绪事件发生事件发生无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图恢复核心级别现场恢复核心级别现场等待事件等待事件调度选中调度选中中断中断运行运行user运行运行kernel等待等待就绪就绪事件发生事件发生无无创建创建终止终止考虑系统状态
15、的进程状态转换图考虑系统状态的进程状态转换图再次等待,唤醒,调度再次等待,唤醒,调度等待事件等待事件调度选中调度选中中断中断运行运行user运行运行kernel等待等待就绪就绪(置(置PSW)事件发生事件发生无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图由系统栈回复现场由系统栈回复现场中断中断运行运行user运行运行kernel等待等待就绪就绪无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图现场压入系统栈现场压入系统栈中断中断运行运行user运行运行kernel等待等待就绪就绪中断中断无无创建创建终止终止考虑系统状态的进程状态转换图考虑
16、系统状态的进程状态转换图嵌套中断,现场压入系统栈嵌套中断,现场压入系统栈中断中断运行运行user运行运行kernel等待等待就绪就绪中断中断嵌套返回嵌套返回无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图由系统栈弹出现场由系统栈弹出现场中断中断运行运行user运行运行kernel等待等待就绪就绪(置(置PSW)中断中断嵌套返回嵌套返回无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图退到第一层中断,不剥夺处理机退到第一层中断,不剥夺处理机,由系统栈弹出现场由系统栈弹出现场剥夺剥夺中断中断运行运行user运行运行kernel等待等待就绪就绪中
17、断中断嵌套返回嵌套返回无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图退到第一层中断,剥夺处理机退到第一层中断,剥夺处理机,系统栈系统栈(目态目态)现场现场=PCB中断中断运行运行user运行运行kernel等待等待就绪就绪无无创建创建终止终止考虑系统状态的进程状态转换图考虑系统状态的进程状态转换图执行系统调用执行系统调用exit(),收回资源,撤销收回资源,撤销PCB结束结束等待事件等待事件调度选中调度选中剥夺剥夺中断中断运行运行user运行运行kernel等待等待就绪就绪(置(置PSW)事件发生事件发生中断中断嵌套返回嵌套返回无无创建创建结束结束终止终止考虑系统
18、状态的进程状态转换图考虑系统状态的进程状态转换图建立建立PCB,分配必要资源,初始化分配必要资源,初始化PCB,入就绪队列入就绪队列3.1.3.1 IO中断处理中断处理n正常结束正常结束n继续传输;继续传输;n唤醒相关进程。唤醒相关进程。n传输错误传输错误n复执(复执(eg.3次次);n报告系统操作员。报告系统操作员。3.1.3.2 时钟中断处理时钟中断处理nHousekeepingn进程管理进程管理n重新计算进程调度参数重新计算进程调度参数(eg.动态优先数动态优先数)n实现软时钟,启动定时程序实现软时钟,启动定时程序n硬时钟硬时钟5ms发生一次中断,软时钟发生一次中断,软时钟50msn如死
19、锁检测如死锁检测n考虑进程切换考虑进程切换3.1.3.3 控制台中断处理控制台中断处理n一个控制按钮,一个中断向量,一个中一个控制按钮,一个中断向量,一个中断处理程序。断处理程序。3.1.3.4 硬件故障处理硬件故障处理n电源故障处理电源故障处理n掉电:掉电:n内存,寄存器内存,寄存器外存外存n停止设备停止设备n停止处理机停止处理机n恢复:恢复:n启动处理机启动处理机n启动设备启动设备n外存外存内存,寄存器内存,寄存器 Use UPS for criticalapplications3.1.3.4 硬件故障处理硬件故障处理(cont.)n内存故障处理内存故障处理n海明校验,奇偶校验错误海明校验
20、,奇偶校验错误n下雨检查下雨检查n划出系统划出系统n报告操作员报告操作员3.1.3.5 程序性中断的处理程序性中断的处理n只能由操作系统处理的中断只能由操作系统处理的中断n影响系统或其它进程影响系统或其它进程n越界,非法指令,(处理:终止进程、调试)越界,非法指令,(处理:终止进程、调试)n需要系统管理或协助需要系统管理或协助n页故障,缺段,(处理:动态调入)页故障,缺段,(处理:动态调入)n可以由用户自己处理的中断可以由用户自己处理的中断n不影响系统和其它进程不影响系统和其它进程n除除0,溢出,(处理:用户处理,或,溢出,(处理:用户处理,或OS处理)处理)应用程序自己处理中断应用程序自己处
21、理中断调试语句:调试语句:on 例如:例如:on goto LA;除除0中断时转中断时转LA处理处理除除0中断时转中断时转LB处理处理 on goto LB除除0中中断续元断续元除除0中中断续元断续元LA:LB:相同中断发生在不同位置相同中断发生在不同位置可采用不同处理方法可采用不同处理方法应用程序自行处理中断应用程序自行处理中断(Cont.)编译时:生成中断续元表:编译时:生成中断续元表:中断续元入口中断续元入口0中断续元入口中断续元入口1中断续元入口中断续元入口n中断事件中断事件0:中断事件中断事件1:中断事件中断事件n:.运行时:执行调试语句,填写中断续元表。运行时:执行调试语句,填写中
22、断续元表。中断时:根据中断原因查中断续元表,中断时:根据中断原因查中断续元表,为为0,用户未规定中断续元,由,用户未规定中断续元,由OS标准处理;标准处理;非非0,用户已规定中断续元,由用户处理。,用户已规定中断续元,由用户处理。初始时均为初始时均为0图图3-9(P47)n步骤:步骤:n(1)发生溢出中断)发生溢出中断n(2)保存旧)保存旧PSW和和PCn(3)取中断向量)取中断向量n(4)转到中断处理程序)转到中断处理程序n(5)访问中断续元表(假定非)访问中断续元表(假定非0)n(6)系统栈中现场转移到用户栈)系统栈中现场转移到用户栈n(7)中断续元入口送寄存器()中断续元入口送寄存器(O
23、S中断处理完成)中断处理完成)n(8)执行中断续元)执行中断续元n(9)用户栈)用户栈PSW和和PC送寄存器送寄存器n(10)返回中断断点)返回中断断点硬件硬件OS中断处中断处理程序理程序PSW PC系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LALA:硬件硬件OS中断处中断处理程序理程序PSW PC系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出LA:硬件硬件OS中断处中断处理程序理程序PSW PC系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序
24、中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出PSW PCLA:硬件硬件OS中断处中断处理程序理程序系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出PSW PCLA:PSW1 PC1硬件硬件OS中断处中断处理程序理程序系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出PSW PCLA:PSW1 PC1硬件硬件OS中断处中断处理程序理程序系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW
25、,LA溢出溢出PSW PCLA:PSW1 PC1硬件硬件OS中断处中断处理程序理程序系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出LA:PSW1 PC1PSW,PC硬件硬件OS中断处中断处理程序理程序系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出LA:PSW,PCPSW LA硬件硬件OS中断处中断处理程序理程序系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出LA:PSW,PCP
26、SW LA硬件硬件OS中断处中断处理程序理程序系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出LA:PSW PC硬件硬件OS中断处中断处理程序理程序PSW PC系统栈系统栈PSW1,PC1 PC1:ret运运行行程程序序中中断断续续元元续续元元表表用用户户栈栈PSW,LA溢出溢出LA:3.1.3.6 自愿性中断的处理自愿性中断的处理访管指令访管指令(SuperVisor Call)形式:形式:准备参数准备参数SVC n取返回值取返回值系统调用系统调用(system call)形式:形式:返回值返回值=系统调用名称(实参系统调用名称(实参1,实参实参n)参数和返回值和存放位置是由参数和返回值和存放位置是由OS规定的。规定的。3.1.3.6 自愿性中断的处理自愿性中断的处理系统调用驱动表:系统调用驱动表:(table driven)服务程序入口服务程序入口addr0addrm-1访管号:访管号:0.m-1Eg.UNIX