Android培训班(112)start_kernel函数9

page_cgroup_init();

这个函数是容器组的页面内存分配。


mem_init();

这个函数是标记那些内存可以使用,并且告诉系统有多少内存可以使用,当然是除了内核使用的内存以外。

enable_debug_pagealloc();

这个函数是设置内存分配是否需要输出调试信息,如果调用这个函数,当分配内存时,不会输出一些相关的信息。


cpu_hotplug_init();

这个函数是初始化CPU热插拔的功能,所谓CPU热插拔的功能,就是对多个CPU进行动态启用和关闭的功能。比如有4CPU,当低功耗时可以只开启一个CPU,如果高性能时,就可以把4CPU同时开启,可以在性能与功耗上达到一个动态的调节。

kmem_cache_init();

这个函数是初始化内核内存的缓存,当初始化完成之后,就可以使用通用内存缓存了。


debug_objects_mem_init();

这个函数是创建调试对象内存缓存,所以紧跟内存缓存初始化后面。


idr_init_cache();

这个函数是创建IDR机制的内存缓存对象。所谓的IDR就是整数标识管理机制(integerIDmanagement)。引入的主要原因是管理整数的ID与对象的指针的关系,由于这个ID可以达到32位,也就是说,如果使用线性数组来管理,那么分配的内存太大了;如果使用线性表来管理,又效率太低了,所以就引用IDR管理机制来实现这个需求。


setup_per_cpu_pageset();

这个函数是创建每个CPU的高速缓存集合数组。因为每个CPU都不定时需要使用一些页面内存和释放页面内存,为了提高效率,就预先创建一些内存页面作为每个CPU的页面集合。


//QQ:9073204 EMAIL:[email protected]

//蔡军生  2012-8-19

//培训文档100元一份


你可能感兴趣的:(Android培训班(112)start_kernel函数9)