zoukankan      html  css  js  c++  java
  • [linux内存]系统启动过程中的内存管理

    内核启动过程的内存管理
    1,memblock机制
     kernel/arm/mm/memblock.c arm_memblock_init()函数
     系统刚启动的时候不是所有的内存都是可以作为分配使用的,比如有些内存是默认给rootfs或者kernel使用的,memblock机制
     作用就是决定哪些内存是可以分配的,哪些是默认已经被使用的。
     涉及的三个主要API是memblock_init() memblock_reserve()  memblock_add()函数

    2,bootmem机制
     http://blog.csdn.net/gdt_a20/article/details/7229329
       bootmem机制用于在内核启动过程早期分配内存,该分配器使用位图来管理所有的低端内存,一个bite代表一个物理页帧,
       在需要内存的时候,分配器逐位扫描位图,直到找到一个能提供足够连续页的位置,
       bootmem涉及的数据结构是struct bootmem_data数据结构,每个节点有一个这样的数据结构

    [cpp] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1.  30 typedef struct bootmem_data {  
    2.  31         unsigned long node_min_pfn;  
    3.  32         unsigned long node_low_pfn;  
    4.  33         void *node_bootmem_map;  
    5.  34         unsigned long last_end_off;  
    6.  35         unsigned long hint_idx;  
    7.  36         struct list_head list;  
    8.  37 } bootmem_data_t;  
    9.     
    [cpp] view plaincopy在CODE上查看代码片派生到我的代码片
     
      1. bootmem机制的初始化函数是bootmem_init(),分配和回收内存的函数分别是alloc_bootmem*()和 free_bootmem*()  
  • 相关阅读:
    Makefile学习
    Tmux使用
    Linux进程管理学习资料
    Linux内存管理学习资料
    Python常用的软件包
    Docker 学习
    Intel处理器技术文档
    Firefly-RK3399笔记
    Linux Kernel API
    ARM 技术文档
  • 原文地址:https://www.cnblogs.com/zhiliao112/p/4251205.html
Copyright © 2011-2022 走看看