
服务器
文章平均质量分 93
Truman楚门
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Buddy system
Linux引入了伙伴算法(buddy system)来解决内存外碎片问题。该算法将物理内存划分为2^n大小的块,并按大小组织成不同阶(order)的链表。分配时,先查找合适阶的链表,若没有则从高阶分割出所需块;释放时,会检查相邻空闲块是否为伙伴关系,是则合并成高阶块。核心数据结构free_area数组管理各阶空闲链表,通过__rmqueue_smallest等函数实现分配,释放时通过合并减少碎片。算法还支持不同迁移类型(MIGRATE_TYPES)的内存管理,并包含fallback机制处理分配失败情况。原创 2025-08-11 16:19:19 · 904 阅读 · 0 评论 -
Linux内核对物理内存组织与分配
Linux物理内存管理采用分层结构:NUMA架构下引入node概念,每个node对应一个物理内存节点,由pglist_data结构表示。node进一步划分为多个zone(如DMA、NORMAL等),由zone结构描述。物理内存以page为单位管理,通过mem_map全局数组跟踪所有页框。Linux采用四种机制管理不同粒度的内存分配:伙伴系统处理大块连续内存(>32K),per-CPU页缓存优化小内存分配(≤32K),slab缓存管理小块对象(<4K),vmalloc机制提供虚拟连续的内存空间。这原创 2025-08-11 16:12:37 · 778 阅读 · 0 评论 -
Cache和内存一致性
本文主要探讨缓存一致性与内存一致性的区别。内存(DIMM)是物理存储设备,而缓存(CPU芯片内的L1-L3)是高速暂存区,采用分级结构。缓存一致性通过MESI协议(四种状态)确保多核CPU访问同一数据时的正确性,分为Snooping和Directory两种模式。内存一致性则涉及NUMA架构,解决多处理器访问内存的性能问题,其中cc-NUMA在NUMA基础上支持缓存一致性。文章详细对比了二者的工作原理和实现机制,帮助理解计算机系统中的这两种重要一致性概念。原创 2025-08-11 16:02:41 · 466 阅读 · 0 评论 -
一文读懂NPEM(Native PCIe Enclosure Management)
本文从PCIe协议即软件的角度和硬件实现的角度,详细介绍讨论了NPEM(Native PCIe Enclosure Management)。原创 2024-01-24 11:19:31 · 3497 阅读 · 4 评论