逻辑地址的目的是什么?为什么CPU需要生成逻辑地址?它可以直接访问可重定位寄存器基地址和限制以执行进程。为什么MMU需要在逻辑地址和物理地址之间进行映射?
逻辑地址的目的是什么?为什么CPU需要生成逻辑地址?它可以直接访问可重定位寄存器基地址和限制以执行进程。为什么MMU需要在逻辑地址和物理地址之间进行映射?
为什么需要虚拟内存?
因为它让操作系统有一种安全地管理内存的方式。
为什么需要安全的内存管理?
想象一下,如果没有逻辑地址,所有进程都可以直接访问物理地址。一个多进程操作系统同时运行几个不同的程序。假设你正在使用 MS Word 编辑重要的信件,同时在最近发布的浏览器上听音乐。但这个浏览器有 bug,并向用于存储信件编辑的单词程序的物理地址范围中写入伪值。所有信息都被破坏了!这是非常不可取的情况。
操作系统如何防止这种情况发生?
维护物理地址分配给每个进程的映射,并确保一个进程无法访问另一个进程分配的内存!
显然,将实际物理地址暴露给程序并不是一个好主意。由于内存完全由操作系统处理,我们需要一个抽象,可以提供给进程一个简单的 API,使得进程似乎正在处理物理内存,但所有分配实际上都由操作系统处理。
这就是虚拟内存的作用!