1、最先(首次)适应分配算法

空闲分区通常按地址从小到大排列,分配第一个满足长度要求地空闲区。

首地址 大小
100k 128k
800k 200k
1300k 700k

第一个请求188k,第二个请求138k
首先在首地址为800k的分配188k,剩余12k,然后在首地址为1300k的分配138k,剩余1162k。
优点:分配从低地址开始,使高地址部分比较少用,以保持一个大空闲区,有利于大作业的装入;
缺点:分区利用不均衡,回收分区比较麻烦。

2、下次适应分配算法/循环首次

每次分配时从未分配区的上次扫描 结束处顺序查找。 可以解决的缺点。

首地址 大小
100k 128k
800k 200k
1300k 700k

第一个请求188k,第二个请求138k
首先在首地址为800k的分配188k,剩余12k,上一次未分配区地址不够,然后在首地址为1300k的分配138k,剩余1162k。
优点:分区利用均衡
缺点:不利于上一次分配之前的分区不能得到有效利用

3、最优适应分配算法

分配能满足要求的最小区。 可以将空闲区按照大小从小到大排列,查找第一 个满足要求的。

首地址 大小
100k 128k
800k 200k
1300k 700k

第一个请求188k,第二个请求138k
首先在首地址为800k的分配188k,剩余12k,上一次未分配区地址不够,然后在首地址为1300k的分配138k,剩余1162k。
优点:主存利用率好。
缺点:分割剩下的空闲区比较小,难以利用;查 找时间比较长。

4、最坏适应分配算法

分配能满足要求的最大区; 可以将空闲区按照大小从大到小排列,查找第一 个满足要求的。 效率大致等同于最先适应法。

首地址 大小
100k 128k
800k 200k
1300k 700k

第一个请求188k,第二个请求138k
首先在首地址为1300k的分配188k,剩余1112k,上一次未分配区地址不够,然后在首地址为1300k的分配138k,剩余974k。

5、快速适应分配算法

为经常用到的长度的空闲区设置单独的链表。
优点:查找快速;
缺点:归还时与相邻空闲区的合并即复杂又费时 。

最佳适用算法

可变分区管理分配算法相关推荐

  1. 连续分配管理方式的动态分区分配算法(首次适应、最佳适应、最坏适应、邻接适应算法)

    一.动态分区分配算法(连续分配管理方式) 动态分区分配算法:在动态分区分配方式中, 当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配? (一)首次适应算法 算法思想:每次都从低地址开始查找,找 ...

  2. (王道408考研操作系统)第三章内存管理-第一节5:动态分区分配算法(首次适应、和邻近适应)

    文章目录 一:首次适应算法(First Fit) 二:最佳适应算法(Best Fit) 三:最坏适应算法(Worst Fit) 四:邻近适应算法(Next Fit) 总结 动态分区分配算法:用于研究当 ...

  3. java 内存分配管理_JAVA实验操作系统内存管理-最优分配,最先分配,最坏分配算法...

    package Memory; import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; pub ...

  4. Linux 操作系统原理 — 内存 — 内存分配算法

    目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...

  5. linux为系统分配内存,Linux操作系统知识讲解:走进Linux 内存分配算法

    Linux 内存分配算法 内存管理算法--对讨厌自己管理内存的人来说是天赐的礼物 1.内存碎片 1) 基本原理 产生原因:内存分配较小,并且分配的这些小的内存生存周期又较长,反复申请后将产生内存碎片的 ...

  6. DLmalloc 内存分配算法

    dlmalloc由Doug Lea编写的内存分配算法 (1)mspace_malloc/mspace_free (2) dlmalloc/dlfree 1.边界标记 2.空闲块分箱:2个分箱数组 (1 ...

  7. JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)

    转载自   JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法, ...

  8. JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)

    转载自  JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑 ...

  9. JVM内存管理------GC算法精解(复制算法与标记/整理算法)

    转载自  JVM内存管理------GC算法精解(复制算法与标记/整理算法) 本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法.上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此 ...

最新文章

  1. 少壮不努力,老大背单词
  2. alert 回调_element之Alert 警告
  3. BZOJ1833:[ZJOI2010]数字计数——题解
  4. Linux中文件描述符1,linux内核中的文件描述符(一)--基础知识简介
  5. web前端攻城狮整理的收藏夹
  6. 排除万难,我终于入了程序员的坑!
  7. C语言百度翻译API的使用,c语言怎么翻译? 程序怎么运行?
  8. 【收藏】k8s使用如下配置给pod固定ip
  9. OpenCV形态学变换函数morphologyEx()梯度运算的使用
  10. [python]使用virtualenv处理python版本问题
  11. python 数字大小排序_python list字符按数字大小排序
  12. tensflower官方测试案例_Storm自带测试案例的运行
  13. Hudson安装配置文档
  14. C语言学习资源汇总,史上最全面总结,没有之一
  15. 培养好习惯是很难,但也有方法
  16. Only one connection receive subscriber allowed.
  17. 一种逐样本的偏AUC优化框架
  18. 【隐式图搜索遍历学习】倒牛奶
  19. 如何更新neovim以及安装指定版本
  20. sigar获取进程信息

热门文章

  1. 北邮和中南计算机,中南大学与北京邮电大学哪个好?
  2. 对抗自编码器(adversarial autoencoder)
  3. sketch软件_UI界面设计工具都在这里了,Sketch、XD、Figma哪个好?
  4. 100行微信跳一跳java_安卓版微信跳一跳辅助 跳一跳辅助Java代码
  5. 远程控制阀门和限位开关
  6. 中软国际解放号:IT服务行业的“天猫”
  7. beego task
  8. 人体时钟html代码,canvas版人体时钟的实现示例
  9. 解读链接脚本ld和案例分享
  10. 性能监控工具之Grafana+Prometheus+Exporters