操作系统中的中断详细介绍图片理解
操作系统中的中断(详细介绍+图片理解)
【中断的概念】
- 中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程
- 操作系统是“中断驱动”的;换言之,中断(广义)是激活操作系统的唯一方式
- 中断有广义和狭义之分,上述中断时指广义的中断
【中断、异常与系统异常】
- 狭义的中断来源于处理器之外的中断事件,即与当前运行指令无关的中断事件,如I/O中断、时钟中断、外部信号中断等
- 异常(来源于CPU内部的中断事件,和狭义共同构成广义的中断)指当前运行指令引起的中断事件,如地址异常、算术异常、处理器硬件故障等
- 系统异常与硬件无关,系统异常指执行陷入指令而触发系统调用引起的中断事件,如请求设备、请求I/O、创建进程等
【中断源—处理器硬件故障中断事件】
- 由处理器、内存储器、总线等硬件故障引起
- 处理原则为:保护现场,停止设备,停止CPU,向操作员报告,等待人工干预
【中断源—程序性中断事件】
处理器执行机器指令引起
#除数为零、操作数溢出等算术异常:简单处理,报告用户;也可以由用户编写中断续元程序处理
#非法指令、用户态使用特权指令、地址越界、非法存取等指令异常:终止进程
#终止进程指令:终止进程
#虚拟地址异常:调整内存后重新执行指令
【中断源—自愿性中断事件】
处理器执行陷入指令请求OS服务引起;在操作系统中,它一般又被称作系统调用
#请求分配外设、请求I/O、等等
#处理流程是:陷入OS,保护现场,根据功能号查入口地址,跳转具体处理程序
【中断源—I/O中断事件】
来源于外围设备报告I/O状态的中断事件
#I/O完成:调整进程状态,释放等待进程
#I/O出错:等到人工干预
#I/O异常:等待人工干预
【中断源—外部中断事件】
由外围设备发出的信号引起的中断事件
#时钟中断、间隔时钟中断:记时与时间片处理
#设备报到与结束中断:调整设备表
#键盘/鼠标信号中断:根据信号做出相应反映
#关机/重启动中断:写回文件,停止设备与CPU
【中断系统】
- 中断系统是计算机系统中响应和处理中断的系统,包括硬件子系统和软件子系统两部分
- 中断响应由硬件子系统完成
- 中断处理由软件子系统完成
【中断响应处理与指令执行周期】
在指令执行周期最后增加一个未操作,以响应中断
【中断装置】
计算机系统中发现并响应中断/异常的硬件装置称为中断装置
由于中断源的多样性,硬件实现的中断装置有多重,分别处理不同类型的终端
这些中断装置因计算机而异,通常有:
#处理器外的中断:由 中断控制器 发现和响应
#处理器内的异常:由 指令的控制逻辑和实现线路 发现和响应,响应机制成为陷阱
#请求OS服务的系统异常:处理器执行 陷入指令 时直接触发,响应机制称为系统陷阱
【中断控制器】
中断控制器:CPU中的一个控制部件,包括中断控制逻辑线路和中断寄存器
#外部设备向其发出中断请求IRQ,在中断寄存器中设置已发生的中断
#指令处理结束前,会检查中断寄存器,若有不被屏蔽的终端产生,则改变处理器内操作的顺序,引出操作系统中的中断处理程序
【陷阱与系统陷阱】
陷阱与系统陷阱:指令的逻辑实现线路的一部分
#执行指令出现异常后,会根据异常情况转向操作系统的异常处理程序
#出现虚拟地址异常后,需要重新执行指令,往往越过陷阱独立设置页面异常处理程序
#执行陷入指令后,越过陷阱处理,触发系统陷阱,激活系统调用处理程序
【中断响应过程】
发现中断源,提出中断请求
#发现中断寄存器中记录的中断
#决定这些中断是否被屏蔽
#当有多个要响应的中断源时,根据规定的优先级选择一个
中断当前程序的执行
#保存当前程序的PSW/PC到核心栈
转向操作系统的中断处理程序
【中断的处理】
中断处理程序
操作系统处理中断事件的控制程序,主要任务是处理中断事件和恢复正常操作
中断处理程序
#保护未被硬件保护的处理器状态
#通过分析被中断进程的PSW中断码字段,识别中断源
#分别处理发生中的中断事件
#恢复正常操作
【恢复正常操作】
- 情况一:对于某些中断,在处理完毕后,直接返回刚刚被中断的进程
- 情况二:对于其他一些中断,要中断当前进程的运行,调整进程队列,启动进程调度,选择下一个执行的进程并恢复其执行
【中断系统处理流程】
【中断屏蔽】
- 当计算机检测到中断时,中断装置通过中断屏蔽位决定是否响应已发生的中断
- 有选择的响应中断
【中断优先级】
当计算机同时检测到多个中断时,中断装置响应中断的顺序
有优先的的响应中断
一种可能的处理次序
#处理机硬件故障中断事件、自愿性中断事件、程序性中断事件、时钟中断等外部中断事件、输入输出中断事件、重启动和关机中断事件
不同类型的操作系统有不同的中断优先级
【中断的嵌套处理】
- 当计算机响应中断后,在中断处理过程中,可以再响应其他中断
- 操作系统是性能攸关程序,且中断响应处理有硬件要求,考虑系统效率和实现代价问题,中断的嵌套处理应限制在一定层数内,如3层
- 中断的嵌套处理改变中断处理次序,先响应的有可能后处理
【多中断的响应与处理】
决定中断处理次序的因素
#中断屏蔽可以使中断装置不响应某些中断
#中断优先级决定了中断装置响应中断的次序
#中断可以嵌套处理,但嵌套的层数应有限制
#中断的嵌套处理改变了中断处理的次序
【多重中断处理-1】
X、Y两个中断同时发生
先响应X
因Y被屏蔽,继续处理X
再响应并处理Y
【多重中断处理-2】
X、Y两个中断同时发生
根据中断优先级,先响应X
因未屏蔽Y,再响应并处理Y
Y处理完成后,再处理X