什么是覆盖(Overlay)?
覆盖是一种用于处理内存不足的技术。当计算机的内存有限,但需要运行的程序比内存还要大时,覆盖就派上了用场。覆盖技术允许程序的不同部分在不同时间加载到内存中,以便节省内存空间。
使用覆盖的步骤
-
程序划分: 需要运行的程序被划分为多个模块或段。
-
加载: 在程序执行时,只有当前需要的模块被加载到内存中。
-
交换: 当需要切换到不同的模块时,操作系统将当前模块从内存中卸载,并加载下一个模块。
-
管理: 操作系统负责跟踪哪些模块当前在内存中,以及它们的位置。
使用覆盖技术,程序可以更有效地利用有限的内存资源,但也增加了程序设计和管理的复杂性。
什么是交换(Swapping)?
交换是一种将进程从内存移到磁盘并在需要时再次加载的技术。它用于处理内存不足的情况,当所有可用内存都被程序占用时,操作系统将一些进程或进程的一部分移到磁盘上的交换文件中,以腾出内存供其他进程使用。
使用交换的步骤
-
选择进程: 操作系统决定哪些进程需要被交换出去。
-
交换到磁盘: 选定的进程被保存到磁盘上的交换文件中。
-
释放内存: 操作系统释放出被选定进程占用的内存。
-
加载进程: 当需要再次运行被交换出去的进程时,操作系统将其从磁盘中加载到内存中。
使用交换技术,操作系统可以在有限的内存情况下维护多个进程,并根据需要将它们移到磁盘上。这有助于确保系统的稳定性和性能。