清华大学操作系统(陈渝,向勇)课程笔记——连续内存分配
Posted 行运换甲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了清华大学操作系统(陈渝,向勇)课程笔记——连续内存分配相关的知识,希望对你有一定的参考价值。
主要内容
连续内存分配
内存碎片问题
分区的动态分配
-
- 第一适配
- 最佳适配
- 最差适配
压缩式碎片整理
交换式碎片整理
内存碎片问题
内存碎片: 内存中无法进一步利用的内存空间。
碎片分类
- 外碎片:在分配单元之间未使用的内存
- 内碎片:在分配单元内部未使用的内存
分区的动态分配
简单的内存管理方法:
- 当一个程序准许运行在内存中时。分配一个连续的区间
- 分配一个连续的内存区间路运行的程序以访问数据
分配策略
- 首次适配:为了分配n字节,使用第个可用空闲块以致块的尺寸比n大
- 最优适配:为了分配n字节使用最小的可用空闲块,以致块的尺寸比n大
- 最差适配:为了分配n字节.使用最大可用空闲块,以致块的尺寸比n大
三种分配策略的比较
特点 | 优势 | 劣势 | |
首次适配 |
按地址排序的空闲块列表 分配需要寻找一个合适的分区 重分配需要检查,看是否自由分区能合并于相邻的空闲分区(若有) |
简单,易于实现 易于产生更大的空间快,向着地址空间的结尾 |
容易产生外部碎片 不确定性强 |
最优适配 |
为了避免分割大空闲块 为了最小化外部碎片产生的尺寸 按尺寸排列的空闲块列表 分配需要寻找一个合适的分区 ≥重分配需要搜索及合并于相邻的空闲分区(若有) |
当大部分分配是小尺寸时非常有效 比较简单 |
易产生外部碎片 重分配慢 易产生很多没用的微小碎片(不怎么好) |
最差适配 |
为了避免有太多微小的碎片 按尺寸排列的空闲块列表 分配很快(获得最大的分区) 重分配雷要合并于和邻的空闲分区,若有.然后调整空闲块列表 |
假如分配是中等尺寸效果最好 |
重分配慢 易产生外部碎片 易于破碎大的空闲块以致大分区无法被分配 |
总结: 没有最好的分配算法一说,因为应用程序的请求是随机的。
压缩式碎片整理
- 重置程序以合并孔洞
- 要求所有程序是动态可重置的
- 议题
- 何时重置?
- 开销
交换式碎片整理
- 运行程序需要更多的内存
- 抢占等待的程序&回收它们的内存
- 问题: 选择哪个程序换出?
以上是关于清华大学操作系统(陈渝,向勇)课程笔记——连续内存分配的主要内容,如果未能解决你的问题,请参考以下文章