操作系统笔记(三)

第三章

主要内容:操作系统的物理内存管理

内存分层体系

运行内存(主存)、磁盘(虚拟内存),主存是运行程序时所需要保存数据的数据空间,磁盘是用于持久化数据的数据空间。

层次

寄存器

cache

主存

磁盘

内存管理目标

  • 抽象:逻辑地址空间

  • 保护:独立地址空间

  • 共享:访问相同内存

  • 虚拟:更多的地址空间

内存管理方法

  • 程序重定位

  • 分段

  • 分页

  • 虚拟内存

  • 按需分页虚拟内存

地址空间

地址空间的定义

  • 逻辑地址空间 - 一个运行的程序所拥有的内存范围

  • 物理地址空间 - 硬件支持的地址空间

连续内存分配

内存碎片问题

内存碎片问题指的是空闲的内存无法被利用

  • 外部碎片:分配单元间的未使用内存

  • 内部碎片:分配单元内的未使用内存

分区的动态分配

分区的动态分配方式有以下三种:

  1. 首次分配:在内存中找到的第一块满足需求的内存空间,分配给应用程序

  2. 最优适配:在内存中找到满足需求的最小的内存空间,进行分配

  3. 最差适配:在内存中找到最大的空闲块,分配给应用程序

分配方式的区别

分配方式第一匹配分配最优适配分配最差适配分配
分配方式实现需求1. 按地址排序的空闲块列表 2. 分配需要寻找一个合适的分区 3. 重分配需要检查是否可以合并相邻空闲分区1. 按尺寸排序的空闲块列表 2. 分配需要寻找一个合适的分区 3. 重分配需要检查是否可以合并相邻空闲分区1. 按尺寸排序的空闲块列表 2. 分配最大的分区 3. 重分配需要检查是否可以合并相邻空闲分区
优势简单 / 易于产生更大空闲块比较简单 / 大部分分配是小尺寸时高效分配很快 / 大部分分配是中尺寸时高效
劣势产生外部碎片 / 不确定性产生外部碎片 / 重分配慢 / 产生很多没用的微小碎片产生外部碎片 / 重分配慢 / 易于破碎大的空闲块以致大分区无法被分配

三种分配方式并无优劣之分,适用于不同的情况

碎片整理方法

三种分区动态分配的方式都会产生外部碎片,因此我们需要对碎片进行一定的整理来解决碎皮问题

  1. 压缩式碎片整理

    1. 重置程序以合并碎片

    2. 要求所有程序是动态可重置的

    3. 问题

      1. 何时重置?

      2. 内存拷贝开销问题

  2. 交换式碎片整理

    • 运行程序需要更多的内存时,抢占等待的程序并且回收他们的内存

    • 问题

      • 那些程序应该被回收?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值