码段中的异常或中断处理程序过程.pdf
文本预览下载声明
~翳 鳓 唑 塑 幽 鲍 塑 匦 鹨
器不允许传送执行 至 比 CPI更低特权级 (数值 上更大 的特杈级)码 段 中的异 常或 中断处理程
序过程 。
无特权级改变的堆栈用法
被中断的过程和
处理程序的堆栈
在 至 理
传送 处 程序
前的 EsP
在 至 理
传送 处 程序
后的 EsP
有特权级改变的堆栈用法
被中断的过程的堆栈 处理程序的堆栈
至 理
在传送 处 程序
目刂自9EsP
在 至 理
传送 处 程序
丿自勺EsP
膏
图 ⒏4 在传 送至 中断和异 常处理例程上堆栈 的使 用
企 图违反此规则 ,导 致通用保护异常 (#GP)。 异常和 中断处理程序过程 的保 护机制在 以
下方面不 同 。
·因为 中断和异常 向量没有 RPL,在 隐含调用至异常和 中断处理程序时不 检查 RPL。
· INT饣 INT3或 INT0指
只若用 、 令 生成 异 常或 中断 ,处 理 器 检 查 中断 或 异 常 门的
DPL。 其 中,CPL必须小于或等 于 门的 DPL。 此 限制 防止运行在特权 级 3的 应 用程
序或过程用软件 中断访 问关键 的异 常处理程序 ,例 如 页故 障处理程序 ,提 供 的这些处
理程序放在更 高特权级 (数值上更低特权级)码 段 。对 于硬件生成 的 中断和处理器检
测 的异常 ,处理器忽略 中断和陷阱门的 DPL。
因为异常和 中断通 常不在预定 的时间发生 ,这 些特权规则 有效地 限制异 常和 中断处理程
序过程能运行 的特权级 。以下技术 的任一种 能用于避免特权级违反 。
·
异常或 中断处理程序能放在一致码段 中。此技术 能用 于处理程序 只需要访 问在堆栈
上可用 的数据 (例如 ,除法错 误异 常)。 若处理程序需要数据段 的数据 ,数 据段 需要从
特权级 3是 可访 问的,这使得 它是未保护 的 。
· 理 0的
处 程序能放在特权级 非一致码段 。此处理程序始终运行 ,不 管被 中断 的程序或
任务运行 的 CPI。
2.异 常或 中断处理程序过程使 用的标 志
当通过 中断 门或异常 门访 问异常或 中断处理程序 时 ,处
显示全部