什么是中断?先打个比方。当一个经理正处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(返
回地址),暂停工作,去接电话(中断),并指示“按第二方案办”(调中断服务程序),然后,再静下心来(恢复中
断前状态),接着处理文件……。这就是中断的比方.
从概念上讲:中断是cpu处理外部突发事件的一个重要技术。它能使cpu在运行过程中对外部事件发出的中断请求及时地进行处理,
处理完成后又立即返回断点,继续进行cpu原来的工作。
也就说是中断发生时cpu依然在工作,只是处理了中断请求而已.
=======================================================
所谓中断是指系统发生某一事件后,CPU暂停正在执行的程序转去执行处理该事件的程序过程,处理中断事件的程序称为中断处理程序,产生中断信号的那个部件称为中断源。硬件的中断机构与处理这些中断的程序统称为中断系统。
当中断发生时,硬件机构自动地进入响应中断过程,由操作系统的中断处理程序对中断事件进行处理,具体过程如下:
①.保存现场
系统开辟现场区,并将现场区组织成“栈”结构,当中断响应时,(1)硬件结构自动将PS和PC寄存器的内容压入栈中作为现场信息保存起来。(2)根据发生的中断,硬件从指定的中断向量单元中取出PS和PC内容,分别装入PS和PC寄存器,同时正确填入寄存器的“当前状态”和“先前状态”字段。
②.分析原因,转中断处理程序
不同原因产生的中断事件要进行不同的处理,根据中断的路寄存器内容得出发生该种中断的具体原因。转入相对应的中断处理程序运行。
③.恢复现场
在多级中断系统中,考虑退回当前中断时,必须依据原先被中断的程序,完成不同的工作,中断处理结束后,软件必须退出中断。如果此次是高级中断,并且被中断的程序是一个低级中断处理程序,则此次中断应返回到该低级中断处理程序。如果原来被中断的是用户程序,则退出中断前应先考虑进行一次调度选择,以挑选出更适合在当前情况下运行的新程序。