随着时间的推移,程序不断地更新,规模不断增长,运行的时候可能会发现内存会越来越不够用。所以希望一个容量大,更快,更便宜,数据不易丢失的存储器。

首先想到的就是硬盘,所以在硬盘的基础上建立了覆盖技术,把常用的数据放在内存,不常用的数据放在外存。或者使用交换技术,把最近使用的数据放在内存,把很久没用的内存数据换到外存。现如今,我们在分页分段的基础上建立了虚拟内存技术。

一、覆盖技术

典型的案例是DOS操作系统:

程序需要按照自身的逻辑划分出多个功能上独立的模块把那些不会同时运行的模块共享同一个内存空间(分区),按照时间的先后来执行。这需要一个常驻内存的代码空间,它主要负责管理在某个时间段把哪些数据,函数导入/导出内存。对于不常用的功能,在其他程序执行的时候需要把这功能上的数据放到外存中去,需要的时候再装入内存。

此覆盖技术的缺点就是需要程序员自己去实现各个模块之间的覆盖关系,大大增加了编程难度。另外,模块用调用时间来换取内存空间的节约。其程序的运行时间效率会大大降低。

二、交换技术

典型案例 Unix 操作系统。

考虑由操作系统来帮助程序员完成数据的导入/导出操作。在CPU 和 MMU (内存管理单元)的帮助下,在某个时刻将整个程序的空间导出到外存中。在需要的访问的时候,再把整个程序空间导入到内存中。此技术需要考虑的问题是:

1)什么时候开始交换?

当内存不够用或者内存有不够用的风险时才考虑换出。内存读写和硬盘读写效率相差甚大,可能内存需要在次读程序时还要等硬盘写完才能够换入

2)交换区的大小应为多大合适?

3)程序换入时的重定位

当需要换入的时候,分配到的内存空间可能会不一样,那么程序运行时寻址的问题就需要考虑了?可以考虑页表的动态地址映射。

三、虚拟内存技术

像覆盖技术那样,虚存技术并不会把所有程序都搬到内存中,因而可以运行比空闲内存还要大的程序。但这个分配部分程序的实现不再由程序员完成,而是由操作系统和MMU完成。也像交换技术一样,在某些情况可以以更小的粒度(页)为单位实现内存与外存的交换。

程序的局部性原理:分为时间局部性和空间局部性。所谓时间局部性就是一条指令的一次执行和下次执行,一个数据的一次访问和下次访问都集中在很短的时间内。所谓的空间局部性当前指令的和邻近的指令,当前访问数据的邻近的数据访问,其内存地址都集中在很小的空间中。

虚拟页式内存管理:当用户程序需要把数据调入内存中时,只把部分指令的数据装进内存中。如果正常执行指令的时候发现,数据不在内存中,则会抛出缺页/缺段中断给操作系统请求调页。之后,由操作系统把外存的数据按页搬进内存中,如果程序内存的可用空间不足,那么操作系统会考虑(页面置换算法)把哪些内存数据换出到外存,腾出内存空间。

虚拟内存有大用户空间、部分交换、不连续性的特征。把物理内存和外存相结合,使执行用户程序可以比内存大,换入/换出操作使得程序虚拟内存的分配可能不连续,但是寻址由操作系统完成。

有效存储器访问时间(EAT,Effective Memory Access Time ) =访问内存时间 * 页表命中几率   + 缺页处理时间  *  页表非命中几率。

dirty page  :脏页,正在写磁盘或者等待写磁盘的页

page fault : 缺页异常, 当访问内存时,找不到数据对应的页。

操作系统原理:覆盖技术、交换技术、虚拟内存概要相关推荐

  1. 操作系统原理,物理内存“扩充”技术,内存紧缩,覆盖,交换,虚拟内存思想

    操作系统原理,物理内存"扩充"技术,内存紧缩,覆盖,交换,虚拟内存 当内存空间不足以存放下进程是,需要使用到内存"扩充"技术,但不是真的扩充了内存. 截图来自b ...

  2. 操作系统原理——第五章:虚拟内存

    文章目录 1. 起因 2. 覆盖技术 3. 交换技术 4. 虚存技术 4.1 目标 4.2 程序局部性原理 4.3 基本概念 4.4 基本特征 4.5 虚拟页式内存管理 1. 起因 增长迅速的存储需求 ...

  3. 计算机网络atm功能,现代计算机网络原理4ATM交换技术.ppt

    现代计算机网络原理4ATM交换技术 *SCUT DT&P Labs * 现代计算机网络原理_4 ATM交换技术 1.ATM交换的基本概念 ATM交换:从一条逻辑ATM信道到一条或多条ATM逻辑 ...

  4. 操作系统(三十四)覆盖和交换

    3.3 覆盖和交换 在上一节中我们提到操作系统在内存管理方面的作用,其中有一个作用是内存空间的扩展,实现这一功能的就是覆盖和交换技术. 3.3.1 覆盖 早期的计算机内存很小,经常会出现内存大小不够的 ...

  5. 数据中心网络架构的问题与演进 — 传统路由交换技术与三层网络架构

    戳蓝字"CSDN云计算"关注我们哦! 文章目录 目录传统路由交换技术路由和交换交换技术传统的 2 层交换技术具有路由功能的 3 层交换技术具有网络服务功能的 7 层交换技术路由技术 ...

  6. (王道408考研操作系统)第三章内存管理-第一节3:覆盖与交换

    文章目录 一:覆盖 (1)基本思想 (2)优缺点 二:交换 覆盖与交换技术是在多道程序环境下用来扩充内存的两种方法 一:覆盖 覆盖技术:主要用来解决程序大小超过物理内存总和的问题 (1)基本思想 思想 ...

  7. 计算机数据交换技术发展的顺序,计算机网络数据交换技术的发展探析

    [摘要] 随着经济的快速发展和网络科技的普及,人们也越来越重视计算机网络技术的发展,未来社会离不开计算机网络技术的应用,加快对计算机网络数据交换技术的创新和发展就变得尤为重要,本文主要是对计算机网络数 ...

  8. 互联网协议 — 数据交换技术

    目录 文章目录 目录 数据交换技术 传统的 2 层交换技术 具有路由功能的 3 层交换技术 具有网络服务功能的 7 层交换技术 数据交换技术 交换技术是随着电话通信的发展和使用而出现的通信技术.电话刚 ...

  9. 计算机操作系统原理--Linux实例分析

    本书是结合Linux介绍操作系统的原理的书,是一本理论的书. 本书从计算机硬件的分类来叙述如何高效利用计算机资源,及我们使用的操作系统. 首先计算机硬件资源有CPU.内存.IO设备,其次还有软件资源: ...

  10. 全国计算机四级——操作系统原理笔记

    学习建议:结合书和笔记把知识过一遍 -> 买题库刷试卷 -> 始终学不明白的题目去刷章节题目 -> 背新增试卷题目 关于本笔记:写者参加2022年5月的考试,参考<全国计算机等 ...

最新文章

  1. 哪种编程语言又快又省电?有人对比了27种语言
  2. 你所了解的python岗位有哪些_Python是最火语言之一,那么他适合做哪些岗位?Python最全岗位!...
  3. POJ 3414 Pots(罐子)
  4. java nifty_jme3与nifty gui1.3结合,修改使其支持中文的输入与显示
  5. android eclipse关联源码,以及源码(代码)以及jar查看软件
  6. sqlite 模糊匹配日期_sql模糊查询和根据日期筛选
  7. pythonjpg_使用python判断jpeg图片的完整性实例
  8. 图像处理 --- 4.1 图像增强的点运算
  9. 常用的Java虚拟机参数
  10. AutoCAD-选项配置(OP)
  11. JSON在线编辑器V2.0
  12. 现代OpenGL教程 02 - 贴图
  13. Java 安全编程详解
  14. 用 canvas 操作图片像素
  15. 【货干】强制删除文件夹/文件
  16. 天涯明月刀服务器维护了,10月21日服务器例行维护公告
  17. 2019年最新(最全)的jQuery面试问题和答案汇总(小白,菜鸟有用)大全
  18. 天秤女能挽回狮子男吗(图
  19. 第12章:react-redux
  20. 小红书上架,一场蹭流量闹剧的终结?

热门文章

  1. ARouter源码详解
  2. CSS3中width属性的width: calc(100% - 20px); 使用问题
  3. Centos7 忘记密码的情况下,修改root或其他用户密码
  4. arcgis导入坐标点转面_ArcGIS学习记录—Arcgis中点、线、面的相互转换方法
  5. PACKAGE BODY APPS.CUX_LXF_INSERT 编译错误
  6. 【HDOJ】4768 Flyer_天涯浪子_新浪博客
  7. 从零到精通SVM之超平面求解和松弛变量
  8. Feature Squeezing
  9. excel的主要功能_用了ABBYY FineReader,快速将图片转为Excel
  10. Angular+jointjs