深 圳 大 学 实 验 报 告 课程名称: 操作系统 实验项目名称: 内存管理实验 学院: 计算机与软件学院 专业: 计算机科学与技术 指导老师: 罗秋明 报告人: 学号: 班级: 实验时间: 2025 -11-21 实验报告提交时间: 2025 -11-30 教务部制实验目得与要求:加深对内存分配与使用操作得直观认识;掌握 Linux 操作系统得内存分配与使用得编程接口;了解 Linux 操作系统中进程得逻辑编程地址与物理地址间得映射;实验内容:可以使用 Linux 或其它 Unix 类操作系统;学习该操作系统提供得分配、释放得函数使用方法;学习该操作系统提供得进程地址映射情况得工具;实验过程、方法、步骤:操作部分:1) 借助 google 工具查找资料,学习使用 Linux 进程得内存分配、释放函数;2) 借助 google 工具查找资料,学习 Linux proc 文件系统中关于内存影射得部分内容(了解/proc/pid/目录下得 maps、status、smap 等几个文件内部信息得解读);3) 编写程序,连续申请分配三个 512MB 空间,然后释放第二个 512MB 空间。然后再分配 1024MB,记录该进程得虚存空间变化(/proc/pid/maps),每次操作前后检查/proc/pid/status 文件中关于内存得情况,简要说明虚拟内存变化情况。4) 设计一个程序测试出您得系统单个进程所能分配到得最大虚拟内存空间为多大。5) 编写一个程序,分配 256M 内存空间(或其她足够大得空间),检查分配前后/proc/pid/status 文件中关于虚拟内存与物理内存得使用情况,然后每隔 4KB 间隔将相应地址得字节数值增 1,再次检查/proc/pid/status 文件中关于内存得情况,对比前后两次内存情况,说明所分配物理内存(物理内存块)得变化。(3)① 在 mem3、c 中编写相关程序,对指针 a,b,c 分别分配 512M 内存,然后释放 b 得 512MB 空间。然后再分配 1024MB。代码如下:#include#include#include#include