虚拟内存,覆盖技术,交换分区技术都是为了解决物理内存空间不足的解决方案: 虚拟内存:
如果存在一个程序,所需内存空间超过了计算机可以提供的实际内存,那么由于该程序无法装入内存所以也就无法运行。单纯的增加物理内存只能解决一部分问题,但是仍然会出现无法装入单个或者无法同时装入多个程序的问题。但是可以从逻辑的角度扩充内存容量,即可解决上述两种问题。基于局部性原理,在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息.
wiki:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。
虚拟内存基本思想就是每个进程有用独立的逻辑地址空间(这部分在用户看来是连续的地址空间),然后通过MMU映射到物理内存,物理内存被分为大小相等的多个块,称为页(Page),每个页的大小不同的机器是不一样的,有(4kb,8kb)对于一个进程来看,分给它的虚拟内存是连续的地址空间,但它对应到物理内存和硬盘上可能是不连续的地址