功能

中断系统」是实现中断功能的部件,包括中断装置中断处理程序

实现中断及返回

当某一中断源发出中断申请时,若允许响应这一个中断请求,CPU 必须在现行的指令执行完后,把断点处的 IP 和 CS 值,即下一条应执行的指令的地址、各寄存器的内容和标识位的状态推入堆栈保存下来,称为「保护断点和现场」。

然后转到需要处理的中断源的服务程序的入口,同时清除中断请求触发器。当中断处理完后,再恢复被保留下来的各个寄存器和标志位的状态,称为「恢复现场」,恢复 IP 和 CS 值,称为「恢复断点」,CPU 返回断点,继续执行主程序。

实现优先级排队

在系统中通常有多个中断源,会出现两个或更多个中断源同时提出中断请求的情况,这样就必须要设计者事先根据轻重缓急,给每个中断源确定一个中断级别:中断优先级。当多个中断源同时发出中断申请时,CPU 能找到优先权级别最高的中断源,响应它的中断请求;在优先权级别最高的中断源处理完了以后,再响应级别较低的中断源。

当 CPU 正在处理中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求。其中,「单级中断处理」不允许其他设备再中断 CPU 的程序;「多级中断处理」允许优先级高的中断打断优先级低的中断服务程序。

img-2024-03-17 16-54-01.png

中断类型号和中断向量表

任何一种中断,CPU 响应以后,都是要保护断点和保护现场,然后转入各自中断服务程序。各种中断该如何转入各自的中断服务程序呢?

操作系统为了明确不同中断源需要运行的对应中断处理程序,可以建立一个中断向量表,可以容纳 256 个中断向量,每个中断向量占用 4 个字节。在这 4 个字节中,包含着这个中断向量的服务程序的入口地址——前两个字节为服务程序的偏移地址 IP,后两个字节为服务程序的段地址 CS

img-2024-03-17 16-54-49.png