• 计组+OS——中断之外部中断和内部中断以及单中断和多重中断


    一、外部中断

    狭义的中断,信号来源: C P U 外部 {\color{red} CPU外部} CPU外部,中断事件与当前执行指令无关
    只有在CPU中断允许状态时才会响应外部中断请求

    比如:
    I/O设备发出I/O中断
    外部信号中断(如用户执行键盘输入)
    定时器引起的时钟中断(如时间片中断)
    网络数据包到达

    1.外设请求

    如:I/O操作完成发出的中断信号、时钟中断(用于计时)

    2.人工干预

    如:用户强行终止一个进程

    二、内部中断

    信号来源: C P U 内部 {\color{red} CPU内部} CPU内部,中断事件由当前执行指令引发
    内中断时不可被屏蔽的,一旦出现,立即处理

    比如:
    地址非法,
    校验出错,
    访存时缺页(由当前执行的指令引发的)
    存取访问控制错,
    算术操作溢出
    数据格式非法
    除数为0
    非法指令
    用户程序执行特权指令
    用户态切换到内核态

    Cache-主存:Cache的缺失调度是由硬件自动完成的
    虚拟存储器:缺页的处理是由硬件和操作系统一起完成的

    1.自愿中断

    又叫指令中断,如系统调用时使用访管指令(又叫陷入指令,trap指令)

    自陷是对中断的一种巧用,是一种主动机制,它是一种预先安排的异常事件,就类似于我们调试程序的断点

    2.强迫中断

    ①硬件故障

    如缺页

    ②软件中断

    如整数除0

    三、中断响应过程

    第一步,中断请求。是指中断源向CPU发出请求中断的要求
    第二步,中断判优。当有多个中断源发出请求时,需要通过适当的办法决定先处理哪个中断请求
    第三步,中断响应。指CPU终止现行程序转去执行中断服务程序的过程
    第四步,中断处理。指CPU执行中断服务程序
    第五步,中断返回。执行完中断服务程序后,返回到被中断的程序

    1.单中断

    ①关中断
    ②保存PC、PSW
    ③根据中断向量引出对应的中断服务程序(通用寄存器的保护由中断服务程序完成)
    ④开中断(终端服务程序完成时)

    2.多重中断

    在执行中断的过程中,如果有新的中断请求到来,会暂停当前的中断服务程序,转而处理新的中断,执行中断服务程序时处于开中断

    在多重中断中,优先级高的中断源有权中断优先级低的中断源;
    通过改变中断屏蔽字可以改变中断优先级;

    取址周期——间址周期——执行周期——中断周期
    在一条指令执行结束后响应中断,有利于保存和恢复现场
    中断请求期间CPU处于开中断,可以继续相应新的中断

    在这里插入图片描述

    四、真题嗅探

    【例】(2020)与中断相关的操作,由操作系统的完成的是
    1.保存被中断程序的终端点 —— 硬件完成
    2.提供中断服务 —— 操作系统
    3.初始化中断向量表 —— 存在内存中,开机初始化,由操作系统完成
    4.保存中断屏蔽字 —— 多重中断时,由操作系统完成

    在这里插入图片描述

  • 相关阅读:
    Element ui 快速入门(基础知识点)
    MySQL数据库索引和事务详解
    C- 静态链接
    前端有哪些好的学习网站?
    云安全和传统安全有什么区别?又有什么关系?
    C++代码示例:进制数简单生成工具
    RocketMq5 消息消费及相关源码浅阅
    JAVA中的异常
    人工智能前沿——随需应变的未来大脑
    22.flink参数工具 ParameterTool
  • 原文地址:https://blog.csdn.net/vavid317/article/details/121786126