在计算机系统中,存储管理是确保程序高效运行的关键环节,覆盖与交换作为两种重要的存储管理技术,各自具有独特的特点和应用场景。
1、基本思想:
对于一个进程,不需要一开始就把程序的全部指令和数据都装入内存再执行。
程序划分为若干个功能上相对独立的程序段,按照程序逻辑结构让那些不需要同时执行的程序段共享同一块内存区。
当有关程序段的先头程序段已经执行结束后,再把后续程序段从外存调入内存覆盖前面的程序段。
2、要求:
程序员必须提供一个清楚的覆盖结构,即程序员必须把一个程序划分成不同的程序段,并规定好它们的执行和覆盖顺序。
3、详细过程:
不相互调用的程序段可以共享同一内存区,设某进程的程序正文段由A,B,C,D,E和F等6个程序段组成,由于程序段B不调用C,程序段C也不调用B,因此程序段B和C无需同时驻留在内存,它们可以共享同一内存区,同理,程序段D、E、F也可共享同一内存区。
内存可以分为两个部分:常驻内存区(与所有被调用程序段有关,不能被覆盖)和覆盖区(可被其他程序段共享)。
4、优点:
覆盖技术可以节约内存空间。
5、缺点:
需要程序员划分模块,增加了编程的复杂性和时间复杂度。
1、基本思想:
对象是进程,等待状态的进程驻留内存会造成存储空间的浪费,有必要把处于等待状态的进程换出内存。
交换技术是实现此目标的常用方法之一。
2、实现方法:
可将暂时不能运行的程序放到外存。
换出(swap out):将一个进程的整个地址空间保存到外存。
换入(swap in):将外存中某进程的地址空间读入到内存。
3、优点:
交换技术不要求程序员给出程序段之间的覆盖结构,它主要是在不同进程或作业之间进行。
通过交换,系统可以在较小的存储空间中完成较多作业的执行。
4、缺点:
交换技术可能导致系统性能下降,因为频繁的换入和换出操作会增加系统的开销。
1、问:什么是覆盖技术?
答:覆盖技术是将用户空间划分为一个固定区和一个或多个覆盖区,经常活跃的部分放在主存,其余部分放在外存,当需要时再调入的程序存储管理方式。
2、问:覆盖技术的主要优点是什么?
答:覆盖技术的主要优点是可以节约内存空间。
3、问:交换技术的基本思想是什么?
答:交换技术的基本思想是将暂时不用的程序或数据部分或全部从主存中调出,以腾出空间将系统要求使用的程序和数据调入主存,实际上是主存与外存之间不断的交换程序和数据,以实现用户在较小的存储空间中完成较多作业的执行。