中断异常是什么

中断异常其实是两个概念。 中断机制是操作系统中极为重要的一个部分。操作系统在管理输入输出设备时,在处理外部的各种事件时,都需要通过中断机制进行处理。所以也有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”的。 由于中断机制的实现必须依靠相关的硬件支持,所以硬件中断装置是操作系统运行环境中的一个极为重要的组成部分。中断的实现是硬件中断装置和相应的中断处理软件共同完成的。

中断与异常的概念

中断与异常
中断的概念

所谓中断是指处理器对系统中或系统外发生的异步事件的响应。异步事件是指无一定时序关系的随机发生的事件,如外部设备完成了数据传输任务,某一实时控制设备出现异常情况等。 “中断”这个名称来源于:当发生某个异步事件后,中断了处理器对当前程序的执行而转去处理该异步事件(称作执行该事件的中断处理程序)。在该异步事件处理完了之后,处理器再转回原程序的中断点继续执行。这种情况很像我们日常生活中的一些情况。例如,某人正在看书,此时电话响了(异步事件),于是用书签记住正在看的那一页(中断点),再去接电话(响应异步事件并进行处理),接完电话后再从被打断那页继续向下看(返回原程序的中断点执行)。 最初,中断技术是用于向处理器报告某个“设备已完成操作”的一种手段,以免处理器不断地测试设备状态而消耗大量宝贵的处理器时间,后来,中断技术的应用越来越广泛。 中断是所有要打断处理器的正常工作次序,并要求其去处理某一事件的一种常用手段。我们把引起中断的事件称为中断事件或中断源;中断源向处理器发出的请求信号称为中断请求;而把处理中断事件的程序称为中断处理程序;发生中断时正在执行的程序的暂停点叫作中断断点;处理器暂停当前程序转而处理中断的过程称为中断响应。中断处理结束之后恢复原来程序的执行被称为中断返回。 一个计算机系统提供的中断源的有序集合一般被称为中断字,这是一个逻辑结构,在不同的处理器有着很不相同的实现方式。在一台计算机中有多少中断源,是根据各个计算机系统的需要安排的。Intel的x86微处理器能处理256种不同的中断。 为了使得中断装置可以找到恰当的中断处理程序,专门设计了中断处理程序入口地址映射表,又称中断向量表。表中的每一项称为一个中断向量,主要由程序状态字PSW和指令计数器PC的值组成。不同性质的中断源需要用不同的中断处理程序来处理,也就是对应不同的中断向量。通过中断向量,可以找到中断处理程序在内存中的位置。 中断技术解决了主机和外设并行工作的问题,消除了因外设的慢速而使得主机等待的现象,为多机操作和实时处理提供了硬件基础。一般来说中断具有以下作用。 能充分发挥处理器的使用效率。因为输人输出设备可以用中断的方式同处理器通信,报告其完成处理器所要求的数据传输的情况和问题,这样可以免除处理器不断地查询和等待从而大大提高处理器的效率。 提高系统的实时能力。因为具有较高实时处理要求的设备,可以通过中断方式请求及时处理,从而使处理器立即运行该设备的处理程序(也是该中断的中断处理程序)。所以目前的各种微型机、小型机及大型机均有中断系统。 从用户的角度来看,中断正如字面的含义,即正常执行的程序被打断,当完成中断处理后再恢复执行。这完全由操作系统控制,用户程序不必做任何特殊处理。

异常

最早中断和异常并没有区分,都把它们叫作中断。随着它们的发生原因和处理方式的差别愈发明显,才有了现在的中断和异常之分。 中断是由外部事件引发的,而异常则是由正在执行的指令引发的。

中断与异常的分类

无论是哪种计算机都有很多中断源,不同的系统依据这些中断源引起的中断特点等方面的不同,划分为若干个不同中断类型。这种分类在不同的系统中往往差异比较大。 典型的中断包括:

  • 时钟中断,由处理器内部的计时器产生,允许操作系统以一定规律执行函数,如时间片到时、硬件实时钟到时等;
  • 输入输出(L0)中断,由LO控制器产生,用于通知一个L0操作的正常完成或者发生的错误;
  • 控制台中断,如系统操作员通过控制台发出命令等;
  • 硬件故障中断,由掉电、存储器校验错等硬件故障引起等。

异常发生的时间以及位置具有确定性,典型的异常包括:

  • 程序性中断,在某些条件下由指令执行结果产生,例如算术溢出、被零除、目态程序试图执行非法指令、访问不被允许访问的存储位置、虚拟存储中的缺页等;
  • 访管指令异常,目的是要求操作系统提供系统服务。