TLSF算法1:二级索引的计算

article/2025/10/17 0:53:34

TLSF算法1:二级索引的计算

  • 一、什么是TLSF算法
  • 二,f的确定
  • 三、s的确定
  • 四、实验结果

一、什么是TLSF算法

在嵌入式系统中,内存需要在分配和释放时有一个确定的相应时间,才能进一步分析其实时任务的可调度性。因此TLSF算法是一个十分适用嵌入式领域的动态内存分配算法。在关于TLSf算法的经典文章中《TLSF: a New Dynamic Memory Allocator for Real-Time Systems》详细介绍了TLSF算法相关知识。

TLSF算法使用隔离匹配机制来实现良好匹配策略。基本的隔离匹配机制使用一组空闲列表,每个数组都包含一定大小范围内的空闲块。为了加快访问空闲块以及访问管理大量的隔离列表(以减少碎片),列表数组已组织为两个级别数组。一级数组将空闲块划分为类是2的幂(16、32、64、128等);和第二级将每个第一级类别线性划分,划分的数量(简称第二级别索引数,2SLI)是用户可配置的参数。每个数组列表具有关联的位图,用于标记哪些列表是为空,哪些包含空闲块。每个块有关的信息都存储在块本身中。
TLSF空闲块的结构图
在TLSf的结构中,最主要的算法是位的操作,本文重点分析有关位的操作的原理与代码。当系统需要分配一个指定大小为r的内存时,需要计算出相应的两级位图的值,其公式如下所示:
计算公式
为了有一个直观的结果,我们假设SLI=4,即第二级索引将一级的内存块大小范围划分为2∧SLI=16块,则一级索引f=8,二级索引s=12。
示例

二,f的确定

很显然,f的值就是所需内存大小的二进制位的最高非0位的数。首先最简单可以考虑到的就是从低位遍历即可,不断的对r进行”>>”操作,只要r不为0,就不断执行,同时定义一个变量统计移位的次数。但是因为是嵌入式系统,当然不能采用遍历的方法,会导致内存分配的不确定性。

方法一首先考虑折半查找的方式,32位的数字,折半对比5次既可求出f的值。代码参考如下:

int getF1(int r){int f = 0;if(!r){return 0;}if(r & 0xffff0000){r >>= 16;f += 16;}if(r & 0xff00){r >>= 8;f += 8;}if(r & 0xf0){r >>= 4; f += 4;}if(r & 12){r >>= 2; f += 2;

http://chatgpt.dhexx.cn/article/KXtD9IDX.shtml

相关文章

TLSF 内存分配算法详解

文章目录 1. DSA 背景介绍1.1 mmheap1.2 mmblk 2. TLSF 原理2.1 存储结构2.2 内存池初始化2.3 free2.4 malloc 参考资料 1. DSA 背景介绍 动态内存管理算法 DSA,Dynamic storage allocation。RTOS 一般情况下动态内存使用malloc申请分配,但是存在两个缺…

tlsf算法-概念、原理、内存碎片问题分析

文章目录 一、tlsf算法介绍二、tlsf代码分析2.1 mapping_search2.2 search_suitable_block 三、参考链接 一、tlsf算法介绍 tlsf(全称Two-Level Segregated Fit,内存两级分割策略算法),第一级(first level&#xff0c…

数学建模系列-优化模型(三)---排队论模型

所谓排队论模型,就是指一个模型中可根据交易简单的需要分为三个部分: (1)顾客造访 (2)服务顾客时间 (3)若不空闲,则顾客需要排队 下面是对于排队论模型的建模以及解决方法…

无线传感器网络:排队论(Queueing Theory)模型

文章目录 The arrival ProcessQueueing SystemThe M/M/1 queueThe M/M/1/N queue References 排队理论已被用于评估通信网络的性能很多年了。早在1917年,丹麦数学家 Erlang 就将该理论用于电话交换机的设计,并开创了现在著名的 Erlang-B 和 Erlang-C 公式…

排队论(Queuing theory)简介

Preliminary Questions 1.What does affect the performance of ——a computer system? ——a computer network? ——an Internet service? 2 How do we measure the performance of ——a computer system? ——a computer network? ——an Internet service…

泊松分布,指数分布与排队论模型

转自http://www.ruanyifeng.com/blog/2015/06/poisson-distribution.html泊松分布和指数分布:10分钟教程 https://www.bilibili.com/video/BV1L5411x7vH?p44北京工业大学运筹学 泊松分布与指数分布 泊松分布 泊松分布就是描述某段时间内,事件具体的…

排队论模型之M/M/S模型

相关参数 模型推导 例题 代码实现: s3; %服务台的个数 mu0.4; %单位时间内能服务的顾客数 lambda0.9; %单位时间内到达的顾客数rolambda/mu; rosro/s; sum10; %求解P0时把其分成两部分计算,分别为sum1,sum2 for i0:(s-1) sum1sum1ro.^i/factorial(i); …

排队模型和排队系统仿真

排队模型和排队系统仿真 Gary哥哥 2021.1.31 排队论又称随机服务系统,是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,是运筹学的一个分支。排队论的基本思想是 1909 年丹麦数学家 A.K. 埃尔朗在解决自动电话设计问题时开始形成的&#…

数学模型算法实现之排队论

排队问题 https://wenku.baidu.com/view/475f68cb65ce0508763213a7.html 排队论详解 排队论又叫随机服务系统理论或公用事业管理中的数学方法。它是研究各种各样的排队现象的。它所要解决的主要问题是:在排队现象中设法寻求能够达到服务标准的最少设备,使得在满足服务对象…

排队论模型(二):生灭过程 、 M / M /s 等待制排队模型、多服务台模型

排队论模型(一):基本概念、输入过程与服务时间的常用概率分布 排队论模型(二):生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型(三):M / M / s/ s 损失…

排队论模型(四):M / M / s 混合制排队模型

排队论模型(一):基本概念、输入过程与服务时间的常用概率分布 排队论模型(二):生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型(三):M / M / s/ s 损失…

浅谈排队论

排队论起源于 1909 年丹麦电话工程师 A. K.爱尔朗的工作,他对电话通话拥挤问 题进行了研究。1917 年,爱尔朗发表了他的著名的文章—“自动电话交换中的概率理 论的几个问题的解决”。排队论已广泛应用于解决军事、运输、维修、生产、服务、库…

超详细的排队论建模

排队系统 顾客输入过程 顾客源(总体):有限/无限顾客到达方式:逐个/逐批(主要是逐个)顾客到达间隔:随机型/确定型顾客到达:相互独立/相互关联输入过程:平稳/非平稳 排队…

排队论模型(五): 有限源排队模型、服务率或到达率依赖状态的排队模型

排队论模型(一):基本概念、输入过程与服务时间的常用概率分布 排队论模型(二):生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型(三):M / M / s/ s 损失…

排队论模型(一):基本概念、输入过程与服务时间的常用概率分布

排队论模型(一):基本概念、输入过程与服务时间的常用概率分布 排队论模型(二):生灭过程 、 M / M /s 等待制排队模型、多服务台模型 排队论模型(三):M / M / s/ s 损失…

数学建模之排队论

排队是在日常生活中经常遇到的现象,如顾客到商店购买物品、病人到医院看病常 常要排队。此时要求服务的数量超过服务机构(服务台、服务员等)的容量。也就是说,到达的顾客不能立即得到服务,因而出现了排队现象。这种现象…

排队论简介

一、随机过程(Stochastic Process): 1.定义: 设随机实验的样本空间S{s},如果对于每个s,有对应属于参数集T的参数t的函数X(s,t),那么对于所有的s,得到一组t的函数{X(s,t),t∈T}&…

数学建模:排队论模型

今天来简单介绍一下关于数学建模中排队论模型的基本情况和其在MATLAB中的实现方法: 排队论(Queuing Theory) ,是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,又称随机服务系统理论,为运筹学的一个分支。是通过对…

数学建模学习笔记(六):排队论模型

一、排队论基本概念 1、基本概念 (1)银行等 (2)车站等 (3)新生报到等(电路中的串联) (4)更多 随即服务系统:等待时间,被服务时间都不…

排队论(Queuing Theory)

目录 简介 一、基本概念 1.1 排队过程的一般表示 1.2 排队系统的组成和特征 1.2.1 输入过程 1.2.2 排队规则 1.2.3 服务过程 1.3 排队模型的符号表示 1.4 排队系统的运行指标 二、 输入过程与服务时间的分布 2.1 泊松流与指数分布 2.2 常用的几种概率分布 2.2.1 连…