美文网首页
day2分段理解

day2分段理解

作者: 柯基是只dog | 来源:发表于2018-07-15 14:23 被阅读0次

内存分配是由操作系统完成的,操作系统是直接面对物理内存的,而我们的应用程序编译后的地址其实是逻辑地址。操作系统会通过分段机制把逻辑地址转成线性地址,如果这时候操作系统并未使用cpu分页功能,那线性地址就是物理地址。如果还开启了分页功能,线性地址就经过分页转换成物理地址。

背景,x86体系的cpu都是向前兼容的,原来16位cpu时候,寄存器都是16位的,其中有6个寄存器叫做段选择寄存器,分别是(CS,SS,DS,ES,FS,GS),cs是代码选择器,ss是堆栈选择器,拿代码地址来说,真正的地址实际上cs+选择地址=真正地址,所以我们可以人为的把内存分为很多段,这样就可以方便的书写代码了。

现在到了32位了,但这几个段选择器为了向前兼容还是16位的,我们知道32位可以寻址的内存是2^32=4M了,16位的段选择器已经难以满足了。因为向前兼容cpu在通电后仍然是80386的形态,这时候我们就要完成几件事,才能让cpu变成成为32位的,主要就是设置gdtr寄存器,打开标志寄存器的分段。

GDTR是什么

其实很好理解,而且我们早就用过了,当空间不足的时候,就用多级索引啊!比如文件系统,比如缓存系统,GDTR也是一样的,我们把原来的段选择器不当做直接的分段地址来用,而是当做一个索引号,如果16位全部用来做索引那我们就可以选择2^16个真正的段描述符足够我们使用了(但实际上我们使用前13位做选择符,紧接着1位用来标识是GDT还是IDT,最后2位是权限标识)

段选择器

好了现在我们知道原来的段寄存器,现在变成了一个段选择寄存器了,现在就差一个表来存放实际的描述符了,操作系统其实就是在内存中分配了一部分内存专门存放描述表。GDTR就是这个表的入口地址,如果用c语言来描述gdtr可以当做一个64byte的数组。

LDTR是什么

GDTR是全局的,基本上操作系统完成切换后是就不会变了。表里除了段描述符外还有其他几种类型的,有tss描述表,ldt描述表等,LDTR就是存放ldt索引号的。我们可以把LDTR理解成局部分段,比如操作系统可以给每个进程都分配一个局部表,这样就可以用硬件来隔离不同进程的资源了。那么好了我们就可以把LDTR理解成二级表,前面说了段选择符的倒数第3位是ti标识位,0代表使用全局表,1代表使用局部表,这时候如果cs寄存器的ti是局部表,那么流程大概如下

  • 判断段选择符比如cs的ti标识位是1
  • 用LDTR寄存器的选择符去全局表中找到对应的LDT描述符,描述符里记录了这个局部表的入口地址
  • 使用cs的13位的index选择符去这个局部表里找到真正的基址描述符

总结一下

cpu提供了分段分页机制让特殊程序(操作系统)可以映射不同的内存,可以让操作系统可以站在更高的视角和权限去分配内存资源。这样可以让用户程序更方便的书写,都可以假设自己是从0地址开始往后分布的。而操作系统可以使多道程序同时存在内存中,用不同的分段映射到实际地址去,这样就可以很方便的实现多到程序

相关文章

  • day2分段理解

    内存分配是由操作系统完成的,操作系统是直接面对物理内存的,而我们的应用程序编译后的地址其实是逻辑地址。操作系统会通...

  • UISegmentedControl控件

    UISegmentedControl控件 分段控件,可以理解为存放多个button的控件 设置分段的宽度 设置默认...

  • 我理解的分段投射

    现在基本每天都会做很多的分段投射。 早晨起床会做一天总的投射,宇宙老爸基本都如愿以偿了。 上班前,也会分段投射自己...

  • 作文课就是一个训练的过程

    今天读《材料的理解和叙述》,看到黄老师分段呈现材料,在分段呈现材料的过程中,又根据每一段材料而设置了许多问题...

  • JavaEE学习笔记Day2

    JavaEE学习笔记day2 理解Servlet的编写和访问过程掌握Servlet父子类之间的继承关系理解Serv...

  • 一个不自律的人聊自律

    话题是~“你是怎么理解自律的” 打卡day1, 打卡day2, …… 每次看...

  • 世界你好分段计费is分

    世界你好分段计费is分 世界你好分段计费is分世界你好分段计费is分世界你好分段计费is分世界你好分段计费is分世...

  • 笃学奖-Topic5-A13093-甘比精读

    Time: 17:34-49 基本理解大意,部分段落主题句(首句哦)get,hope better~ Day 1 ...

  • 【一模排名】2019年海淀区初三一模区排名出炉

    海淀区初三一模区排名 语文英5分段 语文5分段 数学5分段 英语5分段 物理5分段 化学5分段 生物5分段 道德与...

  • u3t2

    90…分段…3个 80…分段…11个 70.分段..9个 60…分段…8个 不及格……10个

网友评论

      本文标题:day2分段理解

      本文链接:https://www.haomeiwen.com/subject/rrsppftx.html