1.MMU功能解析
1.MMU功能解析
先来看一个例子:
1testMMU.c的代码:
2testMMU.c的代码:
两个代码同时运行的效果如下图:
可以看到两个同时运行的程序使用的是同一个地址0x80496a4,是不是程序运行出错了,怎么一个地址单元,同一时间可以被两个程序使用?其实呢这就是今天的重点,虚拟地址,0x80496a4是一个虚拟地址单元。这就是MMU的功劳了。MMU的全称是Memory Management Unit,内存映射单元。就是程序在运行的时候并不是直接使用物理地址,而是虚拟地址,当程序真正需要物理地址的时候,系统才给它分陪物理地址。使用虚拟地址的好处就是运行更大的程序,内存本来没有改变,但是虚拟地址的操作,能够运行更大的程序。
从上面的例子知道MMU的一个功能就是将虚拟地址转化为物理地址。后面还会讲到MMU的第二个作用:访问权限管理。
我是一只菜鸟!FORFISH!