311中断向量

Intel x86系列微机共支持256种向量中断,为使处理器较容易地识别每种中断源,将它们从0256编号,即赋以一个中断类型码nIntel把这个8位的无符号整数叫做一个向量,因此,也叫中断向量。所有256种中断可分为两大类:异常和中断。异常又分为故障(Fault)和陷阱(Trap),它们的共同特点是既不使用中断控制器,又不能被屏蔽。中断又分为外部可屏蔽中断INTR)和外部非屏蔽中断NMI),所有I/O设备产生的中断请求(IRQ)均引起屏蔽中断,而紧急的事件(如硬件故障)引起的故障产生非屏蔽中断。

 

    非屏蔽中断的向量和异常的向量是固定的,而屏蔽中断的向量可以通过对中断控制器的编程来改变。Linux256个向量的分配如下:

·      0~31的向量对应于异常和非屏蔽中断。

·      32~47的向量(即由I/O设备引起的中断)分配给屏蔽中断。

·      剩余的从48~255的向量用来标识软中断。Linux只用了其中的一个(即1280x80向量)用来实现系统调用。当用户态下的进程执行一条int 0x80汇编指令时,CPU就切换到内核态,并开始执行system_call(  )内核函数。