- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在内核看来,一个进程就是一个以task_struct为代表的管理结构。内核通过管理结构创建、回收、调度系统中的进程,并不关心进程所执行的程序。然而在用户看来,一个进程就是一台虚拟的计算机,它有自己的虚拟内存用以存放程序和数据,有自己的虚拟处理器用以执行程序,并有自己的虚拟文件系统和虚拟外部设备等用于输入输出。内核的核心工作就是为每一个进程都虚拟出一台这样的虚拟机,其中处理器的虚拟化工作由调度器完成,内存的虚拟化工作由虚拟内存管理器完成。 虚拟内存管理器的主要设计目标是为每个进程都提供一块从0开始编址的、连续的、不受系统物理内存大小限制的大地址空间。进程的大地址空间是虚拟内存管理器利用物理内存和外部存储设备模拟出来的,虽在功能上等价于物理内存,但并不实际存在,所以被称为虚拟地址空间或虚拟内存。由于每个进程都有自己独立的虚拟地址空间,因而在系统中可以同时存在多个进程,每个进程都可执行任意大小的程序且互不干涉。一般情况下,一个进程不能执行另一个进程的程序,也不能访问另一个进程的数据,一个进程的问题不会影响其它进程的运行。也就是说,各虚拟地址空间是相互隔离的。 与物理内存管理器不同,虚拟内存管理器提供的主要功能包括动态地创建、回收和调整进程的虚拟地址空间,协助内存管理单元(MMU)实现虚拟地址到物理地址的转换,实现虚拟页面的动态建立和淘汰,实现虚拟地址空间的隔离、保护与共享,提供文件映射、动态链接、负载统计等其它服务。进程的虚拟地址空间随进程的创建而创建,随进程的终止而撤销。 进程的核心工作是执行程序,被执行的程序及其数据、堆栈等必须被预先装入内存。在没有虚拟内存管理器的情况下,只能将程序、数据等一次性地全部装入物理内存(如分区法),这种执行程序的方法虽然简单但却存在一些问题,如无法装入超过可用物理内存量的程序、难以实现进程之间的隔离与保护、并发的进程数受物理内存大小的限制、进程间切换的开销过大、程序的设计过分依赖于物理内存的配置、编程困难、移植困难等。 为解决这些问题,人们提出了多种改进办法,如覆盖(通过覆盖那些暂时不用的程序或数据来复用内存)、交换(在内外存之间以进程为单位换入换出)等,但这些办法都不够理想。1978年,Unix操作系统第一次在VAX机上实现了基于分页机制的虚拟内存管理器,彻底解决了上述问题。虚拟内存的引入是操作系统发展史上一个里程碑,它改变了软件设计、运行和管理的方式,甚至改变了计算机系统的使用方式。 虚拟内存管理的基本思路是虚拟或制造假象,它使每个进程都认为系统中有足够大的内存,而且自己在独占该内存。虚拟或造假的工作由虚拟内存管理器负责,它的设计依据是程序运行的局部性规律,实现的基本方法是: (1) 隔离,不让进程看到实际的物理内存,只给它看到一个美好的假象。 (2) 借用,借用容量更大的外存来存储暂时不用的程序和数据以扩充内存容量。 (3) 延迟,将链接、加载、复制、扩充等工作向后推迟,仅装入进程真正执行的程序和真正使用的数据,仅复制实际修改的虚拟页,仅扩充实际使用到的匿名页。 (4) 换入/换出,以页为单位,快速地在内、外存之间复制页面,保证进程当前使用的代码和数据都在物理内存中,暂时不用的数据都在外存中。 Linux虚拟内存管理器的实现思路如图8.1所示: (1) 将系统的物理地址空间和进程的虚拟地址空间都分成固定大小的页, 为每个进程建立一个页表,以实现两个地址空间的隔离,使进程仅能看到自己的虚拟地址空间。 (2) 由虚拟内存管理器维护进程的页表,建立进程虚拟页与系统物理页之间的对应关系,利用系统硬件自动实现进程虚拟地址到物理地址的转换。 (3) 由虚拟内存管理器负责在内外存之间交换页面,将进程使用的虚拟页换入物理内存,将暂时不用的虚拟页换出物理内存,尽可能提高物理内存的利用率,从而用有限的物理内存为进程模拟出几乎无限的虚拟内存,给进程造成拥有大内存的假象。 图8.1 Linux虚拟内存管理器的实现思路 在虚拟内存管理结构中,页表是最关键、最基础的数据结构,它记录着进程虚拟页与物理页之间的对应关系。在Intel的32位处理器中,页表分为两级,分别称为页目录和页表。每个进程都有自己的页目录和页表。虚拟内存管理器通过不断地调整进程的页目录和页表来管理进程的虚拟地址空间。页目录和页表虽仅是简单的数组,却具有强大的功能和极大的灵活性,概括如下: (1) 页目录、页表的内容只能由虚拟内存管理器维护,进程无法看到、更无法修改。虚拟内存管理器保证不同进程的页表间不会出现重叠,从而保证进程的虚拟地址空间是独立的,相互之间是隔离的。 (2) 当虚拟页在内存时,页表项记录着映射关系。当虚拟页不在内存时,页表项记录着页面在外存的位置。页表项中还包含有
您可能关注的文档
- Java基础教程(第2版) 作者 978-7-302-28331-7 B10Applet程序.ppt
- Java基础教程(第2版) 作者 978-7-302-28331-7 B11图形用户界面设计.ppt
- Java简明教程 作者 978-7-302-31477-6 第1章-Java入门.ppt
- Java简明教程 作者 978-7-302-31477-6 第2章-Java编程基础.ppt
- Java简明教程 作者 978-7-302-31477-6 第3章-Java程序基本结构.ppt
- Java简明教程 作者 978-7-302-31477-6 第4章-方法与数组.ppt
- Java简明教程 作者 978-7-302-31477-6 第5章-类和对象.ppt
- Java简明教程 作者 978-7-302-31477-6 第6章-继承、多态与接口.ppt
- Java简明教程 作者 978-7-302-31477-6 第7章-字符串.ppt
- Java简明教程 作者 978-7-302-31477-6 第8章-多线程与Applet技术.ppt
- Linux原理与结构 作者 郭玉东 全书 第9章.ppt
- Linux原理与结构 作者 郭玉东 全书 第10章.ppt
- Linux原理与结构 作者 郭玉东 全书 第11章.ppt
- Linux原理与结构 作者 郭玉东 全书 第12章.ppt
- Linux原理与结构 作者 郭玉东 全书 封面及目录.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第3-4章 第3章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第3-4章 第4章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第5-8章 第5章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第5-8章 第6章.ppt
- Linux网络操作系统应用教程高职 作者 王和平 第5-8章 第7章.ppt
最近下载
- 烟草系统遴选试题及答案.doc VIP
- 信息化管理助力护理质量管理.pptx VIP
- 人教PEP版(2024)四年级上册英语全册教案.docx
- 新交通运输企业管理 教学课件 丁波 第九章 质 量 管 理.ppt VIP
- 第二章 农业气候资源及其利用 - 扬州大学农业资源学课件.ppt VIP
- 第二课 正确认识自我 第1课时 认识自己统编版(2024)道德与法治七年级上册.pptx VIP
- 公安局辅警招聘考试试题库《综合理论知识》(含政治理论、法律法规、公安工作基本知识).pdf VIP
- 《房屋市政工程重大事故隐患判定标准》2024版培训.pptx
- 2025兵团职工考试题及答案.doc VIP
- 【精品】——党员领导干部廉政文化宣传册66.doc VIP
文档评论(0)