快速业务通道

操作系统引导探究

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-01
在保护模式下,内存地址却不是如上图所示的方法形成的.那么它又时怎样形成的呢?


4.2 保护模式下的内存地址形成

保护模式下内存地址就复杂多了, 我们要分清三个概念:逻辑地址、线性地址与物理地址.物理地址很好理解,逻辑地址也好理解,就是程序所使用的地址.那么什么是线性地址呢?其实如果不使用分页机制的话,线性地址就是物理地址,它与物理地址是一一对应的,线性地址 0,也就是物理地址 0.但我们知道,32位的 CPU拥有 32 根地址线,也就是可以访问: 拥有帝国一切,皆有可能。欢迎访问phome.net

2的32次方 = 4GB的内存空间,这实再是一个太大的空间了!现在很少有机器的物理内存能有这么大.那怎么在有限的物理空间中使用 4GB 的空间呢?人们把物理内存分成许多页,当某些页被使用的时候,某些页就没有被使用,而没有被使用的页就可以用来载入 4GB 上的空间,这就称为从线性地址到物理地址的映射,这是一个多对一的映射,也就是说多个线性空间中的页对应一个物理空间中的页,希望下面一幅图能有助于你理解这样的分页机制.

上面是一种最简单的映射方式,术语称作“直接相连”映射,它大约只能用来说明问题,而在一个实际的操作系统中通常是“全相联相连”映射,也就是说线性地址中的页可以是映射到物理地址中的任何一个页中,只要那块物理地址空间现在是空闲的.不过,通过上图也能说明问题,当线性地址中的页 5 需要被访问时,CPU 通过地址映射机制将其转换到物理地址,发现其对应物理地址中的页 1.于是 CPU 将物理地址页 1 中的内容放到硬盘上 的一个地方(虚拟内存) ,然后将线性地址中的页 5 载入物理内存页 1 中.这里就当可以比较明显的区别什么是线性地址,什么是物理地址了.

然而,当不使用分页机制的时候,线性地址就会被 CPU 当做物理地址来使用,线性地址会被直接放在 CPU 的地址信号线上,而在编写应用程序的时候,我们通常使用却是另一种地址——逻辑地址,从逻辑地址到线性地址也存在着与上述机制类似的一种映射机制,不过这个机制常常称为“段模式” ,它是由操作系统与 CPU硬件共同完成的.操作系统的任务就是分配映射表,而 CPU 硬件的任务就是按着映射表进行映射.而这样的映射表在操作系统编写中又称之为“描述符表” ,有两种重要的描述符表,一种是“全局描述符表(GDT) ”


另一种是“局部描述符表(LDT) ” ,这两种表的用途不同,但它们的用法却是近似的,下面我们就来描述一下全局描述符表.说到表,学过数据结构的人都知道,其实它就是一种数据结构,全局描述符表也是一种数据结构,当这种结构放在一块连续的内存这间中就称之为表了.表由表项组成,全局描述符表由它的表符全局描述符组成,其实单纯的术语就叫“描述符” ,只它放在全局描述符表中就成了全局描述符了.这个描述符由 8 个字节组成,下面我们就来看看它的结构: 拥有帝国一切,皆有可能。欢迎访问phome.net


TYPE: 表明此段的类型,4 位中的最高位被置 1 的时候表是它是数据段,相应的于下的三位,从左到右依次为 E、W、A,即数据段的 TYPE 为:0EWA.其中 E 表示向下增长位,置 1 时表示向下增长,W 表示可写位,置 1 表洋可定,A表示被访问位(如果 CPU访问了它,此位将会被置 1) .

S:为 1 时表示其为代码或数据段,为 0 时表示为系统段

DPL:表示物权级,从 00~11,共 0,1,2,3 四个特权级

P:为 0 是表示此描术符无效,不能被使用

AVL:留给系统程序随便用的

D/B:为 0 的时候表示它是一个 16 位的段,为 1时表示它是一个 32 位的段

G:为 0 时,表示段限的单位是 1 字节,为 1 时表示段限的单位是 4KB,并且段偏移量

的最低 12 位将不被检测是否在段限之中. (这一点现在可能不好理解,但我下面马上会解释

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号