内存管理单元基本知识.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
物理地址和虚拟地址 (MMU) MMU 是 Memory Management Unit 的缩写,中文名是内存管理单元,它是中央处理器(CPU )中用来管 理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存 访问授权。(它具有虚拟地址和物理地址转换,内存访问权限保护等功能,这使得 Linux 操作系统能单独为 系统的每个用户进程分配独立的内存空间并保证用户空间不能访问内核空间地址,为操作系统的虚拟内存 管理模块提供硬件基础) 。 一、MMU 的历史 许多年以前,当人们还在使用 DOS 或是更古老的操作系统的时候,计算机的内存还非常小,一般都 是以 K 为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的 程序。但随着图形 界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面 前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块 (overlay )的片 段。覆盖块 0 首先运行,结束时他将调用另一个覆盖块。虽然覆盖块的交换是由 OS 完成的,但是必须先 由程序员把程序先进行分割,这是一个费时费力的工作,而且相当枯燥。人们必须找到更好的办法从根本 上解决这个问题 。不久人们找到了一个办法,这就是虚拟存储器(virtual memory).虚拟存储器的基本思想是程序,数据,堆 栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用 的部分保存 在磁盘上。比如对一个 16MB 的程序和一个内存只有 4MB 的机器,操作系统通过选择,可以决定各个时 刻将哪 4M 的内容保留在内存中,并在需要时在内存和磁盘间交换程序片段,这样就可以把这个 16M 的程 序运行在一个只具有 4M 内存机器上了。而这个 16M 的程序在运行前不必由程序员进行分割。 二、MMU 的相关概念——地址范围、虚拟地址映射为物理地址 以及 分页机制 任何时候,计算机上都存在一个程序能够产生的地址集合,我们称之为地址范围。这个范围的大小由 CPU 的位数决定,例如一个 32 位的 CPU,它的地址范围是 0~0xFFFFFFFF (4G),而对于一个 64 位的 CPU, 它的地址范围为 0~0xFFFFFFFFFFFFFFFF (64T).这个范围就是我们的程序能够产生的地址范围,我们把这个地址范围称 为虚拟地址空间,该空间中的某一个地址我们称之为虚拟地址。与虚拟地址空间和虚拟地址相对应的则是 物理地址空间和物 理地址,大多数时候我们的系统所具备的物理地址空间只是虚拟地址空间的一个子集。这里举一个最简单 的例子直观地说明这两者,对于一台内存为 256M 的 32bit x86 主机来说,它的虚拟地址空间范围是 0~0xFFFFFFFF (4G ), 而物理地址空间范围是 0x000000000~0x0FFFFFFF (256M )。 在没有使用虚拟存储器的机器上,虚拟地址被直接送到内存总线上,使具有相同地址的物理存储器被 读写;而在使用了虚拟存储器的情况下,虚拟地址不是被直接送到内存地址总线上,而是送到存储器管理 单元 MMU,把虚 拟地址映射为物理地址。 大多数使用虚拟存储器的系统都使用一种称为分页(paging)机制。虚拟地址空间划分成称为页(page) 的单位,而相应的物理地址空间也被进行划分,单位是页桢(frame).页和页桢的大小必须相同。在这个例子 中我们有 一台可以生成 32 位地址的机器,它的虚拟地址范围从 0~0xFFFFFFFF (4G ),而这台机器只有 256M 的 物理地址,因此他可以运行 4G 的程序,但该程序不能一次性调入内存运行。这台机器必须有一个达到可 以存放4G 程序的外部存 储器(例如磁盘或是 FLASH),以保证程序片段在需要时可以被调用。在这个例子中,页的大小为4K,页桢 大小与页相同—— 这点是必须保证的,因为内存和外围存储器之间的传输总是以页为单位的。对应 4G 的 虚拟地址和 256M 的物理存储器,他们分别包含了 1M 个页和 64K 个页桢。 三、MMU 的功能 1、将虚拟地址映射为物理地址 现代的多用户多进程操作系统,需要 MMU, 才能达到每个用户进程都拥有自己独立的地址空间

文档评论(0)

独角戏 + 关注
实名认证
文档贡献者

本人有良好思想品德,职业道德和专业知识。

1亿VIP精品文档

相关文档