Linux中断机制
目的:
- 硬件的中断响应。
- 系统调用的函数响应。
- 自定义中断。
- 信号中断(kill -signalnum)。
- 系统的异常和错误。
分类:硬件中断、软件中断(CPU自行保留的中断、系统调用异常)
回忆:
- 做CPU工作模式的转换,
- 进行寄存器的拷贝与压栈,
- 设置中断异常向量表
- 保存正常运行的函数返回值
- 跳转到对应的中断函数上运行
- 进行模式的复原以及寄存器的复原
- 跳转回正常工作的函数地址继续运行
中断的工作流程:
- 将所有的寄存器值入栈
- 将异常码(中断号)入栈
- 将当前函数的返回值入栈(为了在中断后能够找到在哪儿中断的,能够复原)
- 调用对应的中断服务函数
- 出栈函数返回值
- 返回所有入栈的寄存器值
重要汇编代码片段: