TSS描述符

    与所有其他段一样,任务状态段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,以允许用户特权级的应用程序执行任务切换。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值