作为一个小白,对中断的一些概念总是有点不清楚,借此机会来记录一下我的所学吧
一:什么是中断
当中央处理器CPU正在处理某事件的时候外界发生了紧急事件请求,要求CPU停止当前的工作转而去处理这个紧急事件,处理完后,再回到原来被中断的地方,继续进行原来的工作,这样的过程就是中断,有点像具备某些条件触发的pthread_create函数
二:中断源都有哪些
(1)外部设备请求终端,如键盘,打印机和A/D转换器等在完成自身操作后,向CPU发出中断请求,要求cpu为之服务
(2)故障强迫中断,计算机在一些关键部位都设置有自动监测装置,这些装置的报警信号能使CPU中断,进行相应的中断处理,这些由计算机硬件异常或故障引起的中断也称为内部异常中断
(3)实时时钟请求中断,在控制中遇到定时检测和控制,为此常采用一个外部时钟电路(可编程)控制其时间间隔。需要定时时,CPU发出命令使时钟电路开始工作,一旦到达规定时间,时钟电路发出中断请求,由CPU转去完成检测和控制工作。
(4)数据通道中断。数据通道中断也称直接存储器存取(DMA)操作中断,如磁盘、磁带机或CRT等直接与存储器交换数据所要求的中断。
(5)程序自愿中断。CPU执行了特殊指令(自陷指令)或由硬件电路引起的中断是程序自愿中断,是指当用户调试程序时,程序自愿中断检查中间结果或寻找错误所在而采用的检查手段,如断点中断和单步中断等。
三:什么是中断嵌套
当几个外界的中断源同时向CPU请求中断,CPU总是先响应优先级别最高的中断请求,当CPU正在处理一个中断源请求的时候(即在执行一个相应的中断处理程序),发生了另一个优先级比之还高的中断源请求,这是如果CPU暂停优先级低的中断程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断处理程序,这个过程就是中断嵌套。
四:注意
1.低优先级中断可被高优先级中断所中断,反之不能。
2.任何一种中断(不管是高级还是低级),一旦得到响应,不会再被他的同级中断所中断。