中断技术

1、中断概述

中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,

等到处理完成后再返回原程序被中断处或调度其他程序执行的过程。

2、中断和异常

8080/8088把中断分为内部中断和外部中断两大类。为了支持多任务和虚拟存储器等功能,80386把外部中断称为“中断”,把内部中断

称为“异常”。与8086/8088一样,80386通常在两条指令之间响应中断或异常。80386最多处理256种中断或异常。

2、中断源的分类

从中断事件的性质激活的手段来说,可以将中断分为强迫性中断自愿性中断两大类。

-- 强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故外部请求信息所引起的;

-- 自愿性中断事件是正在运行的程序所期待的事件,是由于执行访管指令而引起的。

======================================================================

强迫性中断可分为以下几种:

--- 机器故障中断:机器执行指令过程中硬件可能出现电源故障内存出错等引起的。

--- 程序性中断:程序执行过程中出现定点溢出、除0、地址越界等异常情况引起的。

--- 外部中断:由计算机系统外部发送中断信号如时钟中断信号等引起的。

--- I/O中断:由I/O设备出现设备出错、传输结束等引起的。

======================================================================

按中断事件的来源实现手段可将中断划分为硬中断软中断两大类。

---  硬中断:是指通过硬件设施来产生中断请求的中断,又分为外中断内中断

---  外中断,又称为中断异步中断。指来自CPU及内存之外的中断信号,包括时钟中断、键盘中断和设备中断等。

     用于I/O设备对CPU的中断(中断正在运行的程序),转向中断处理程序上半部分执行。

---  内中断,又称为异常同步中断。指来自CPU及内存内部,通常是由于程序执行中发现与当前指令关联的、不正常的或错误的事件。

     包括地址越界、缺页、访管中断、算术操作溢出等各种程序性中断等,所有这些事件均由异常处理程序来处理。

     内中断不能被屏蔽,一旦出现应立即响应并处理。

--- 中断和异常之间的区别如下:

1)中断由与现行指令无关的中断信号触发(异步的),且中断的发生与CPU处在用户态或内核态无关,通常在两条机器指令之间才可以

     响应中断。一般来说,中断处理程序提供的服务不是为当前进程所需的。

2)异常是由处理器正在执行的现行指令引起的,因而在一条指令执行期间允许响应异常,通常异常处理程序提供的服务是为当前进程所用的。

---  软中断:与硬中断相对应,不必由硬件发信号而能引发的一种中断称为软中断。

     它通常是通信进程之间用来模拟硬中断的一种信号通信方式。两者的共同点是:

     当中断源产生中断请求或发出软中断信号后,CPU或者接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能。

     适当时机表示:接收软中断信号的进程不一定正好在接到此信号时占有CPU,而相应的软中断信号处理必须等到该接收进程获得处理机

     之后才能进行。

3、中断事件处理

中断和异常的处理过程大致相同,其基本流程如下:

----------->>  发现中断源

----------->>  保护现场

----------->>  转向处理中断/异常事件的处理程序

----------->>  恢复现场

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