首先,PIC(可编程中断控制器)将外设的中断信号映射为一个中断向量,另一方面将信号发送给cpu的intr管脚。
cpu从PIC读取中断向量值i,到IDT(中断描述符表)表的第i项找到中断服务程序的段基址和偏移。
执行中断服务程序前,首先进行当前进程寄存器的压栈处理,然后向cs和eip装载中断服务程序的基址和偏移,执行中断服务程序。
执行中断服务程序前,还要比较cs寄存器的中CPL和中断服务程序所在段的DPL,DPL不允许小于CPL,即中断源不能越权激活中断服务程序。
IDT表是可编辑的,一部分由内核初始化使用,一部分留给用户使用。