内存段分配方案

31 篇文章 1 订阅
7 篇文章 0 订阅

复杂度3/5
机密度3/5

最后更新2021/04/21

每个进程都有自己的有效地址空间。这个地址空间有些段已经预先被分配或占用(共享),有些等待进程自己进行分配。对进程来说,有2个参数4种组合:
32位或64位程序
内核态进程或者用户态进程

32位用户态进程的有效地址内存段分配方案如下:

用途属性
0AIX kernel共享,只读
1用户进程共享,只读
2Data, BSS, stack, Ublock, uthread, heap私有,读写
3-C共享数据(shmat/mmap),3-A可做heap共享,读写
DShared Library加载空间共享,只读
Emmap/shmat空间共享,读写
FShared Library数据私有,读写

由于几乎没有使用实例,32位内核态进程的分配方案就不介绍了。

64位进程模式下,可用地址段大大增加,而且用户态程序和内核态程序分配方案相同。

用途
0x0000_0000_0System call tables, kernel text
0x0000_0000_1Reserved for system use
0x0000_0000_2Reserved for user mode loader (process private segment)
0x0000_0000_3 - 0x0000_0000_CShmat or mmap use
0x0000_0000_DReserved for user mode loader
0x0000_0000_Eshmat or mmap use
0x0000_0000_FReserved for user mode loader
0x0000_0001_0 - 0x06FF-FFFF_FApplication text, data, BSS and heap
0x0700_0000_0 - 0x07FF_FFFF_FDefault application shmat and mmap area
0x0800_0000_0 - 0x08FF_FFFF_FApplication explicit module load area
0x0900_0000_0 - 0x09FF_FFFF_FShared library text and per-process shared library data
0x0A00_0000_0 - 0x0EFF_FFFF_FReserved for future use
0x0F00_0000_0 - 0x0FFF_FFFF_FApplication primary thread stack
0x1000_0000_0 - 0XEFFF_FFFF_FReserved for future use
0xF000_0000_0 - 0xFFFF_FFFF_FAdditional kernel segments
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ensighine

如需特定专题,踢我

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

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

打赏作者

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

抵扣说明:

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

余额充值