Linux内核--异常和中断的区别

      相信你们都知道很是著名的两个名词:异常和中断,不过,你真的理解这两个名词在说什么吗?它们之间有什么区别呢?学习

      1.中断spa

      你们都知道,当咱们在敲击键盘的同时就会产生中断,当硬盘读写完数据以后也会产生中断,因此,咱们须要知道,中断是由硬件设备产生的,而它们从物理上说就是电信号,以后,它们经过中断控制器发送给CPU,接着CPU判断收到的中断来自于哪一个硬件设备(这定义在内核中),最后,由CPU发送给内核,有内核处理中断。下面这张图显示了中断处理的流程:设计


 

      2.异常进程

      咱们在学习《计算机组成原理》的时候会知道两个概念,CPU处理程序的时候一旦程序不在内存中,会产生缺页异常;当运行除法程序时,当除数为0时,又会产生除0异常。因此,你们也须要记住的是,异常是由CPU产生的,同时,它会发送给内核,要求内核处理这些异常,下面这张图显示了异常处理的流程:内存


      3.异同同步

      相同点:原理

    1> 最后都是由CPU发送给内核,由内核去处理硬件

    2> 处理程序的流程设计上是类似的程序

      不一样点:im

    1> 产生源不相同,异常是由CPU产生的,而中断是由硬件设备产生的

    2> 内核须要根据是异常仍是中断调用不一样的处理程序  

    3> 中断不是时钟同步的,这意味着中断可能随时到来;异常因为是CPU产生的,因此,它是时钟同步的

    4> 当处理中断时,处于中断上下文中;处理异常时,处于进程上下文中

相关文章
相关标签/搜索