cgroup学习(三)——伪文件
来源:互联网 发布:淘宝买的保健品 编辑:程序博客网 时间:2024/06/07 13:56
伪文件
cgroup是通过VFS与上层进行交互的,它定义了自己的cgroup文件系统,同时也定义了哪些文件,这些文件也是最终影响着cgroup行为,这一节我们介绍一下,每个子系统的伪文件定义在哪里?以及内核如何去操作这些伪文件。下面我们通过一张表来展示这些关系:
Subsys
Files
To_css
locate
cpu_cgroup_subsys
cpu_files
task_cgroup
sched.c
cpuset_subsys
Files
cpuset
cpuset.c
mem_cgroup_subsys
mem_cgroup_files
mem_cgroup
memcontrol.c
blkio_subsys
blkio_files
blkio_cgroup
blk_cgroup.c
freezer_subsys
Files
freezer
cgroup_freezer.c
Subsys表示每个子系统的全局静态变量,该变量定义了该子系统的name,在该子系统上create,destroy,fork,attach cgroup(task)时的相应操作,以及populate生成哪些文件等。生成的文件定义在files全局静态变量里,这个变量是一个数组,包括了该子系统的所有子文件,以及它们的读写操作。我们在前一章介绍了cgroup_subsys_state结构,它是每个子系统的控制体的一个抽象类,to_css字段就是每个子系统控制体的实现类,它也保存了该子系统的下的相应参数(伪文件值),可以说该结构才是cgroup最重要的结构,也是真正对group起作用的结构。除了上面各个子系统files定义的文件外,它们公用的files定义在cgroup.c的files[](同样它也定义了对这些文件的open,write,release,read操作),包括最重要的tasks文件,它保存了该cgroup管理的所有tasks,对该文件的write操作最终将调用相应的subsys的attach操作。
知道了这几个变量及结构就可以很快定位到相应操作的代码位置,对于理解后面的每个子系统的实现也是很有帮助。
- cgroup学习(三)——伪文件
- cgroup学习(三)——伪文件
- cgroup学习(三)——伪文件 && (四)——mount hierarchy
- cgroup的学习(一)——what cgroup?
- cgroup学习(二)——cgroup框架结构
- cgroup学习(五)——create new cgroup
- cgroup学习(二)——cgroup框架结构
- cgroup的学习(一)——what cgroup?
- cgroup学习(五)——create new cgroup
- cgroup的学习(一)——what cgroup? && (二)——cgroup框架结构
- cgroup学习(五)——create new cgroup && (六)——attach task
- linux cgroup代码学习(1)——cgroup介绍
- cgroup学习(四)——mount hierarchy
- cgroup学习(六)——attach task
- cgroup学习(七)——cpu子系统
- cgroup学习(八)——CPUSET子系统
- cgroup学习(四)——mount hierarchy
- cgroup学习(六)——attach task
- 最简单的排序,冒泡排序
- C++中的全局变量使用
- 中国的互联网技术企业何时走向世界
- 放松自我.冬日独游
- 一些感想--关于心无畏惧
- cgroup学习(三)——伪文件
- linux下scp命令详解
- 软件项目管理系统-项目管理-模块定义-提问答疑
- EJB3.0学习笔记---多接口的时,实现类处理方法:
- ASIHTTPRequest 详解
- myeclipse 8.6 安装freemarker_ide
- 关于Android中android.content.res.Resources$NotFoundException: String resource ID #0x9这类问题的解决
- 支配值数目(GT_COUNT.C)
- linux内核中的copy_to_user和copy_from_user(二)—图解__arch_copy_from_user