为什么要有mmu

我们在程序中使用的变量和函数都有各自的地址,程序被编译后,这些地址就成了指令中的地
址,指令中的地址被CPU解释执行,就成了CPU执行单元发出的内存地址,所以在启用MMU的
情况下,程序中使用的地址都是虚拟地址。一个操作系统中同时运行着很多进程,通常桌面上
的每个窗口都是一个进程,Shell是一个进程,在Shell下敲命令运行的程序又是一个新的进程,
此外还有很多系统服务和后台进程在默默无闻地工作着。由于有了虚拟内存管理机制,各进程
不必担心自己使用的地址范围会不会和别的进程冲突,比如两个进程都使用了虚拟地址0x0804
8000,操作系统可以设置MMU的映射项把它们映射到不同的物理地址,它们通过同样的虚拟地
址访问不同的物理页面,就不会冲突了。虚拟内存管理机制还会在后面进一步讨论。

原文地址:https://www.cnblogs.com/notepi/p/2874134.html