操作系统体系结构和内存分层

操作系统体系结构和内存分层

计算机体系结构、内存分层体系

计算机基础硬件:

  • CPU:
  • 内存:
  • 设备IO:

内存的层次结构(从上到下速度一次递减):

  • 寄存器
  • cache
  • 主存(物理内存):
  • 磁盘(虚拟内存):

操作系统内核-内存管理的目标:

  • 抽象:逻辑地址空间
  • 保护:独立地址空间
  • 共享:访问相同内存
  • 虚拟化:更多的地址空间

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

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

实现高度依赖于硬件

  • 必须知道内存架构
  • MMU(内存管理单元):硬件组负责处理CPU的内存访问请求

地址空间&地址生成

  • 物理地址空间:硬件支持的值空间
  • 逻辑地址空间:一个运行程序所拥有的内存范围

逻辑地址和物理地址转换

CPU方面:

  • 运算器需要在逻辑地址的内存内容
  • 内存管理单元寻找在逻辑地址和物理地址之间的映射
  • 控制器从总线中发送在物理地址的内存请求

内存方面:

  • 内存发送物理地址内存中的内容给CPU

操作系统方面:

  • 建立逻辑地址和物理地址之间的映射

连续内存分配

  • 内存碎片问题

    • 空闲内存不能被利用
    • 外部碎片:在分配单元间的未使用内存
    • 内部碎片:在分配单元中的未使用内存
  • 分区的动态分配

    • 简单的内存管理方法
      • 当一个程序准许运行在内存中时,分配一个连续的区间
      • 分配一个连续的内存区间给运行的程序以访问数据
    • 分配策略:
      • 第一适配
        • 为了分配n字节,使用第一个可用空闲块以致块的尺寸比n大;
        • 需求:按照地址排序的空闲块列表,分配需要寻找一个合适的分区,重分配需要检查看是否自由分区能合并于相邻的空闲分区。
        • 优点:易于产生更大的空闲块,向着地址空间的结尾。
        • 缺点:容易产生外部碎片,不确定性。
      • 最佳适配
        • 为了避免分割大的空闲块,为了最小化外部碎片产生的尺寸
        • 需求:按照尺寸排列的空闲块列表,分配需要寻找一个合适的分区,重分配需要搜索以及合并于相邻的空闲分区。
        • 优点:当大部分分配是小尺寸时非常有效,比较简单
        • 缺点:外部碎片,重分配慢,易产生很多没用的微小碎片
      • 最差适配
        • 为了避免有太多微小碎片
        • 需求:按尺寸配列的空闲块列表,分配很快,重新分配需要合并于相邻的空闲分区,然后调整空闲块列表
        • 优点:假如分配是中等尺寸效果最好
        • 缺点:重分配慢,外部碎片,易于破碎大的空闲块以致大分区无法被分配
  • 压缩式碎片整理

    • 通过拷贝方式将碎片内存块整理成连续的内存块
  • 交换式碎片整理

    • 运行程序需要更多的内存
    • 抢占等待的程序&回收他们的内存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

turbolove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值