
┈┈【Linux进程管理与调度】
文章平均质量分 94
CHENG Jian
天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
展开
-
Perfetto for linux-使用 Perfetto 分析调度问题
title: Perfetto for linux-使用 Perfetto 分析调度问题date: 2020-11-21 22:40author: gatiemetags:- scheduler- linux- debugcategories:- schedulerthumbnail:blogexcerpt: Perfetto 工具是 Android 下一代全新的统一的 trace 收集和分析框架, 在 Android 9.0(API级别28)或更高版本的设备上, 可以使用 Syste.原创 2020-11-28 23:23:32 · 6615 阅读 · 0 评论 -
Systrace for Linux-使用 systrace 分析 linux & android 的调度问题
title: Systrace for Linux-使用 systrace 分析 linux & android 的调度问题date: 2020-11-21 20:22author: gatiemetags:- scheduler- linux- debugcategories:- schedulerthumbnail:blogexcerpt: 笔者在日常内核性能优化的工作中, 主要涉及 终端(Android) 和 服务器(Server) 和 嵌入式 (RTOS) 等多个场景,.原创 2020-11-28 23:14:20 · 3911 阅读 · 1 评论 -
Linux CFS调度器之唤醒WAKE_AFFINE 机制--Linux进程的管理与调度(三十一)
#1 wake_affine 机制select_task_rq_fair 选核其实是一个优选的过程, 通常会有限选择一个 cache-miss 等开销最小的一个根据 wake_affine 选择调度域并确定 new_cpu根据调度域及其调度域参数选择兄弟 idle cpu 根据调度域及其调度域参数选择兄弟 idle cpu根据调度域选择最深idle的cpu根据调度域选择最深idle的cpu find_idest_cpu在进程唤醒的过程中为进程选核时, wake_affine 倾向于原创 2020-05-24 15:41:15 · 5133 阅读 · 2 评论 -
深入理解 Linux Load Average
一直不解,为什么io占用较高时,系统负载也会变高,偶遇此文,终解吾惑。#1 load average介绍##1.1 load average 指标介绍uptime和top等命令都可以看到load average指标,从左至右三个数字分别表示1分钟、5分钟、15分钟的load average:uptime16:04:43 up 20 days, 6:08, 2 user...原创 2020-02-13 12:26:48 · 6198 阅读 · 0 评论 -
LinuxELF文件格式详解--Linux进程的管理与调度(十二)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-04 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的描述对象文件格式对象文件首先,你需要知道的是所谓对象文件(Object files)有三个种类: 可重定位的对象文件(Relocatable file)原创 2016-06-08 23:22:24 · 12896 阅读 · 0 评论 -
Linux进程管理与调度-之-目录导航
日期 内核版本 架构 作者 GitHub 优快云 2016-05-19 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度进程的描述 优快云 GitHub Linux进程描述符task_struct结构体详解–Linux进程的管理与调度(一) study/kernel/p原创 2016-05-19 19:57:29 · 36309 阅读 · 14 评论 -
Linux CFS调度器之唤醒抢占--Linux进程的管理与调度(三十)
======= 日期 内核版本 架构 作者 GitHub 优快云 2016-0729 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度CFS负责处理普通非实时进程, 这类进程是我们linux中最普遍的进程1 前景回顾1.1 CFS调度算法CFS调度算法的思想理想状态下每个进程原创 2016-07-29 19:37:20 · 5815 阅读 · 3 评论 -
Linux CFS调度器之task_tick_fair处理周期性调度器--Linux进程的管理与调度(二十九)
日期 内核版本 架构 作者 GitHub 优快云 2016-07-29 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度CFS负责处理普通非实时进程, 这类进程是我们linux中最普遍的进程1 前景回顾1.1 CFS调度算法CFS调度算法的思想理想状态下每个进程都能获得相同的时间原创 2016-07-29 19:35:45 · 6226 阅读 · 3 评论 -
Linux CFS调度器之队列操作--Linux进程的管理与调度(二十七)
日期 内核版本 架构 作者 GitHub 优快云 2016-07-29 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度CFS负责处理普通非实时进程, 这类进程是我们linux中最普遍的进程1 前景回顾1.1 CFS调度算法CFS调度算法的思想理想状态下每个进程都能获得相同的时间原创 2016-07-29 19:04:52 · 6663 阅读 · 2 评论 -
Linux进程内核栈与thread_info结构详解--Linux进程的管理与调度(九)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-03 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的描述前言为什么需要内核栈进程在内核态运行时需要自己的堆栈信息, 因此linux内核为每个进程都提供了一个内核栈kernel stack,struct原创 2016-06-03 11:21:20 · 25413 阅读 · 4 评论 -
Linux下进程的创建过程分析(_do_fork/do_fork详解)--Linux进程的管理与调度(八)
日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建 参照 分析Linux内核创建一个新进程的过程前言Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并原创 2016-06-02 20:27:07 · 25294 阅读 · 1 评论 -
Linux进程调度器概述--Linux进程的管理与调度(十五)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来.调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为原创 2016-06-17 14:50:16 · 26074 阅读 · 3 评论 -
Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-30 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度我们前面提到linux有两种方法激活调度器:核心调度器和一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU另一种是通过周期性的机制, 以固定的频率运行, 不原创 2016-07-10 18:10:39 · 19050 阅读 · 0 评论 -
Linux进程优先级的处理--Linux进程的管理与调度(二十二)
Linux进程优先级的处理 日期 内核版本 架构 作者 GitHub 优快云 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度1 前景回顾1.1 进程调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来.调度器面对的情形就是这样, 其原创 2016-06-20 10:46:27 · 20504 阅读 · 2 评论 -
Linux CFS调度器之负荷权重load_weight--Linux进程的管理与调度(二十五)
Linux CFS调度器之负荷权重load_weight 日期 内核版本 架构 作者 GitHub 优快云 2016-07-29 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度Linux内核使用CFS是来调度我们最常见的普通进程, 其所属调度器类为fair_sched_class原创 2016-07-29 18:19:45 · 9026 阅读 · 2 评论 -
Linux CFS调度器之pick_next_task_fair选择下一个被调度的进程--Linux进程的管理与调度(二十八)
日期 内核版本 架构 作者 GitHub 优快云 2016-07-29 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度CFS负责处理普通非实时进程, 这类进程是我们linux中最普遍的进程1 前景回顾1.1 CFS调度算法CFS调度算法的思想理想状态下每个进程都能获得相同的时间原创 2016-07-29 19:29:05 · 9253 阅读 · 10 评论 -
Linux CFS调度器之虚拟时钟vruntime与调度延迟--Linux进程的管理与调度(二十六)
日期 内核版本 架构 作者 GitHub 优快云 2016-07-29 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度CFS负责处理普通非实时进程, 这类进程是我们linux中最普遍的进程, 今天我们把注意力转向CFS的虚拟时钟1 前景回顾1.1 CFS调度器类Linux内核使原创 2016-07-29 18:34:03 · 13066 阅读 · 5 评论 -
Linux进程调度之CFS调度器概述--Linux进程的管理与调度(二十四)
Linux进程调度CFS调度器 日期 内核版本 架构 作者 GitHub 优快云 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度1 前景回顾1.1 进程调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来.调度器面对的情形就是这样原创 2016-07-29 18:03:31 · 7909 阅读 · 0 评论 -
Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)
Linux进程上下文切换过程context_switch详解 日期 内核版本 架构 作者 GitHub 优快云 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度前面我们了解了linux进程调度器的设计思路和注意框架周期调度器scheduler_tick通过li原创 2016-07-10 18:25:38 · 33995 阅读 · 3 评论 -
Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)
日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux-进程管理与调度进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序原创 2016-05-12 13:12:40 · 58989 阅读 · 23 评论 -
Linux进程ID号--Linux进程的管理与调度(三)
日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux-进程管理与调度Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,是内原创 2016-05-12 13:31:31 · 19902 阅读 · 10 评论 -
Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)
日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建前言Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) * id原创 2016-05-23 20:38:16 · 31172 阅读 · 15 评论 -
Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度(六)
日期 内核版本 架构 作者 GitHub 优快云 2016-05-29 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建前言Linux下有3个特殊的进程,idle进程(PID=0PID = 0), init进程(PID=1PID = 1)和kthreadd(PID=2P原创 2016-05-29 17:01:19 · 31201 阅读 · 7 评论 -
Linux下2号进程的kthreadd--Linux进程的管理与调度(七)
日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建前言Linux下有3个特殊的进程,idle进程(PID=0PID = 0), init进程(PID=1PID = 1)和kthreadd(PID=2P原创 2016-06-02 14:04:01 · 30332 阅读 · 3 评论 -
Linux进程启动过程分析do_execve(可执行程序的加载和运行)---Linux进程的管理与调度(十一)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-06 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的描述execve系统调用execve系统调用我们前面提到了, fork, vfork等复制出来的进程是父进程的一个副本, 那么如何我们想加载新的程序, 可原创 2016-06-06 11:46:13 · 20330 阅读 · 1 评论 -
Linux内核线程kernel thread详解--Linux进程的管理与调度(十)
Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进程的种种合理以及不合理的请求)。内核需要多个执行流并行,为了防止可能的阻塞,支持多线程是必要的。内核线程就是内核的分身,一个分身可以处理一件特定事情。内核线程的调度由内核负责,一个内核线程处于阻塞状态时不影响其他的内核线程,因为其是调度的基本单位。这与用户线程是不一样的。因为内核线程只运行在内核态原创 2016-06-05 13:49:06 · 39391 阅读 · 2 评论 -
Linux下的进程类别(内核线程、轻量级进程和用户进程)以及其创建方式--Linux进程的管理与调度(四)
本文声明 日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建本章链接 链接地址 上一节 本章目录 下一节 优快云 已是第一篇 无 Linux下0号进程的前世(ini原创 2016-05-23 15:42:00 · 19242 阅读 · 10 评论 -
ELF文件的加载过程(load_elf_binary函数详解)--Linux进程的管理与调度(十三)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-04 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的描述加载和动态链接从编译/链接和运行的角度看,应用程序和库程序的连接有两种方式。 一种是固定的、静态的连接,就是把需要用到的库函数的目标代码(二进制)代原创 2016-06-10 19:00:17 · 35210 阅读 · 5 评论 -
Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四))
日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度Linux进程的退出linux下进程退出的方式正常退出从main函数返回return调用exit调用_exit异常退出调用abort由信号终止_exit原创 2016-06-11 23:31:20 · 26305 阅读 · 0 评论 -
Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度1 前言1.1 进程调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来.调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创原创 2016-06-17 16:45:51 · 22694 阅读 · 6 评论 -
Linux进程调度器的设计--Linux进程的管理与调度(十七)
日期 内核版本 架构 作者 GitHub 优快云 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度1 前景回顾1.1 进程调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来.调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间,原创 2016-06-17 21:22:36 · 25425 阅读 · 6 评论 -
Linux核心调度器之周期性调度器scheduler_tick--Linux进程的管理与调度(十八)
日期 内核版本 架构 作者 GitHub 优快云 2016-6-29 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度我们前面提到linux有两种方法激活调度器:核心调度器和一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU另一种是通过周期性的机制, 以固定的频率运行, 不时原创 2016-07-10 18:04:03 · 13373 阅读 · 1 评论 -
Linux唤醒抢占----Linux进程的管理与调度(二十三)
Linux CFS调度器之唤醒抢占 日期 内核版本 架构 作者 GitHub 优快云 2016-07-05 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度CFS负责处理普通非实时进程, 这类进程是我们linux中最普遍的进程1 前景回顾1.1 CFS调度算法CFS调度算法的原创 2016-07-10 19:11:35 · 11215 阅读 · 1 评论 -
Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)
Linux用户抢占和内核抢占详解(概念, 实现和触发时机) 日期 内核版本 架构 作者 GitHub 优快云 2016-07-01 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度前面我们了解了linux进程调度器的设计思路和注意框架周期调度器scheduler_tick通过lin原创 2016-07-10 18:16:17 · 42182 阅读 · 14 评论 -
Linux的命名空间详解--Linux进程的管理与调度(二)
日期 内核版本 架构 作者 GitHub 优快云 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux-进程管理与调度 Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Name原创 2016-05-12 13:20:26 · 20377 阅读 · 5 评论