当前位置: 首页> 汽车> 新车 > 建筑设计规范网站_重庆公司注销流程_提升关键词排名seo软件_不受国内限制的浏览器下载

建筑设计规范网站_重庆公司注销流程_提升关键词排名seo软件_不受国内限制的浏览器下载

时间:2025/7/8 23:36:34来源:https://blog.csdn.net/m0_64014551/article/details/145077450 浏览次数: 0次
建筑设计规范网站_重庆公司注销流程_提升关键词排名seo软件_不受国内限制的浏览器下载

【Linux】【内存】Buddy内存分配基础 NUMA架构

NUMA架构

在 NUMA 架构中,计算机的多个 CPU 被划分为不同的处理单元,每个处理单元有一个本地内存。这些内存被称为内存节点(memory node)。处理器尽量访问自己的本地内存

node_data[]

全局数组用来存储pg_data_t 也就是内存结点数据
node_data[0]访问的就是第一个memory node(内存结点)

pg_data_t

Linux 使用 pg_data_t 结构体来表示每个memory node(内存节点)的信息,并将其保存在全局数组node_data[]中。为了让内核能高效地管理和调度内存

struct pg_data_t *node_data[MAX_NUMNODES];

内核将memory node划分为不同的zone(区域)

区域作用
DMA zone硬件直接内存访问区域
normal zone普通区域
high memory zone针对于32位系统 目前基本用不到
struct pg_data_t {struct zone *node_zones[MAX_NR_ZONES];   // 保存该节点上所有内存区域(zone)的指针unsigned long node_id;                    // 节点的 ID// 其他节点相关信息
};

zone

每一个zone(区域)里面均有自己的free_area Buddy内存分配算法主要就是针对于free_area 区域进行管理的

struct zone
{/* free areas of different sizes */struct free_area        free_area[MAX_ORDER];
};

free_area

每一个free_area(这里是按照2的阶数进行区分free_area) 里面有自己的free_list[] ,free_list[] 来确保这块内存区域的状态 是否是可更改或者不可更改

struct free_area {struct list_head	free_list[MIGRATE_TYPES];//迁移类型 会根据这个类型区分不同内存页面unsigned long		nr_free;
};

free_list

free_list 通常是用来存储当前系统中所有可用(即空闲)的内存块的链表。free_list 的管理是先通过 区分不同状态(如moveable、unmoveable,等),然后再将具有相同状态的内存页通过双向链表连接起来。

参考文章:
https://mp.weixin.qq.com/s?__biz=Mzg4NDQ0OTI4Ng==&mid=2247487669&idx=1&sn=04a41539fcb0c6a56675d6607e53b6ff&chksm=cfb959dcf8ced0cac13acc54a764a69447f41122924140286c2157bf1324dbc17fdff9916ca4&scene=21#wechat_redirect

关键字:建筑设计规范网站_重庆公司注销流程_提升关键词排名seo软件_不受国内限制的浏览器下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: