中断异常
概要
CPU 运行到一些情况下会产生 异常(exception) ,例如访问无效的内存地址、执行非法指令(除零)、发生缺页等。用户程序进行 系统调用(syscall) ,或程序运行到 断点(breakpoint) 时,也会主动触发异常。
和异常类似的一个概念是中断(interrupt)。中断指的是 CPU 运行过程被外部信号打断,这些信号一般由 CPU 之外的硬件产生,表示某些事件发生,例如定时器倒计时结束、串口收到数据等。
当发生中断或异常时,CPU 会立即跳转到一个预先设置好的地址,执行中断处理程序,最后恢复原程序的执行。
本章中我们会实现一个简单的中断处理程序,具体分为以下部分:
- 设置中断入口点
- 创建 中断帧(TrapFrame) 结构体
- 在中断处理程序中保存和恢复寄存器
- 进行具体的中断处理