加载中...

| 中文名 | 中断描述符表 |
| 英文名 | IDT |
| 架构 | x86 / x86-64 |
| 最大表项 | 256 |
| 关键寄存器 | IDTR |
中断描述符表(IDT,Interrupt Descriptor Table)是 x86 及 x86-64 架构中用于把中断向量号关联到相应处理程序的核心数据结构。当处理器接收到中断或异常时,会以中断号为索引查阅该表,找到入口地址并转入内核的中断处理流程。
x86 保护模式下,IDT 最多包含 256 个表项,分别对应 0 至 255 号中断向量。其中低号向量(如 0 号除零错误、14 号缺页异常)由 CPU 预留给内部异常,较高号向量供外部硬件中断和软件中断使用。每个表项称为门描述符(Gate Descriptor),记录处理程序段选择子、偏移地址及特权级等信息。IDT 的基地址与界限由 IDTR 寄存器指向,操作系统在启动早期便完成其初始化。
IDT 是操作系统内核实现中断处理、异常捕获与系统调用的底层机制。缺页异常处理、时钟中断驱动的进程调度、键盘鼠标等设备的响应,都依赖 IDT 完成从硬件事件到内核代码的跳转。虚拟化软件也会通过管理客户机 IDT 来拦截敏感操作。
问:IDT 和 GDT 有什么区别?答:全局描述符表(GDT)描述内存段与特权级,IDT 则描述中断向量到处理程序的映射,两者用途不同但同属保护模式的关键表结构。
问:中断门与陷阱门有何差别?答:通过中断门进入处理程序时 CPU 会清除中断允许标志以屏蔽嵌套中断,陷阱门则保持中断开启,通常用于处理不需要屏蔽的异常。

| 中文名 | 中断描述符表 |
| 英文名 | IDT |
| 架构 | x86 / x86-64 |
| 最大表项 | 256 |
| 关键寄存器 | IDTR |
登录 后参与讨论
暂无讨论,来发表第一条评论吧