1.5、中断和异常

整体框架

image-20230113233754861

1、中断的概念和作用

  1. 当中断发生时,CPU 立即进入 核心态 \color{red}核心态 核心态

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

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

发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配 I/O 设备等)需要使用特权指令,

  • 因此 CPU 要从用户态转为核心态。

中断 \color{red}中断 中断可以使 CPU 用户态切换为核心态,使操作系统获得计算机的控制权。 \color{red}用户态切换为核心态,使操作系统获得计算机的控制权。 用户态切换为核心态,使操作系统获得计算机的控制权。

  • 有了中断,才能实现多道程序并发执行。

注意:中断是 唯一 \color{red}唯一 唯一途径

核心态 − > 用户态 \color{red}核心态->用户态 核心态>用户态” 的切换时通过执行一个 特权指令 \color{red}特权指令 特权指令

  • 将程序状态字(PSW)的标志位设置为 “用户态”

image-20230113223013098

如上所示:例如单道批处理系统

为了解决上述问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,

  • 实现了多道程序并发执行(例如:多道批处理系统)

本质 : \color{red}本质: 本质:

  • 发生中断 \color{red}发生中断 发生中断就意味着 需要操作系统介入,开展管理工作 \color{red}需要操作系统介入,开展管理工作 需要操作系统介入,开展管理工作

对于进程 1 1 1 若收到计时部件发出的 中断信号 \color{red}中断信号 中断信号

  • 切换为 核心态 \color{red}核心态 核心态对中断进行处理

image-20230113223412900

image-20230113223750363


对于进程 2 2 2,若进程 2 2 2 发出系统调用

  • 内中断信号 \color{red}内中断信号 内中断信号

    请求输出(例如系统的输入、输出操作是属于特权指令

    • 因此用户进程,这些普通的应用程序只能通过系统调用的方式,内中断信号的方式来主动的要求操作系统来完成操作
  • 切换为 核心态 \color{red}核心态 核心态对中断进行处理

image-20230113224047359

image-20230113224305486

其中:打印机是互斥设备


进程 3 3 3I/O 设备是并行的工作

  • 并且当 I/O 设备工作完成之后,

    设备向 CPU 发出 中断信号 \color{red}中断信号 中断信号

image-20230113224651863

image-20230113224916905


2、中断的分类

image-20230113231212618


另一种分类方式

image-20230113231315562

3、外中断的处理过程

image-20230113231605864

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

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

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

Step 4:恢复原进程的 CPU 环境并退出中断,返回原进程继续往下执行

image-20230113232026776

4、整体框架

image-20230113233754861

通过 “中断信号来自 CPU 内部还是外部” 判断是内/外中断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值