【Linux】【内存】Linux内核内存分配

embedded/2025/1/17 3:07:12/

【Linux】【内存】Linux内核内存分配

Linux内存管理几大分配方式

内存分配器分配函数使用场景
引导内存分配器(Boot allocator)bootmem内核启动时进行内存初始化
Buddy伙伴分配器(Buddy allocator)alloc_pages4K(一页)为分配单元进行内存分配
slab分配器(Slab allocator)kmalloc高效分配小块内存的内存管理机制 (ps:还有slub slob)
虚拟内存分配器vmalloc虚拟内存连续 物理内存不连续 分配的是虚拟内存
zsmalloc内存分配器(Zero-copy Smalloc)zsmalloc内核内存压缩 减少内存碎片影响
特定DMA内存分配器dma_alloc_coherent专门用于分配用于 DMA(直接内存访问)的内存

SLAB:最早的版本。
SLUB:一种改进的版本,简化了实现并提高了性能。
SLOB:用于嵌入式系统,内存较为紧张的场景下使用。

后面会专门写一下Buddy伙伴分配器 因为这是Buddy内存分配主要针对以一页为分配单位


http://www.ppmy.cn/embedded/154544.html

相关文章

C++STL中常用的排序算法:sort、random_shuffle、merge和reverse(附C++代码)

💪 图像算法工程师,专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 &a…

docker安装rabbit后访问报错最佳的几种解决方案

错误通常是由于RabbitMQ的安全配置导致的,RabbitMQ默认配置允许的用户仅能通过localhost访问。这通常出现在RabbitMQ的guest用户上,guest用户默认只能从localhost登录,而无法从其他IP地址进行远程访问。 解决方法: 1. **创建一个…

【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论和实操解析

文章目录 14.1 选择题解题思路和参考答案14.2 理论题解题思路和参考答案14.3 实操题解题思路和参考答案思科(Cisco)设备华为(Huawei)设备小米/锐捷(或其他支持标准CLI命令的设备)通过网络管理工具注意事项 …

Public Key Retrieval is not allowed 解决方法

如图:我的报错是Public Key Retrieval is not allowed,我的前后端都能正常加载,但是在请求数据库时就会报错如下: 解决办法: 在 application.yaml 中的数据库设置地方加上allowPublicKeyRetrievaltrue,然后…

C# OpenCV机器视觉:主色提取

在一个忙碌的工作日,小李正对着电脑屏幕上密密麻麻的数据愁眉苦脸,突然,手机铃声大作,打破了办公室的宁静。原来是工厂的张厂长打来的电话:“小李啊,咱们新生产的那批产品,客户要求必须提取出主…

获取文章列表功能

总说 过程参考黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 目录 总说 一、功能实现 1.1 Controller层 1.2 Service层 1.3 Impl层 1.4 Mapper层 1.5 测试接口 二、优化 2.1 2.2 一、…

Java安全—SPEL表达式XXESSTI模板注入JDBCMyBatis注入

前言 之前我们讲过SpringBoot中的MyBatis注入和模板注入的原理,那么今天我们就讲一下利用以及发现。 这里推荐两个专门研究java漏洞的靶场,本次也是根据这两个靶场来分析代码,两个靶场都是差不多的。 https://github.com/bewhale/JavaSec …

STM32 FreeRTOS 基础知识

多任务处理 内核是操作系统的核心组件。诸如 Linux 这样的操作系统采用的内核, 看似允许用户同时访问计算机。很明显,多个用户可以同时执行多个程序。 每个执行程序都是受操作系统控制的任务(或线程)。如果一个操作系统能够以这…