内核学习之中断和异常(三)

中断定义为一个事件,该事件改变cpu的执行指令顺序

中断

同步中断:指令执行时有cpu控制单元产生,原因是在一条指令终止执行之后,cpu才会发生中断,也称为异常。异常由程序的错误产生,或由内核必须处理的异常条件产生

异步中断:依照由其它硬件设备根据cpu的时钟信号随机产生,也成为中断

中断信号的作用

当一个中断信号到达时,cpu必须停止当前正在做的事情,并切换新的活动,内核堆栈端保持程序计数器的当前值(eip与cs)。与进程切换不同的是,中断或异常处理的执行程序不是一个进程,它是内核路径

约束:

1.内核响应中断为两部分:关键而紧急的部分,内核立即执行,其它部分,内核随后执行。

2.中断运行嵌套,即一个中断未处理完,另一个中断发生

3.临界区,中断被禁止

中断与异常

中断:

1.可屏蔽中断:I/O设备发出的所有中断请求都是可屏蔽中断,状态是屏蔽的或非屏蔽的,受中断允许标志影响

2.非屏蔽中断:总是由cpu辨认,不受中断允许标志影响

异常;

处理器探测异常:

1.故障:通常可以纠正,一旦纠正,可以不失连贯性的情况下重新开始,如缺页异常

2.陷阱:陷阱指令执行后立即报告,内核把控制权给程序而不失连贯,如调试

3.异常中止:发送严重错误,终止受影响的进程

编程中断:软中断,当陷阱来处理

任务门、中断门、陷阱门:

内核学习之中断和异常(三)

任务门:中断发生时,必须取代当前进程的那个进程的tss选择符放入任务门

中断门:段选择符和端内偏移,并清IF标志,从而关闭将来的可屏蔽中断

陷阱门:如上类似,但不去IF标志