MMU(内存管理单元)理解

 32位机有0---4G的虚拟内存地址空间

(32位共有2^32 = 4x2^30个数,一个数对应内存中一个字节,故内存中共有4x2^30B=4G的地址空间)

虚拟内存各区的存储内容,如上的内存结构图所示,

.text  :存储代码段

.data :存储数据,定义的变量在此处

heap:堆,由低地址向高地址,malloc的空间在此处

stack:栈,由高地址向低地址,函数及函数里定义的变量在此处

以上各部分占用0-3G,,称为用户空间

3G-4G称为内核区(内核空间)

其中,PCB(进程控制块)位于此地址空间中;

 

0-4G的虚拟内存空间,是在程序运行,进程产生的时候,才会有的。

但虚拟内存并不是真实存在,程序、数据其实都是存在物理内存的。物理内存并一定有4G大小。

所以,就需要将虚拟内存与物理内存进行对应,媒介就是MMU

例如:0x8123a300  int value = 1;   0x8123a300 就是虚拟内存地址;

写程序的时候,使用的是虚拟地址。

 

MMU的作用:

1)虚拟地址与物理地址映射

2)设置修改内存访问级别,权限高的能访问内核区,权限低的访问用户区。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章