操作系统——中断

什么是中断?

假设你在玩游戏时,突然有电话打过来,手机没有网了,这时就发生了中断。

     计算机的世界里处处都有中断,任何工作都离不开中断,可以说整个计算机系统就是由中断来驱动的。中断就是CPU停下当前的工作任务,去处理其他的其他的事情,处理完成后回来继续执行刚才的任务。

 中断分类

INTR——中断请求信号,高电平有效
  8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据
INTE ——中断允许信号,高电平有效
  用于控制中断允许或中断屏蔽。

NMI通常用于通知操作系统发生了无法恢复的硬件错误。指不可屏蔽的中断。

NMI的来源有两个,NMI通常用于通知操作系统发生了无法恢复的硬件错误,也可以用于系统调试与采样,大多数服务器还提供了人工触发NMI的接口,比如NMI按钮或者iLO命令等。无法恢复的硬件错误通常包括:芯片错误、内存ECC校验错、总线数据损坏等等。当系统挂起,失去响应的时候,可以人工触发NMI。

外部中断

可屏蔽中断:通过INTR线向CPU请求的中断,只要来自外部设备如硬盘,打印机,网卡等。

此类中断不会影响系统运行,可随时处理,甚至不处理。

不可屏蔽中断:通过NMI线向CPU请求的中断,如电源掉电,硬件线路故障等。这里不可屏蔽的意思不是不可以屏蔽,不建议屏蔽,而是问题太大,屏蔽不了,不能屏蔽的意思。

注:INTR和NMI都是CPU的引脚

内部中断(软中断,异常)

内部中断分为三类:陷阱、故障、终止

1. 陷阱:是一种有意的,预先安排的异常事件,一般都是写程序时故意编写的陷阱指令,而后执行到陷阱指令后,CPU将会调用特定程序进行相应的处理,处理结束后返回到陷阱指令的下一个指令。如系统调用,程序调试功能等。调用Scanner时,程序中断,输入内容后,程序向下执行

      在平时写程序时是并没有设下陷阱,但是那是因为我们所写的语言对底层的指令进行了多次封装,我们看不到了底层的实现,但是它实际是存在的,例如printf函数,最底层的实现中会有一条int 0x80指令,这就是一条陷阱指令,使用0x80号中断进行系统调用。

2. 故障故障是引起故障的指令被执行,但还没有执行结束时,CPU检测到的一类的意外事件。出错时交由故障处理程序处理,如果能修正这个错误,就将控制返回到引起故障的指令即CPU重新执行这条指令。如果不能处理就报错。

常见故障:

缺页:当CPU引用虚拟内存地址对应的物理地址不存在时,会发生故障,报异常。

缺页异常是能够修正的,有着专门的缺页处理程序,他会将缺失的物理页从磁盘中重新调进主存。而后再次执行引起故障的指令时便能够顺利执行了。

3. 终止:执行指令的过程中发生了一些不可修复的错误,程序无法继续执行,只能终止,通常会是一些硬件的错误。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值