实验九Linux内存管理课件_第1页
实验九Linux内存管理课件_第2页
实验九Linux内存管理课件_第3页
实验九Linux内存管理课件_第4页
实验九Linux内存管理课件_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验九Linux内存管理实验九 Linux内存管理预备知识Linux内存管理Linux内存分配Linux内存回收实验指导内存信息的监视内存的申请和释放实验目的、内容1.1 Linux内存管理虚拟内存0 xBFFFFFFF0 xFFFFFFFF0 x00000000用户空间(对系统其他进程不可见)内核空间(所有进程及内核共享)固定映射区(4M)永久内存映射区(4M)动态内存映射区(min 120M)直接内存映射区(max 896M)0 xC00000000 xFFFFFFFF连续区kmalloc()非连续区vmalloc()1.2 Linux内存管理虚拟内存的实现地址映射机制缓存和刷新机制请求页

2、机制交换机制内存分配和回收机制1.2 Linux内存分配常用的内存分配函数函数名分配原理最大内存其他_get_free_pages直接对页框进行操作4MB适用于分配较大量的连续物理内存kmem_cache_alloc基于slab机制实现128KB适合需要频繁申请释放相同大小内存块时使用kmalloc基于kmem_cache_alloc实现128KB最常见的分配方式,需要小于页框大小的内存时使用vmalloc建立非连续物理内存到虚拟地址的映射物理不连续,适合需要大内存,但对地址连续性没有要求的场合dma_alloc_coherent基于_alloc_pages实现4MB适用于DMA操作Iorem

3、ap实现已知物理地址到虚拟地址的映射适用于物理地址已知的场合,如设备驱动alloc_bootmem在启动kernel时,预留一段内存,内核看不见小于物理内存大小,内存管理要求较高1.3 Linux内存回收堆内存:程序从堆中分配的、大小任意的、使用完后必须显示释放的内存堆内存的分配:malloc()、realloc () 、new ()对内存的回收:free () 、delete ()内存泄漏的堆积,会最终消耗尽系统所有的内存使用kill命令回收内存使用工具软件Memprof回收内存2.1 内存信息的监视用free命令监控内存使用情况用vmstat命令监视虚拟内存使用情况2.2 内存的申请和释放

4、动态分配内存空间malloc()、calloc()malloc():一个参数,即要分配的内存空间大小calloc():两个参数,即元素数目和每个元素的大小malloc():不能初始化所分配的内存空间calloc():初始化为零释放原先申请的内存空间free()释放内存后,不能再去访问被释放的内存空间 不能两次释放相同的指针 C语言中,malloc/free 需配套使用实验九 Linux内存管理预备知识Linux内存管理Linux内存分配Linux内存回收实验指导内存信息的监视内存的申请和释放实验目的、内容3.1 实验目的掌握Linux虚拟内存管理的原理掌握Linux中动态内存操作函数的使用方法掌握Linux监测内存使用情况的方法3.2 实验内容利用系统提供的内存操作函数进行内存的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论