中断是个啥?

Posted adventure.Li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中断是个啥?相关的知识,希望对你有一定的参考价值。

一、中断的描述

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

处理流程,大致如下图:


那么,看了定义,也许有点理解。大概可以类比 搬砖人 进行搬砖但与此同时不知道未来会发生什么(对未来的未知性,OS的特性之一:异步性),下一刻也许就产品小姐姐找你谈需求变化,也许这种呼叫你可以进行推托(屏蔽中断),你要坚持完成自己手中的活。但有时无法推托必须暂放手中的活,转向去和小姐姐沟通,那么此时你不能忘记该活的相关信息,则需要保存下来,再去找小姐姐,完成之后再回到原地进行继续工作。

二、为什么需要中断

在了解了第一步部分的一个简单生活场景之后,来理解为什么需要中断,可能会好一点。计算机和人一样(用马克思理论来说 计算就是人类的拓展放大工具),那么计算机既然是人的工具就得和人的思维越近似越好(OOP),这样更利于解决现实问题。因此,从处理事务的需要角度来说,计算机如果只能一件件事情处理完才能转向其他事情,那么给人类的交互需求带来极大不便。有了需求的导向,但还需要物理实现才行,回顾一些计算机的发展:从人工阶段(开关操作)到 简单执行系统阶段(有了汇编程序,开始利用内存进行存储)(ROM))再到批处理阶段(开始出现多道程序设计),一步步走来虽然十分不易,但硬件技术(通道技术,CPU技术)的发展迅猛,中断技术也应运而生。综上归纳主要以下两点:


三、中断都做了些啥?

按照事件发生的顺序,中断过程包括 :
①中断源发出中断请求;
②判断当前处理机是否允许中断和该中断源是否被屏蔽;
③优先权排队;
④处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序;

⑤执行中断服务程序;
⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。
上述过程中前四项操作是由硬件完成的,后两项是由软件完成的。

以上是关于中断是个啥?的主要内容,如果未能解决你的问题,请参考以下文章

上次电脑坏了,是因为资源不足,开机开不了,说是API不允许,请问API是个啥东西?

SVN(版本控制系统)是个啥东西?

消息队列是个啥 ?

NoSQL到底是个啥?

spark是个啥

有关ARM的NVIC中断原理