• 操作系统【OS】中断和异常


     

    异常(内中断)

    中断(外中断)

    基本概念

    • 由CPU执行指令内部产生的事件
    • 内中断都是屏蔽中断,一旦出现,就要立即处理。
    • 由来自CPU外部的设备发出的中断请求(常用于输入输出)
    • 典型的由外部设备触发的、与当前正在执行的指令无关的异步事件
    • 外部I/O设备通过特定的中断请求信号线向CPU提出中断请求
    • CPU每执行完一条指令就检查中断请求信号线,若检测到中断请求,则进入中断响应期
    • 外部中断都是在一条指令执行完成后(中断周期)才被检测并处理的

    分类

    故障

    • 由指令执行引起的异常
    • 在引起故障的指令启动之后、执行结束前被检测到的异常事件

    自陷

    • 也称陷阱或陷入,是预先安排的一种“异常事件”,就像预先设置好的“陷阱”一样

    终止

    • 若在执行指令的过程中发生了使计算机无法继续执行的硬件故障,那么程序将无法继续执行,只能终止

    可屏蔽中断(INTR)

    • 通过可屏蔽中断请求线INTR向CPU发出的中断请求
    • 通过改变屏蔽字可以实现多重中断

    不可屏蔽中断(NMI)

    • 通过不可屏蔽中断请求线NMI向CPU发出的中断请求
    • 通常是非常紧急的硬件故障,如电源掉电等。
    • 不受中断标志位的影响,即使在关中断的情况下也会被响应

    举例

    故障

    • 指令译码时,出现“非法操作码”
    • 取数据时,发生“缺段”或“缺页”
    • 除数为零
    • 地址越界
    • 运算溢出

    自陷

    • x86机器中,用于程序调试“断点设置”和单步跟踪功能
    • 系统调用指令
    • 条件自陷指令

    终止

    • 控制器出错
    • 存储器校验错
    • 调出中断服务程序来重启系统
    • 终止异常(Abort)和外中断属于硬件中断
    • 故障异常和自陷异常属于软件中断
    • I/O中断:键盘输入,打印机缺纸
    • 时钟中断:一个固定的时间片已经到了,让处理机处理计时、启动定时运行的任务

    执行时间

    • CPU在执行指令时会检查是否有异常发生
    • 每个指令周期末尾,CPU都会检查是否有外中断信号需要处理

    不同点

    • 缺页”或“溢出”等异常事件是由特定指令在执行过程中产生的
    • 异常的检测由CPU自身完成,不必通过外部的某个信号通知CPU
    • 中断不与任何指令相关联,也不阻止任何指令的完成

     

    CPU响应可屏蔽中断需要满足3个条件:

    中断源有中断请求;

    CPU允许中断及开中断;

    一条指令执行完毕,且没有更紧迫的任务。

  • 相关阅读:
    推荐算法在商城系统实践
    新人学习笔记之(变量)
    Linux tcpdump抓包命令
    PC3392H高性价方案比10V-120V输入1.5A大电输出内置MOS管带EN功能实现零功耗使能只需极少元器件
    配置iptables防火墙(二)
    zookeeper的leader选举原理和底层源码实现超级详解
    物业巡检系统能做什么?物业服务如何提升管理效率?
    javassist 入门以及dubbo中的使用案例
    【Linux】指令及权限管理的学习总结
    华新集团再冲刺港交所上市:上半年收入2.6亿元,张德红为董事长
  • 原文地址:https://blog.csdn.net/weixin_42932602/article/details/133954492