中断
- 指CPU对突发的外部事件的反应过程或机制
- CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作
引入中断的目的
- 实现并发活动
- 实现实时处理
- 故障自动处理
中断的一些概念
中断源
- 引起系统中断的事件
断点
- 程序中断的地方,将要执行的下一指令的地址
现场(上下文)
-
程序正确运行所依赖的信息集合:相关寄存器
-
现场的两个处理过程
1)现场的保护:进入中断服务程序之前,栈(中断前的程序现场保存在栈中)
2)现场的恢复:退出中断服务程序之后,栈
中断类型
- 强迫性中断:程序没有预期:例I/O(外设输入输出)、外部中断
- 自愿中断:程序有预期的、例:执行访管指令
- 内中断:由CPU内部事件引起。例:访管中断、程序中断
- 外中断:由CPU外部事件引起。例:I/O、外部事情
1)不可屏蔽中断:中断的原因很紧要,CPU必须响应、
2)可屏蔽中断:中断原因不很紧要,CPU可以不响应
中断响应过程
- 识别中断源
- 保护断点和现场
- 装入中断服务程序的入口地址(CS:IP)
- 进入中断服务程序
- 恢复现场和断点
- 中断返回:IRET(把断点弹出到CS:IP寄存器中,恢复原来的断点)
中断响应的实质
- 交换指令执行地址
- 交换CPU的态(核态完成)
- 工作
1)现场保护和恢复
2)参数传递(通信)