Linux学习之系统编程篇:MMU(Memory Manager Unit 内存管理单元)

在这里插入图片描述

一、虚拟内存地址

对应于上图的两端,其中 0 - 3G 是用户区 ,3 - 4G 是内核区。编码的内存地址都是虚拟地址。
在3G到4G之间是PCB 进程控制块。从3G到0依次为:
(1)命令行参数 和 环境变量。
(2)stack 栈区(生长方向:高地址到地址)。
(3)共享动态库。
(4)heap 堆区(生长方向:低地址到高地址)。
(5).bss 未初始化数据区。
(6).data 初始化数据区。
(7).text 代码区。
(8)0~4K 首保护地址。
其中:
(1)命令行参数: argv[i]
(2)环境变量:
PATH: linux 系统命令所在的路径;
SHELL:使用的 shell;
LANG 语言;
HOME:家目录;
(3)输出环境变量:echo $env。
(4)获取环境变量: char *getenv(const char *name)
返回值:返回环境变量的值;
若失败则返回NULL (name 不存在)。

二、MMU:内存管理单元

作用:
(1)虚拟内存和物理内存的映射。
(2)设置虚拟内存的访问级别:linux 内核访问级别是 0,用户访问 级别是 3。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分页内存管理单元MMU)是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制等。MMU使用虚拟地址中的重要位来索引转换表中的条目,并确定正在访问的内存块。通过MMU的地址转换功能,系统能够运行多个任务,每个任务在自己的私有虚拟内存空间中运行,而不需要了解系统的物理内存映射或其他同时运行的程序。MMU还可以控制每个内存区域的内存访问权限、内存顺序和缓存策略。总之,分页内存管理单元是实现虚拟内存系统的关键硬件组件。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [内存管理单元——MMU](https://blog.csdn.net/weixin_43834468/article/details/130138697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [操作系统 内存管理单元MMU TLB](https://blog.csdn.net/u014099894/article/details/127342188)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值