中断机制

中断(Interrupt),是指某个事件(例如电源掉电、定点加法溢出或I/O传输结束等)发生时,系统中止现行程序的运行、引出处理该事件的程序进行处理,处理完毕后返回断点,继续执行。

原因:系统必须具有能使多个应用程序任务在CPU上快速转接的能力,具有自动处理计算机系统中发生的各种事故的能力,还需要解决外设和中央处理机之间的通信。

当中断发生时,指令计数器(PC)和处理机状态字(PS)中的内容自动压入处理器堆栈,同时新的PC和PS的中断向量也装入各自的寄存器中。这时,PC中包含的是该中断的中 断处理程序的入口地址,它控制程序转向相应的处理。当中断处理程序执行完毕,该程序的最后一条iret(从中断返回),它控制着回复调用程序的环境。

整个中断处理的功能由硬件和软件配合完成。硬件负责中断响应过程,即发现和相应中断请求,把中断的原因和断点记下来供软件处理时查看,同时负责引出中断处理函数。而中断分析、中断处理等工作由软件的中断处理程序来完成。

中断按照功能可以分为一下5种:
(1)输入输出中断
输入/出中断:是当外部设备或通道操作正常结束或者发生某种错误时所发生的中断。

(2)外中断:
对某台中央处理机而言,它的外部非通道式装置所引起的中断称为外部中断。

(3)机器故障中断:
当机器发生故障时所产生的中断叫硬件故障中断。例如电源故障、通道与主存交换信息时主存出错。

(4)程序性中断:
在现行程序执行过程中,发现了程序性的错误或出现某些特定状态而发生的中断称为程序性中断。

(5)访管中断:
对操作系统提出的某种请求(如请求I/O传输、建立进程等)时发生的中断称为访管中断。

你可能感兴趣的:(操作系统篇)