进程管理
文章平均质量分 85
主要总结Linux进程管理的相关知识
HZero.chen
随风潜入夜,润物细无声
展开
-
Linux内核PID管理
目录1. 前言2. PID相关的数据结构struct pidstruct upidstruct pid_namespacestruct task_struct3. PID使用fork函数中如何分配一个新的pid?pid_nr函数1. 前言PID即进程描述符在linux kernel中的分配和管理比较复杂。 本文分析了其相关数据结构以及函数。代码基于v3.0.3,和pid相关的数据结构,函数定义:include/linux/pid.hinclude/linux/pid_namespace.hker转载 2022-05-06 09:26:59 · 1048 阅读 · 0 评论 -
进程管理基础学习笔记 - 5.进程负载
目录1. 前言2. 进程负载计算基础知识cpu负载简单计算方法工作负载和量化负载考虑历史累积衰减的量化负载参考文档1. 前言本专题我们开始学习进程管理部分。本文主要参考了《奔跑吧, Linux内核》、ULA、ULK的相关内容。本文主要记录内核进程负载计算的背景知识。kernel版本:5.10平台:arm642. 进程负载计算基础知识cpu负载简单计算方法CPU负载 = 就绪队列所有进程的总权重这种简单的方法没有考虑到进程的行为,对于不同的进程,如CPU型和IO型占用CPU的运行时间显然是原创 2021-04-08 17:42:58 · 332 阅读 · 0 评论 -
进程管理基础学习笔记 - 4. scheduler_tick
目录1. 前言2. scheduler_tick参考文档1. 前言本专题我们开始学习进程管理部分。本文主要参考了《奔跑吧, Linux内核》、ULA、ULK的相关内容。本文只是作为学习笔记以用于构建知识框架,可能存在一些理解不恰当或不到位的地方,后续会随着学习的深入,逐步进行迭代。本文主要记录system tick中断时进程调度部分的处理流程,注意此函数只是在判断符合条件时设置了TIF_NEED_RESCHED 标志,并没有真正执行进程切换。kernel版本:5.10平台:arm642. sch原创 2021-04-08 15:23:20 · 295 阅读 · 0 评论 -
进程管理基础学习笔记 - 3. schedule
目录1. 前言2. __schedule|- -deactivate_task|- -pick_next_task|- -context_switch|- - -switch_to参考文档1. 前言本专题我们开始学习进程管理部分。本文主要参考了《奔跑吧, Linux内核》、ULA、ULK的相关内容。本文只是作为学习笔记以用于构建知识框架,可能存在一些理解不恰当或不到位的地方,后续会随着学习的深入,逐步进行迭代。在进程管理概述部分介绍过,进程的抢占分为触发抢占(设置TIF_NEED_RESCHED标记)原创 2021-04-06 17:32:39 · 504 阅读 · 0 评论 -
进程管理基础学习笔记 - 2. kernel_clone
目录1. 前言1. 前言本专题我们开始学习进程管理部分。本文主要参考了《奔跑吧, Linux内核》、ULA、ULK的相关内容。进程或线程是通过fork vfork或clone等系统调用来建立,底层都对应do_fork函数,本文就主要记录do_fork的过程。kernel版本:5.10平台:arm64...原创 2021-04-02 11:19:18 · 2272 阅读 · 5 评论 -
进程管理基础学习笔记 - 1.概述
目录1. 前言2. 进程和线程的区别1. 前言本专题我们开始学习进程管理部分,本文为概述部分。本文主要参考了《奔跑吧, Linux内核》、ULA、ULK的相关内容。kernel版本:5.10平台:arm642. 进程和线程的区别进程1.进程是处于执行期的程序,进程=程序+执行,进程是资源封装的单位,拥有独立的资源空间,包含很多资源:打开的文件、挂起的信号量、内存管理、处理器状态、一个或多个执行线程或数据段等;2.进程通常通过fork系统调用来创建;3.新创建的进程可以通过exec创建地址原创 2021-03-30 08:32:14 · 474 阅读 · 0 评论