[linux内存管理] 第024篇 slab内存分配器概述 2周前查看 评论
[linux内存管理] 第024篇 slab内存分配器概述

本文主要介绍了Linux内核中的SLUB内存分配器,它是一种针对内核对象进行高效内存分配和回收的机制。以下是文章摘要: SLUB分配器通过以页为单位分配内存,减少了内存浪费,但提高了分配效率。它使用 struct kmem_cache 数据结构来管理每种类型的内核对象,通过批量操作、无锁路径和每CPU本地缓存实现高效与低碎片。文章详细介绍了SLAB分配器中的核心数据结构,包括 struct kmem_cache、slab_flags_t、struct kmem_cache_cpu 和 struct kmem_cache_node,以及它们的作用和关键成员。 SLUB通过减少全局锁的使用,提高多核并发安全性,并通过统计和调优来优化性能。此外,文章还解释了 struct page 中用于SLUB的部分,以及SLUB的对象空间布局。 总体来说,SLUB分配器通过优化内存分配策略,提高了Linux内核的内存利用率和性能。

任务调度器:从入门到放弃(一) 3周前查看 评论
任务调度器:从入门到放弃(一)

本文是关于Linux内核调度器的科普文章,作者XiaoGang通过内部项目复盘中的实际问题,引出了调度器的重要性和工作原理。文章主要内容包括: 1. 调度器的作用:CPU资源有限,但任务数量众多,调度器通过分时复用让用户感觉多个线程同时运行。 2. Linux的调度类:包括stop、deadline、realtime、fair和idle等,各有不同的优先级。 3. RT调度类与fair调度的区别:RT调度类按照优先级顺序选择任务,而fair调度类采用虚拟运行时间(virtual runtime)来决定任务的调度。 4. 调度器管理的任务:只有处于TASK_RUNNING状态的进程在调度器的管理范围内。 5. 比例调度的问题:通过大量低优先级线程可能占用较高资源配额。 6. cgroup的作用和问题:cgroup通过cpu.shares控制资源配额,解决比例调度问题,但同时也带来了一些新的挑战。 文章以实例和实验说明问题,深入浅出地解释了调度器的复杂机制。下周将更新续篇,继续探讨相关话题。

【深入内核】linux ftrace详解 4周前查看 评论
【深入内核】linux ftrace详解

Ftrace(Function Tracer)是Linux内核自带的轻量级跟踪框架,用于记录内核内部事件和函数调用,帮助开发者分析系统执行路径、时序瓶颈和异常行为。Ftrace支持多种trace类型,包括function、function_graph、blk等,可以通过静态插桩和动态插桩两种方式实现。Ftrace可以通过配置内核参数和挂载debugfs文件系统来使能,并通过trace目录下的文件进行操作和管理。常见的trace event包括sched_switch、sched_wakeup、power/suspend_resume等,可以用于调试和分析系统性能和延迟问题。

简述
在万物之间穿行,也在自我之间渡过。
  • liuqi20328@gmail.com
  • 生涯
  • 行业嵌入式
  • 职业Linux/Android内核工程师
  • 人生
  • 生活角色浪子、父母的娃、我夫人的老公
  • 社会角色公司职员、中华人民共和国公民
  • 类型
  • 星座 双子座
  • 生肖
  • 血型O
  • 数据
  • 发表文章123篇
  • 发表评论4个
  • 星球加热3172度
  • 最近的心情能量
  • 地图数据来源于高德地图
  • intj 建筑师
    intj 建筑师
    • 外向内向
    • 远见现实
    • 理性感受
    • 评判展望
    • 坚决起伏
  • 了解更多信息