CPU寻址:
现代处理器使用的是一种称为虚拟寻址的寻址方式。使用虚拟寻址,CPU需要将虚拟地址翻译成物理地址,这样才能访问到真实的物理内存。 实际上完成虚拟地址转换为物理地址转换的硬件是CPU中含有一个被称为内存管理单元的硬件。
为什么要有虚拟地址空间:先从没有虚拟地址空间说起吧,*没有虚拟地址空间的时候,程序都是直接访问和操作物理内存。*但会有一些问题:
-
用户可以访问任意的内存,寻址内存的每个字节,这样容易破坏操作系统,造成操作系统崩溃。
-
想要同时运行多个程序特别困难。
总结来说:
如果直接把物理地址暴露出来会带来严重的问题,比如可能对操作系统造成伤害以及给同时运行多个程序造成困难。
通过虚拟地址访问内存有以下优势:
-
程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区。
-
程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页保存到磁盘文件。
-
不同进程使用的虚拟地址彼此隔离。一个进程中的代码无法更改由另一进程使用的物理内存。
计算机cpu有32位地址,它的虚拟地址空间有多少字节,怎么计算的?
计算机处理器有32位地址,它的虚拟地址空间有