交换技术主要是在不同进程(或作业)之间进行,而覆盖则用于同一程序或进程中。
覆盖和交换技术是在多道程序环境下用来扩充内存的两种方法。
覆盖技术主要用在早期的操作系统中,而交换技术则在现代操作系统中仍具有较强的生命力。
1、内存覆盖(Overlay)
在早期的计算机系统中,主存容量很小。虽然主存中仅存放一道用户程序,但是存储空间放不下用户进程的现象也经常发生。这一矛盾可以用覆盖技术来解决。覆盖的基本思想是:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序), 因此可以把用户空间分成一个固定区和若干个覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。
2、内存交换(Swapping)
交换(对换)的基本思想是:
---- 把处于等待(阻塞)状态(或在CPU调度原则下被剥夺运行权利)的程序(进程)从内存移到辅存(外存),把内存空间腾出来,这一过程又叫换出。把准备好竞争CPU运行的程序从辅存移到内存,这一过程又称为换入。中级调度(策略)就是釆用交换技术。