- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
存储管理子系统时操作系统中最重要的组成部分之一。在早期计算时代,由于人们所需要的内存数目远远大于物理内存,人们设计出了各种各样的策略来解决此问题,其中最成功的是虚拟内存技术。它使得系统中为有限物理内存竞争的进程所需内存空间得到满足。 虚拟内存技术不仅仅可让我们可以使用更多的内存,它还提供了以下功能: 巨大的寻址空间 操作系统让系统看上去有比实际内存大得多的内存空间。虚拟内存可以是系统中实际物理空间的许多倍。每个进程运行在其独立的虚拟地址空间中。这些虚拟空间相互之间都完全隔离开来,所以进程间不会互相影响。同时,硬件虚拟内存机构可以将内存的某些区域设置成不可写。这样可以保护代码与数据不会受恶意程序的干扰。 内存映射 内存映射技术可以将映象文件和数据文件直接映射到进程的地址空间。在内存映射中,文件的内容被直接连接到进程虚拟地址空间上。 公平的物理内存分配 内存管理子系统允许系统中每个运行的进程公平地共享系统中的物理内存。 共享虚拟内存 尽管虚拟内存允许进程有其独立的虚拟地址空间,但有时也需要在进程之间共享内存。 例如有可能系统中有几个进程同时运行BASH命令外壳程序。为了避免在每个进程的虚拟内存空间内都存在BASH程序的拷贝,较好的解决办法是系统物理内存中只存在一份BASH的拷贝并在多个进程间共享。动态库则是另外一种进程间共享执行代码的方式。共享内存可用来作为进程间通讯(IPC)的手段,多个进程通过共享内存来交换信息。 Linux支持SYSTEM V的共享内存IPC机制。 3.1 虚拟内存的抽象模型 在讨论Linux是如何具体实现对虚拟内存的支持前,有必要看一下更简单的抽象模型。 在处理器执行程序时需要将其从内存中读出再进行指令解码。在指令解码之前它必须向内存中某个位置取出或者存入某个值。然后执行此指令并指向程序中下一条指令。在此过程中处理器必须频繁访问内存,要么取指取数,要么存储数据。 虚拟内存系统中的所有地址都是虚拟地址而不是物理地址。通过操作系统所维护的一系列表格由处理器实现由虚拟地址到物理地址的转换。 为了使转换更加简单,虚拟内存与物理内存都以页面来组织。不同系统中页面的大小可以相同,也可以不同,这样将带来管理的不便。Alpha AXP处理器上运行的Linux页面大小为8KB,而Intel X86系统上使用4KB页面。每个页面通过一个叫页面框号的数字来标示(PFN) 。 页面模式下的虚拟地址由两部分构成:页面框号和页面内偏移值。如果页面大小为4KB,则虚拟地址的 11:0位表示虚拟地址偏移值,12位以上表示虚拟页面框号。处理器处理虚拟地址时必须完成地址分离工作。在页表的帮助下,它将虚拟页面框号转换成物理页面框号,然后访问物理页面中相应偏移处。 图3.1给出了两个进程X和Y的虚拟地址空间,它们拥有各自的页表。这些页表将各个进程的虚拟页面映射到内存中的物理页面。在图中,进程X的虚拟页面框号0被映射到了物理页面框号4。理论上每个页表入口应包含以下内容: 有效标记,表示此页表入口是有效的 页表入口描叙的物理页面框号 访问控制信息。用来描叙此页可以进行哪些操作,是否可写?是否包含执行代码? 虚拟页面框号是为页表中的偏移。虚拟页面框号5对应表中的第6个单元(0是第一个)。 为了将虚拟地址转换为物理地址,处理器首先必须得到虚拟地址页面框号及页内偏移。一般将页面大小设为2的次幂。将图3.1中的页面大小设为0x2000字节(十进制为8192)并且在进程Y的虚拟地址空间中某个地址为0x2194,则处理器将其转换为虚拟页面框号1及页内偏移0x194。 处理器使用虚拟页面框号为索引来访问处理器页表,检索页表入口。如果在此位置的页表入口有效,则处理器将从此入口中得到物理页面框号。如果此入口无效,则意味着处理器存取的是虚拟内存中一个不存在的区域。在这种情况下,处理器是不能进行地址转换的,它必须将控制传递给操作系统来完成这个工作。 某个进程试图访问处理器无法进行有效地址转换的虚拟地址时,处理器如何将控制传递到操作系统依赖于具体的处理器。通常的做法是:处理器引发一个页面失效错而陷入操作系统核心,这样操作系统将得到有关无效虚拟地址的信息以及发生页面错误的原因。 再以图3.1为例,进程Y的虚拟页面框号1被映射到系统物理页面框号4,则再物理内存中的起始位置为 0x8000(4 * 0x2000)。加上0x194字节偏移则得到最终的物理地址0x8194。
您可能关注的文档
最近下载
- 党务工作者应知应会问答.pdf VIP
- 校服供货服务方案.docx VIP
- 2020部编版六年级下册语文(全册)同步练习及答案 精编版.pdf VIP
- 高一上学期统编版历史必修中外历史纲要(上)期中复习中国古代史专题练习.docx VIP
- 2022年人教版八年级下册英语 Unit 8 Have you read Treasure Island yet 单元教案 .pdf
- 2.3.1喀斯特地貌 高中地理湘教版必修一.pptx VIP
- YB∕T 4968-2021 冷轧钢带单位产品能源消耗限额.docx VIP
- 硬笔书法系列《硬笔书法指导》.ppt VIP
- 部编版小学六年级语文下册同步练习.pdf VIP
- 上班族心理健康课件最新完整版本.pptx VIP
原创力文档


文档评论(0)