操作系统——内存交换技术

内存交换技术是操作系统中管理内存的重要策略,通过交换进程到磁盘以节省内存。文章介绍了进程的创建、调入调出过程,以及如何处理进程大小变化的问题。当进程需要扩大内存而空间不足时,可能会导致进程交换和移动,甚至进程挂起。为了优化,可以在换入进程时预留额外内存,但交换时仅交换实际使用部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内存交换

把所有进程一直保存在内存中需要巨大的内存,当然我们也不会这么做。那么我们是怎么做的呢?

最简单的策略是交换(swapping)技术,即把一个进程完整调入内存,使该进程运行一段时间,然后把它存回磁盘。空闲进程主要存储在磁盘上,所以当它们不运行时就不会占用内存(尽管其中的一些进程会周期性地被唤醒以完成相关工作,然后就又进入睡眠状态)。另一种策略是虚拟内存,该策略甚至能使程序在只有一部分被调人内存的情况下运行。下面先讨论交换技术,虚拟内存可以看这篇总结
在这里插入图片描述

交换系统的操作如上图所示。开始时内存中只有进程A。之后创建进程B和C或者从磁盘将它们换入内存。上图显示A被交换到磁盘。然后D被调入,B被调出,最后A再次被调入。由于A的位置发生变化,所以在它换入的时候通过软件或者在程序运行期间通过硬件对其地址进行重定位。例如,基址寄存器和界限寄存器。

当进程被创建或换入时应该为它分配多大的内存?

若进程创建时其大小是固定的并且不再改变,则分配很简单,操作系统准确地按其需要的大小进行分配。

如果进程的数据段可以增长,例如,很多程序设计语言都允许从堆中动态地分配内存,那么当进程空间试图增长时,就会出现问题。

解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值