- 实验目的
掌握Linux操作系统的内存分配与使用的编程接口;
掌握Linux操作系统中进程虚拟内存的映射;
通过本次实验体会Linux操作系统中内存的分配模式;
- 实验内容
学习Linux系统的内存动态申请、释放的函数;
学习Linux操作系统提供的进程地址映射的工具;
观察进程用户空间的虚存管理变化,包括堆区、文件映射区和栈区;
实验报告要求:
- 写出/proc/$pid/maps数据各字段含义;
- 运行代码,观察进程空间变化(/proc/$pid/maps)过程; 截图简要说明进程空间变化的内容,截图画出变量所在内存段;
- 编写程序,连续申请分配六个128MB空间(记为1~6号),然后释放第2、3、5号的128MB空间。然后再分配1024MB,记录该进程的虚存空间变化(/proc/$pid/maps),每次操作前后检查/proc/$pid/status文件中关于内存的情况,简要说明虚拟内存变化情况。推测此时再分配64M内存将出现在什么位置,实测后是否和你的预测一致?解释说明用户进程空间分配属于课本中的离散还是连续分配算法?首次适应还是最佳适应算法?
- 实验指导
- 虚存空间的管理