TSS中的IO许可位映射区

TSS中的IO许可位映射区

Content #

同其他和任务相关的信息一样,I/O 许可位串位于任务的TSS 中。任务状态段 TSS 的最小长度是104 字节,保存着最基本的任务信息,但这并不是它的最大长度。事实上,整个TSS 还可以包括一个I/O 许可位串,它所占用的区域称为I/O 许可位映射区。

如图所示,在TSS 内偏移为102 的那个字单元,保存着I/O 许可位串(I/O 许可位映射区)的起始位置,从TSS 的起始处(0)算起。因此,如果该字单元的内容大于或者等于TSS 的段界限(在TSS 描述符中),则表明没有I/O 许可位串。在这种情况下,如果当前特权级CPL 低于当前的I/O 特权级IOPL,执行任何硬件 I/O 指令都会引发处理器异常中断。

和LDT 一样,必须在GDT 中创建TSS 的描述符,TSS 描述符中包括了TSS 的基地址和界限,该界限值包括I/O 许可位映射区在内。

From #

IO许可映射区的最后一位必须是0xFF IO许可位串