存储管理之分配算法
来源:互联网 发布:手机淘宝客服人工服务 编辑:程序博客网 时间:2024/05/16 11:14
操作系统之存储管理
分配算法:
1.最佳适应法
最佳适应算法要求空闲区按大小递增的次序排列.在进行内存分配时,从空闲分区表首开始顺序查找,直到找到第一个能满足其大小要求的空闲区为止,如果该空闲区大于请求表中的请求长度,则将剩余空闲区留在可用表中(如果相邻有空闲区,则与之和并),然后修改相关表的表项.按这种方式为作业分配内存,就能把既满足要求又与作业大小接近的空闲分区分配给作业.如果空闲区大于该作业的大小,则与首次适应算法相同,将剩余空闲区仍留在空闲分区表中.
最佳适应算法的特点是:若存在与作业大小一致的空闲分区,则它必然被选中;若不存在与作业大小一致的空闲分区,则只划分比作业稍大的空闲分区,从而保留了大的空闲区.但空闲区一般不可能正好和作业申请的内存空间大小一样,因而将其分割成两部分时,往往使剩下的空闲区非常小,从而在存储器中留下许多难以利用的小空闲区(也被称为碎片).
2.首次适应法
要求把内存中的可用分区单独组成可用分区表或可用分区自由链,按起始地址递增的次序排列.查找的方法是每次按递增的次序向后找,一旦找到大于或等于所要求内存长度的分区,则结束查找,从找到的分区中划分所要求的内存大小分配给用户,把剩余的部分进行合并(如果有相邻的空闲区存在的话),并修改可用区中的相应表项.
该算法的特点是利用内存低地址部分的空闲分区,从而保留了高地址部分的大空闲区.但由于低地址部分不断地被划分,致使低地址端留下许多难以利用的很小的空闲分区,而每次查找有都是从低地址部分开始,这无疑增加了查找可用空闲分区的开销.
3.循环适应法
为进程分配内存空间时,不是每次从空闲分区表首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直到找到第一个能满足其大小要求的空闲分区为止.然后按照作业大小,从该分区划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲分区表中.
该算法的特点是使存储空间的利用更加均衡,分配的速度会快一些,碎片也可能会少一些,不至于使小的空闲区集中存储在存储区的一端,但会导致缺乏大的空闲分区.
4.最坏适应法
最坏适应算法要求按空闲区大小,从大到小递减顺序组成空闲区表或自由链.寻找的方法是当用户作业或进程申请一个空闲区时,选择能满足要求的最大空闲区分配,先检查空闲区可用表或自由链的第一个空闲区的大小是否大于或等于所要求的内存长度,若满足,则分配相应的存储空间给用户,然后修改和调整空闲区可用表或自由链,否则分配失败.
- 存储管理之分配算法
- 存储管理动态分区分配及回收算法
- 操作系统:存储管理动态分区分配及回收算法
- 存储管理之动态分区分配(实验四)
- 操作系统之非连续分配存储管理方式
- 存储管理技术--连续分配
- 操作系统杂记-存储管理之替换算法
- 内存管理简介之Buddy算法和slab分配
- 内存管理简介之Buddy算法和slab分配
- 内存管理之进程分配内存的策略和分配算法涉及的问题
- C语言内存的动态存储管理3-分配算法和回收
- 存储管理-分区分配与回收算法(Java简单实现)
- 内存管理最先分配算法
- Linux内核内存管理之SLAB内存管理算法(三) --基本数据结构及slab分配
- Linux内核内存管理之SLAB内存管理算法(三) --slab对象的分配与释放
- 【存储管理】物理页面的分配
- 【操作系统】连续分配存储管理方式
- 内存管理---非连续存储分配
- iOS开发 CGAffineTransform 让图片旋转, 旋转后获得图片旋转的角度
- 只争朝夕
- 译文:使用MVC5的Entity Framework 6入门(二)——实现基本的CRUD功能
- 软件工程3结对编程
- 国际结算三大方式之一——托收
- 存储管理之分配算法
- 2016/10/25
- 闪屏页面
- SpringMVC传值操作
- 查找一个文件夹下指定后缀名文件的java方法
- Android性能优化之运算篇
- 二叉树遍历的应用--求叶数,非叶数,层数,所有数的和,查找某个数,插入
- 1016. 部分A+B (15)
- 驱动学习之输入子系统