计算机中断(转贴,很经典的解释)

熟悉Windows的人都知道,在系统设置中,几乎没有硬件都涉及到一些IRQ号,这些IRQ号
是什么意思呢?IRQ(Interupt Request)——中断请求号。什么是计算机中断?

  计算机中断——顾名思义,就是计算机由于遇到一些紧急情况,中断现在的工作,转而
处理紧急情况,处理完紧急情况以后再回到以前执行的工作继续执行。不过这只是狭义的计
算机中段概念。因为这个概念只能解释内部中断和外部中断,然而对于软件中断却不能套用
次概念。
  
  为了让我们更加方便的理解中断这个概念,然我们打个比方:假设你在上网,突然你的
朋友要你去踢足球,这就是中断请求。然后你对他喊道:“我就来!等一等!”这就是中断
响应。接着你就和他踢足球去了,这就是中断处理。踢完足球以后,你再回到你的计算机前
面接着上网,这就叫做中断返回。从以上可以看出,中断分为4个步骤:中断请求->中断响
应->中断处理->中断返回。
  
  以下我都会以这个例子为基础阐述我对于中断的理解。

  首先让我们对中断分一分类。有一种分类情况:1.可屏蔽中断 2.不可屏蔽中断。

  所谓可屏障中断很好理解,以那个例子为例。你的朋友叫你踢足球,但是你可能正在和
你心仪的美眉聊得正开心,于是你不响应这个中断,那么这个中断就是可屏蔽中断。

  假如中断你的不是这件事,而是叫你去领奖金,过期不侯,那么你是无论如何也要相应
这个中断了。这就是不可屏蔽中断。

  一般来说,像什么严重情况产生的中断一般都是非可屏蔽中断,比如:电源掉电等等。
可屏蔽中断和非可屏蔽中断对应着CPU的两根针,是严格区分的。

  还有一种中断分类方法:内部中断、外部中断、软件中断。

  内部中断是CPU自己发生异常产生的中断。其中最重要的是“除0中断”和“溢出中断”
。大家都知道,除数是不能为0的,如果在CPU的运行过程中出现了这种情况的话,那么就会
产生一个中断,由系统自动执行,由于中断号为“0”,所以也叫0号中断;溢出中断是在CPU的运算过程中产生溢出,由应用程序执行。溢出这个概念比较复杂,需要一定的计算机编码
知识,不在这儿的讨论之列。

  外部中断是计算机的外部设备给CPU的中断请求,例如:时钟、键盘、鼠标等等。这些中
断都是可以屏蔽的。我们在键盘上输入了‘A’,结果在屏幕上显示出来了,这都是中断的功
劳。

  软件中断就是应用程序提出的中断了,是不可能被屏蔽的。每一个软件中断都对应一个
标准的功能,如:在屏幕上显示一个字符串,准备从键盘接受一个字符等等。

  最后我们回到 IRQ 号,为什么中断要编号,因为只有编号,CPU才知道向CPU提出的是什
么中断。比如 IRQ 1是时钟中断,IRQ 2是键盘中断等等。

你可能感兴趣的:(教程)