《Linux内存管理》PPT课件

《Linux内存管理》PPT课件

ID:45451591

大小:567.50 KB

页数:42页

时间:2019-11-13

《Linux内存管理》PPT课件_第1页
《Linux内存管理》PPT课件_第2页
《Linux内存管理》PPT课件_第3页
《Linux内存管理》PPT课件_第4页
《Linux内存管理》PPT课件_第5页
资源描述:

《《Linux内存管理》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章Linux内存管理3.1内存管理概述3.2内存管理原理3.3Linux内存管理实现1存储系统结构MMUMemorymanagementUnitVirtualMemorySvm=SRAM+Sswap2概述内存管理allocatedeallocatekeepingtrack合理地管理系统的内存资源,使多个进程能够在有限的物理存储空间内共享,安全并高效地运行。Linux内存管理四大功能内存分配与回收地址变换内存保护内存扩充3内存分配与回收内存分配为进入系统准备运行的程序分配内存空间内存回收当程序运行结束后回收其所占用的内存空间存储分配与回收的主要要素描述存储分配的数据结构表格、链表或队列等占用

2、区、空闲区分配策略利用率、系统性能4地址变换符号地址逻辑地址物理地址地址变换静态地址变换动态地址变换5内存保护防止程序越界和越权行为不允许用户进程访问操作系统的存储区域每个进程都在自己的地址空间中运行,互不干扰内存保护的措施界限保护设置界限寄存器,限制进程的活动空间。保护键为共享内存区设置一个读/写保护键,在CPU中设置保护键开关,它表示进程的读/写权限。只有进程的开关代码和内存区的保护键匹配时方可进行访问。保护模式将CPU的工作模式分为用户态与核心态。核心态下的进程可以访问整个内存地址空间,而用户态下的进程只能访问在界限寄存器所规定范围内的空间。6内存扩充借用外存空间来扩展内存空间,方法是让

3、程序的部分代码进入内存,其余驻留在外存,在需要时再调入内存。内存扩充实现方法:虚拟存储(virtualmemory)程序的部分代码的换入和换出完全由系统动态地完成,用户察觉不到。用户看到的是一个比实际内存大得多的“虚拟内存”。方便用户编程,存储扩充的性能好7第三章Linux内存管理3.1内存管理概述3.2内存管理原理3.3Linux内存管理实现8存储管理方案单一连续存储管理分区存储管理页式存储管理段式存储管理段页式存储管理9单一连续存储管理在内存中只存放一个应用程序,这个应用程序和操作系统共享存储器单用户、单任务的操作系统DOS静态地址变换采用界限保护不允许用户程序访问操作系统区域覆盖技术10

4、分区存储管理多道程序系统内存划分为若干个分区,操作系统占用其中一个分区,其他分区由用户程序使用,每个分区容纳一个用户程序。分区方法固定分区内部碎片可变分区外部碎片11页式存储管理(1)(分散存储)页面(page)将程序的逻辑地址空间分成若干大小相等的片段页帧(pageframe)把内存空间也按同样大小分为若干区域程序的逻辑地址页号+页内位移12页式存储管理(2)(分散存储)页表记录了进程的页面与块号的对应关系13页式存储管理(3)(分散存储)页式地址变换14段式存储管理(1)应用程序一个主模块、若干个子模块、数据模块等划分模块的好处可以分别编写和编译源程序可以实现代码共享、动态链接等编程技术。

5、段式存储分配为了适应用户对程序结构的需求而设计的存储管理方案程序的地址空间由若干个大小不等的段组成。段(segment)是逻辑上完整的信息单位,划分段的依据是信息的逻辑完整性以及共享和保护等需要。分段后,程序的逻辑地址由段号和段内位移两部分组成。15段式存储管理(2)分页与分段的区别段是信息的逻辑单位,长度不固定,由用户进行划分;页是信息的物理单位,长度固定,由系统进行划分,用户不可见。段式分配以段为单位分配内存,每个段分配一个连续的分区段与段间可以不相邻接用段表描述进程的各段在内存中的存储位置段表中包括段长和段起始地址等信息16段式存储管理(3)段式分配17段式存储管理(4)段式地址变换18

6、段页式存储管理分配思想:段式划分,页式存储把程序的各段按页式分配方式存储每段一个页表另设一个段表,指示各段的页表位置程序的逻辑地址段号+页号+页内地址地址变换过程是:先根据段号查段表再用页号查页表最后与页内地址合并即可得到实际内存地址优点:存储利用率高,满足各种应用需求。缺点:过于复杂,软硬件开销大。19第三章Linux内存管理3.1内存管理概述3.2内存管理原理3.3Linux内存管理实现PageMemoryzonePageframe空闲内存的管理内存的分配和回收Slab20Page(1)pagedescriptorinclude/linux/mm.hstructpage{….}21Page

7、(2)unsignedlongflaginclude/linux/page-flags.henumpageflags{……};22Page(3)atomic_tcount;0表示页可用,n表示n个进程可访问页中数据structlist_headlist;next和prev构成双向链表structaddress_space*mapping;指向address_spacestructlist_head

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。