本文主要是介绍CGROUP浅析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、CGROUP数据结构分析
struct cgroup
struct cgroupfs_root
struct css_set
struct cgroup_subsys
cgroup:把一组任务和设定特定参数集的子系统资源组合起来;
subsystem:利用cgroup的分组机制对待不同的任务组采用不同的对待机制,subsystem不一定是实际存在的硬件资源,也可以是虚拟资源;
hierarchy:不同的cgroup以树状的形式组合在一起,每一个任务都链接到树中特定的cgroup上面,也链接到特定的subsystem集合中;每一个subsystem都以系统特定的状态绑定到树中的每一个cgroup;每一个hierarchy都有一个CGROUP文件系统的实例与之相连;
任何时候都可能存在多个活跃的hierarchy,每一个hierarchy都是所有任务在系统中的一个分区;
每一个任务都绑定到一个特定的struct cgroup_subsys_state[]数组,任务所在的CGROUP也指向该struct cgroup_subsys_state[]数组;
CGROUP没有增加新的系统调用,所有的控制都通过CGROUP文件系统实现;
当一个CGROUP文件系统被卸载时,顶层CGROUP下面仍有已创建的子CGROUP,则该hierarchy仍然处于活跃状态;
所有的struct cgroup_subsys定义都可以在cgroup_subsys.h中查看;
这篇关于CGROUP浅析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!