前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3.1.2覆盖和交换

3.1.2覆盖和交换

作者头像
week
发布2018-08-24 17:02:18
5080
发布2018-08-24 17:02:18
举报
文章被收录于专栏:用户画像用户画像

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

1.覆盖

早期的计算机系统中,主存容量小,虽然主存中仅存放一道用户程序,但是存储空间放不下用户进程的现象也经常发生,这一矛盾可以用覆盖基础来解决。 覆盖的基本思想是:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可以把用户空间分成一个固定区和若干覆盖区。将经常活跃的部分放在固定区。其余部分按调用关系 分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统将其调入覆盖区,替换覆盖区中原有的段。 覆盖技术的特定时打破了必须将一个进程的全部信息装入主存后才能运行的限制,但当同时运行的代码量大于主存时仍然不能运行。

2.交换

交换(对换)的基本思想是,把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到辅存,把内存空间腾出来,这个过程叫做换出。把准备好竞争CPU运行的程序从辅存移到内存,这个过程又称为换入。 例如,有一个CPU采用时间片轮转调度算法的多道程序环境。时间片到,内存 管理器将刚刚执行的进程换出,将另一进程换入到 刚刚释放的内存空间中。同时,CPU调度器可以将时间片分配给其他已在内存中的进程。每个进程用完时间片都与另一进程交换。理想情况下,内存管理的交换过程速度足够快,总有进程在内存中可以执行。 有些交换需要注意一下几个问题:

  • 交换需要备份存储,通常是快速磁盘。它必须足够大,并且提供对这些内存映像的直接访问。
  • 为了有效使用使用CPU,需要每个进程的执行时间比交换时间长,而影响交换时间的主要是转移时间。转移时间与所交换的内存空间成正比。
  • 如果换出进程,必须保证该进程是完全处于空闲状态。 交换空间通常作为磁盘的一整块,且独立于文件系统,因此使用就可能很快。
  • 交换通常在有很多进程运行且内存空间吃紧时开始 启动,而系统负荷降低就暂停。
  • 普通的交换使用不多,但交换策略的某些变种在许多系统中(如UNIX系统)仍发挥作用。

交换技术主要是在不同进程(或作业)之间进行,而覆盖则是用于同一程序或进程中。由于覆盖技术要求给出程序段之间的覆盖结构,使得其对用户和程序员不透明,所以对主存无法存放用户程序的矛盾,现代操作系统是通过虚拟内存技术来解决的,覆盖技术则已成为历史;而交换技术在现代操作系统中仍具有较强的生命力。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年07月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.覆盖
  • 2.交换
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档