
linux 内存管理
王wwww
这个作者很懒,什么都没留下…
展开
-
linux上构建GFP_ZONE_TABLE
当内核分配内存时,需要指定gfp flag, 内核通过gfp标志判断从哪个zone分配内存。例如kmalloc(size_t size, gfp_t flags). 在linux中存在ZONE_DMA, ZONE_DMA32, ZONE_NORMAL, ZONE_HIGHMEM, ZONE_MOVABLE几个zone。 由于gfp_t 低4位,共有2^4=16中情况,而linux规定了低...原创 2019-05-09 18:48:34 · 898 阅读 · 0 评论 -
linux 3个内存模型(flat memory model、discontiguous memory model、sparse memory model)
linux内核支持3中内存模型,分别是flat memory model、discontiguous memory model和sparse memory model。所谓memory model,就是在操作系统层面,用什么样的方式来管理这些物理内存。 1 flat memory model 如果从系统中任意一个处理器角度看,当它访问物理内存时,物理地址空间是一个连续的,没有空洞的地址空...原创 2019-05-25 15:46:28 · 1978 阅读 · 0 评论 -
物理内存探测和memblock分配器初始化和分配
linux内存管理,总的来说,分为3个阶段,分别是: memblock/bootmem分配器初始化 Buddy 系统初始化 Slab/slub分配器初始化 为什么要分为3个阶段呢?由于系统在初始化最初阶段,buddy系统和slab分配器都还未初始化完成,这时候内核分配内存,需要一种方式来分配物理内存,linux系统最初提供bootmem分配器分配内存,后续提供了memblock分配器...原创 2019-05-18 18:08:54 · 1047 阅读 · 1 评论