TSS(任务状态段) TSS描述符 任务寄存器(TR) 任务门描述符 学习总结 | 您所在的位置:网站首页 › 如果gdt寄存器值为 › TSS(任务状态段) TSS描述符 任务寄存器(TR) 任务门描述符 学习总结 |
主要是TSS、TSS描述符、TR和任务门描述符学习总结 1 任务状态段(TSS) 任务状态段(Task-State Segment(TSS)),保存任务状态信息的系统段为任务状态段。图7-2描述32位CPU的TSS信息。TSS主要分为动态字段和静态字段。 2 TSS 描述符 就像其它段描述符描述段的一些性质一样,TSS描述符用来描述TSS的某些性质。TSS描述符仅可能存放在GDT中,不能存放在LDT或IDT中。32位模式下,TSS描述符格式如下: 当G标志是0时,界限字段的值大于或等于67H(103字节),比TSS(104字节)的大小少一个字节。如果切换到任务的TSS界限字段小于67H会产生无效TSS异常(#TS)。 3 任务寄存器(task register) 任务寄存器拥有当前任务的TSS的段选择符和段描述符(32位基地址,16位段界限和描述符参数)。任务寄存器具有可见部分(软件可以读和写)和不可见部分(只能被处理器访问,软件不能读写)。可见部分中的段选择符指向GDT中TSS描述符。不可见部分缓存TSS的描述符。指令LTR(加载任务寄存器)和STR(保存任务寄存器)加载和保存任务寄存器的可见部分。LTR指令让任务寄存器加载TSS描述符的段选择符,该指令只能运行在特权级0,该指令通常用来系统初始化时初始化任务寄存器。指令STR可以将任务寄存器的可见部分保存到通用寄存器或内存中。该指令可以运行在任何特权级。 系统上电或复位时,段选择符和基址指向默认值0,界限设为FFFFH。 下图描述了,任务寄存器中可见部分的段选择符加载TSS描述符的段选择符,访问GDT中TSS描述符,通过TSS描述符访问TSS。同时TSS描述符中的基址和界限字段的值又加载到任务寄存器的不可见部分的基址和界限字段,这样做的目的是下次访问该TSS时可以不用通过GDT中的TSS描述符访问TSS,而是直接通过缓存在任务寄存器中的基址和界限字段访问TSS,加快了系统对TSS的访问。 4 任务门描述符(Task-Gate Descriptor) 任务门描述符用来间接地、保护引用任务。结构如下图。任务门描述符可以放在GDT,LDT和IDT中。任务门描述符中的TSS段选择符字段指向GDT中的TSS描述符。在任务切换过程中,任务门描述符中DPL字段控制访问TSS描述符。当程序通过任务门调用和跳转到一个任务时,CPL和门选择符的RPL字段必须小于等于任务门描述符中的DPL。 |
CopyRight 2018-2019 实验室设备网 版权所有 |