1.虚拟存储器出现的原因
一个系统中的进程是与其他进程共享CPU和主存资源的,但是共享主存会形成一些特殊的挑战。随着对CPU需求的增长,进程就会慢慢的慢下来。如果同时有太多的进程就需要太多的存储器,一些进程根本就无法运行。存储器还很容易被破坏。还有可能一个进程不小心写了另一个进程使用的存储器,它就可能以某种完全和程序无关的方式失败,这种失败我们很难去查找到其真正原因。
虚拟存储器是为了更有效的管理存储器以及减少出错而产生的。现代系统提供了一种对主存的抽象概念,叫做虚拟存储器(VM)。虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互,它利用了画饼充饥的思想,因为每个进程需要一个一致私有的连续地址空间,它就构建了一个虚拟存储器为进程在该虚拟存储器中分配连续的地址空间,满足了进程的需求,但是它此时为进程分配的地址空间并不是我们真实的物理地址。它通过一个很清晰的机制,提供了三个重要的能力:
1>它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存了活动区域而并非一下为一个进程分配一次活动的所有所需空间,它会根据需要在磁盘和主存之间来回传送数据,从而高效的使用主存。
2>虚拟存储器为每一个进程提供了一致的地址空间,简化了存储器管理。
3>它保护了每个进程的地址空间不被其他进程破坏,极大的降低了由于进程间的互相干扰而产生的不可控结果。
虚拟存储器是计算机系统中最重要的概念之一。它成功的一个主要原因就是因为它是沉默地,自动地工作的,它不需要程序员的任何干涉。
2.物理和虚拟寻址
物理:计算机系统的主存被组织成一个由M个连