TSS描述符表的作用

任务状态描述符表TSS用来记录当前进程执行时所对应的寄存器的数据,这些数据主要在进程切换时发挥作用,比如,现在要由当前进程"进程A"切换到进程B,那么系统就要将此时各个寄存器的数值,保存在进程A的任务状态描述符表中,以便将来进程A再次执行时接着使用而不至于出现混乱;之后,再用进程B中TSS里面的寄存器值,来设置相应的寄存器,以此支持进程B接下来的执行。
局部数据描述符表LDT中,记录着当前进程对应程序的代码段和数据段信息,比如代码的基地址等,这些信息将在进程程序执行时提供支持。
系统将来就是通过GDT表中挂接的TSS描述符合LDT描述符,来与当前进程建立关系的,这里将TSS和LDT挂接在全局描述符表GDT中,标志着系统从此具备操作进程1的能力

set_tss_desc(gdt+(nr<<1)+FIRST_TSS_ENTRY, &(p->tss)) ;
set_ldt_desc(gdt+(nr<<1)+FIRST_LDT_ENTRY, &(p->ldt)) ;

TSS描述符表的作用_第1张图片

你可能感兴趣的:(Linux,2.6.xx内核分析)