MMU与虚拟内存:
1,MMU的作用:
A,不使用虚拟内存,直接使用武力内存
如果我们以物理内存你的方式分配内存给应用程序,效果如下图:
像上图这样,以实际的物理地址来分配物理内存,几个缺点:
1,如果我们有n个APP应用程序,将需要定义n个链接地址来分配内存;
2,在编写每个应用程序时每个应用程序的基地址都不一样,带给程序员一些不必要的麻烦;
3,如果程序超出了整个RAM的内存空间,将会到值其他应用程序,甚至是系统的崩溃。
B,使用虚拟内存:
当我们是用MMU后,CPU在运行不同的应用程序时,CPU只需要发出虚拟内存,MMU会根据页表将不同的应用程序的内存映射到不同的物理内存中。例如:
1,CPU在运行APP1和APP2时,都发出读取0x80b4地址的信号,如图中的VA信号;
2,MMU收到信号后,会将APP1的读取信号按照页表1将虚拟地址转换为对应物理地址,然后发送给物理内存(RAM)如图中的PA信号,物理内存将对应地址的数据返回给CPU;
3,同样,MMU会将APP2的读取信号按照页表2将虚拟地址转换为对应物理地址,然后发送给物理内存(RAM)如图中的PA信号,物理内存将对应地址的数据返回给CPU
虚拟内存的拎一个作用是可以扩展物理内存,当应用程序使用的内存超出了我们分配的物理内存时,操作系统会将一部分没有使用到的内存存入flash(或者硬盘,SSD等),然后释放这一部分的内存再次使用,从而起到扩展内存你的作业