在计算机中,中断是指在CPU正在执行程序的时候,有一个事件(如键盘输入)需要处理,此时会暂停当前程序的执行,CPU去执行相应的中断处理程序,处理完后再继续当前程序的执行。
中断处理是操作系统的一项基本功能,目的是使计算机能够处理多种任务或事件并具有相应的响应能力。
中断可以分为外部中断和内部中断。
外部中断是由CPU以外的电路产生的,常见的有以下几种:
①硬件中断:是由计算机系统中的硬件设备向CPU发出的中断请求。如输入/输出设备的中断请求,定时器的中断请求等。
②异常中断:是指在程序执行过程中因为出现错误(如除法溢出、地址越界等)而引起的中断请求。
内部中断是由CPU内部的电路产生的,常见的有以下几种:
①软件中断:是由程序中执行int指令产生的软中断。软中断是指在程序执行中运用一种特定的指令产生的中断,它是由程序员预先设计好的。
②系统调用:是由用户程序向操作系统请求服务的中断,如在Windows系统下可以通过int 0x80指令实现系统调用。
当硬件设备发出中断请求时,CPU会暂停当前程序运行,在当前程序运行的时候,CPU执行过程中会不断检测中断请求的信号是否到达。如果检测到有中断请求,则CPU先暂停当前程序,然后将中断请求压入中断栈,保存现场信息,执行中断服务程序。
在中断服务程序执行过程中,会根据中断号进行相应的处理,处理完后,恢复现场,清除中断标志,回到原程序继续执行。
在计算机系统中,可能同时存在多个中断请求,在这种情况下,需要根据中断的优先级来确定哪个中断请求先被响应。中断优先级由硬件设备决定,优先级高的中断先被响应。
需要注意的是,在中断服务程序执行的过程中,可能会出现更高优先级的中断请求,此时CPU会先响应更高优先级的中断请求,即暂停当前的中断服务程序,执行更高优先级的中断服务程序。