多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 7.4 任务门描述符(Task Gate Descriptor) 一个任务门描述符提供了一个间接的、有保护性的对一个TSS的的访问方法。图7-4显示了任务门的格式。 门描述符的选择子(SELECTOR)字段必须要指向一个TSS描述符。在这个选择子内的RPL字段是不被处理器使用的。 门描述符的DPL字段用于控制可以访问该描述符来导致任务切换的特权级。只有当选择子的RPL和子程序的CPL的最大值在数值上小于或等于描述符的DPL,这个特性防止了非受信任代码引起任务切换(注意,当使用任务门时,目标TSS描述符的DPL字段不用来做特权级检测。) 和一个可以访问一个TSS描述符的子程序一样,一个有权访问门描述符的子程序就可以引起任务切换。80386使用门描述符来达到以下三个需要: 1、  使一个任务只有一个忙位。因为忙位(busy-bit)存储在TSS描述符中,每一个任务吸能有一个这样的描述符。也可能有这样的情况,几个任务同时选中同一个TSS描述符。 2、  提供可选的其它方式来访问任务。任务门可以满足这种要求,因为他们可以存放在LDT中,还可以和要访问的TSS有一个不同的DPL字段。一个不能访问GDT中的TSS的程序,也可以通过任务门来通过自已的LDT访问该任务。有了门描述符,系统软件可以把任务切换只限制一定的权限下。 3、  为了让中断和异常可以引发任务切换。任务门可以存放在IDT中,从而允许中断或异常引起任务切换。当IDT中的项包含一个门描述符时,80386处理器切换到指定的任务。以便系统中的所有任务和中断任务分离开来。 图7-5显示了在LDT和IDT中指向同一个任务的门描述符。 ![](https://box.kancloud.cn/2016-03-06_56dbfdaf51be8.jpg) ![](https://box.kancloud.cn/2016-03-06_56dbfdae13033.gif)