• [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*()  
  • 相关阅读:
    杀毒软件工作原理
    IP地址
    网络操作系统功能和基本任务
    计算机网络技术知识点总结
    对称密钥密码体制的主要特点
    无线局域网(WLAN)
    文件传输协议(FTP)
    万维网(WWW)
    简单网络管理协议(SNMP)
    防火墙技术
  • 原文地址:https://www.cnblogs.com/zhiliao112/p/4251205.html
Copyright © 2020-2023  润新知