【操作系统】存储器管理之覆盖与对换

覆盖与对换技术是在多道程序环境下用来扩充内存的两种方法。

覆盖与对换可以解决在小的内存空间运行大作业的问题,是“扩充”内存容量和提高内存利用率的有效措施。

覆盖技术主要用在早期的 OS 中,对换技术则用在现代OS 中。

覆盖 (Overlay)

覆盖技术主要用在早期的 OS 中(内存 <64KB) ,可用的存储空间受限,某些大作业不能一次全部装入内存,产生了大作业与小内存的矛盾。

图示

覆盖:把一个程序划分为一系列功能相对独立的程序段,让执行时不要求同时装入内存的程序段组成一组(称为覆盖段) ,共享主存的同一个区域,这种内存扩充技术就是覆盖。

图示

程序段先保存在磁盘上,当有关程序段的前一部分执行结束,把后续程序段调入内存,覆盖前面的程序段(内存“扩大”了) 。

一般要求作业各模块之间有明确的调用结构,程序员要向系统指明覆盖结构,然后由操作系统完成自动覆盖。

缺点:对用户不透明,增加了用户负担。

对换(Swapping)

所谓“对换” ,是指将暂时不用的某个进程及数据(首先是处于阻塞状态优先级最低的)部分(或全部)从内存移到到外存(备份区或对换区)中去,让出内存空间,同时将某个需要的进程调入到内存中,让其运行。

交换技术也是“扩充”内存容量和提高内存利用率的有效措施。

交换到外存的进程需要时可以被再次交换回(选择换出时间最久的)内存中继续执行。

图示

对换的类型

  • 整体对换:进程对换,解决内存紧张问题。 (中级调度)
  • 部分对换:页面对换/分段对换,提供虚存支持。

对换空间的管理

  • 具有对换功能的 OS 中,通常把外存分为文件区和对换区。前者用于存放文件,后者存放从内存换出的进程。对换区比文件区侧重于对换速度。因此对换区一般采用连续分配。

进程的换出与换入

  • 选择换出进程:优先级,进程状态。
  • 选择换入进程:优先级,进程状态,换出时间等。

覆盖与对换技术的区别

  • 覆盖可减少一个进程运行所需的空间。对换可让整个进程暂存于外存中,让出内存空间。
  • 覆盖是由程序员实现的,操作系统根据程序员提供的覆盖结构来完成程序段之间的覆盖。对换技术不要求程序员给出程序段之间的覆盖结构。
  • 覆盖技术主要在同一个作业或进程中进行。对换主要在作业或进程之间进行。
  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值