第三节 覆盖与交换技术

第三节  覆盖与交换技术

无论内存空间有多大,程序所需要的空间往往总是比可用的内存空间更大

为了扩充内存,可以把进程地址空间中信息(指令和数据)的一部分放在外存上,而把那些当前需要的执行程序段和数据段放在内存中。

这样,在内、外存之间就会出现一个信息交换的问题

本节所介绍的覆盖技术和交换技术就是用于控制这种交换的。覆盖技术同交换技术的主要区别是控制交换的方式不同,前者主要用在早期的系统中,而后者则主要用于小型分时系统

覆盖技术是指一个程序的若干程序段,或几个程序的某些部分共享某一个存储空间

覆盖技术不需要操作系统的特殊支持,可以完全由用户实现,即覆盖技术是用户程序自己附加的控制

覆盖技术可以由编译程序提供支持。覆盖可以从用户级彻底解决内存小装不下程序的问题

 

覆盖技术是早期采用的简单的扩充内存的技术,对用户不透明,增加了用户的负担,要求用户清楚的了解程序的结构,并指定各程序段调入内存的先后次序,已经内存中可以覆盖掉的程序段的位置等。而且程序段的最大长度仍受内存容量的限制。通常,覆盖技术主要用于系统程序的内存管理上,因为系统软件设计容易了解系统程序的覆盖结构

二、交换技术

交换技术又称对换技术

进程从内存移到磁盘,并再移回内存称为交换

交换技术是进程在内存与外存之间的动态调度,是由操作系统控制的

交换技术多用于分时系统,大多数现代操作系统使用交换技术

交换技术支持多道程序设计、也是虚拟存储技术(下一节)基础

(1)换出进程的选择:时间片轮转法、基于优先数的调度算法

(2)交换时机的确定:内存空间不够或者内存空间有不够的危险时

(3)交换空间的分配:当进程在内存中时,不再为它分配磁盘空间

当它被换出时,必须为它分配磁盘交换空间

(4)换入进程换回内存时位置的确定

绝对地址:一定要在原来的位置上

相对地址:可在进行地址重定位,可以不在原来的位置上

缺点:交换时需要大量的处理器时间,影响对用户的响应时间。减少交换的信息量是交换技术的关键问题

主要特点:打破了一个程序一旦进入内存便一直运行到结束的限制

与覆盖技术相比:

1)交换技术对用户而言是透明的

2)交换可以发生在不同的进程或程序之间,而覆盖发生在同一进程或程序内部,而且只能覆盖那些与覆盖段无关的程序段

因此,交换技术比覆盖技术更加广泛的用于现代操作系统。覆盖技术与交换技术的发展导致了虚拟存储技术的出现

 

posted @ 2024-09-04 15:53  夜星空雨  阅读(100)  评论(0)    收藏  举报