中断与异常

中断interrupt被定义为一个事件,该事件改变处理器执行的指令顺序。

中断分为同步中断(异常exception)和异步中断(中断interrupt):

同步中断是当指令执行时由CPU控制单元产生的,只有在一条指令终止执行后CPU才会发出中断。

异步中断是由其他硬件设备依照CPU时钟信号随机产生的。

中断是由间隔定时器和I/O设备产生的,如用户的一次按键会引起一个中断。

异常是由程序的错误产生的(内核发出信号来处理异常),或由内核必须处理的异常条件产生的(缺页、int指令、sysenter指令)。

中断信号使CPU停止当前的事情,切换到新的活动。内核态堆栈保存程序计数器的当前值(即eip和cs寄存器的内容)

每个中断和异常由0-255之间的一个数来标识。Intel把这个8位的无符号整数叫一个向量vector。

每个能够发出中断请求的硬件设备控制器都要有一条名为IRQ(Interrupt ReQuest)的输出线。

中断描述符表Interrupt Descriptor Table IDT是一个系统表,它与每一个中断或异常向量相联系,每一个向量在表中有相应的中断或异常处理程序的入口地址。内核在允许中断发生前,必须适当地初始化IDT。

posted @ 2015-11-05 20:51  LarryKnight  阅读(277)  评论(0编辑  收藏  举报