• 操作系统——中断


    什么是中断

    假设你在玩游戏时,突然有电话打过来,手机没有网了,这时就发生了中断。

         计算机的世界里处处都有中断,任何工作都离不开中断,可以说整个计算机系统就是由中断来驱动的。中断就是CPU停下当前的工作任务,去处理其他的其他的事情,处理完成后回来继续执行刚才的任务。

     中断分类

    INTR——中断请求信号,高电平有效
      8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据
    INTE ——中断允许信号,高电平有效
      用于控制中断允许或中断屏蔽。

    NMI通常用于通知操作系统发生了无法恢复的硬件错误。指不可屏蔽的中断。

    NMI的来源有两个,NMI通常用于通知操作系统发生了无法恢复的硬件错误,也可以用于系统调试与采样,大多数服务器还提供了人工触发NMI的接口,比如NMI按钮或者iLO命令等。无法恢复的硬件错误通常包括:芯片错误、内存ECC校验错、总线数据损坏等等。当系统挂起,失去响应的时候,可以人工触发NMI。

    外部中断

    可屏蔽中断:通过INTR线向CPU请求的中断,只要来自外部设备如硬盘,打印机,网卡等。

    此类中断不会影响系统运行,可随时处理,甚至不处理。

    不可屏蔽中断:通过NMI线向CPU请求的中断,如电源掉电,硬件线路故障等。这里不可屏蔽的意思不是不可以屏蔽,不建议屏蔽,而是问题太大,屏蔽不了,不能屏蔽的意思。

    注:INTR和NMI都是CPU的引脚

    内部中断(软中断,异常)

    内部中断分为三类:陷阱、故障、终止

    1. 陷阱:是一种有意的,预先安排的异常事件,一般都是写程序时故意编写的陷阱指令,而后执行到陷阱指令后,CPU将会调用特定程序进行相应的处理,处理结束后返回到陷阱指令的下一个指令。如系统调用,程序调试功能等。调用Scanner时,程序中断,输入内容后,程序向下执行

          在平时写程序时是并没有设下陷阱,但是那是因为我们所写的语言对底层的指令进行了多次封装,我们看不到了底层的实现,但是它实际是存在的,例如printf函数,最底层的实现中会有一条int 0x80指令,这就是一条陷阱指令,使用0x80号中断进行系统调用。

    2. 故障故障是引起故障的指令被执行,但还没有执行结束时,CPU检测到的一类的意外事件。出错时交由故障处理程序处理,如果能修正这个错误,就将控制返回到引起故障的指令即CPU重新执行这条指令。如果不能处理就报错。

    常见故障:

    缺页:当CPU引用虚拟内存地址对应的物理地址不存在时,会发生故障,报异常。

    缺页异常是能够修正的,有着专门的缺页处理程序,他会将缺失的物理页从磁盘中重新调进主存。而后再次执行引起故障的指令时便能够顺利执行了。

    3. 终止:执行指令的过程中发生了一些不可修复的错误,程序无法继续执行,只能终止,通常会是一些硬件的错误。

  • 相关阅读:
    tp5使用sum()聚合函数分组查询
    无损将GPT转换为MBR的GDisk操作指南:
    Spark bucketing bucket分桶原理和应用
    【字符编码系列一】ASCII编码是什么?
    代码随想录算法训练营第23期day28|491.递增子序列 46.全排列 47.全排列 II
    【AD-NeRF】音频驱动人脸NeRF
    【LeetCode】22. 括号生成
    知识点滴 - 什么是AIoT
    STM32F407输入捕获应用--PWM 输入模式测量脉冲频率与宽度
    安全运营 (历史漏洞修复)
  • 原文地址:https://blog.csdn.net/m0_61470267/article/details/125676318