上一页 1 2 3 4 5 6 7 8 9 10 ··· 67 下一页

2024年7月6日

内存管理-16-kmalloc机制实现-初探

摘要: 一、概述 slab的接口比较麻烦,kmalloc接口使用简便,其底层是基于slab缓存机制实现的,主要也是从slab缓存中拿内存对象。 //include/linux/slab.h static __always_inline void *kmalloc(size_t size, gfp_t fla 阅读全文

posted @ 2024-07-06 10:26 Hello-World3 阅读(74) 评论(0) 推荐(0) 编辑

内存管理-15-slab、slob和slub分配器-初探

摘要: 一、slab简介 1. 简介 首先,“slab”已成为一个通用名称,指的是使用对象缓存的内存分配策略,可实现内核对象的高效分配和释放。它最初由 Sun 工程师 Jeff Bonwick 记录下来,并在 Solaris 2.4 内核中实现。 Linux 目前为其“slab”分配器提供了三种选择: Sl 阅读全文

posted @ 2024-07-06 10:20 Hello-World3 阅读(702) 评论(0) 推荐(0) 编辑

2024年7月4日

内存管理-14-内核文档翻译-1-reserved-memory.txt

摘要: 本文翻译自:msm-5.4/arch/arm64/boot/dts/vendor/bindings/reserved-memory/reserved-memory.txt *** Reserved内存区域 *** 保留内存被指定为 /reserved-memory 节点下的一个节点。操作系统应将保留 阅读全文

posted @ 2024-07-04 18:22 Hello-World3 阅读(196) 评论(0) 推荐(0) 编辑

2024年7月3日

内存管理-7-memblock子系统-1-初探

摘要: 基于msm-5.4 一、memblock简介 现实的物理内存是被截的一段一段的了,并不是一马平川的。伙伴系统要进行初始化,就需要知道哪些区域是可用的,哪些区域已经被占用了、被保留了,剩余的才可以用于伙伴系统的初始化。因此需要一个早期的内存管理机制,即 memblock 机制. 全局变量: struc 阅读全文

posted @ 2024-07-03 10:20 Hello-World3 阅读(192) 评论(0) 推荐(0) 编辑

2024年7月2日

内存管理-13-CMA内存-1-初探

摘要: 基于msm-5.4 关键词 cma_alloc/cma_release MIGRATE_ISOLATE MIGRATE_CMA 一、概述 1. CMA简介 CMA(Contiguous Memory Alloctor)主要用于分配大块连续的物理内存。伙伴系统能分配的最大连续物理内存块是2^10,即一 阅读全文

posted @ 2024-07-02 21:00 Hello-World3 阅读(479) 评论(0) 推荐(0) 编辑

内存管理-11-buddy伙伴子系统-2-Per-CPU页帧缓存

摘要: 基于msm-5.4 一、概述 1. 实现背景 buddy子系统管理的物理页面,绝大多数都是放在 zone::free_area[] 中的链表中,少部分放在 zone::lowmem_reserve[] 中。还有少量页面放在zone::__percpu pageset 这个每CPU变量中,每种迁移类型 阅读全文

posted @ 2024-07-02 14:43 Hello-World3 阅读(69) 评论(0) 推荐(0) 编辑

内存管理-11-buddy伙伴子系统-1-初探

摘要: 基于msm-5.4 一、伙伴系统概述 1. 简介 伙伴系统是物理内存的三大管理机制之一,另外两个是slab缓存和per-cpu页帧缓存。##### 管理物理内存实际上就是管理 page 结构,将page添加到不同链表上进行管理。当用户申请内存的时候,从链表上拿一个page返还给用户,然后用户根据pa 阅读全文

posted @ 2024-07-02 14:40 Hello-World3 阅读(93) 评论(0) 推荐(0) 编辑

2024年7月1日

内存管理-0-开篇

摘要: 一、什么是内存管理 1. 基础内存管理可以大致分为5块 (1) 物理内存管理 node、zone、page、buddy-system、slab (2) 虚拟内存管理 虚拟内存分用户空间和内核空间,用户空间又分为很多段(代码段、数据段、栈、堆、mmap映射区、动态共享库等等); 内核空间也是分为很多区 阅读全文

posted @ 2024-07-01 16:24 Hello-World3 阅读(40) 评论(0) 推荐(0) 编辑

2024年6月24日

Linux设备树(5)—实现

摘要: 一、DeviceTree简介 1. 将内核当做一个黑盒,那么其输入参数应该包括: (1) 识别platform的信息(2) runtime的配置参数(3) 设备的拓扑结构以及特性 对于嵌入式系统,在系统启动阶段,bootloader会加载内核并将控制权转交给内核,此外,还需要把上述的三个参数信息传递 阅读全文

posted @ 2024-06-24 18:39 Hello-World3 阅读(115) 评论(0) 推荐(0) 编辑

2024年6月19日

内存管理-6-虚拟内存相关结构体

摘要: 基于msm-5.4 一、struct mm_struct 1. 简介 内嵌在 task_struct 结构中,表示一个进程虚拟地址空间。 2. 成员介绍 //include/linux/mm_types.h struct mm_struct { struct { struct vm_area_str 阅读全文

posted @ 2024-06-19 16:15 Hello-World3 阅读(71) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 10 ··· 67 下一页

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示