概念
中断是为了多道程序并发执行而诞生的,提高了资源利用率,当发生了中断,操作系统会介入开展管理工作,cpu会立即进入核心态
作用
中断是cpu从用户进入核心态的唯一途径
分类
内中断和外中断
内中断
又称异常、例外、陷入,从字面可得出,是系统内部导致的中断,其中涉及两种分类
分类1
自愿中断、强迫中断
自愿中断
又称指令中断,如系统调用时使用的访管指令,又称陷入指令,trap指令
强迫中断
硬件故障(缺页等)、软件中断(除以0等)
分类2
陷阱、陷入
即有意而为之的异常,如系统调用
故障
错误条件引起的,可能会被故障处理修复的,如缺页
终止
不可恢复的致命错误,终止处理程序不会再将控制返回给引入终止的程序
外中断
来源自外部,与执行指令无关
外设要求
I/O操作完成发出的中断信号
人工干预
用户强行终止一个进程
处理过程
关中断–>保存断点–>中断服务程序寻址–>保存现场和屏蔽字–>开中断–>执行中断服务程序–>关中断–>恢复现场和屏蔽字–>开中断–>中断返回
关中断
cpu响应中断后,拒绝更高级的中断源的中断请求,由硬件完成
保存断点
为了之后能重新恢复执行该程序,需要将原程序的断点(程序计数器PC)保存起来,由硬件完成
中断服务服务程序寻址
取出中断服务程序的入口地址送到程序计数器PC,由硬件完成
保存现场和屏蔽字
进入程序中断服务程序后,首先要保护现场,现场信息一般是指程序状态字寄存器PSWER和某些通用寄存器的内容,由中断程序完成
开中断
允许更高级中断请求得到响应,想象一下多道程序设计的并发执行,cpu交替执行内存里面的各个程序,由中断程序完成
执行中断服务程序
中断请求的目的,完成中断后的操作,由中断程序完成
关中断
保证恢复现场和屏蔽字时不被中断,完成中断后的操作,由中断程序完成
恢复现场和屏蔽字
将现场和屏蔽字恢复到原来状态
开中断–>中断返回
中断服务程序倒数第二条指令是开中断,最后一条则是中断返回,使程序回到原程序的断点处
每个中断源都有一个屏蔽触发器。
1表示屏蔽该中断源的请求,0表示可以正常申请。
所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
每一个中断源对应一个屏蔽字。
在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字。
屏蔽字中“1”越多,优先级越高,每个屏蔽字中至少有一个1,这个1是屏蔽自身的中断
如一台机器有四个中断源,则屏蔽寄存器内则有4位,最高优先级的应为1111,最低级的则为任意一个位置为1,其余都为0