前言
本文是根据虚拟内存的总结,包括覆盖技术,交换技术,虚存技术。虚拟内存的起因是应用程序的运行内存越来越大,而内存的增长不能满足相应的需求,所有需要借助于disk的容量提高程序的运行空间。
覆盖技术
这个技术现在已经不再使用了,其实就是需要将应用程序模块化,然后按照程序运行的顺序,设计各模块在拷贝到内存中的时间。结合各个程序块的大小和执行顺序来设计哪几个模块共有一块内存区域,以及按照怎样的顺序覆盖。这些操作都是由程序员决定应用程序内部的运行。
自动交换技术
这种技术现在也不在使用了,交换技术主要发生在应用程序之间,由操作系统自行操作。
何时传入:当内存空间不管或者不够的时候换出;
何时交换:包含应用程序的所有拷贝;
还涉及到应用程序重定位的问题,采用动态地址映射解决。
虚存技术
这是现在最具有实际意思的虚拟内存技术,就是把应用程序中的需要的部分放在内存里面,应用程序的全部数据在disk中。交换的单位是一个页。
其中页面的换入和换出,是由操作系统自行完成的。根据虚存技术的要求,对开发的应用程序提出了如下