中断故障和对应解决方案 数据通路出错引起的中断是什么( 二 )


(5)访管中断 。由于执行“访问管理程序”指令而产生的中断,用来使CPU的状态从用户态转入管理态,由操作系统根据不同的编号引进不同的处理 。这样,操作系统为用户态程序提供对系统资源使用请求的服务 。
按产生中断的方式划分(1)强迫中断 。在程序运行过程中,发生某些(个)随机性事件,如外设工作结束和程序运行出错等,需要及时进行处理的一种中断 。程序设计人员在编制程序时并不知道它何时出现,也并不期望它出现 。上述按功能划分的机器故障中断、I/O中断、外部中断和程序性中断都可算做强迫中断 。
(2)自愿中断 。程序员在编制程序时因需要系统提供某些服务而有意使用访管指令或系统调用,从而导致执行程序的中断 。这是程序员事先安排好的,其出现时机是可知的 。上述按功能划分的访管中断就属于这一类 。
按中断事件来源划分目前,很多小型机系统和微型机系统都采用这种分类方式 。
(1)中断 。它是由CPU以外的事件引起的,如I/O中断、时钟中断、控制台中断等 。利用中断实现设备与CPU的通信 。中断是异步的,因为从逻辑上讲,中断的产生与当前正在执行的进程无关 。
(2)异常(Exception) 。它是来自CPU内部的事件或程序执行中的事件引起的过程 。如CPU本身故障(电源电压低于105 V,或频率在47~63 Hz之外)、程序故障(非法操作码、地址越界、浮点溢出等)和请求系统服务的指令(即访管指令)引起的事件等 。可见,异常包括很多方面,主要有出错、陷入和可编程异常 。出错和陷入之间最重要的区别是处理完异常事件返回时,出错事件会重新执行导致异常的那条指令,如缺页故障处理完之后还会尝试重新执行那条触发异常的指令(通常不会再缺页);而陷入事件则不会重新执行那条指令 。陷入主要用于程序调试,被调试的进程遇到用户设置的断点会停下来等待你的处理,当你让它重新运行时,它就执行下面的指令 。
可编程异常是由于用户在C程序中使用了系统调用而引发的过程 。系统调用也称软件中断(或陷入) 。应用程序使用系统调用就可由用户模式转入核心模式,在核心模式下完成相应的服务之后再返回用户模式 。所以系统调用是用户程序与内核的接口 。硬件对可编程异常的处理与对陷入的处理是一致的,即从这类异常返回时,也返回产生异常的下一条指令 。
3.中断系统的作用 中断系统是当代计算机必不可少的组成部分之一 。中断系统的作用主要有以下5点 。
(1)提高主机的利用率,使高速CPU可以和低速的外部设备并行工作 。
(2)及时进行事故处理 。当计算机发生硬件故障或出现程序性错误(如运算结果溢出、除数为0、地址错、非法操作码等)时,可以通过中断系统进行处理 。操作系统通过程序复执来排除偶然性错误,或将故障与错误记录下来,为故障诊断和机器恢复做好准备 。

推荐阅读