TSS任务状态段 一个内核一个,存在于内存中,不存在与cpu;可以让cpu同时执行多个任务。
进程A申请堆栈时要向TSS申请,申请时会有两个一个0环,一个3环的,
1.TSS结构
PTS 中存放的上一个TSS,通过CPU查找。
三环不需要申请新的ESP,所以没有ESP3.换栈是就会根据权限分配对应的ESP
LDT 存的是16位选择子,必定是系统段,一个任务有一个LDT表,一个TSS对应一个LDT表
LDTR里放着LDT表的位置,LDTR里只有base和limit有用,记录着LDT表的位置
本质:
不要把TSS与“任务切换”联系到一起
TSS的意义就在于可以同时换掉”一堆”寄存器
windows只使用了esp0和ss0,不用LDT
段寄存器有es,cs,ds,gs,idtr,tr
那么如何找到TSS,答案是tr
从GDT表中找到tr段寄存器,selector记录着TSS段描述符,base记录TSS表位置,limit记录TSS大小
2.tr段寄存器
3. TSS 描述符
就像其它段描述符描述段的一些性质一样,TSS描述符用来描述TSS的某些性质。TSS描述符仅可能存放在GDT中,不能存放在LDT或IDT中