Linux——初识进程地址空间

1、什么是地址空间

2、为什么要有地址空间


1、什么是地址空间

在了解什么是地址空间前,先简单认识一些基本概念,虚拟地址空间的大致分区是如下图:

内核中的地址空间,本质是一种数据结构,一定会和一个特定的进程相关联,虚拟地址空间的存在是为了通过页表的映射访问物理内存,大概流程如下图:

所以可以看出,地址空间是一种内核数据结构,它里面至少要有各个区域的划分。

所谓的区域划分就是在一定范围内定义start和end。


2、为什么要有地址空间 

1、有了地址空间的存在,凡是非法的访问或者映射,OS都会识别并且终止掉这个进程,有效保护了物理内存,并且地址空间和页表是OS创建并且维护的,所以凡是用地址空间和页表进行映射,也一定要在OS的监管之下来进行访问,便保护了物理内存中的所有合法数据包括各个进程,以及内核的相关有效数据。

2、因为地址空间的存在,物理内存的分配和进程的管理可以做到没有关系,即内存管理模块 vs 进程管理模块就完成了解耦合

:在C、C++语言上的new,malloc申请的地址就是从虚拟地址空间中申请,只有当真正进行对物理地址空间访问的时候,才执行内存的相关管理算法,申请内存,构建页表映射关系,然后才能进行内存的访问。

3、地址空间+页表的存在可以将内存分布有序化。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

双葉Souyou

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

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

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

打赏作者

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

抵扣说明:

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

余额充值