4.1 程序与内存的关系

1 Linux进程内存映像

内存映象指的是内核如何在内存(虚拟地址空间)中存放可执行程序。

  1. 所有程序的编译链接起始地址相同
  2. 可执行文件中的不同的section加载到读写权限不同的内存
  3. Linux通过MMU和页表来管理内存:地址映射、权限管理
    在这里插入图片描述

2 内核空间

所有进程的内核空间都映射到同样的物理内存

3 用户空间

  1. 每个进程的用户空间分别映射到不同的物理内存
  2. 应用程序通过(系统调用、80中断)访问内核空间

4 地址映射

  1. 虚拟地址通过页表/TLB映射到物理内存
  2. 页表由OS维护,记录虚拟地址到物理地址的映射关系
  3. 通过页表还设置内存权限:读、写、可执行
    在这里插入图片描述

5 地址转换

注:页表会被映射到内核空间中
在这里插入图片描述

6 为什么要使用虚拟内存?

  1. 避免使用物理内存带来的弊端(多个进程容易造成地址冲突)
  2. 为每个进程提供一个独立的、私有的地址空间
  3. 保护每个进程的空间不被其它进程破坏
  4. 内存读写权限管理、保障系统的安全运行
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值