实验五 显示进程的虚拟内存地址空间分布信息

实验五 显示进程的虚拟内存地址空间分布信息

实验环境

操作系统版本ubuntu-14.04.1-desktop-i386
下载连接http://old-releases.ubuntu.com/releases/trusty/ubuntu-14.04.1-desktop-i386.iso
实验课件及源码https://wwe.lanzouw.com/ilBQnyrwffi

一.实验目的

1、理解Linux进程虚拟地址空间机制
2、了解Linux的物理内存管理机制
3、加深对进程以及进程结构体概念的理解

二.实验内容

1、通过添加内核模块来获取一个进程的mm_struct结构体信息

三.实验步骤

1、通过make命令编译mm.c文件
在这里插入图片描述

2、将编译好的mm.ko文件插入到系统内核中

在这里插入图片描述
3、编译并运行mm_test.c文件,查看实验结果
在这里插入图片描述
4、撤销mm.ko内核
在这里插入图片描述

四.实验总结

此次实验的目的是理解Linux进程虚拟地址空间机制,了解Linux的物理内存管理机制,加深对进程以及进程结构体概念的理解。
与内核空间相比,Linux 进程用户空间地址映射更为复杂。进程用户地址空间包含更多类型的段,包括代码段、数据段、BSS段、堆、栈、内存映射段等。代码段的起始地址通常在系统加载时加载在0x08048000,而每次加载时,堆、内存映射段和堆栈都会随机更改。
当fork一个新进程时,execve系统调用负责为进程代码和数据段创建映射,但实际将代码和数据段内容读入内存是由系统的页外异常按需完成的 处理程序。虽然每个用户进程可以拥有3GB的用户空间,但它是一个虚拟地址空间,用户进程无法真正运行在这个虚拟内存中; 它最终必须将用户空间中的虚拟地址映射到实际的物理空间。
这次实验我完成了通过添加内核模块来获取一个进程的mm_struct结构体信息。这让我对虚拟内存地址空间的分配有了较深的理解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值