第三节 覆盖与交换技术
第三节 覆盖与交换技术
无论内存空间有多大,程序所需要的空间往往总是比可用的内存空间更大
为了扩充内存,可以把进程地址空间中信息(指令和数据)的一部分放在外存上,而把那些当前需要的执行程序段和数据段放在内存中。
这样,在内、外存之间就会出现一个信息交换的问题
本节所介绍的覆盖技术和交换技术就是用于控制这种交换的。覆盖技术同交换技术的主要区别是控制交换的方式不同,前者主要用在早期的系统中,而后者则主要用于小型分时系统
覆盖技术是指一个程序的若干程序段,或几个程序的某些部分共享某一个存储空间
覆盖技术不需要操作系统的特殊支持,可以完全由用户实现,即覆盖技术是用户程序自己附加的控制
覆盖技术可以由编译程序提供支持。覆盖可以从用户级彻底解决内存小装不下程序的问题
覆盖技术是早期采用的简单的扩充内存的技术,对用户不透明,增加了用户的负担,要求用户清楚的了解程序的结构,并指定各程序段调入内存的先后次序,已经内存中可以覆盖掉的程序段的位置等。而且程序段的最大长度仍受内存容量的限制。通常,覆盖技术主要用于系统程序的内存管理上,因为系统软件设计容易了解系统程序的覆盖结构
二、交换技术
交换技术又称对换技术
进程从内存移到磁盘,并再移回内存称为交换
交换技术是进程在内存与外存之间的动态调度,是由操作系统控制的
交换技术多用于分时系统,大多数现代操作系统使用交换技术
交换技术支持多道程序设计、也是虚拟存储技术(下一节)基础
(1)换出进程的选择:时间片轮转法、基于优先数的调度算法
(2)交换时机的确定:内存空间不够或者内存空间有不够的危险时
(3)交换空间的分配:当进程在内存中时,不再为它分配磁盘空间
当它被换出时,必须为它分配磁盘交换空间
(4)换入进程换回内存时位置的确定
绝对地址:一定要在原来的位置上
相对地址:可在进行地址重定位,可以不在原来的位置上
缺点:交换时需要大量的处理器时间,影响对用户的响应时间。减少交换的信息量是交换技术的关键问题
主要特点:打破了一个程序一旦进入内存便一直运行到结束的限制
与覆盖技术相比:
1)交换技术对用户而言是透明的
2)交换可以发生在不同的进程或程序之间,而覆盖发生在同一进程或程序内部,而且只能覆盖那些与覆盖段无关的程序段
因此,交换技术比覆盖技术更加广泛的用于现代操作系统。覆盖技术与交换技术的发展导致了虚拟存储技术的出现

浙公网安备 33010602011771号