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

当内存空间不足以存放下进程是,需要使用到内存“扩充”技术,但不是真的扩充了内存。
截图来自b站陈教授网课
一、内存“扩充”技术
1、内存紧缩技术:在可变分区型的操作系统中调节进程在内存中的位置,将进程间的外碎片合成为可用的内存空间并利用。
2、覆盖技术overlaying
2、交换技术swapping
4、虚拟内存技术virtual memory

二、覆盖技术(早期操作系统)
1、应对问题:程序大小超过了物理内存总和
2、解决方案:程序的不同部分在内存中共享一块区域并相互覆盖
2.1、操作系统按照程序自身的逻辑结构,将那些不会同时执行的程序段共享同一块内存区域
2.2、要求程序各模块之间有明确的调用结构
3、程序员声明覆盖结构,操作系统完成自动覆盖

三、交换技术
1、思想:内存空间紧张时,系统将内存中某些进程暂时移到外存(磁盘),将外存中的某些进程换进内存,占用前者占用的内存区域,就是将进程在内存和磁盘之间进行动态调度。
2、问题:
2.1、进程的那些内容被交换
2.2、存放在磁盘的何处
2.3、何时交换
2.4、选择何进程交换
2.5、如何处理进程空间的增长等
3、解决问题
3.1、交换的内容是运行时创建或修改的内容:堆和栈
3.2、在磁盘中指定一块区域作为交换区swap space,包含连续的磁道,不使用文件系统,操作系统使用底层磁盘读写操作对交换空间的内容进行高效的访问
3.3、当进程不用时就换出(或很少用);内存空间不够用时换出,或有不够用的危险时换出;需要和调度器结合使用
3.4、考虑进程的属性,不应该换出处于等待IO状态的进程
3.5、应对进程空间增加(堆栈增大)的情况,给进程分配大一点的空间用于其之后的扩展,扩展有两种,堆栈数据集体向上扩展(往一个方向扩展),和堆栈分别位于空闲区的两侧一起向中间扩展。

四、虚拟内存技术
1、思路:当进程运行时,现将其一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访问的数据不在内存中时,由操作系统自动的将它们从磁盘调入内存。

2、相关术语
2.1、虚拟地址空间:分配给进程的虚拟内存
2.2、虚拟地址:在虚拟内存中指令或数据的位置,该位置可以被访问,仿佛它是内存的一部分

3、虚拟内存
3.1、存储器的层次结构

3.2、虚拟内存建立在存储体系上

3.3、将内存和磁盘结合起来使用,从而得到一个容量很大的“内存”,就是虚拟内存
3.4、虚存是对内存的抽象,构建在存储体系上,由操作系统协调各存储器的使用
3.5、虚存的速度和CPU的取址速度相当,但是虚存提供了一个比物理地址大的多的地址空间
3.6、虚存的大小受计算机寻址机制,就是位数的的限制,以及磁盘可用空间的限制,如果计算机是32位的,虚存最大就可以有232,就是4G,如果计算机是64位,虚存最大就可以达到264
3.7、虚存技术是以CPU时间和磁盘空间换区昂贵内存空间的,这是操作系统中的资源转换技术

4、地址保护
4.1、每个进程有独立的地址空间
4.2、进程访问的地址合法,不发生访问越界
4.3、进程的操作合法,不发生访问越权,比如写了只读空间

5、虚拟页式
虚拟存储技术+页式存储管理方法=虚拟页式存储管理系统
5.1、进程开始运行之前,不是装入全部页面,而是装入一个或零个页面
5.2、根据进程运行的需要,动态装入其他页面
5.3、当内存空间已满时,又需要装入新的页面,则根据某种置换算法置换内存中的某个页面,以便于装入新的页面

6、虚拟页式装页
6.1、请求调页:当需要某个页面而该页面不存在于虚存中时,将该页面装入虚存
6.2、预先调页:通过某些原因预知某些页面需要被装入而提前将其装入虚存

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

  1. linux的原理和运用,Linux操作系统原理与应用_内存寻址

    原标题:Linux操作系统原理与应用_内存寻址 第五讲今天上线啦. 在本次课程中,陈老师详细的讲解了有关于内存寻址的演变的相关知识. 第一部分中,介绍了关于内存寻址的相关背景知识.内存寻址-操作系统设 ...

  2. 操作系统原理第八章:内存管理

    目录 1 内存管理背景 2 固定分区分配 3 动态内存分配 3.1 首先适应 (First-fit) 3.2 最佳适应 (Best-fit) 3.3 外碎片问题 4 分页 5 分页硬件支持 6 分段管 ...

  3. 【操作系统架构原理】资源管理技术与进程的抽象设计思想

    热爱计算机科学和互联网技术,掌握扎实的计算机基础知识,深入理解数据结构.算法和操作系统知识. 操作系统定义 定义: 操作系统(Operating System,OS)尚无严格的定义. 例如: 1.OS ...

  4. Linux 操作系统原理 — 零拷贝技术

    目录 文章目录 目录 Linux I/O 缓存背景 为什么需要零拷贝? 零拷贝技术(Zero-Copy) 方法一:用户态直接 I/O 方法二:mmap + write 方法三:Sendfile 方法四 ...

  5. 操作系统原理:连续的内存分配

    一.由于内存释放导致的内存碎片的问题 空闲内存碎片化可能导致很多的内存不会被利用.内存碎片包含两种,一种时内部碎片,一种时外部碎片,所谓的内部碎片,就是分配给应用程序使用但是实际却无法被利用的碎片,而 ...

  6. Linux 操作系统原理 — 系统结构

    目录 文章目录 目录 Linux 系统架构 Linux 内核 内存管理 进程管理 文件系统 设备驱动程序 网络接口 Shell Linux 系统架构 Linux 系统一般有 4 个主要部分:内核.Sh ...

  7. Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术

    目录 文章目录 目录 前文列表 基于局部性原理实现的内-外存交换技术 局部性原理 Swap 交换分区 前文列表 <Linux 操作系统原理 - 内存 - 物理存储器与虚拟存储器> < ...

  8. Linux 操作系统原理 — 内存 — 基于 MMU 硬件单元的虚/实地址映射技术

    目录 文章目录 目录 前文列表 物理地址与虚拟地址 内存空间的组织方式 虚拟地址空间的编址 内核态地址空间 用户态地址空间 内-外存空间的交换与虚拟存储空间之间的映射关系 缺页异常 前文列表 < ...

  9. Linux操作系统原理与应用02:内存寻址

    目录 1. 内存寻址 1.1 X86寻址技术演变 1.1.1 8086引入段机制 1.1.2 80286引入保护模式 1.1.3 80386在段寄存器上构建保护模式 1.2 80x86寄存器简介 1. ...

最新文章

  1. Python变量作用域的规则以及如何搜索内置作用域
  2. 看云原生实战就来这里,侬晓得伐?
  3. oracle 中文查询不到,使用PLSQL查询Oracle语句中文无法匹配问题解决
  4. php点击按钮显示隐藏代码,jQuery中点击按钮实现显示与隐藏的方法
  5. elastic-job控制台部署与使用
  6. struts2 s:file标签使用及文件上传例子
  7. 百度文库文档下载分析
  8. c语言图片百叶窗特效,Flash遮罩特效实例--百叶窗效果
  9. 探索性测试--极限测试法
  10. 北京市电动自行车产品目录 汇总查询
  11. 【考试】2019.3计算机等级考试所有科目
  12. Springboot 整合Rabbit MQ
  13. NPOI导出Word并插入表格和图片
  14. jenkins 配置代理
  15. onsubmit表单提交简单使用
  16. 12JQuery基础笔记
  17. branch and bound(分支定界)算法求解TSP旅行商问题
  18. 数字化医院建设的四大要领
  19. 软件签名证书可以做哪些事
  20. python3 链表_Python3链表实现

热门文章

  1. 4天快速落地团队内部的UI组件库
  2. 「 C/C++疑难杂症 」warning: ISO C++ forbids converting a string constant to ‘CHAR*’ {aka ‘char*’} [-Wwrite
  3. SQL解决Error converting data type nvarchar to numeric.
  4. IMAP工作原理及特性/imap协议pop协议mail协议
  5. 语音信号处理之语音特征提取(1)机器学习的语音处理
  6. 单链表操作之合并两个单链表
  7. Win10更新后,无音量,显示未安装任何音频设备,解决方法,2021-9-15
  8. IntelliJ IDEA默认的keymap设置是哪个?
  9. 启动计算机时进入bios界面,电脑开机就进入bios界面怎么办
  10. Flash builder 4无法调试问题