linux中断处理之初始化.docVIP

  • 2
  • 0
  • 约1.64万字
  • 约 36页
  • 2017-11-17 发布于河南
  • 举报
linux中断处理之初始化

linux中断处理之初始化 发布者:chinaitlab  日期: 2010-09-03 00:00:00 浏览次数:0 (共有_条评论) 查看评论 | 我要评论 ?   一:引言   在Intel的文档中,把中断分为两种.一种是异常,也叫同步同断.一种称之为中断,也叫异常中断.   同步中断指的是由CPU控制单元产生,之所以称之为同步,是因为只有一条指令执行完毕后才会发出中断.例如除法运算中,除数为零的时候,就会产生一个异常   异步中断是由外部设备按照CPU的时钟随机产生的.例如,网卡检测到一个数据到来就会产生一个中断.   二:x86的中断处理过程   由于中断是开着的,所以当执行完一条指令后,cs和eip这对寄存器中已经包含了下一条将要执行的指令的逻辑地址。在处理那条指令之前,控制单元会检查在运行前一条指令时是否发生了一个中断或异常。如果发生了一个中断和异常,那么控制单元执行下列操作:   1. 确定与中断或异常关联的向量i(0≤ i ≤255)   2. 读由idtr寄存器指向的IDT表中的第i项。   3. 从gdtr寄存器获得GDT的基地址,并在GDT中查找,以读取IDT表项中的选择符标识的段描述符。这个描述符指定中断或异常处理程序所在的段的基地址。   4. 确信中断是由授权的(中断)发生源发出的。首先将当前特权级CPL(存放在cs寄存器的低两位)与段描

文档评论(0)

1亿VIP精品文档

相关文档