2. Interrupt & Exception

[Home]


Interrupt is the only entrance of an OS.

从某种意义上来说,Interrupt是OS的唯一入口,是一个OS运行的驱动力,如果没有Interrupt,OS则是静态的;OS的各种功能,都是通过Interrupt来激活的。而Exception则是使OS具备容错能力,保证OS稳定性的一个重要因素。所以Interrupt和Exception的处理是我们在设计和开发一个OS的首要和重要部分。

在典型的情况下,Interrupt是为了响应一个来自于硬件的信号,而随机发生的。Interrupts被用来处理处理器外部的事件,比如敲击键盘事件。软件也可以通过执行INT n指令产生一个Interrupt。

当处理器执行一个指令的时候,如果发现一个错误条件,比如被0除,则产生一个Exception。

当一个Interrupt被接收,或者一个Exception被检测到的时候,CPU会暂时中止当前程序的运行,并把执行权移交给用来处理当前Interrrupt或Exception的程序模块,这个程序模块被称作Interrupt Service Routine(ISR)。当ISR被执行结束之后,CPU会恢复之前程序或任务的执行。这一切都被透明的执行。

本章的主要内容定位于Interrupt和Exception的产生机制,处理方法。


 

Table of Contents

2.1 Sources & Classification

2.2 Vectors & IDT

2.3 Priority & Control

2.4 Handling & Error Code

2.5 PIC-8259A

2.6 System Call