
内存管理
Arrow
在技术上具有Arrow一样的钉子精神
展开
-
Kernel 3.0.8 内存管理函数
1. 内存分配函数相关代码如下:#define alloc_pages(gfp_mask, order) alloc_pages_node(numa_node_id(), gfp_mask, order)#define alloc_page_vma(gfp_mask, vma, addr) alloc_pages(gfp_mask, 0)#define alloc_page(g原创 2012-01-18 11:50:20 · 3194 阅读 · 0 评论 -
machine_desc结构体
1. 简介 内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架构相关部分的初始化。 machine_desc结构体通过MACHINE_START宏来初始化,在代码中, 通过在start_kernel->setup_arch中调用setup_machine_fd原创 2013-02-25 15:00:51 · 6620 阅读 · 0 评论 -
Linux内存管理--物理内存分配
1. First Fit分配器 First Fit分配器是最基本的内存分配器,它使用bitmap而不是空闲块列表来表示内存。在bitmap中,如果page对应位为1,则表示此page已经被分配,为0则表示此page没有被分配。为了分配小于一个page的内存块,First Fit分配器记录了最后被分配的PFN (Page Frame Number)和分配的结束地址在页内的偏移量。随后小的内原创 2013-03-17 09:20:40 · 6958 阅读 · 0 评论 -
Linux内存管理--基本概念
1. Linux物理内存三级架构 对于内存管理,Linux采用了与具体体系架构不相关的设计模型,实现了良好的可伸缩性。它主要由内存节点node、内存区域zone和物理页框page三级架构组成。 • 内存节点node 内存节点node是计算机系统中对物理内存的一种描述方法,一个总线主设备访问位于同一个节点中的任意内存单元所花的代价相同,而访问任意两个不同节点原创 2013-03-01 09:29:57 · 28799 阅读 · 8 评论