任务门
任务门的门描述符在IDT中断描述符表中或GDT全局描述符表中,任务门描述符结构简单就第四个字节的高16位为隐藏的段选择子,此段选择子指向GDT表中的一个TSS段描述符。
任务门实现任务切换
可以用jmp far,call far 或者int n来使用任务门。
我觉得有了TSS段描述符还要使用门描述符的目的是为了支持抢占式多任务操作系统。例如用 int n指令来使用任务门进行任务切换。
- 当需要任务切换时CPU产生中断信号,然后在中断描述符表中取出任务门描述符。
- 利用任务门描述符在取出位于GDT全局描述符表中的TSS段描述符。
- 利用TSS段描述符填充TR段寄存器的不可见部分,然后将旧的任务的TSS段选择子保存到TSS段中。
- 利用TSS段中的寄存器值更改各个寄存器,然后将GDT表中当前使用的TSS段描述符的TYPE位的B位置1,表示当前任务状态忙。