清华大学-操作系统学习笔记(三)---连续式内存分配

  • 1.计算机体系结构
  • 2.内存分层体系
  • 3.地址空间&地址生成
  • 4.物理内存-连续内存分配
    • 4.1 内存碎片问题
    • 4.2 分区的动态分配
      • 4.2.1 连续首次适配算法
      • 4.2.2 最优适配算法
      • 4.2.3 最差适配算法
    • 4.3 压缩式碎片整理
    • 4.4 压缩式碎片整理

1.计算机基本硬件结构

清华大学-操作系统学习笔记(三)---连续式内存分配_第1张图片

2.内存的层次结构

清华大学-操作系统学习笔记(三)---连续式内存分配_第2张图片

操作系统的目标(抽象,保护,共享,虚拟化):
清华大学-操作系统学习笔记(三)---连续式内存分配_第3张图片

  • 抽象:不用考虑底层
  • 保护:多个程序进程之间运行地址空间隔离
  • 共享:进程间安全有效安全地对数据进行传递
  • 虚拟化:最需要运行的数据放在内存中,暂时不需要的数据放在硬盘上,对应用程序透明,从而虚拟出更大的空间

说明:比如上图中P1,P2,P3需要执行,P4暂时还没那么急着执行,可以先把P4放在硬盘上(虚拟内存),P1,P2,P3放在主存中依次执行,等P4到达执行条件时再把P4放到主存中执行。

 
操作系统中管理内存的不同方法

  • 程序重定位
  • 分段
  • 分页
  • 虚拟内存
  • 按需分页虚拟内存

3.地址空间&地址生成

  • 地址空间定义
  • 地址生成
  • 地址安全检查

地址空间定义:
清华大学-操作系统学习笔记(三)---连续式内存分配_第4张图片

地址生成:
逻辑地址:比如说C语言的变量名就是逻辑地址
物理地址:硬件的地址
清华大学-操作系统学习笔记(三)---连续式内存分配_第5张图片

  1. 当CPU需要执行某个指令的时候他的ALU部件需要指令的内容,发送请求,带着逻辑地址;
  2. CPU中的MMU查找带有逻辑地址的映射表中是否存在对应的物理地址,如果有就找到;
  3. 如果没有就会去内存中找,如果找到了控制器就会给主存发送物理地址的内容(就是指令的内容);
  4. 主存会把内存的内容通过总线传给CPU,CPU拿到内容后就可以执行这条指令了;

地址空间安全检查:
清华大学-操作系统学习笔记(三)---连续式内存分配_第6张图片
检查起始地址和地址空间长度,一旦请求的逻辑地址超出区域限制,就会发生内存访问异常

4.物理内存-连续内存分配

4.1内存碎片问题

清华大学-操作系统学习笔记(三)---连续式内存分配_第7张图片

4.2分区的动态分配

清华大学-操作系统学习笔记(三)---连续式内存分配_第8张图片

4.2.1首次适配算法

清华大学-操作系统学习笔记(三)---连续式内存分配_第9张图片
清华大学-操作系统学习笔记(三)---连续式内存分配_第10张图片

4.2.2最优适配算法

清华大学-操作系统学习笔记(三)---连续式内存分配_第11张图片
清华大学-操作系统学习笔记(三)---连续式内存分配_第12张图片

4.2.3最差适配分配

清华大学-操作系统学习笔记(三)---连续式内存分配_第13张图片
清华大学-操作系统学习笔记(三)---连续式内存分配_第14张图片

4.3压缩式碎片整理

清华大学-操作系统学习笔记(三)---连续式内存分配_第15张图片

4.4交换式碎片整理

清华大学-操作系统学习笔记(三)---连续式内存分配_第16张图片

你可能感兴趣的:(操作系统,操作系统)