TSS 描述符

来源:互联网 发布:如何表示主机域名 编辑:程序博客网 时间:2024/05/22 09:50

与所有其他段一样,任务状态段TSS通过一个段描述符来定义,图5.2给出了一个TSS描述符的格式,TSS描述符只能位于GDT中,而不能存在于LDT和IDT中,企图通过一个标志位TI设置的段选择子来访问一个TSS将产生一个常规保护异常#GP。如果企图将TSS中段选择子装载到一个段寄存器,也将产生常规保护异常。TSS描述符只能通过任务寄存器TR在GDT中检索,即:只有TR可作为TSS的段选择器。
  类型域中的忙标志位B说明任务是否正在执行,一个忙任务就是当前正在执行或挂起的任务。例如,类型域的值为1001B说明是一个不忙的任务,值1011B则说明是一个忙的任务。任务不能递归,处理器通过忙标志位来检测并阻止任务的递归调用,为了保证一个任务只有唯一的忙标志位相对应,每个TSS应该只有一个TSS描述符来描述,从而使该任务忙/闲状态一致。
  描述符中的基地址、段界限、DPL域、密度位G和存在标志P所具有的功能与数据段描述符类似。段界限域必须有一个等于或大于67H的值(对于32位的TSS),即TSS大小的最小值(104)减1。企图切换到一个TSS描述符段界限小于67H的任务将产生一个无效TSS异常#TS。如果操作系统将额外的数据存储在TSS中,则要求该值大于67H。任务切换时,处理器并不检查大于67H的段界限,然而,当访问I/O允许位映射副本或中断重定向位映射副本时,处理器则要对段界限进行检查。AVL域主要供系统软件使用。
  若CPL阈值等于或小于TSS描述符中DPL阈值,访问TSS描述符的程序或过程都能够通过调用或跳转来派遣任务。在大多数系统中,TSS描述符中的DPL阈值应该设置成小于3的值,以便只有具有一定特权的软件才能执行任务的切换。然而,在多任务应用程序中一些TSS描述符的DPL能够设置为3,以允许用户特权级的应用程序执行任务切换。

原创粉丝点击