覆盖与交换

覆盖与交换

覆盖技术

  1. 覆盖的思想:
    由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可把用户空间分成一个固定区和若干覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。
  2. 覆盖的特点:
    打破了必须将一个进程的全部信息装入主存后才能运行的限制,但当同时运行程序的代码量大于主存时仍不能运行,此外,内存中能够更新的地方只有覆盖区的段,不在覆盖区中的段会常驻内存。覆盖技术对用户和程序员不透明。
  3. 在存储管理方案中,单一连续区存储管理可采用覆盖技术。覆盖技术的实现是把程序划分为若干个功能上相对独立的程序段,按照其自身的逻辑结构使那些不会同时运行的程序段共享同一块内存区域。

交换技术

  1. 交换的思想:
    把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到辅存,把内存空间腾出来,这一过程又称换出;把准备好竞争CPU运行的程序从辅存移到内存,这一过程又称换入。
  2. 需要注意的问题:
    1. 交换需要备份存储,通常是磁盘。它必须足够大,并提供对这些内存映像的直接访问。
    2. 为了有效使用CPU,需要使每个进程的执行时间比交换时间长。
    3. 若换出进程,则必须确保该进程完全处于空闲状态
    4. 交换空间通常作为磁盘的一整块,且独立于文件系统,因此使用起来可能很快。
    5. 交换通常在有许多进程运行且内存空间吃紧时开始启动,而在系统负荷降低时就暂停。
    6. 普通的交换使用不多,但交换策略的某些变体在许多系统(如UNIX)中仍发挥作用。
  3. 操作系统交换技术是一种时间换空间的策略。当内存空间紧张时,系统会将内存中某些进程暂时换出到外存,以腾出内存空间供其他进程使用。这个过程需要一定的时间来完成,但可以有效地扩展可用的内存空间。


总结


覆盖与交换
https://lzyjx.github.io.git/2023/05/14/覆盖与交换/
作者
六只羊
发布于
2023年5月14日
许可协议