虚拟内存区域

虚拟内存区域

虚拟内存区域是进程的虚拟地址空间中的一个同质区间,即具有同样特性的连续地址范围

一个进程的内存映象由下面几部分组成:

程序代码、数据、BSS和栈区域,以及内存映射的区域。


一个进程的内存区域可以通过查看

/proc/pid/maps

08048000-0804f000 r-xp 00000000 08:01 573748 /sbin/rpc.statd #text

0804f000-08050000 rw-p 00007000 08:01 573748 /sbin/rpc.statd #data

08050000-08055000 rwxp 00000000 00:00 0 #bss

040000000-40015000 r-xp 00000000 08:01 933965 /lib/ld2.3.2.so #text

40015000-40016000 rw-p 00014000 08:01 933965 /lib/ld-2.3.2.so #data


每一行的域为:

start_end perm offset major:minor inode

Start: 该区域起始虚拟地址

End: 该区域结束虚拟地址

Perm: 读、写和执行权限;表示对这个区域,允

许进程做什么。这个域的最后一个字符要么是p

表示私有的,要么是s表示共享的。

Offset: 被映射部分在文件中的起始地址

Major、minor:主次设备号

Inode:索引结点


vm_area_struct结构

Linux内核使用结构vm_area_struct(<linux/mm_types.h>)来描述虚拟内存区域,其中几个主要成员如下:

unsigned long vm_start

虚拟内存区域起始地址

unsigned long vm_end

虚拟内存区域结束地址

unsigned long vm_flags

该区域的标记。如:VM_IO和VM_RESERVED。

VM_IO将该VMA标记为内存映射的IO区域,

VM_IO会阻止系统将该区域包含在进程的存放转

存(core dump )中,VM_RESERVED标志内存区

域不能被换出。

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洪流之源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值