中断是指强制改变了cpu指令执行顺序的一些事件,所谓改变指令执行顺序,首先可以理解为没有到进程调度点就暂停了下一条指令的执行转而执行中断的指令,其次可以理解为
同一进程内原本相邻的两条指令间穿插了其它指令的执行。
同步中断是由cpu内部的电信号产生的中断,其特点为当前执行的指令结束后才转而产生中断,由于有cpu主动产生,其执行点必然是可控的。
异步中断是由cpu的外设产生的电信号引起的中断,其发生的时间点不可预期。
同步中断也称为异常,要么是代码错误引起的,此时cpu通过发送相关的信号来处理异常(通常可能是杀死进程的信号);要么是cpu必须处理的一些异常条件,此事cpu执行异常处理函数来恢复异常。
由当前进程切换到中断执行实际上并不是进程切换,中断的执行只是一个内核执行的路径,这个执行路径实际上仍然代表着当前进程在执行,当前进程的时间片在增长,看上去进程执行的花费变长了。
虽然没有执行进程切换,但是因为要突然跳转到别处执行,所以也要切换硬件上下文,保存好现场而去装载新的cs和eip。