|
|
|
|
 【求助】关于386的LDT和TSS的问题 - GPR [ 2005-10-19 20:09 | 982 byte(s)]
 Re: 【求助】关于386的LDT和TSS的问题 - albcamus [ 2005-10-31 16:58 | 40 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
各位大虾,小弟最近学习《UNIX系统下的80386》(一本老书)一书,在学习有关任务切换时,书中有如下一段话
“虽然在UNIX系统中有大量的进程,但只有一个进程(在单处理器系统中)是当前进程,于是在GDT中,没有必要为每一个进程设置一个LDT描述符和TSS描述符,而只要有一个当前进程的LDT描述符和TSS描述符,且它们的选择子是固定的,只要在进程切换之前,用新进程的LDT描述符和TSS描述符替换掉在GDT中的老的进程的LDT描述符和TSS描述符就可以了。”
按照上面的说法,是不是LDT描述符和TSS描述符在GDT中是固定的?在下面的注释中,似乎LDT描述符是GDT中的第40项,TSS描述符是GDT中的第46项,但是CPU中有LDTR和TR两个寄存器,这两个寄存器是用来指定LDT描述符和TSS描述符在GDT中的位置的,如果LDT描述符和TSS描述符在GDT中是固定的,那么这两个寄存器不就没有存在的必要了吗?
而且该书还称“从80386来说,只要用新任务的TSS描述符的选择子加载任务寄存器TR,就实现了任务切换” TSS描述符的位置都固定了,不同进程的TSS描述符的选择子还有区别吗?
知道的XD解释一下哈,小弟谢了先!
|
|
|
[Original]
[Print]
[Top]
|
|
|