网站大量收购闲置独家精品文档,联系QQ:2885784924

张惠娟副教授hjzhangseiecnueducn.pptVIP

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
张惠娟副教授hjzhangseiecnueducn

Linux内存管理 内容 i386存储管理单元 Linux存储管理思想 物理内存空间管理 进程虚拟空间管理 请页机制 交换空间管理 缓冲机制 i386的存储管理单元 MMU 分段机制 i386的存储管理单元 MMU MMU由一个或一组芯片组成,其功能是把虚地址 映射为物理地址,即地址转换。 80386以两级方式实现地址转换: 第一级使用段机制,第二级使用分页机制。 在80386上,分页机制是支持虚拟存储器的最佳选择。段机制使用可变大小的块,使段机制较适合处理复杂系统的逻辑分区。 i386的存储管理单元 i386的存储管理单元 分段机制 段描述符 描述了段的基地址、界限及保护属性,是一个8字 节的数据结构,存放在段描述符表中。 i386的存储管理单元 上图说明 从图中可以看出,一个段描述符指出了段的32位基地址和20位段界限(即段长)。 第6个字节的G位是粒度位,当G=0时,段长的表示格式为字节长度,即一个段最长可达1M字节。当G=1时,段长表示段以4K字节为一页的页数目,即一个段最长可达1M*4K=4G字节。 D表示缺省操作数大小,D=0,操作数为16位,如果D=1,操作数为32位。 i386的存储管理单元 描述符表 在分段机制中,系统维护三种段表,称为描述符表,即全局描述符表、局部描述符表和中断描述符表。 描述符表本身占据的字节数为8的倍数,空间大小在8个字节(至少含一个描述符)到64K字节(至多含8K个描述符)之间。 i386的存储管理单元 全局描述符表(GDT) 全局描述符表包含着系统中所有任务都可用的那些描述符。 局部描述符表(LDT) 局部描述符表LDT包含了与一个给定任务有关的描述符,每一个任务都有一个各自LDT。 i386的存储管理单元 选择器 实模式下,段寄存器存储的是真实段地址 保护模式下,16位段寄存器无法访问32位段地址,因此,被称为选择器,即段寄存器是用来选择描述符的。 i386的存储管理单元 上图说明: TI是选择域,TI=1,从局部描述符表中选择相应描述符,TI=0,从全局描述符表中选择描述符。 索引域给出该选择符在GDT或LDT中的入口偏移量,选择符高14位将虚拟地址空间分为16K个独立段,其中8K个全局段和8K个局部段。 第1、0位是特权级,表示选择器特权级,称为请求者特权级RPL。只有请求者特权级RPL高于或等于相应描述符特权级DPL,描述符才能被存取,可以实现一定程度的保护。 i386的存储管理单元 描述符寄存器 全局描述符表寄存器GDTR是一个48位的寄存器。低16位保持全局描述符表GDT大小,最大为64K字节,高32位保持GDT的段基地址。 局部描述符表寄存器LDTR可见部分(即程序员可以操作的部分)只有16位,不可见部分有48位,放置局部描述符表的段基地址和界限。 i386的存储管理单元 分段方式下,寻址过程如下: 在段选择器中装入16位数,同时给出32位地址偏移量(比如在ESI、EDI中等等)。 根据段选择器中的索引值、TI及RPL值,再根据相应描述符表寄存器中的段基地址和段界限,进行一系列合法性检查(如特权级检查、界限检查)若无异常,取出相应描述符放入段描述符高速缓冲寄存器中。 将描述符中的32位段基地址和放在ESI、EDI等中的32位有效地址相加,就形成了32位物理地址。 i386的存储管理单元 linux分段机制 linux分页机制 Linux内存管理实现 Linux的存储管理思想 Linux分段机制 linux只定义了四种段寄存器的取值 内核代码段 0x10 内核数据段 0x18 用户代码段 0x23 用户数据段 0x28 Linux的存储管理思想 Linux的存储管理思想 将上表和段选择寄存器对比可知: 表明: 使用的都是GDT表 运行级别分为两级:0和3 Linux的存储管理思想 GDT初始化信息在arch/i386/kernel/head.S中 Linux的存储管理思想 对照段描述符的含义,可以得出结论: 四个段描述符内容下列内容基本相同 结论: 所有段都是从0地址开始的4G虚空间,虚拟地址到线性地址的映射是取值不变。 Linux的存储管理思想 有区别的地方仅仅是下列部分 结论: 经过如上段映射,之后需要开始进行线性地址映射。 Linux的存储管理思想 Linux分页机制 控制寄存器CR0、CR3 用CR0的PG位用来控制分页机制: 1,启用分页;0,禁止分页。 CR3用于指示页目录表的起始物理地址。

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档