中断处理过程
中断响应前的准备
一般系统将所有的中断信号统一进行了编号(例如 256 个中断信号:0~255),这个号称为中断向量。在中断响应前,中断向量与中断信号的对应关系已经定义好。
中断向量和中断服务程序的对应关系是由中断向量表描述,操作系统在中断向量表中设置好不同中断向量对应的中断服务函数,待 CPU 查询使用。
CPU 检查是否有中断信号
CPU 在执行完每一条指令后,都会去确认在执行刚才的指令过程中中断控制器是否发送中断请求。如果有中断请求,CPU 就会在相应的时钟脉冲到来时从总线上读取该中断请求的中断向量。
中断处理
当中断产生时,CPU 执行完当前指令后,PC 指针将跳转到异常向量表的相应地址去执行。该地址处是一句跳转指令,PC 指针继续跳转到系统定义的总中断服务函数里面去执行,然后系统进行任务上下文的保存、中断向量号的获得、具体中断服务函数的执行等,执行结束后,恢复被中断任务的上下文,继续执行任务。中断处理流程如下图所示。