内存扩容技术
物理内存空间不够用时,需要使用覆盖、交换等内存扩容技术。
覆盖(overlay):应用程序手动把需要的指令和数据保存在内存中
交换(swapping):操作系统自动把暂时不能执行的程序保存到外存中
1. 覆盖
覆盖:进程地址空间根据调用结构将进行分段;物理地址空间划分常驻区和若干个覆盖区。常用的必要部分代码和数据放在常驻区,其他的部分放在其他程序模块中,需要时装入内存。不存在调用关系的模块可共享内存并相互覆盖。
不足:增加编程困难增加编程困难,增加了编程的复杂度;增加执行时间,需要从外存装入覆盖模块
进程模块按照调用结构分为三组,A
单独为一组,B、C
为一组,D、E、F
为一组。物理地址空间按照各组最大值划分,常驻区为 20K
、覆盖区 0 0 0为 50K
、覆盖区 1 1 1为 40K
。进程开始运行,A
调入常驻区,B、D
分别调入覆盖区 0 0 0和覆盖区 1 1 1;B、D
运行完毕,调入C
到覆盖区 0 0 0,E
到覆盖区 1 1