深入理解Linux内核 - 第二章 内存寻址 03

问题:
1,逻辑地址怎么求?
2,段描述符的base字段怎么求?

逻辑地址:由16位段选择符和32位偏移量组成,并不是说这个地址就是段选择符偏移32位再和偏移量相加。

段选择符:或叫段标识符,是一个16位长的字段。顾名思义,用于选择段的。为了快速找到段选择符,处理器提供段寄存器。

15~3bit,段索引号,2bit TI位, 1 0 位,特权级别。

由于段选择符仅仅在转换成线性地址中发挥作用,则通常认为32位偏移量就是逻辑地址。也即c语言中用&求得一个变量的地址就是逻辑地址。

段描述符:段选择符中,段索引号指向的是在段描述符表中的段描述符,这个段描述符是由8个字节表示。包含Base等9个标识。所以,Base就包含在段描述中

段描述符放在全局描述符表(GDT)或局部述符表中(LDT)。GDT存放在内存中,地址和大小放在gdtr控制寄存器中。LDT放在ldtr控制寄存器中。

TSS:任务状态段。任务状态主要是由一些寄存器来表示,因此这个段用来保存处理器寄存器的内容。这个段只能在GDT中

线性地址:段描述符中的Base+逻辑地址偏移量

 

问题:段描述符中的字段含义?

posted @ 2017-08-23 22:49  欲望的鱼  阅读(119)  评论(0)    收藏  举报