什么是中断?为什么需要中断
大家知道CPU的处理速度很快,但是外部设备的处理速度就很慢了,为了让这两种不同速度的机器相互配合,就产生了中断。
比如:
CPU有一个需求需要把硬盘中的数据读取到内存中,这时硬盘中的数据拷贝到内存是一个比较慢的情况,如果没有中断,CPU需要不停的检查读完了没有,但是有了中断,CPU读硬盘比较慢就去处理其他事情了,等它读好了通知我,通知的这个动作就是中断。
中断号和中断向量
中断号和中断向量其实都是一个数字,因为中断号相对的都是外部设备,0-31的中断向量都分给了内部中断和异常(软中断)
0中断号对应的是32中断向量
为什么叫中断向量呢?
大家都知道向量都是有方向的,在中断描述符表中根据中断向量可以找到中断服务例程或者中断处理程序的地址
中断的处理流程:
首先,设备将中断号发送给中断控制器,中断控制器将中断向量发送给CPU,CPU根据中断向量跳转到中断服务例程的入口地址,之前都是硬件在控制,从这里开始软件接管了一切