一、动态分区分配算法(连续分配管理方式)

  • 动态分区分配算法:在动态分区分配方式中, 当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配?

(一)首次适应算法

  • 算法思想:每次都从低地址开始查找,找到第一个能满足大小的空闲分区。
  • 如何实现:空闲分区以地址递增的次序排列。每次分配内存时顺序查找空闲分区链(或空闲分区表),找到大小能满足要求的第一个空闲分区。


(二)最佳适应算法

  • 算法思想:由于动态分区分配是一种连续分配方式,为各进程分配的空间必须是连续的一整片区域。因此为了保证当“大进程”到来时能有连续的大片空间,可以尽可能多地留下大片的空闲区,即,优先使用更小的空闲区。
  • 如何实现:空闲分区按容量递增次序链接。每次分配内存时顺序查找空闲分区链(或空闲分区表),找到大小能满足要求的第一个空闲分区。

(三)最坏适应算法

  • 又称最大适应算法(Largest Fit)
  • 算法思想:为了解决最佳适应算法的问题——即留下太多难以利用的小碎片,可以在每次分配时优先使用最大的连续空闲区,这样分配后剩余的空闲区就不会太小,更方便使用。
  • 如何实现:空闲分区按容量递减次序链接。每次分配内存时顺序查找空闲分区链(或空闲分区表),找到大小能满足要求的第一个空闲分区。

  • 缺点:每次都选最大的分区进行分配,虽然可以让分配后留下的空闲区更大,更可用,但是这种方式会导致较大的连续空闲区被迅速用完。如果之后有“大进程”到达,就没有内存分区可用了。

(四)邻接适应算法

  • 算法思想 :首次适应算法每次都从链头开始查找的。这可能会导致低地址部分出现很多小的空闲分区,而每次分配查找时,都要经过这些分区,因此也增加了查找的开销。如果每次都从上次查找结束的位置开始检索,就能解决上述问题。
  • 如何实现:空闲分区以地址递增的顺序排列(可排成一个循环链表)。每次分配内存时从上次查找结束的位置开始查找空闲分区链(或空闲分区表),找到大小能满足要求的第一个空闲分区。


  • 首次适应算法每次都要从头查找,每次都需要检索低地址的小分区。
  • 但是这种规则也决定了当低地址部分有更小的分区可以满足需求时,会更有可能用到低地址部分的小分区,也会更有可能把高地址部分的大分区保留下来(最佳适应算法的优点)
  • 邻近适应算法的规则可能会导致无论低地址、高地址部分的空闲分区都有相同的概率被使用,也就导致了高地址部分的大分区更可能被使用,划分为小分区,最后导致无大分区可用(最大适应算法的缺点)综合来看,四种算法中,首次适应算法的效果反而更好

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

  1. 操作系统(三十五)连续分配管理方式

    3.4 连续分配管理方式 连续分配管理是指为用户进程分配的内存空间是连续的一片空间 目录 3.4 连续分配管理方式 3.4.1 单一连续分配 3.4.2 固定分区分配 3.4.3 动态分区分配 3.4 ...

  2. 11 操作系统第三章 内存管理 内存的基本知识 内存管理 内存空间扩充 连续分配管理方式

    文章目录 1 内存概念 1.1 内存作用 1.2 逻辑地址VS物理地址 1.3 装入的三种方式 1.3.1 绝对装入 1.3.2 可重定位装入 1.3.3 动态重定位装入 1.4 链接的三种方式 1. ...

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

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

  4. 【学习笔记】第三章——内存 I(交换技术、进程七状态模型、动态分区分配、动态分区算法)

    文章目录 一. 交换状态.进程七状态模型 二. 内存的分配方式 三. 动态分配算法 一. 交换状态.进程七状态模型 交换技术:内存空间紧张,把某些进程暂时换出外存.(进程在内存与磁盘间动态调度) 进程 ...

  5. (王道408考研操作系统)第三章内存管理-第一节4:连续分配管理方式(单一连续、固定分区和动态分区分配)

    文章目录 一:单一连续分配 二:固定分区分配 (1)分区大小相等与分区大小不等 (2)分区说明表 三:动态分区分配 (1)采用的数据结构(主要有两种) (2)动态分配分区算法 (3)如何进行分配与回收 ...

  6. 内存管理-动态分区分配方式模拟

    内存管理 - 动态分区分配方式模拟 操作系统第二次课程作业 - 动态分区分配方式模拟 项目需求 假设初始态下,可用内存空间为640K,并有下列请求序列,请分别用首次适应算法和最佳适应算法进行内存块的分 ...

  7. 二十七、连续分配管理方式

    一.知识总览 注意:连续分配是指为用户进程分配的必须是一个连续的内存空间,而非连续分配管理方式可以是离散的内存空间. 二.单一连续分配 二.固定分区分配 **分区大小相等:**缺乏灵活性,但是很适用于 ...

  8. 3.1_ 4连续分配管理方式

    3.1_ 4连续分配管理方式 文章目录 3.1_ 4连续分配管理方式 知识总览 单一连续分配 固定分区分配 动态分区分配 知识总览 单一连续分配 固定分区分配 动态分区分配

  9. (王道408考研操作系统)第三章内存管理-第一节6-1:非连续分配管理方式之基本分页存储管理

    文章目录 一:分页存储管理基本思想 二:分页存储管理基本概念 (1)页框和页 (2)页框和页关系 (3)分页的优点 三:分页存储管理实现地址转换 (1)借鉴连续分配管理方式中的动态重定位 (2)分页管 ...

最新文章

  1. 英文投稿成功接收的经验
  2. python在福州能找到工作吗_如果只会Python能不能找到工作
  3. Linux编辑只读文件
  4. Google与GitHub 结盟,为保护软件供应链而战
  5. 2019-0405视觉SLAM的学习第三讲02
  6. 【Unity3d】【项目学习心得】从资源服务器下载资源(二)
  7. CCF201612-1 中间数(100分)【序列处理+排序】
  8. c语言 blue的大写l,C语言代码训练(一)
  9. ae2018怎么打开2019_AE CC 2019新功能全面解析!
  10. DNS域名解析配置详解
  11. jquery禁止鼠标右键 原生js禁止鼠标右键
  12. Android O 开机动画铃声
  13. 基于stm32单片机的空气质量检测仿真(仿真+源码+全套资料)
  14. Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据
  15. U盘插入提示使用驱动器光盘之前需要格式化
  16. HTTP中常见的状态码代表的意思比如202、303、404、505、访问网络时有时经常见的状态,也是面试题中关于HTTP经常出现的
  17. oracle环境配置全过程
  18. 大家对人工智能的发展怎么看?
  19. 一意孤行亚马逊----一个钓鱼疯子的巴西亚马逊之行( 12.九月 28日 在营地的最后一天 ) 作者:咸水鱼...
  20. Eclipse安装SVN插件的几种方法

热门文章

  1. vue 在线生成二维码 二维码生成背景下载
  2. 十月十日JavaScript基础3
  3. 去哪儿网马文: ESAAS平台技术开发实战
  4. 关于eclipse SE版本不支持建立web工程的问题
  5. Vue笔记_01双向数据绑定原理
  6. 电容传感器FDC2214单通道应用寄存器计算
  7. Linux常用命令(3)以及命令模式下多种操作
  8. shell脚本之n之内的质数
  9. python计算圆柱体的表面积和体积_java设计:问题是编写程序计算圆柱体的体积和表面积...
  10. oracle网页客户端工具