面试题答案
一键面试中断处理的基本流程
- 中断请求:当设备完成任务或发生特定事件(如 I/O 操作完成、定时器到时等),设备控制器会向 CPU 发送中断请求信号。
- 中断响应:CPU 在执行完当前指令的最后一个机器周期后,检测到中断请求信号,会暂停当前程序的执行,保存当前程序的断点(程序计数器 PC 的值)、程序状态字(PSW)等现场信息到系统栈中。同时,根据中断源的类型,获取对应的中断向量,从而找到相应的中断处理程序入口地址。
- 中断处理:CPU 跳转到中断处理程序入口地址,开始执行中断处理程序。在中断处理程序中,会根据中断类型进行相应的处理,例如处理 I/O 操作完成后的后续工作等。
- 中断返回:中断处理程序执行完毕后,从系统栈中恢复之前保存的现场信息,包括程序计数器 PC 和程序状态字 PSW 等,使 CPU 继续执行被中断的原程序。
中断处理程序的主要工作
- 保护现场:在处理中断前,保存当前 CPU 寄存器的内容、程序状态字等,以便中断处理完毕后能够恢复原程序的执行。
- 识别中断源:通过查询中断寄存器等方式,确定是哪个设备或事件产生了中断,以便进行针对性处理。
- 处理中断事件:根据中断源的类型,执行相应的处理操作。例如,对于 I/O 中断,可能需要读取或写入数据、更新设备状态等;对于时钟中断,可能需要进行时间管理相关操作。
- 恢复现场:中断处理完成后,将之前保存的现场信息从系统栈中恢复到相应的寄存器中,确保原程序能够继续正确执行。