中断系统

处理机完成中断功能的机构。在程序运行时,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机必须立即强行中止现行程序的运行,改变机器的工作状态并启动相应的程序来处理这些事件,然后再恢复原来的程序运行。这一过程即为中断。中断系统由专门的硬件和有关软件构成。中断系统的硬件称中断部件。中断软件主要包括中断控制程序和中断服务程序等,它们是操作系统的重要组成部分。

在通用计算机中,为了提高系统的效率,采用中央处理器外围设备并行工作的方式,中断为外围设备和中央处理器之间连系的手段。随着计算机系列化产品和操作系统的出现,中断系统的地位更加重要。大多数操作系统是由中断系统驱动的。这是因为各种输入-输出设备、操作人员和计时器访问操作系统、用户程序访问操作系统甚至操作系统内部之间的联系,都必须先发中断请求,再通过中断进入操作系统。

功能

现代计算机中采用中断系统的主要目的是:

(1)维持系统的正常工作,提高系统效率。一个计算机系统有一台或多台处理机、大量的输入-输出设备和辅助存储器。它们都是并行、独立工作的。当外围设备需要处理机干预时,则向处理机发出中断请求。处理机之间也要通过中断来协调工作和交换信息。现代计算机中,程序员不能直接干预和操纵机器,而是通过中断向操作系统发出请求,由操作系统来完成。主存储器中往往有多个程序,为了避免它们之间相互破坏信息,需要采取硬件保护措施,凡发现可能破坏信息的事件时,立即通过中断进行相应的处理。

(2)满足实时处理要求。在实时系统中,各种测量设备和控制设备以中断形式向处理机发出请求,处理机立即做出响应并处理这些要求。

(3)为故障处理作准备。处理机中采用各种检测故障和错误的手段,一旦发现故障和错误立即通过中断系统进行故障现场记录和隔离,为进一步处理提供必要的依据。

中断源分类

中断源是指能够引起中断的原因。一台处理机可能有很多中断源,但按其性质和处理方法,大致可分为如下五类。

(1)机器故障中断。

(2)程序性中断。现行程序本身的异常事件引起的,可分为以下三种:一是程序性错误,例如指令或操作数的地址边界错,非法操作码和除数为零等;二是产生特殊的运算结果,例如定点溢出;三是程序出现某些预先确定要跟踪的事件,跟踪操作主要用于程序调试。有些机器把程序性中断称为“异常”,不称为中断。

(3)输入-输出设备中断。

(4)外中断。来自控制台中断开关、计时器、时钟或其他设备,这类中断的处理较简单,实时性强。

(5)调用管理程序。用户程序利用专用指令“调用管理程序”发中断请求,是用户程序和操作系统之间的联系桥梁。

中断优先权

几个中断请求可能同时出现,但中断系统只能按一定的次序来响应和处理。可最先被响应的中断具有最高优先权,按优先级别顺序进行处理。优先权高低是由中断部件的中断排队线路确定的。

中断级

当机器设置很多中断源时,为了简化设计,对中断源分组管理。具有相同中断优先权的中断源构成一个中断级。同一级中断使用同一个中断控制程序起点。

中断屏蔽

对应于各中断级设置相应的屏蔽位。只有屏蔽位为1时,该中断级才能参加中断优先权排队。中断屏蔽位可由专用指令建立,因而可以灵活地调整中断优先权。有些机器针对某些中断源也设置屏蔽位,只有屏蔽位为1时,相应的中断源才起作用。

中断响应和处理

大多数中断系统都具有如下几方面的操作,这些操作是按照中断的执行先后次序排列的。

(1)接收中断请求。

(2)查看本级中断屏蔽位,若该位为1则本级中断源参加优先权排队。

(3)中断优先权选择。

(4)处理机执行完一条指令后或者这条指令已无法执行完,则立即中止现行程序。接着,中断部件根据中断级去指定相应的主存单元,并把被中断的指令地址和处理机当前的主要状态信息存放在此单元中。

(5)中断部件根据中断级又指定另外的主存单元,从这些单元中取出处理机新的状态信息和该级中断控制程序的起始地址。

(6)执行中断控制程序和相应的中断服务程序。

(7)执行完中断服务程序后,利用专用指令使处理机返回被中断的程序或转向其他程序。

程序状态字和向量中断

这是两个与中断响应和处理有密切关系的概念。

(1)程序状态字:每个程序均有自己的程序状态字。现行程序的程序状态字放在处理机的程序状态字寄存器中。程序状态字中最主要的内容有指令地址、条件码、地址保护键,中断屏蔽和中断响应时的中断源记录等。中断响应和处理操作的第④步和第⑤步就是交换程序状态字操作。

(2)向量中断:对应每一级中断都有一个向量,这些向量顺序存放在主存的指定单元中。向量的内容是:相应的中断服务程序起始地址和处理机状态字(主要是指令地址)。在中断响应时,由中断部件提供中断向量的地址,就可取出该向量。中断响应和处理操作的第⑤步就是取中断向量操作。在采用向量中断的机器中一般不再使用程序状态字。