01 2021 档案

(五)Linux进程调度-CFS调度器_学习笔记
摘要:一、学习笔记 说明:Kernel版本:4.14 1. 概述(1) Completely Fair Scheduler,完全公平调度器,用于Linux系统中普通进程的调度。(2) CFS采用了红黑树算法来管理所有的调度实体 sched_entity,算法效率为O(log(n))。CFS跟踪调度实体sc 阅读全文

posted @ 2021-01-28 00:54 Hello-World3 阅读(1051) 评论(0) 推荐(0) 编辑

(四)Linux进程调度-组调度及带宽控制_学习笔记
摘要:一、学习笔记 说明:Kernel版本:4.14 1. 概述 组调度(task_group)是使用Linux cgroup(control group)的cpu子系统来实现的,可以将进程进行分组,按组来分配CPU资源等。比如,看一个实际的例子:A和B两个用户使用同一台机器,A用户16个进程,B用户2个 阅读全文

posted @ 2021-01-25 01:00 Hello-World3 阅读(845) 评论(0) 推荐(0) 编辑

(三)Linux进程调度器-进程切换_学习笔记
摘要:一、学习笔记 说明:Kernel版本:4.14 1. 概述进程切换:内核将CPU上正在运行的进程挂起,选择下一个进程来运行。ARM架构中,CPU上一次只能运行一个任务,内核需要为任务分配运行时间来进行调度,以便同时能处理多个任务请求。如下图所示: 当进行任务切换的时候,思考下两个问题: (1) 怎样 阅读全文

posted @ 2021-01-24 23:25 Hello-World3 阅读(742) 评论(0) 推荐(0) 编辑

(二)Linux进程调度器-CPU负载_学习笔记
摘要:一、学习笔记 说明:Kernel版本:4.14 1. 概述 CPU负载(cpu load)指的是某个时间点进程对系统产生的压力。来张图来类比下(参考Understanding Linux CPU Load) (1) CPU的运行能力,就如大桥的通行能力,分别有满负荷,非满负荷,超负荷等状态,这几种状 阅读全文

posted @ 2021-01-24 17:54 Hello-World3 阅读(893) 评论(0) 推荐(0) 编辑

(一)Linux进程调度器-基础_学习笔记
摘要:一、学习笔记 Kernel版本:4.14 1. 概述从这篇文章开始,将开始Linux调度器的系列研究了。本文也会从一些基础的概念及数据结构入手,先打造一个粗略的轮廓,后续的文章将逐渐深入。 2. 概念2.1 进程 (1) 从教科书上,我们都能知道:进程是资源分配的最小单位,而线程是CPU调度的的最小 阅读全文

posted @ 2021-01-19 01:36 Hello-World3 阅读(835) 评论(0) 推荐(0) 编辑

Cgroup内核文档翻译(8)——Documentation/cgroup-v1/pids.txt
摘要:Process Number Controller 抽象 进程号控制器用于允许cgroup层次结构在达到一定限制后停止任何新任务被 fork() 或 clone() 。 由于在不达到任何kmemcg限制的情况下达到任务限制很简单,因此PID是基本资源。 因此,必须通过限制cgroup中任务数量的资源 阅读全文

posted @ 2021-01-19 00:48 Hello-World3 阅读(358) 评论(0) 推荐(0) 编辑

Cgroup内核文档翻译(6)——Documentation/cgroup-v1/devices.txt
摘要:设备白名单控制器(Device Whitelist Controller) 1.说明: 实现一个cgroup来跟踪并强制执行对设备文件的打开和mknod限制。 设备cgroup将设备访问白名单与每个cgroup相关联。 白名单条目具有4个字段。 'type' 是 a (all), c (char), 阅读全文

posted @ 2021-01-10 23:43 Hello-World3 阅读(520) 评论(0) 推荐(0) 编辑

Cgroup内核文档翻译(4)——Documentation/cgroup-v1/cpuacct.txt
摘要:CPU记帐控制器(CPU Accounting Controller) CPU记帐控制器用于使用cgroup对任务进行分组,并计算这些任务组的CPU使用率。CPU记帐控制器支持多层次结构组。 记帐组会累积其所有子组的CPU使用率以及直接存在于该组中的任务。可以通过首先挂载cgroup文件系统来创建记 阅读全文

posted @ 2021-01-08 00:46 Hello-World3 阅读(315) 评论(0) 推荐(0) 编辑

Cgroup内核文档翻译(3)——Documentation/cgroup-v1/cgroups.txt
摘要:CGROUPS 由Paul Menage <menage@google.com>根据Documentation/cgroup-v1/cpusets.txt提供 来自cpusets.txt的原始版权声明:部分版权所有(C)2004 BULL SA。部分版权所有(c)2004-2006 Silicon 阅读全文

posted @ 2021-01-04 01:24 Hello-World3 阅读(1119) 评论(0) 推荐(0) 编辑

Cgroup内核文档翻译(2)——Documentation/cgroup-v1/blkio-controller.txt
摘要:Block IO Controller 总览 cgroup子系统 "blkio" 实现了块io控制器。 在存储层次结构中的叶节点以及中间节点处似乎都需要各种类型的IO控制策略(如比例BW,最大BW)。 计划是将相同的基于cgroup的管理界面用于blkio控制器,并根据用户选项在后台切换IO策略。 阅读全文

posted @ 2021-01-03 17:46 Hello-World3 阅读(931) 评论(0) 推荐(0) 编辑

Cgroup内核文档翻译(1)——Documentation/cgroup-v1/00-INDEX
摘要:00-INDEX - 这个文件blkio-controller.txt -块IO控制器的说明,实现和使用细节。cgroups.txt -控制组的定义,实现细节,示例和API。cpuacct.txt -CPU记帐控制器; 为任务组的任务记录CPU的使用率。cpusets.txt -对cpusets功能 阅读全文

posted @ 2021-01-03 17:36 Hello-World3 阅读(252) 评论(0) 推荐(0) 编辑

系统suspend流程介绍
摘要:一、auto suspend介绍 二、auto sleep介绍 三、关键函数介绍 1. pm_wakeup_pending 用于在整个休眠流程中时刻监测是否有唤醒事件产生,然后中止休眠流程,实现如下: bool pm_wakeup_pending(void) { unsigned long flag 阅读全文

posted @ 2021-01-03 00:09 Hello-World3 阅读(2057) 评论(0) 推荐(0) 编辑

man 1 ps 翻译和补充
摘要:名称 ps-报告当前进程的快照。 概要 ps [选项] 描述 ps显示选择的活动进程信息。 如果要重复更新所选内容和显示的信息,请改用top(1)。 此版本的ps接受几种选择: 1 UNIX选项,可以分组,并且必须在破折号之前。 2个BSD选项,可以分组,并且不能带破折号。 3个GNU长选项,前面带 阅读全文

posted @ 2021-01-02 00:48 Hello-World3 阅读(257) 评论(0) 推荐(0) 编辑

进程学习杂项汇总
摘要:1. 进程状态描述,即 task_struct 的 state 成员取值 // include/linux/sched.h /* Per process flags */ #define PF_IDLE 0x00000002 /* 我是一个空闲线程*/ /* I am an IDLE thread 阅读全文

posted @ 2021-01-01 23:18 Hello-World3 阅读(551) 评论(0) 推荐(0) 编辑

进程调度杂项汇总
摘要:1. sched class与sched policy的对应关系 完全公平调度:SCHED_NORMAL SCHED_BATCH实时进程调度:SCHED_FIFO SCHED_RR空闲调度:SCHED_IDLEDeadline调度: SCHED_DEADLINE //kernel/sched/sch 阅读全文

posted @ 2021-01-01 23:07 Hello-World3 阅读(171) 评论(0) 推荐(0) 编辑

导航