中断控制,最初是为克服对I/O接口控制采用程序查询所带来的处理器效率低而产生的。中断控制的主要优点是只有在I/O需要服务时才能得到处理器的响应,不需要处理器不断地进行查询。由此,最初的中断全部是对外部设备而言的,称为外部中断(或硬件中断)。
内部中断(或异常),是为解决机器运行时出现的某些随机事件以及编程方便出现的。形成一个完整的中断系统。
主要讨论在80x86保护模式下中断机制在Linux中的实现。
一、中断是什么
16位实地址模式和32位保护模式,这两种模式之间最本质的差别是在保护模式引入中断描述符表。
1、中断向量
x86系列微机支持256种向量中断,为使处理器识别每种中断源,从0到255编号,赋予一个中断类型码n,Intel把这个8位的无符号整数叫做一个向量,也叫中断向量。256种中断分两大类:异常和中断。异常分为故障和陷阱,其共同特点是既不使用中断控制器,也不能被屏蔽(异常是CPU发出的中断信号)。中断分为外部可屏蔽中断和外部非屏蔽中断,所有I/O设备产生的中断请求引起屏蔽中断,紧急的事件(如硬件故障)引起的故障产生非屏蔽中断。
非屏蔽中断的向量和异常的向量是固定的,而屏蔽中断的向量可通过对中断控制器的编程来