- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验九Linux内存管理 实验九 Linux内存管理 预备知识 Linux内存管理 Linux内存分配 Linux内存回收 实验指导 内存信息的监视 内存的申请和释放 实验目的、内容 1.1 Linux内存管理—虚拟内存 1.2 Linux内存管理—虚拟内存的实现 1.2 Linux内存分配 1.2 Linux内存分配—常用的内存分配函数 1.3 Linux内存回收 堆内存:程序从堆中分配的、大小任意的、使用完后必须显示释放的内存 堆内存的分配:malloc()、realloc () 、new () 对内存的回收:free () 、delete () 内存泄漏的堆积,会最终消耗尽系统所有的内存 使用kill命令回收内存 使用工具软件Memprof回收内存 实验九 Linux内存管理 预备知识 Linux内存管理 Linux内存分配 Linux内存回收 实验指导 内存信息的监视 内存的申请和释放 实验目的、内容 2.1 内存信息的监视 用free命令监控内存使用情况 2.2 内存的申请和释放 动态分配内存空间malloc()、calloc() malloc():一个参数,即要分配的内存空间大小 calloc():两个参数,即元素数目和每个元素的大小 malloc():不能初始化所分配的内存空间 calloc():初始化为零 释放原先申请的内存空间free() 释放内存后,不能再去访问被释放的内存空间 不能两次释放相同的指针 C语言中,malloc/free 需配套使用 实验九 Linux内存管理 预备知识 Linux内存管理 Linux内存分配 Linux内存回收 实验指导 内存信息的监视 内存的申请和释放 实验目的、内容 3.1 实验目的 掌握Linux虚拟内存管理的原理 掌握Linux中动态内存操作函数的使用方法 掌握Linux监测内存使用情况的方法 3.2 实验内容 利用系统提供的内存操作函数进行内存的申请、使用和释放 利用系统提供的内存操作函数进行内存的申请、调整、使用和释放 利用free和vmstat命令观察主存分配结果及使用情况 * * 0xBFFFFFFF 0xFFFFFFFF 0用户空间(对系统其他进程不可见) 内核空间(所有进程及内核共享) 固定映射区(4M) 永久内存映射区(4M) 动态内存映射区(min 120M) 直接内存映射区(max 896M) 0xC0000000 0xFFFFFFFF 连续区kmalloc() 非连续区vmalloc() 地址映射机制 缓存和刷新机制 请求页机制 交换 机制 内存分配和回收机制 32位系统: 64位系统: 页目录 页号 页偏移量 0 12 11 22 21 31 线性地址 … … 页目录 … … 页表 … … 物理地址 物理页 3号控制寄存器 页全局目录(PGD) 页上级目录(PUD) 页中间目录(PMD) 页表(PT) … … … … 物理块 小于物理内存大小,内存管理要求较高 在启动kernel时,预留一段内存,内核看不见 alloc_bootmem 适用于物理地址已知的场合,如设备驱动 实现已知物理地址到虚拟地址的映射 Ioremap 适用于DMA操作 4MB 基于_alloc_pages实现 dma_alloc_coherent 物理不连续,适合需要大内存,但对地址连续性没有要求的场合 建立非连续物理内存到虚拟地址的映射 vmalloc 最常见的分配方式,需要小于页框大小的内存时使用 128KB 基于kmem_cache_alloc实现 kmalloc 适合需要频繁申请释放相同大小内存块时使用 128KB 基于slab机制实现 kmem_cache_alloc 适用于分配较大量的连续物理内存 4MB 直接对页框进行操作 _get_free_pages 其他 最大内存 分配原理 函数名 用vmstat命令监视虚拟内存使用情况 * *
文档评论(0)