由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。该程序执行完成后,CPU接着执行被暂停的程序。这个过程叫中断。
中断源
引起中断的事件称为中断源(内部、外部中断)
内部中断(在CPU内部的中断源):
- 程序异常(运算溢出等)
- 陷阱中断(例如,单步运行程序等)
- 软件中断(执行特殊指令)等
外部中断(发生在CPU外部的中断):
- 外部故障(电源故障,存储器读写校验错)
- 外部事件(定时时间到,外部特殊信号)
- IO事件(外部设备完成一次IO操作,请求数据传输)
中断识别
用若干位二进制表示的中断源的编号
中断断点
由于中断的发生,某个程序被暂停执行。该程序中即将执行,由于中断没有被执行的那条指令的地址称为中断断点,简称断点。
中断服务程序
处理中断事件的程序段称为中断服务程序。
如:故障中断服务程序,输入输出中断服务程序。
- 不同类型的中断需要不同的中断服务程序。
- 中断服务程序不同于一般的子程序:
- 子程序由某个程序调用,它的调用是由程序设定的,它的执行时间是确定的。
- 中断服务程序由某个事件引发 ,它的执行一般是随机的,不确定的。
中断系统
为实现计算机的中断功能而配置的相关硬件、软件的集合称为中断系统
中断控制技术的作用
- 提高并行处理能力:实现CPU和多个外设同时工作,提高CPU效率。
- 实时处理能力:计算机应用于实时控制时,对外部事件及时响应。
- 故障处理能力:及时处理故障,不影响其他程序的运行。
- 多道程序或多重任务的运行:在操作系统的调度下,运行多道程序或多重任务。
中断管理
对中断全过程的控制
- 中断源发出中断请求时,CPU能决定是否响应这一中断。
- 若允许响应这个中断请求,CPU在保护断点后,将控制转移到相应的中断服务程序去。
- 中断处理完,CPU返回到断点处继续执行被中断的程序。
中断源的识别
软件识别:
- 响应中断后, CPU进入中断处理程序。
- 在这个程序里,CPU逐个查询各中断源的状态,确定是哪一个设备申请了中断。
硬件识别:
- 响应中断后, CPU进入一个“中断响应周期”。
- 在这个周期里,申请中断的设备向CPU发送它的中断类型。
中断的优先级
优先级:有多个中断源同时提出中断请求时,CPU响应中断的优先次序。根据中断源提出中断申请的轻重缓急为每个中断源确定CPU对它们响应的优先级别。
CPU在分配优先级时,一般是按照提出中断的外设的速度和它们在微机系统中所处的地位来进行分配的。
方法:
- 软件查询法
- 链式优先级排队——菊花链法
- 可编程中断控制器——“向量”优先级排队