存储器管理-动态分区分配算法

简介: 存储器管理-动态分区分配算法

动态分区分配算法:


1.首次适应算法


思想:

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

实现:

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

优点:

首次适应算法每次都要从头查找,这种规则决定了当低地址部分有更小的分区满足需求时,会更有可能用低地址的小分区,更有可能把+

高地址部分的大分区保留下来。


2.最佳适应算法


思想:

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

实现:

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

缺点:

会留下越来越多的,小的,难以利用的内存块。即产生很多的外部碎片。


3.最坏适应算法


思想:

在每次分配时优先使用最大的连续空闲区,这样分配后剩余的空闲区就不会太小

实现:

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

缺点:

每次选择大分区进行分配,会导致较大的连续空闲区被迅速用完。如果之后有大进程到达,就没有分区可用了


4.临近适应算法


思想:

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

实现:

空闲分区以地址递增的顺序排列,每次分配时从上次查找结束位置开始查找空闲分区链,找到满足要求的第一个空闲分区

缺点:

低地址和高地址部分的空闲分区有相同概率被使用,导致高地址部分大分区更有可能被使用,导致最后无大分区可用。

目录
相关文章
|
6月前
|
算法 测试技术 C++
【动态规划】【C++算法】2518. 好分区的数目
【动态规划】【C++算法】2518. 好分区的数目
|
1月前
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
60 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
20天前
|
存储 缓存 算法
优化轮询算法以提高资源分配的效率
【10月更文挑战第13天】通过以上这些优化措施,可以在一定程度上提高轮询算法的资源分配效率,使其更好地适应不同的应用场景和需求。但需要注意的是,优化策略的选择和实施需要根据具体情况进行详细的分析和评估,以确保优化效果的最大化。
|
4月前
|
算法 Java 开发者
Java面试题:Java内存探秘与多线程并发实战,Java内存模型及分区:理解Java堆、栈、方法区等内存区域的作用,垃圾收集机制:掌握常见的垃圾收集算法及其优缺点
Java面试题:Java内存探秘与多线程并发实战,Java内存模型及分区:理解Java堆、栈、方法区等内存区域的作用,垃圾收集机制:掌握常见的垃圾收集算法及其优缺点
38 0
|
5月前
|
存储 NoSQL 算法
Redis集群,集群的概念 三种主流分片方式1.哈希求余 一致性哈希算法:方案三:哈希槽分区算法问题一Redis集群是最多有16384个分片吗问题二:为什么是16384个,集群扩容:1.新的主节点
Redis集群,集群的概念 三种主流分片方式1.哈希求余 一致性哈希算法:方案三:哈希槽分区算法问题一Redis集群是最多有16384个分片吗问题二:为什么是16384个,集群扩容:1.新的主节点
|
6月前
|
算法 调度
【免费】基于模型预测算法的含储能微网双层能量管理模型(MATLAB)
【免费】基于模型预测算法的含储能微网双层能量管理模型(MATLAB)
|
6月前
|
算法 网络协议 数据建模
【计算机网络】—— IP协议及动态路由算法(下)
【计算机网络】—— IP协议及动态路由算法(下)
|
6月前
|
算法 网络协议 数据建模
【计算机网络】—— IP协议及动态路由算法(上)
【计算机网络】—— IP协议及动态路由算法(上)
|
6月前
|
JavaScript 前端开发 算法
JavaScript的垃圾回收机制通过标记-清除算法自动管理内存
【5月更文挑战第11天】JavaScript的垃圾回收机制通过标记-清除算法自动管理内存,免除开发者处理内存泄漏问题。它从根对象开始遍历,标记活动对象,未标记的对象被视为垃圾并释放内存。优化技术包括分代收集和增量收集,以提升性能。然而,开发者仍需谨慎处理全局变量、闭包、定时器和DOM引用,防止内存泄漏,保证程序稳定性和性能。
55 0
|
6月前
|
编解码 算法 数据可视化
【视频】时间序列分类方法:动态时间规整算法DTW和R语言实现
【视频】时间序列分类方法:动态时间规整算法DTW和R语言实现