任务状态段(Task State Segment, TSS)是x86架构电脑上是一个保存任务信息的数据结构,被操作系统内核用于任务管理。以下信息保存在任务状态段中:
- 寄存器状态
- I/O 端口权限
- 内层堆栈指针
- 先前的 TSS 链接
如 IA-32 手册所指明,以上所有信息应当保存在 TSS 中的指定位置。
数据结构
左图为 x86 平台下任务状态段的数据结构。其中的字段( field )有动态( dynamic field )和静态(static field )之分。当切换到另一个任务的时候,CPU 会自动更新 TSS 中的动态字段; 而静态字段一般从这个任务被创建开始都不会改变。
动态字段:
- 通用寄存器 ( General-purpose registers )
- 段寄存器 ( Segment selector registers )
- EFLAGS 寄存器
- EIP 字段
- 指向前一个任务( Previous Task Link )字段
静态字段:
- LDT 段选择符字段
- CR3 控制寄存器字段
- 特权级 0、1、2 栈指针字段
- T (调试标志)字段
- I/O map 起始地址字段
任务切换
以下 4 种情况引起任务切换:
评论 (0)