Linux内核中断体系结构

79 阅读1分钟

Linux中断机制

目的:

  1. 硬件的中断响应。
  2. 系统调用的函数响应。
  3. 自定义中断。
  4. 信号中断(kill -signalnum)。
  5. 系统的异常和错误。

分类:硬件中断、软件中断(CPU自行保留的中断、系统调用异常)

回忆:

  • 做CPU工作模式的转换,
  • 进行寄存器的拷贝与压栈,
  • 设置中断异常向量表
  • 保存正常运行的函数返回值
  • 跳转到对应的中断函数上运行
  • 进行模式的复原以及寄存器的复原
  • 跳转回正常工作的函数地址继续运行

中断的工作流程:

  • 将所有的寄存器值入栈
  • 将异常码(中断号)入栈
  • 将当前函数的返回值入栈(为了在中断后能够找到在哪儿中断的,能够复原)
  • 调用对应的中断服务函数
  • 出栈函数返回值
  • 返回所有入栈的寄存器值

重要汇编代码片段:

中断汇编代码片段.png