- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux虚拟存储管理分析Linux虚拟存储管理分析
Linux虚拟存储管理分析
摘? 要:本文通过解剖Linux操作系统的虚拟存储管理机制,说明了Linux虚拟存储的特点、虚拟存储器的实现方法,并基于Linux Kernel Source 1.0,详细分析有关虚拟存诸管理的主要数据结构之间的关系。
关键字:Linux 操作系统内存管理虚拟存储
?
??????? Linux操作系统是一种多用户多任务、支持多种平台的开源的类Unix操作系统,其支持多种平台,在服务端可与其它商用类Unix系统媲美,在客户端则向Windows系列发出了强有力的挑战。自Linux诞生以来,发展迅猛,已经受到了全球开源社区和许多商业科技巨头的大力支持以及政府、教育机构、科研单位的重视。本文介绍了Linux虚拟存储技术的特点,并结合操作系统原理和Linux内核源码,通过分析虚拟存储管理所需的主要数据结构及其相互关系,来更深入地了解Linux虚拟存储管理机制。本文所援引的Linux内核源代码版本为1.0。
Linux虚拟存储概述
虚拟存储器
????????? 在实存储器的管理模式中,要求作业在运行前全部装入内存,之后就一直驻留在内存中直到运行结束,其中某些程序并没有一直处于运行状态,却长期占用着内存资源,从而降低了内存的利用率,为此,引入了虚拟存储器。
?????? 虚拟存储器并不以物理的方式存在,而是从逻辑上对内存容量进行扩充,提供了一个比真实内存空间大得多的逻辑地址空间的逻辑存储器。虚拟存储技术把用户地址空间和实际的存储空间区分开,在程序运行时通过动态重定位的地址映射机制将逻辑地址转换为物理地址。
?????? 所谓的“动态重定位”是指在目标程序执行过程中,在CPU访问内存之前,由硬件地址映射机构来完成将要访问的指令或数据的逻辑地址向内存的物理地址的转换。由于这种地址转换是在程序执行期间随着每条指令的数据访问自动连续地进行,所以称为“动态重定向”。
?????? 在386保护模式下,Linux可以提供的逻辑地址空间为4GB。Linux的全局描述符表定义了如何分配逻辑地址空间:0GB – 3GB分配为用户空间,用户进程可以直接访问;3GB – 4GB分配为内核空间,用户进程不能访问。
段页式存储管理
????????? Linux中的内存管理技术采用的是段页式虚存技术。它将一个进程中的程序、数据、堆栈分成若干“段”来处理,每段有一个8字节的段描述符,指出该段的起始地址、长度和存取权限等信息,这些段描述符的集合构成段描述符表,通过一个寄存器指出该表的起始位置。为了便于段长的动态变化,每段分为若干页,将需要的内容以页面为单位调入内存的物理块中,暂不执行的页面仍留在外存,以保证比实际内存容量需求更大的进程能够正常使用内存。
Linux的分段机制
Linux的分段机制就是将线性地址空间分段,利用这些段来存储代码和数据,通过对段的保护来提供一种对数据或代码的保护。根据每个段的作用和存储内容的不同,分为三类进程段:代码段、数据段和堆栈段;两类系统段:TSS段(任务状态段)和LDT段(局部描述符表段)。
在保护模式下,逻辑地址空间可达4GB。从逻辑地址到线性地址的转换由分段机制管理。段寄存器CS、DS、ES、SS、FS或GS标识一个段。这些段寄存器作为段选择器,用来选择该段的描述符。
?????? 进程使用的是48位的逻辑地址,其中高16位是段选择符,低32位是段内的偏移量。通过段选择符在GDT(全局描述符表)或LDT(局部描述符表)中索引相应的段描述符,以得到该段的基地址,再加上偏移量得到逻辑地址对应的线性地址。然后通过分页地址的转换,将线性地址转换为物理地址,最后通过物理地址访问内存。
?????? 如图1所示,为分段逻辑地址到线性地址的转换图。
图 1??????? 分段逻辑地址映射到线性地址 Linux的分页机制
分页机制是在段机制之后进行的,它进一步将线性地址转换为物理地址。Linux一般使用4K字节大小的页(PAGE_SIZE,include/linux/page.h,通过修改PAGE_SHIFT定义的左移位数来修改页面大小),且每页的起始地址都被4K整除。因此,Linux把4GB的线性地址空间划分为1M个页面,采用了两级表结构。
两级表的第一级表称为页目录,存储在一个4K字节的页中,页目录表共有1K个表项,每个表项为4个字节,线性地址最高的10位(22-31位)用来产生第一级表索引,由该索引得到的表项中的内容定位了二级表中的一个表的地址,即下级页表所在的内存块号。
第二级表称为页表,存储在一个4K字节页中,它包含了1K字节的表项,每个表项包含了一个页的物理地址。二级页表由线性地址的中间10位(12-21位)进行索引,定位页表表项,获得页的物理地址。页物理地址的高20位与线性地址的低12位形成最后的物理
您可能关注的文档
- LCD驱动实验汇编程序.doc
- k第十一章 正交设计与均匀设计.doc
- ldg智能电磁流量计.doc
- Lecture 3.doc
- Labview设计报告.doc
- Lecture 03 数词.doc
- LED与绿色照明.doc
- LED工矿灯节能技术方案(80W).doc
- LED学生_论文.doc
- LED无极灯工作原理及技术特点.doc
- 2025年中国锻铁围栏市场调查研究报告.docx
- 2025年中国椭圆型市场调查研究报告.docx
- 2025年中国无蔗糖原味豆浆市场调查研究报告.docx
- 2025-2031年中国泛在电力物联网行业发展运行现状及投资潜力预测报告.docx
- 2025年中国制袋机零件市场调查研究报告.docx
- 2025年中国智能除垢型电子水处理仪市场调查研究报告.docx
- 2025-2031年中国甘肃省乡村旅游行业市场深度研究及投资策略研究报告.docx
- 2025-2031年中国干海产品行业市场发展监测及投资战略规划报告.docx
- 2025年中国全铝图解易拉盖市场调查研究报告.docx
- 2025年中国人造毛皮服装市场调查研究报告.docx
最近下载
- 健康体检基本项目专家共识(2022).pdf
- 2025年南昌大学科学技术学院教师招聘考试笔试备考题库及答案解析.docx VIP
- 2025年南昌大学科学技术学院教师招聘考试笔试模拟试题及答案解析.docx VIP
- 关于《党政机关厉行节约反对浪费条例》题库(附答案).docx VIP
- 新人教版高中化学必修第二册知识点填空02-第六章 化学反应与能量(答案版).pdf VIP
- 关于《厉行节约反对浪费条例》必备知识题库(附答案).pdf
- 3“双减”政策背景下小学语文作业设计策略研究论文开题报告.docx VIP
- 吸收塔顶升方案..doc VIP
- 专题6截长补短模型-【压轴必刷】2023年中考数学压轴大题之经典模型培优案(全国通用)(解析版).pdf VIP
- 企业安全生产主体责任落实课件(课件).ppt VIP
文档评论(0)