中断和异常

1.中断机制的诞生:

早期计算机只能一个一个执行,程序串行执行,同一时刻只有一个程序在执行,资源利用率低。

之后人们发明了操作系统,引入中断机制,实现了多道程序并发执行。

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

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

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

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

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

由于操作系统的管理工作(比如:进程切换、分配I/O设备等)需要使用特权指令,

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

中断可以使CPU从用户态切换为核心态,是操作系统获得计算机控制权。

有了中断才能实现多道程序并发。

2.切换

用户态——>核心态切换:是由中断实现,且中断为唯一途径。

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

3.中断的分类:

3.1 内中断(也称异常、例外、陷入)

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

自愿中断——指令中断(trap指令)

强迫中断——硬件故障(缺页)、软件中断(整数÷0)

3.2 外中断(狭义的中断) 

信号来源:与当前指令无关

外设请求(eg:打印机用完了,I/O设备操作完成的请求)

人工干预(用户强行终止一个进程)

中断分类另一种方式

 4.外中断的处理过程

假设CPU正在用户态下进行一系列指令

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

step2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境。

(如:程序状态字PSW,程序计数器PC,各种通用寄存器)

(类似玩游戏玩一半暂停游戏存档)

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

step4:   恢复原进程的CPU环境并推出中断,返回原程序继续向下执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值