03第三章 中断与处理机调度1_第1页
03第三章 中断与处理机调度1_第2页
03第三章 中断与处理机调度1_第3页
03第三章 中断与处理机调度1_第4页
03第三章 中断与处理机调度1_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章中断与处理机调度,3.1中断与中断系统3.2处理机调度3.3调度级别与多级调度3.4实时调度3.5多处理机调度3.6系统举例,操作系统是中断驱动的!Interruptdriven,3.1中断与中断系统,3.1.1中断的概念3.1.2中断装置3.1.3中断处理程序,3.1.1中断的概念,处理机在运行过程中,出现了某一事件,必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为中断。中断系统:中断装置(硬件)中断处理程序(软件),3.1.2中断装置,发现并响应中断的硬件机构识别中断源,当有多个中断源时,按紧迫程度排队;保存现场;引出中断处理程序。,中断响应和处理的过程,正运行程序,处理程序,PSW,PC,PC:,PSW,PC,系统桟,HAL,OS,中断,sp,正运行程序,处理程序,PSW,PC,PC:,PSW,PC,系统桟,HAL,OS,中断,中断响应和处理的过程,sp,psw,pc,正运行程序,处理程序,PSW,PC,PC:,PSW,PC,系统桟,HAL,OS,中断,中断响应和处理的过程,sp,psw,pc,正运行程序,处理程序,PSW,PC,PC:,PSW,PC,系统桟,HAL,OS,中断,中断响应和处理的过程,sp,psw,pc,正运行程序,处理程序,PSW,PC,PC:,PSW,PC,系统桟,HAL,OS,中断,中断响应和处理的过程,sp,正运行程序,处理程序,PSW,PC,PC:,PSW,PC,系统桟,HAL,OS,中断,中断响应和处理的过程,sp,3.1.2.1中断源与中断字,中断源引起中断的事件。中断寄存器保存与中断事件相关信息的寄存器。中断字中断寄存器的内容。例:IO中断:设备状态寄存器。,3.1.2.2中断类型与中断向量,强迫性中断运行程序不期望的时钟中断IO中断控制台中断硬件故障中断powerfailure内存校验错程序性中断越界,越权缺页,缺段溢出,除0非法指令,自愿性中断运行程序期望的系统调用访管指令系统调用fd=open(fname,mode)访管指令准备参数svcn取返回值,3.1.2.2中断类型与中断向量,中断装置,中断处理程序,运行程序访管指令,运行程序,中断装置,中断处理程序,clock,IO,console,Powerfailure,malfunction,强迫中断:,自愿中断:,SVCntrapn,3.1.2.2中断类型与中断向量,中断向量:中断处理程序的运行环境与入口地址(PSW,PC)每类中断事件有一个中断向量,中断向量的存放位置是由硬件规定的,中断向量的内容是OS在系统初始化时设置好的。,中断向量mode应为系统态,3.1.2.2中断类型与中断向量,PSW1,PC1时钟中断向量PSW2,PC2I/O中断向量PSW3,PC3console中断向量PSW4,PC4硬件故障PSW5,PC5程序错误PSWn,PCn访管中断向量,000000080016002400300090,时钟中断处理程序,PC1:,I/O中断处理程序,PC2:,访管中断处理程序,PCn:,系统空间,3.1.2.3中断嵌套与系统栈,一般原则:高优先级别中断可以嵌入低优先级中断实现方法:中断响应后立即屏蔽不高于当前中断优先级的中断源。,3.1.2.3中断嵌套与系统栈,中断响应后一般需要进一步保存现场关中断(屏蔽所有中断)进一步保存现场(通用寄存器等)开中断(或开放高优先级中断).中断处理.关中断(屏蔽所有中断)恢复现场开中断中断返回,3.1.2.3中断嵌套与系统栈(Cont.),目态,PSW1:PC1,管态,PSW2:PC2,管态,PSWn:PCn,中断嵌套:,3.1.2.3中断嵌套与系统栈(Cont.),PSWn-1PCn-1PSW2PC2PSW1PC1,栈顶指针:,系统栈:,3.1.2.4中断优先级与中断屏蔽,中断优先级:硬件规定的中断响应次序,依据:紧迫程度;处理时间。中断屏蔽:高优先级中断事件处理不受低优先级中断打扰;程序调整中断响应次序。,强迫性中断:,自愿性中断:,关中断进一步保存现场到系统栈取中断字分析中断原因,关中断进一步保存现场到系统栈取调用号分析何种系统调用,中断处理,由系统栈恢复现场返回上层中断或目态程序,保存下降进程现场到PCB选择上升进程由PCB恢复上升进程现场,T,F,开放高优先级中断,关中断,终止,收回资源,撤销PCB选择上升进程由PCB恢复上升进程现场,T,等待,保存下降进程现场到PCB选择上升进程由PCB恢复上升进程现场,F,T,剥夺,F,中断处理完,T,F,3.1.3中断处理程序,由系统栈恢复现场返回上层中断或目态程序,中断分析,关于等待何时等待?处于核心态,无嵌套中断或有嵌套中断等待几次?可能多次什么级别现场?核心级别现场等待时系统栈如何?栈底是目态现场,然后是嵌套函数的返回点、参数、局部变量、返回值;如有嵌套,接下来是核心现场,然后是嵌套函数的返回点、参数、局部变量、返回值;(可能多重),中断分析,关于剥夺何时剥夺?处于核心态,无嵌套中断或有嵌套中断剥夺几次?可能多次什么级别现场?核心级别现场剥夺时系统栈如何?栈底是目态现场,然后是嵌套函数的返回点、参数、局部变量、返回值;如有嵌套,接下来是核心现场,然后是嵌套函数的返回点、参数、局部变量、返回值;(可能多重),运行user,运行kernel,等待,就绪,无,创建,终止,考虑系统状态的进程状态转换图,建立PCB,分配必要资源,初始化PCB(地址映射寄存器,PSW,PC=0,SP=栈底,regs=0,fregs=0),入就绪队列,调度选中,运行user,运行kernel,等待,就绪,无,创建,终止,考虑系统状态的进程状态转换图,PCB切换,恢复地址映射寄存器,通用(浮点)寄存器,SP,调度选中,运行user,运行kernel,等待,就绪,(置PSW),无,创建,终止,考虑系统状态的进程状态转换图,恢复PSW和PC,中断,运行user,运行kernel,等待,就绪,无,创建,终止,考虑系统状态的进程状态转换图,现场在核心栈,等待事件,中断,运行user,运行kernel,等待,就绪,无,创建,终止,考虑系统状态的进程状态转换图,保存核心级现场到PCB(地址映射寄存器,regs,fregs,SP,PSW,PC),等待事件,中断,运行user,运行kernel,等待,就绪,事件发生,无,创建,终止,考虑系统状态的进程状态转换图,I/O中断,资源释放并分给该进程,等待事件,调度选中,中断,运行user,运行kernel,等待,就绪,事件发生,无,创建,终止,考虑系统状态的进程状态转换图,恢复核心级别现场(地址映射寄存器,regs,fregs,SP,PSW,PC),等待事件,调度选中,中断,运行user,运行kernel,等待,就绪,事件发生,无,创建,终止,考虑系统状态的进程状态转换图,再次等待,唤醒,调度,等待事件,调度选中,中断,运行user,运行kernel,等待,就绪,(置PSW),事件发生,无,创建,终止,考虑系统状态的进程状态转换图,由系统栈恢复现场(没有嵌套情况,按保存相反次序恢复寄存器,最后回复PSW和PC),中断,运行user,运行kernel,等待,就绪,无,创建,终止,考虑系统状态的进程状态转换图,现场压入系统栈,中断,运行user,运行kernel,等待,就绪,中断,无,创建,终止,考虑系统状态的进程状态转换图,嵌套中断,现场压入系统栈,中断,运行user,运行kernel,等待,就绪,中断,嵌套返回,无,创建,终止,考虑系统状态的进程状态转换图,由系统栈弹出现场,中断,运行user,运行kernel,等待,就绪,(置PSW),中断,嵌套返回,无,创建,终止,考虑系统状态的进程状态转换图,退到第一层中断,不剥夺处理机,由系统栈弹出现场,剥夺,中断,运行user,运行kernel,等待,就绪,中断,嵌套返回,无,创建,终止,考虑系统状态的进程状态转换图,剥夺处理机,保存核心级现场到PCB(地址映射寄存器,regs,fregs,SP,PSW,PC),中断,运行user,运行kernel,等待,就绪,无,创建,终止,考虑系统状态的进程状态转换图,执行系统调用exit(),收回资源,撤销PCB,结束,等待事件,调度选中,剥夺,中断,运行user,运行kernel,等待,就绪,(置PSW),事件发生,中断,嵌套返回,无,创建,结束,终止,考虑系统状态的进程状态转换图,3.1.3.1IO中断处理,正常结束继续传输;唤醒相关进程。传输错误复执(eg.3次);报告系统操作员。,3.1.3.2时钟中断处理,Housekeeping进程管理重新计算进程调度参数(eg.动态优先数)实现软时钟,启动定时程序硬时钟5ms发生一次中断,软时钟50ms如死锁检测考虑进程切换,3.1.3.3控制台中断处理,一个控制按钮,一个中断向量,一个中断处理程序。,3.1.3.4硬件故障处理,电源故障处理掉电:内存,寄存器外存停止设备停止处理机恢复:启动处理机启动设备外存内存,寄存器,UseUPSforcriticalapplications,3.1.3.4硬件故障处理(cont.),内存故障处理海明校验,奇偶校验错误下雨检查划出系统报告操作员,3.1.3.5程序性中断的处理,只能由操作系统处理的中断影响系统或其它进程越界,非法指令,(处理:终止进程、调试)需要系统管理或协助页故障,缺段,(处理:动态调入)可以由用户自己处理的中断不影响系统和其它进程除0,溢出,(处理:用户处理,或OS处理),应用程序自己处理中断,调试语句:on例如:ongotoLA;,除0中断时转LA处理,除0中断时转LB处理,ongotoLB,除0中断续元,除0中断续元,LA:,LB:,相同中断发生在不同位置可采用不同处理方法,应用程序自行处理中断(Cont.),编译时:生成中断续元表:,中断续元入口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)返回中断断点,硬件,OS,中断处理程序,PSWPC,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,PSWPC,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,PSWPC,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,系统栈,PSW1,PC1,PC1:,ret,运行程序,中断续元,续元表,用户栈,PSW,LA,LA:,硬件,OS,中断处理程序,系统栈,PSW1,PC1,PC1:,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论