当前位置: 首页 > news >正文

动态分区分配算法

首次适应算法[first fit]

每次都从低地址开始查找,找到对歌能满足大小的空闲分区

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

最佳适应算法[best fit]

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

按照容量递增次序连接,每次分配内存时,顺序查找,找到大小能满足要求的第一个空闲分区 (分配后可能需要让链或者表重新排列)

每次都选最小的分区进行分配,会留下越来越多的,很小的,难以利用的内存卡,因此这个方法会有很多外部碎片

最坏适应算法[worst fit]

又叫最大适应算法

与上方的方法相反,优先使用最大的连续空闲区,这样分配后剩余的空间不会太小,更方便使用

按照内存递减次序连接,每次分配内存时,顺序查找,找到大小能满足要求的第一个空闲分区 (分配后也可能需要让链或者表重新排列)

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

邻近适应算法[next fit]

空闲分区以地址递增的顺序排列,排列成一个循环链表,每次分配内存都从上次查找结束的位置开始查找空闲分区链,找到大小能满足的第一个空闲区域(不需要重新排列,算法开销小)

邻近适应算法,会导致无论低地址或者高地址部分的空闲分区,都有相同的概率被使用,导致了高地址部分的大分区可能会被使用,导致最后没有大分区可用了


以上四种算法中,首次适应算法的效果反而是最好的

image-20251001100550622

![image-20251001100550622](/Users/tusier/Library/Application Support/typora-user-images/image-20251001100550622.png)

http://www.hskmm.com/?act=detail&tid=22068

相关文章:

  • 上海殡葬一条龙服务权威推荐:寿衣、骨灰盒购买定制服务暖心陪伴与专业仪式之选
  • potplayer截图
  • OpenAI发布提示词集
  • 303、杂诗
  • 完整教程:第三方软件测试公司:【Gatling基于Scala的开源高性能负载测试工具】
  • 微信小程序开发 - MrFlySand
  • 电脑性能优化综合指南:从网络到硬件的不全面解答
  • 连续分配管理方式
  • 验证码破解:机器学习辅助电商爬虫 - 教程
  • 【光照】[PBR][几何遮蔽]实现方法对比
  • 完整教程:C++设计模式之结构型模式:适配器模式(Adapter)
  • 网页访问速度很慢,远程仓库调用很慢
  • 深入解析:【项目】Vision Master OpenCV 3.0 版本(预)发行说明
  • 2025木方厂家权威推荐榜:实力工厂与优质供应之选
  • 10 月做题记录
  • LoRa/LoRaWAN技术手册
  • 便宜的 VPS
  • 2025南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选
  • 【JavaScript 性能优化实战】第六篇:性能监控与自动化优化 - 指南
  • linux 系统cshrc 资料
  • 2025 年西安品质楼盘住宅推荐排行榜权威发布,精选优质楼盘推荐
  • 某商业银行项目管理建设演进报告 - 指南
  • 题解:P14073 [GESP202509 五级] 数字选取
  • 2025西安新房住宅推荐排行榜发布,房屋品质、周边配套、交通便利性多维度选择指南!
  • 华为造车“内战”!徐直军下场做“启境”,会比余承东五界更强?
  • 余承东的新职位传递了华为重大信息
  • 张雪峰的事儿,大有文章
  • 词(持续更新)语言的边界就是
  • 财务分析怎么做 - 智慧园区
  • Maven的安装与配置