- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1
Linux系统——存储管理
姓 名:_
学 号:_
班 级:_
指导教师:_
目录
TOC \o 1-3 \h \z \u 摘要 2
TOC \o 1-3 \h \z \u 关键字 2
TOC \o 1-3 \h \z \u 一、Linux内存管理的概述 3
TOC \o 1-3 \h \z \u 二、重要的数据结构 4
TOC \o 1-3 \h \z \u 1. kmem_bufctl_t 4
2. kmem_slab_t 5
3. kmem_cache_t 5
4. cache_sizes_t 6
TOC \o 1-3 \h \z \u 三、宏的说明 6
TOC \o 1-3 \h \z \u 四、Linux虚存管理的主要实现技术 8
TOC \o 1-3 \h \z \u 五、参考文献 8
摘 要
Linux 操作系统是一种能运行于多种平台、源代码公开、免费、功能强大、与Unix 兼容的操作系统。自其诞生以来, 发展非常迅速, 在我国也受到政府、企业、科研单位、大专院校的重视。 作者对其(版本号是LINUX2-2-5) 进行分析, 主要剖析Linux 操作系统的存储管理机制。主要介绍了Linux 虚存管理所用到的数据结构及其相互间的关系, 据此可以更好地理解其存储管理机制, 也可以在此基础上对其进行改进或在此后的研究中提供借鉴作用。作为一种功能强大的操作系统, Linux 实现了以虚拟内存为主的内存管理机制。即能够克服物理内存的局限, 使用户进程在透明方式下, 拥有比实际物理内存大得多的内存。本文主要阐述了Linux 虚存管理的基本特点和主要实现技术, 并分析了Linux 虚存管理的主要数据结构及其相互关系。给出了Linux 存储管理的特点、虚存的实现方法, 以及主要数据结构之间的关系。此外在文章中列出了一些与存储管理机制实现有关的数据结构和重要变量,了解这些数据结构和变量有助于对源代码的阅读和理解。
关键字:Linux ; 内存管理; 数据结构; 宏; 虚存管理
操作系统管理系统所有的物理空间, 现代大多数操作系统都采取多级管理, 即页面级分配与内核内存分配。就LINUX2-2-5 版本而言,页面级的分配是采用Buddy 算法,而内核内存分配是采用面向对象的Slab分配原则。 该分配原则高效,可以大大提高内存的利用率以及硬件cache级系统总线的利用率。
Linux 虚存管理概述
Linux是为多用户多任务设计的操作系统, 所以存储资源要被多个进程有效共享;且由于程序规模的不断膨胀,要求的内存空间比从前大得多。 Linux内存管理的设计充分利用了计算机系统所提供的虚拟存储技术,真正实现了虚拟存储器管理。
Linux的内存管理主要体现在对虚拟内存的管理。我们可以把Linux虚拟内存管理功能概括为以下几点:
·大地址空间
·进程保护
·内存映射
·公平的物理内存分配
·共享虚拟内存
实现虚拟内存的组成模块。 其实现的原代码大部分放在/mm目录下。
1. 内存映射模块(mmap)—负责把磁盘文件的逻辑地址映射到虚拟地址,以及把虚拟地址映射到物理地址。
2.交换模块(swap)—负责控制内存内容的换入和换出,它通过交换机制,使得在物理内存的页面(RAM页)中保留有效的页 ,即从主存中淘汰最近没被访问的页,保存近来访问过的页。
3.核心内存管理模块(core)—负责核心内存管理功能,即对页的分配、回收、释放及请页处理等,这些功能将被别的内核子系统(如文件系统)使用。
4. 结构特定的模块—负责给各种硬件平台提供通用接口,这个模块通过执行命令来改变硬件MMU的虚拟地址映射,并在发生页错误时,提供了公用的方法来通知别的内核子系统。这个模块是实现虚拟内存的物理基础。
Linux虚拟内存的实现结构如图所示。
Linux虚存的实现结构
?
重要的数据结构
kmem_bufctl_t
说明 : 管理对象的数据类型
/* Bufctls are used for linking objs within a slab, identifying what slab an obj
* is in, and the address of the associated obj (for sanity checking with off-slab
* bufctls). What a bufctl contains depends upon the state of the obj and
* t
您可能关注的文档
最近下载
- 电能“发、输、变、配、用”五环节简介.pptx VIP
- 先进算力中心建设规划方案.docx VIP
- 安装钳工基础知识全集课件.ppt VIP
- 部编版六年级语文上册第三单元 习作_____让生活更美好 课件(共32张PPT).pptx VIP
- 医疗器械唯一标识管理制度(UDI).docx VIP
- 感术行动专项实施方案.docx VIP
- 企业案例广州超算中心 企业案例广州超算中心、项目建设规划、项目需求分析 1.3项目建设规划.docx VIP
- 音频处理软件:Adobe Audition二次开发_17.社区资源与支持.docx VIP
- 数控铣床第一章 数控铣床概述.ppt VIP
- 偏差报告单【范本模板】.doc VIP
文档评论(0)