- 6
- 0
- 约3.48万字
- 约 168页
- 2016-05-18 发布于湖北
- 举报
嵌入式Linux内核体系架构 李超 lichao-runing@163.com内存管理 Linux的内存管理 PART 4.1 linux内存管理 内存管理是一个操作系统必不可少,并且非常重要的一环。Linux的成功和它优秀的内存管理联系非常密切,因为一个系统的高效性欲稳定性往往决定于它的内存管理机制。 对每个程序员来说.他们都希望有无穷大的快速的内存,然而,现阶段是不可能的。 为了解决无穷大,Linux 引入了虚拟存储系统;为了解决快速,Linux 引入了cache、交换机制等等,以使的存储系统,在容量上接近硬盘,在速度上接近cache。 每个程序员都喜欢无穷大、快速的存储器,同时又希望它是廉价的。但不幸的是,当前技术没有能够提供这样的存储器,大部分的计算机都有一个存储器层次结构: 即少量的非常快速、昂贵、易变的高速缓存(cache); 若干兆字节的中等速度、中等价格、易变的主存储器(RAM); 数百兆或数千兆的低速、廉价、不易变的磁盘。 这些资源的合理使用与否直接关系着系统的效率。 地址映射机制,就是在虚拟内存与物理内存上的一个桥梁。要做的事情可能就是通过几个不同的表,把虚拟地址转换成物理地址,把物理地址转化虚拟地址。 虚拟内存的基本思想:在计算机中运行的程序,其代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只将当前使用的程序块保留在内存中,其余的程序块则保留在磁盘上。必要时,操作系统负责在磁盘和内存之间交换程序块。 虚拟内存-共4G字节,分为两部分: 内核空间(最高的1G字节) 用户空间(较低的3G字节) 每个进程最大拥有3G字节私有虚存空间 地址转换-通过页表把虚存空间的一个地址转换为物理空间中的实际地址。 任意一个时刻,在一个CPU上只有一个进程在运行。所有对于此CPU来讲,在这个时刻,整个系统只存在一个4GB的虚拟地址空间。尽管每个进程都可以有4GB的虚拟地址空间,但是在CPU眼里,只有一个虚拟地址空间存在 当进程发生切换,页表也将更换为相应进程的页表,这就可以使每个进程都有自己的虚拟地址空间而互不影响。所以,在任意时刻,对于一个CPU来说,只需有当前进程的页表,就可以实现虚拟地址到物理地址的转换 内核空间由所有进程共享,其中存放的是内核代码和数据,即“内核映象”(kernel image) 进程的用户空间中存放的是用户程序的代码和数据 内核空间映射到物理内存总是从最低地址(0开始,使之在内核空间与物理内存之间建立简单的线性映射关系。 Linux虚拟内存的实现需要多种机制的支持 地址映射机制 请页机制 内存分配和回收机制 交换机制 缓存和刷新机制 PART 4.2 用户进程管理 每个进程经编译、链接后形成的二进制映像文件有一个代码段和数据段,其中代码段在下,数据段在上。 数据段中包含了所有静态分配的数据空间,即全局变量和所有声明为static的局部变量,这些空间是进程所必需的,是在建立一个进程的运行映像时就分配好的。 由图可以看出,堆栈段安排在用户空间的顶部,运行时由顶向下延伸;代码段和数据段则在低部,运行时并不向上延伸。从数据段的顶部到堆栈段地址的下沿这个区间是一个巨大的空洞,这就是进程在运行时调用malloc()可以动态分配的空间,也叫动态内存或堆。 每个进程拥有3GB的用户空间,但其地址都是虚地址,因此用户进程在这个虚拟内存中并不能真正地运行起来,必须把用户空间中的虚地址最终映射到物理存储空间才行,而这种映射的建立和管理是由内核完成的。 所谓向内核申请一块空间,实际上是请求内核分配一块虚存区间和相应的若干物理页面,并建立映射关系 内核在创建进时并不是为整个用户空间都分配好相应的物理空间,而是根据需要才正分配一些物理页面并建立映射。 系统利用了请页机制避免对物理内存的过分使用。因为进程访问的用户空间中的页可能当前不在物理内存中,这时,操作系统通过请页机制把数据从磁盘装入到物理内存。为此,系统需要修改进程的页表,以标志用户空间中的页已经装入到物理页面中。 Linux把进程的用户空间划分为一个个区间,便于管理 一个进程的用户地址空间主要由mm_struct结构和vm_area_structs结构来描述。 mm_struct结构对进程整个用户空间进行描述 vm_area_structs结构对用户空间中各个区间(简称虚存区)进行描述 struct mm_struct { atomic_t count; pgd_t * pgd; int map_count; struct semaphore mmap_sem; unsigned lo
您可能关注的文档
- 第十一课万千气象的宋代社会.ppt
- 第十一章第4节机械能及其转化.ppt
- 第十一章节约能源法律制度.ppt
- 第十章__资产评估准则.ppt
- 第十章测试需要分析与测试计划.pptx
- 第十章第二节海洋利用与保护.ppt
- 车间厌氧处理9.33.doc
- 第四章、混凝土及钢筋混凝土工程-1.ppt
- 第四章_电法勘探.ppt
- 车站盖挖施工方法_.ppt
- 2025年新能源汽车铝合金型材表面处理报告.docx
- 2025_2026学年新教材高中历史第四单元资本主义制度的确立9资产阶级革命与资本主义制度的确立课时作业含解析新人教版必修中外历史纲要下.doc
- 2026版高考历史一轮训练课后限时集训10近代西方民主政治的确立与发展含解析人民版.doc
- 2025年光伏支架轻量化研发趋势与材料创新报告.docx
- 2025_2026学年新教材高中英语UNIT3SPORTSANDFITNESS预习新知早知道学案含解析新人教版必修第一册.doc
- 初中道德与法治八年级上册《爱我中华》单元教学设计(1).docx
- Unit9IlikemusicthatIcandancetoSectionA(3a3c)(教学课件)人教版(0)九年级英语全册().pptx
- 四年级下册《我的“自画像”》习作指导课教学设计——基于例文支架的精准表达训练.docx
- 星火燎原:新中国“两弹一星”伟业的奠基与精神传承.docx
- 中考英语一轮复习:解锁单项选择的逻辑与策略(第一讲).docx
原创力文档

文档评论(0)