page_cgroup_init();
这个函数是容器组的页面内存分配。
mem_init();
这个函数是标记那些内存可以使用,并且告诉系统有多少内存可以使用,当然是除了内核使用的内存以外。
enable_debug_pagealloc();
这个函数是设置内存分配是否需要输出调试信息,如果调用这个函数,当分配内存时,不会输出一些相关的信息。
cpu_hotplug_init();
这个函数是初始化CPU热插拔的功能,所谓CPU热插拔的功能,就是对多个CPU进行动态启用和关闭的功能。比如有4个CPU,当低功耗时可以只开启一个CPU,如果高性能时,就可以把4个CPU同时开启,可以在性能与功耗上达到一个动态的调节。
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:9073204@qq.com
//蔡军生 2012-8-19
//培训文档100元一份
分享到:
相关推荐
Linux内核函数Start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置。这些动作有的是公共的,有的则是需要配置的才会执行的。本文介绍了在start_kernel()函数中的一些功能。
Daniel Jslin教授分析linux kernel 中的start_kernel详细过程。by the way.可以关注我在csdn上关于linux kernel的课程https://edu.csdn.net/course/detail/9089
arm linux 从入口到start_kernel 代码分析 第四部分
arm linux 从入口到start_kernel 代码分析
很好的linux启动代码分析 LINUX , start_kernel , 启动代码 linux kernel 从入口到start_kernel 的代码分析.rar 104.59 KB, 下载次数: 31 , 下载积分: 资产 -2 信元, 下载支出 2 信元
arm linux 从入口到start_kernel 代码详细分析.doc
该文档描述了linux 内核内存管理部分的相关分析,从start_kernel入手,注重代码分析。
start_kernel流程图 linux2.6 内核支持两种格式的 initrd,一种是 image-initrd,其核心文件就是 /linuxrc。另外一种是cpio-initrd,使用 cpio 工具生成,其核心文件不再是 /linuxrc,而是 /init。尽管 linux2.6...
linux内核从start_kernel到init.pdf
arm linux 从入口到start_kernel 代码分析 第六部分
arm linux 从入口到start_kernel 代码分析 第5部分
arm linux 从入口到start_kernel 代码分析 第7部分
arm linux 从入口到start_kernel 代码分析第三部分
第一部分从Linux系统程序入口地址_start开始直到调用start_kernel函数;第二部分从start_kernel函数开始直到使用kernel_thread函数创建init进程。 本文件的代码分析将从第二次引导,即start_kernel()开始,直到mem_...
打印机驱动 START_PLQ6_OKI5_Drvsky打印机驱动 START_PLQ6_OKI5_Drvsky打印机驱动 START_PLQ6_OKI5_Drvsky打印机驱动 START_PLQ6_OKI5_Drvsky打印机驱动 START_PLQ6_OKI5_Drvsky打印机驱动 START_PLQ6_OKI5_Drvsky...