• 40、Linux中异常和中断的区别


    中断

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

     异常

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

    相同点

    最后都是由CPU发送给内核,由内核去处理

    处理程序的流程设计上是相似的

    不同点

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

    内核需要根据是异常还是中断调用不同的处理程序

    中断不是时钟同步的,这意味着中断可能随时到来;异常由于是CPU产生的,所以它是时钟同步的

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

  • 相关阅读:
    【Java学习】maven生命周期
    【Java学习】Project Structure详解
    html表格宽度设置失效
    1002. A+B for Polynomials (25)
    1001. A+B Format (20)
    自测-3 数组元素循环右移问题
    自测-5 Shuffling Machine
    自测-4 Have Fun with Numbers
    关联规则算法
    自测-2 素数对猜想
  • 原文地址:https://www.cnblogs.com/crbhf/p/15139410.html
Copyright © 2020-2023  润新知