内核学习之中断和异常(三)
中断定义为一个事件,该事件改变cpu的执行指令顺序
中断
同步中断:指令执行时有cpu控制单元产生,原因是在一条指令终止执行之后,cpu才会发生中断,也称为异常。异常由程序的错误产生,或由内核必须处理的异常条件产生
异步中断:依照由其它硬件设备根据cpu的时钟信号随机产生,也成为中断
中断信号的作用
当一个中断信号到达时,cpu必须停止当前正在做的事情,并切换新的活动,内核堆栈端保持程序计数器的当前值(eip与cs)。与进程切换不同的是,中断或异常处理的执行程序不是一个进程,它是内核路径
约束:
1.内核响应中断为两部分:关键而紧急的部分,内核立即执行,其它部分,内核随后执行。
2.中断运行嵌套,即一个中断未处理完,另一个中断发生
3.临界区,中断被禁止
中断与异常
中断:
1.可屏蔽中断:I/O设备发出的所有中断请求都是可屏蔽中断,状态是屏蔽的或非屏蔽的,受中断允许标志影响
2.非屏蔽中断:总是由cpu辨认,不受中断允许标志影响
异常;
处理器探测异常:
1.故障:通常可以纠正,一旦纠正,可以不失连贯性的情况下重新开始,如缺页异常
2.陷阱:陷阱指令执行后立即报告,内核把控制权给程序而不失连贯,如调试
3.异常中止:发送严重错误,终止受影响的进程
编程中断:软中断,当陷阱来处理
任务门、中断门、陷阱门:
任务门:中断发生时,必须取代当前进程的那个进程的tss选择符放入任务门
中断门:段选择符和端内偏移,并清IF标志,从而关闭将来的可屏蔽中断
陷阱门:如上类似,但不去IF标志