实验九linux内存

实验九linux内存

ID:27676682

大小:437.01 KB

页数:13页

时间:2018-12-02

实验九linux内存_第1页
实验九linux内存_第2页
实验九linux内存_第3页
实验九linux内存_第4页
实验九linux内存_第5页
资源描述:

《实验九linux内存》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验九Linux内存管理实验九Linux内存管理预备知识Linux内存管理Linux内存分配Linux内存回收实验指导内存信息的监视内存的申请和释放实验目的、内容1.1Linux内存管理—虚拟内存0xBFFFFFFF0xFFFFFFFF0x00000000用户空间(对系统其他进程不可见)内核空间(所有进程及内核共享)固定映射区(4M)永久内存映射区(4M)动态内存映射区(min120M)直接内存映射区(max896M)0xC00000000xFFFFFFFF连续区kmalloc()非连续区vmalloc()1.2Linux内存管理—虚拟内存的实现地址映射

2、机制缓存和刷新机制请求页机制交换机制内存分配和回收机制1.2Linux内存分配32位系统:64位系统:页目录页号页偏移量01211222131线性地址……页目录……页表……物理 地址物理页3号控制寄存器页全局目录(PGD)页上级目录(PUD)页中间目录(PMD)页表(PT)…………物理块1.2Linux内存分配—常用的内存分配函数函数名分配原理最大内存其他_get_free_pages直接对页框进行操作4MB适用于分配较大量的连续物理内存kmem_cache_alloc基于slab机制实现128KB适合需要频繁申请释放相同大小内存块时使用kmalloc基

3、于kmem_cache_alloc实现128KB最常见的分配方式,需要小于页框大小的内存时使用vmalloc建立非连续物理内存到虚拟地址的映射物理不连续,适合需要大内存,但对地址连续性没有要求的场合dma_alloc_coherent基于_alloc_pages实现4MB适用于DMA操作Ioremap实现已知物理地址到虚拟地址的映射适用于物理地址已知的场合,如设备驱动alloc_bootmem在启动kernel时,预留一段内存,内核看不见小于物理内存大小,内存管理要求较高1.3Linux内存回收堆内存:程序从堆中分配的、大小任意的、使用完后必须显示释放的

4、内存堆内存的分配:malloc()、realloc()、new()对内存的回收:free()、delete()内存泄漏的堆积,会最终消耗尽系统所有的内存使用kill命令回收内存使用工具软件Memprof回收内存实验九Linux内存管理预备知识Linux内存管理Linux内存分配Linux内存回收实验指导内存信息的监视内存的申请和释放实验目的、内容2.1内存信息的监视用free命令监控内存使用情况用vmstat命令监视虚拟内存使用情况2.2内存的申请和释放动态分配内存空间malloc()、calloc()malloc():一个参数,即要分配的内存空间大小c

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

6、函数进行内存的申请、使用和释放利用系统提供的内存操作函数进行内存的申请、调整、使用和释放利用free和vmstat命令观察主存分配结果及使用情况

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

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

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