#中断
中断就是指CPU在执行一个程序时,对程序发生的某个事件(程序自身或外界的原因)引起的作出的一种反应。即CPU暂停正在执行的程序。保留当前程序的运行现场后,自动转区处理相应的事件,处理完该事件后又返回到之前的程序断点,继续执行被中断的程序。
- 随机性
- 可恢复性
- 自动性
系统在进入中断时会访问中断寄存器和程序状态字PSW。
(一)实现CPU与io设备并行工作。
(二)实现硬件故障处理。
(三)实现人-机通信。
(四)实现多道程序和分时操作。
(五)实现实时处。
(六)实现应用程序和操作系统的联系。
(七)实现多处理器系统中处理器之间的联系。
机器发生故障时所产生的中断称为硬件故障中断。
例如,电源故障通道与主存交换信息时储存出错,从主存取指令错取数据错长线传输时的奇偶校验错等。
在执行程序的过程中发现了程序性质的错误,或者出现某些程序的特定状态而产生的中断,称为程序性中断。
程序性的错误包括定点溢出、十进制溢出、十进制数错、地址错、用户态下用了核心态指令、越界、非法操作等。
程序的特定状态包括逐条指令跟踪、指令地址符合跟踪、状态跟踪、监视等。
对某台中央处理器而言,它的外部被通道式装置所引起的中断称为外部中断。
例如,时钟中断、操作员控制台中断、多机系统中CPU大西pu的通讯中断等。
例如,硬件故障中断、外部中断、I/O中断等
访管中断
由处理机外部事件引起的中断称为外中断,又称中断或异步中断,它是随着CPU的时钟随机产生的,可能发生在一条指令的执行过程中,也可能发生在一条指令执行之后,但只能在一条指令执行结束之后才能响应该中断,例如外部中断i/o中断。
由处理机内部事件引起中断称为内中断,又称异常或同步中断。它是由CPU控制单元产生,在一条指令执行完毕之后才会发生中断,一旦发生中断,应立即响应该中断。这种端包括访访管中断、程序性中断、硬件故障中断。异常总是优先得到响应和处理,所以一场也称高优先级中断。
中断优先级由硬件规定
优先响应优先级别高的中断
一般情况,中断优先级的顺序为:硬件故障中断>自愿中断>程序性中断>外部中断>I/O中断。
系统在处理低优先级的中断事件时,并不希望它被高优先级的中断打断,这时就可以借助中断屏蔽技术来实现该需求。
程序的并发执行是由中断推动的,操作系统是由中断驱动的。
1.发现中断源
2.保护和恢复现场
3.中断响应
在硬件完成了对某中断源发出的中断请求的响应后,系统应立即撤销该中断源的请求,以免在下一个中断阶段再次对同一个中断请求进行响应,之后相应的中断处理程序就获得了程序的控制权,进入软件的中断处理过程。这一过程主要有三项工作,如下
中断类型的多样性使得每一个中断都应有相应的中断服务程序。
由硬件故障引起的中断,往往需要人为干预来排除故障。而操作系统所做的工作一般只是保护现场,防止故障故障蔓延,并向操作员报告和提供相关故障信息。这样做虽然不能排除故障,但有利于恢复正常和继续运行。
处理程序性中断事件一般有两种方法。
一是对于那些纯属程序错误而又难以克服的事件,如地址越界非管态时使用管态指令企图写入半固定存储器或仅写区等操作系统,只能将出错的进程名出出错地址和。错误性质报告给操作员请求干预。
二是对于其他一些程序性中断事件,如役畜跟踪等,不同的用户往往有不同的要求,所以操作系统可以将这些程序性中断事件交给用户自行处理。
外部中断由外部非通道式装置所引起的中断包括时钟中断操作员控制台中断多机系统中CPU到CPU的通信中断等。对不同的外部中断事件可分别进行处理。
io中断主要是指外设中断,一般可分为传输结束中断传输错误中断和设备故障中断。
访管中断事件表示的是正在运行的程序要调用操作系统的功能。为此,中断处理程序可以设置一张系统调用程序入口表。中断处理程序,按系统调用类型号查找这张入口表,找到相应的系统调用程序的入口地址,并将处理转交给实现调用功能的程序执行。
2.5向量中断。但中断发生时由中断源引起CPU进入中断服务程序的中断过程称为向量中断。这一中断过程是自动处理的。中断向量包括该类中断的中断服务程序的入口地址和处理器的PSW。系统中所有不同类型中断的中断向量集中存放在一起,形成中断向量表。在中断向量表中存放每一个中断向量的地址称为中断向量地址。
相关概念
中断是一个异步事件,可以在任何时候发生,并且与处理器当前正在执行的任务毫无关系。其主要由i/o设备处理器时钟定时器产生,可启用或禁用。
异常是一个同步事件。为一个特殊指令执行的结果。
当中断或异常发生时,处理器将捕获到一个执行线程,并且将控制权转移到操作系统中的某一个固定地址。在Windows中,处理器会将控制权转移给陷阱处理器(指与某个特定中断或异常相关的函数)。
异常是一个同步事件。为一个特殊指令执行的结果。
当中断或异常发生时,处理器将捕获到一个执行线程,并且将控制权转移到操作系统中的某一个固定地址。在Windows中,处理器会将控制权转移给陷阱处理器(指与某个特定中断或异常相关的函数)。