zoukankan      html  css  js  c++  java
  • 中断和异常

    中断和异常

    知识总览

    中断机制的诞生

    各程序只能串行执行,系统资源利用率低

    为解决上述问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现多道程序并发执行

    本质:发生中断就意味着需要操作系统介入,开展管理工作

    中断的概念和作用

    1.当中断发生时,CPU立即进入核心态

    2.当中断发生后,当前运行的程序暂停运行,并由操作系统内核对其中断处理

    3.对于不同的中断信号,会进行不同的处理

    发生了中断,就意味着需要操作系统的介入,开展管理工作,由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序的并发执行。

    遗留问题:用户态核心态的切换是怎么实现的?

    用户态----->核心态 是通过中断实现的,并且中断是唯一途径

    核心态------>用户态 的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”

    中断的分类

    内中断信号来源:CPU内部 与当前执行的指令有关

    外中断信号来源:CPU外部 与当前执行的指令无关

    指令中断 如系统调用时使用的访管指令(又称陷入指令、trap指令)

    硬件故障 如缺页

    软件中断 如整数除0

    陷入 有意为之的异常 如系统调用

    故障 由错误条件引起的,可能被故障处理程序修复,如缺页

    终止 不可恢复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整数除0

    外中断的处理过程

    step1:执行完每个指令之后,CPU都要检查当前是否有外部中断信号

    step2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器)

    step3:根据中断信号类型转入相应的中断处理程序

    知识回顾

     

  • 相关阅读:
    mysql代码实现hive中的rank()排序方法,获得top3中的最小值
    MySQL--Hive中字段数据类型对比
    使用shell脚本连接mysql shell脚本执行mysql语句
    WPS中查看超链接后返回超链接位置
    shell脚本中常用的命令
    Lamda一行代码实现"36选7"随机自动选号
    创建Visual studio项目模板 vstemplate关键点纪要
    网络传输及数据解析
    动画
    触摸事件与手势识别
  • 原文地址:https://www.cnblogs.com/mayrain/p/12383841.html
Copyright © 2011-2022 走看看