linux 中断简介
Posted zhaokevin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 中断简介相关的知识,希望对你有一定的参考价值。
1. 中断简介
中断
什么是中断,中断是指处理器接收到来自硬体或软体的信号,提示发生了某个事件,应该被注意,这种情况就称为中断。
中断分类
- 同步中断和异常(软件中断)
cpu自身产生,针对当前执行的程序。当cpu执行到一个由于编程失误而导致的错误指令(除0)或在执行期间发生特殊情况时(缺页),导致cpu不知道如何处理,这时候就会产生异常,请求内核来告诉它该如何处理。
- 异步中断(硬件中断)
异步中断是由外设产生的,可能发生在任意时间。异步中断并不与特定进程关联。例如网卡通过发出一个相关中断通知cpu新分组的到达。
2. 中断处理
当中断来临时,cpu需要去处理这些情况。如果cpu当前不处于内核态,就会发起从用户态到内核态的转换,紧接着,在内核执行一个专门的例程,成为中断服务例程(interupt service routine,ISR)或中断处理程序(interupt handleer)。
中断的处理分为三部分:
准备中断处理程序执行环境。包括用户态转换到内核态,保存用户程序当前的寄存器状态。
执行中断处理程序
恢复到中断之前的状态。包括调度和信号投递检查,确认了这两个问题后,才还原寄存器集合,切换为用户栈,执行中断前的程序。
总结
本文介绍了中断的概念以及中断的处理过程,由此可以建立一个对中断的宏观上的认识,了解中断是什么以及怎么处理的。
以上是关于linux 中断简介的主要内容,如果未能解决你的问题,请参考以下文章
结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程