首页 > 系统服务 > 详细

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

时间:2017-08-23 23:52:46      阅读:274      评论:0      收藏:0      [点我收藏+]

问题:
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+逻辑地址偏移量

技术分享

 

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

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

原文:http://www.cnblogs.com/fresh-fish/p/7420667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!