一、首次适应算法

1、算法思想

每次从低地址开始查找,找到第一个能满足大小的空闲分区。

2、如何实现

空闲分区以地址递增的次序排列,每次分配内存时顺序查找空闲分区链,找到大小能满足要求的第一个空闲分区。

3、常用的数据结构

空闲分区表、空闲分区链

4、优缺点

优点:①为分配大的内存空间创造了条件

②不需要重新排序,算法开销小

缺点:①不断被划分,会留下许多难以利用的小分区,产生碎片。

5、图示

空闲分区表↑

空闲分区链(按起始地址有小到大排序)↓

二、最佳适应算法

1、算法思想

由于动态分区分配是一种连续分配方式,为各进程分配的空间必须是连续的一整片区域,因此为了保证大进程到来时能有连续的大空间,可以尽可能的留下大空间,优先使用小空间

2、如何实现

空闲分区按容量递增次序链接,每次分配内存时顺序查找空闲分区链,找到大小能满足的第一个空闲分区。

3、优缺点

优点:①避免大材小用,更能满足大进程需求

缺点:①产生难以利用的小分区,产生碎片

②算法开销大,每次需要重新排序

4、图示

空闲分区表↑

空闲分区链(由分区大小由小到大排序)↓

 注意:有更小的空闲分区,需要更新空闲分区链

三、最坏适应算法(最大适应算法)

1、算法思想

为了解决最佳适应算法的问题(即留下太多难以利用的小碎片),可以在每次分配时优先使用最大的连续空闲区,这样分配后剩余的空闲区就不会太小,更方便使用。

2、如何实现

空闲分区按容量递减次序链接,每次分配内存时顺序查找空闲分区链,找到大小能满足要求的第一个空闲分区。

3、优缺点

优点:①可减少难以利用的碎片

缺点:①大分区被用完,不利于大进程,算法开销大

4、图示

空闲分区表↑

空闲分区链(由分区大小由大到小排序)↓

四、循环首次适应算法(邻近适应算法)

1、算法思想

首次适应算法每次都从链头开始查找,可能会导致低地址部分出现很小的空闲分区,而每次分配查找时,都要经过这些分区,因此也增加了查找的开销,如果每次都从上次查找结束的位置开始检索,可解决上述问题。

2、如何实现

空闲分区以地址递增的顺序排列(循环链表),每次分配内存师从上次查找结束的位置开始查找空闲分区链,找到大小能满足要求的第一个空闲分区链。

3、优缺点

优点:①不是每次从头开始检索,算法开销小

②使空闲分区分布得更均匀

缺点:①会缺乏大的空闲分区

4、图示

五、四种算法的对比

【操作系统】-- 动态分区分配算法(首次适应算法FF、最佳适应算法BF、最坏适应算法WF、循环首次适应算法NF)相关推荐

  1. java动态分区分配_操作系统 动态分区分配算法课程设计 java版.pdf

    操作系统 动态分区分配算法课程设计 java版 湖 南 文 理 学 院 实 验 报 告 课程名称 操作系统课程设计 实验名称 存储管理--动态分区分配算法的模拟 成绩 学生姓名 曹乐 专业 计算机 班 ...

  2. java动态分区分配_操作系统动态分区分配算法课程设计java版解析.doc

    湖 南 文 理 学 院 实 验 报 告 课程名称 操作系统课程设计 实验名称 存储管理--动态分区分配算法的模拟 成绩 学生姓名 曹乐 专业 计算机 班级.学号 13101 18 同组者姓名 实验日期 ...

  3. 七、操作系统——动态分区分配算法(详解)

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

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

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

  5. 操作系统【动态分区分配算法——首次适应算法、最佳适应算法、最坏适应算法、临近适应算法】

    学习地址(哔哩哔哩网站--王道论坛):https://www.bilibili.com/video/BV1YE411D7nH?p=37 目录 1.首次适应算法(First Fit) 2.最佳适应算法( ...

  6. 3.1.5 操作系统之动态分区分配的四种算法(首次适应算法、最佳适应算法、最坏适应算法、临近适应算法)

    文章目录 0.思维导图 1.首次适应算法 2.最佳适应算法 3.最坏(大)适应算法 4.临近适应算法 5.四种算法归纳比较 0.思维导图 本篇文章是对上一篇文章内存的分配与回收提到的动态分区分配算法的 ...

  7. 操作系统分区分配java算法_合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc...

    合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc 1课程设计动态分区分配存储管理设计题目学号专业班级学生姓名号指导教师22010年12月合肥工业大学课程设计任务书设计题目动态分区分 ...

  8. java动态分区分配算法,操作系统_动态分区分配算法课程设计_java版

    <操作系统_动态分区分配算法课程设计_java版>由会员分享,可在线阅读,更多相关<操作系统_动态分区分配算法课程设计_java版(13页珍藏版)>请在人人文库网上搜索. 1. ...

  9. 操作系统(三十六)动态分区分配算法

    3.5 动态分区分配算法 上节讲述了连续分区分配方式中有动态分区分配的方式,如果在动态分区分配算法中有许多空闲分区都满足需求的时候,那该如何分配空间呢,今天来介绍四种分配方法解决这个问题. 目录 3. ...

最新文章

  1. supervisor 守护多个进程_supervisor守护进程管理实操笔记
  2. mysql 求数据的长度_mysql 如何求数据的长度
  3. SEO站内优化细节不可少,教你4个小技巧!
  4. Spark详解(六):Spark集群资源调度算法原理
  5. JAVA_list总结
  6. WX微信小程序路由API使用
  7. mysql optimize 参数查看_Mysql High Performance:Optimize Setting
  8. jQuery Mobile中尾部栏footer的data-*选项
  9. 硬币找零,最长上升子序列,背包问题等动态规划问题详解
  10. c语言else语句,C# if…else 语句 | 菜鸟教程
  11. 计算主波长色纯度色温和色坐标转换CIE1931图色坐标显示NTSC色饱和度
  12. Codeforces - Chloe and pleasant prizes
  13. 浙工大 drcom客户端 嵌入 Linux路由器
  14. 又一个非常好的项目管理系统--ONES
  15. XUPT-ACM校赛心得
  16. 多道批处理操作系统和分时操作系统的概念
  17. java qq登陆界面源码下载_javaSwingQQ登录界面
  18. 如何快捷一下永久删除电脑文件
  19. 金庸说的:人不要太牛逼
  20. 好好一个985,怎么被学生戏称为全国最“水”的高校?

热门文章

  1. 使用python编写的落网电台下载工具
  2. 什么是分库分表?为什么需要分表?什么时候分库分表
  3. 天狼星-冬季大三角最亮的一颗星
  4. 【极坐标下牛顿—拉夫逊潮流计算(matlab版+python版)】
  5. 轮询调度算法(Round-Robin Scheduling)
  6. 图神经网络--图神经网络
  7. js回调函数的用途与写法
  8. 新思维研究生英语第1-12单元 课文翻译习题答案
  9. ENSP:防火墙IPSEC XXX
  10. 涨知识!细数银行卡三要素 API 的 N 种验证方法