cgroup子系统3_freezer子系统

freezer子系统用于挂起和恢复cgroup中的进程。freezer有一个控制文件:freezer.state,将FROZEN写入该文件,

可以将cgroup中的进程挂起,将THAWED写入该文件,可以将已挂起的进程恢复。通过遍历cgroup中的进程,对其freeze或者wake_up。

freeze操作通过freeze框架实现,设置进程的TIF_SIGPENDING函数(伪信号),唤醒进程,然后进程在返回用户态时,信号处理入

口get_signal_to_deliver中通过try_to_freeze冻结进程(设置进程为TASK_UNINTERRUPTABLE,然后重调度)

参考博客:

1.freezer子系统

2.linux新内核的freeze框架以及意义

时间: 2024-10-22 05:57:06

cgroup子系统3_freezer子系统的相关文章

cgroup子系统2_devices子系统

devices子系统用于控制cgroup中所有进程可以访问哪些设备,三个控制文件:devices.allow,devices.deny,devices.list. devices.allow用于指定cgroup中的进程可以访问的设备, devices.deny用于指定cgroup中的进程不能访问的设备, devices.list用于报告cgroup中的进程访问的设备.devices.allow文件中包含若干条目,每个条目有四个字段:type.major.minor 和 access. type.

cgroup子系统1_cpu子系统

cpu子系统用于控制cgroup中所有进程可以使用的cpu时间片,通过组调度(将task_group作为调度实体)来实现. 参考博客: 1.cpu子系统 2.Linux内核之CFS调度和组调度

网络子系统38_ip子系统初始化

//ip子系统初始化 //调用路径inet_init->ip_init //包括路由子系统的初始化,inet_peer缓存的初始化 1.1 void __init ip_init(void) { dev_add_pack(&ip_packet_type);//添加l3协议处理函数 ip_rt_init(); //路由子系统初始化 inet_initpeers();//inet_peer缓存 } //调用路径ip_init->inet_initpeers //inet_peer缓存初始化

网络子系统11_arp子系统初始化

// 1.邻居: // 网络中的邻居指连接到同一个LAN中,且至少有一个接口有相同的ip子网配置 // 2.邻居协议的作用: // 通过l3地址获取主机的l2地址 // 3.通过l3获取l2地址办法: // 3.1 点到点连接,此时不需要l2地址 // 3.2 特殊的l3地址,通过简单的规则获取l2的映射 // 3.3 多播地址通过简单的转换规则转换为l2地址 // 3.4 ip中使用arp协议完成映射 // arp协议的初始化 // 向内核邻居子系统注册arp地址解析协议. // 调用路径:i

【翻译】linux中cgroups内存控制子系统memory.oom_control文件

翻译自:redhat文档的部分内容. 新linux内核cgroup的memory子系统提供memory.oom_control来开关cgroup中oom killer,并且提供了消息接口. memory.oom_control 包含一个标志(0或1)来开启或者关闭cgroup的OOM killer.如果开启(1),任务如果尝试申请内存超过允许,就会被系统OOM killer终止.OOM killer在每个使用cgroup内存子系统中都是默认开启的.如果需要关闭,则可以向memory.oom_co

手把手教你写Linux设备驱动---input子系统(一)--input事件应用程序的读写实现(基于友善之臂4412开发板)

     这节,我们来说下input子系统,什么是input子系统? input子系统就是输入子系统.      输入子系统是 Linux内核用于管理各种输入设备 (键盘,鼠标,遥控杆,书写板等等 )的部分,用户通过输入子系统进行内核,命令行,图形接口之间的交换.输入子系统在内核里实现,因为设备经常要通过特定的硬件接口被访问 (例如串口, ps/2, usb等等 ),这些硬件接口由内核保护和管理.内核给用户导出一套固定的硬件无关的 input API,供用户空间程序使用. 输入子系统分为三块:

《Docker进阶与实战》——2.3节Cgroup介绍

2.3 Cgroup介绍2.3.1 Cgroup是什么 Cgroup是control group的简写,属于Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用,也就是做资源QoS,这些资源主要包括CPU.内存.block I/O和网络带宽.Cgroup从2.6.24开始进入内核主线,目前各大发行版都默认打开了Cgroup特性. 从实现的角度来看,Cgroup实现了一个通用的进程分组的框架,而不同资源的具体管理则是由各个Cgroup子系统实现的.截止到内核4.1版本,Cgroup

Linux的Cgroup

为什么要有cgroup Linux系统中经常有个需求就是希望能限制某个或者某些进程的分配资源.也就是能完成一组容器的概念,在这个容器中,有分配好的特定比例的cpu时间,IO时间,可用内存大小等.于是就出现了cgroup的概念,cgroup就是controller group,最初由google的工程师提出,后来被整合进Linux内核中. Cgroup是将任意进程进行分组化管理的Linux内核功能.cgroup本身提供将进程进行分组化管理的功能和接口的基础结构. 而后的Android操作系统也就凭

Linux cgroup资源隔离各个击破之 - cpu隔离1

Linux cgroup 有两个子系统支持CPU隔离.一个是cpu子系统,另一个是cpuset子系统. cpu子系统根据进程设置的调度属性,选择对应的CPU资源调度方法 .1. 完全公平调度 Completely Fair Scheduler (CFS)原理详见https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txtCFS用于处理以下几种进程调度策略SCHED_OTHERSCHED_BATCHSCHED_IDL