Linux进程管理与调度-之-目录导航【转】

转自:http://blog.csdn.net/gatieme/article/details/51456569

版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme

目录(?)[-]

  1. 项目链接
  2. 进程的描述
  3. 进程的创建
  4. 进程的加载与运行
  5. 进程的退出
  6. 进程的调度
  7. 调度普通进程-完全公平调度器CFS
日期 内核版本 架构 作者 GitHub CSDN
2016-07-21 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度

1 项目链接


项目 描述
KernelInKernel 一个运行在linux上的小巧内核, 修改了linux-kernel的start_kernel以启动我们自己的内核, 基于jserv/kernel-in-kernel(基于linux-4.1.0)和mengning/mykernel(基于linux-3.9.4), 适合学习和研究调度算法
Linux进程管理与调度 CSDN博客–Linux进程管理与调度
LDD-LinuxDeviceDrivers 与CSDN博客同步更新, 但是除了包含博客的内容, 还包含了一些以驱动方式实现的实验代码

2 进程的描述


CSDN GitHub
Linux进程描述符task_struct结构体详解–Linux进程的管理与调度(一) study/kernel/01-process/01-task/01-task_struct
Linux的命名空间详解–Linux进程的管理与调度(二) study/kernel/01-process/01-task/02-namespace
Linux进程ID号–Linux进程的管理与调度(三) study/kernel/01-process/01-task/03-pid

3 进程的创建


CSDN GitHub
Linux下的进程类别(内核线程、轻量级进程和用户进程)以及其创建方式–Linux进程的管理与调度(四) study/kernel/01-process/02-create/01-duplicate
Linux下0号进程的前世(init_task进程)今生(idle进程)—-Linux进程的管理与调度(五) study/kernel/01-process/02-create/02-idel
Linux下1号进程的前世(kernel_init)今生(init进程)—-Linux进程的管理与调度(六) study/kernel/01-process/02-create/03-init
Linux下2号进程的kthreadd–Linux进程的管理与调度(七) study/kernel/01-process/02-create/04-kthreadd
Linux下进程的创建过程分析(_do_fork/do_fork详解)–Linux进程的管理与调度(八) study/kernel/01-process/02-create/05-do_fork
Linux进程内核栈与thread_info结构详解–Linux进程的管理与调度(九) study/kernel/01-process/02-create/06-thread_info
Linux内核线程kernel thread详解–Linux进程的管理与调度(十) study/kernel/01-process/02-create/07-kernel_thead

4 进程的加载与运行


CSDN GitHub
Linux进程启动过程分析do_execve(可执行程序的加载和运行)—Linux进程的管理与调度(十一) study/kernel/01-process/03-execute/01-do_execve
LinuxELF文件格式详解–Linux进程的管理与调度(十二) study/kernel/01-process/03-execute/02-elf
ELF文件的加载过程(load_elf_binary函数详解)–Linux进程的管理与调度(十三) study/kernel/01-process/03-execute/03-load_elf_binary

5 进程的退出


CSDN GitHub
Linux进程退出详解(do_exit)–Linux进程的管理与调度(十四)) study/kernel/01-process/04-exit/01-do_exit

6 进程的调度


CSDN GitHub
Linux进程调度器概述–Linux进程的管理与调度(十五) study/kernel/01-process/05-schedule/01-introduction
Linux进程调度策略的发展和演变–Linux进程的管理与调度(十六) study/kernel/01-process/05-schedule/02-develop
Linux进程调度器的设计–Linux进程的管理与调度(十七) study/kernel/01-process/05-schedule/03-design
Linux核心调度器之周期性调度器scheduler_tick–Linux进程的管理与调度(十八) study/kernel/01-process/05-schedule/03-design/02-periodic_scheduler
Linux进程核心调度器之主调度器–Linux进程的管理与调度(十九) study/kernel/01-process/05-schedule/03-design/03-main_scheduler
Linux用户抢占和内核抢占详解(概念, 实现和触发时机)–Linux进程的管理与调度(二十) study/kernel/01-process/05-schedule/03-design/04-preempt
Linux进程上下文切换过程context_switch详解–Linux进程的管理与调度(二十一) study/kernel/01-process/05-schedule/03-design/05-context_switch
Linux进程优先级的处理–Linux进程的管理与调度(二十二) study/kernel/01-process/05-schedule/03-design/06-priority
Linux唤醒抢占—-Linux进程的管理与调度(二十三) study/kernel/01-process/05-schedule/03-design/07-wakeup

7 调度普通进程-完全公平调度器CFS


CSDN GitHub
Linux进程调度之CFS调度器概述–Linux进程的管理与调度(二十四) study/kernel/01-process/05-schedule/07-cfs/01-cfs/
Linux CFS调度器之负荷权重load_weight–Linux进程的管理与调度(二十五) study/kernel/01-process/05-schedule/07-cfs/02-load_weight/
Linux CFS调度器之虚拟时钟vruntime与调度延迟–Linux进程的管理与调度(二十六) study/kernel/01-process/05-schedule/07-cfs/03-vruntime/
Linux CFS调度器之队列操作–Linux进程的管理与调度(二十七) study/kernel/01-process/05-schedule/07-cfs/04-queue/
Linux CFS调度器之pick_next_task_fair选择下一个被调度的进程–Linux进程的管理与调度(二十八) study/kernel/01-process/05-schedule/07-cfs/05-pick_next/
Linux CFS调度器之task_tick_fair处理周期性调度器–Linux进程的管理与调度(二十九) study/kernel/01-process/05-schedule/07-cfs/06-task_tick_fair/
Linux CFS调度器之唤醒抢占–Linux进程的管理与调度(三十) study/kernel/01-process/05-schedule/07-cfs/07-task_new_fair/
时间: 2024-08-02 07:01:16

Linux进程管理与调度-之-目录导航【转】的相关文章

linux 进程管理与调度(一)

进程结构 进程在内核的源代码中以结构体表示,篇幅很长,在此列举一小段关键代码,可以发现是个双向链表,具体的可以在内核目录下找一个叫"sched.h"的头文件. struct task_struct { struct task_struct *real_parent; /* real parent process */ struct task_struct *parent; /* recipient of SIGCHLD, wait4() reports */ /* * children

linux进程管理与调度

1.什么是进程 借用鸟哥的话说,在linux系统中,触发任何一个事件时,系统都会将其定义为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限. 程序:通常为二进制程序放置在存储介质中,以物理文件的形式存在. 进程:程序被触发后,执行者的权限与属性.程序的程序代码与所需数据等都被加载到内存在,操作系统给予这个内存中的单元一个标识符.进程是一个正在运行的程序. 2.进程描述符及任务结构 进程存放在叫做任务队列(tasklist)的双

Linux内核设计基础(九)之进程管理和调度

在Linux中进程用结构体task_struct来管理一个进程所需的所有信息(所以一般较大,在32位机上,大约有1.7KB).为了提高效率,Linux使用了一些卓越的技术. 通过slab分配task_struct结构 Linux创建进程迅速,正是因为slab分配器预先分配和重复使用task_struct,这样就避免了动态分配和释放所带来的资源消耗(毕竟一个task_struct较大,而且内核中进程的创建和消除很频繁). 将task_struct放置在内核栈的尾端 这样做是为了让那些像x86那样寄

Linux内核——进程管理与调度

进程的管理与调度 进程管理 进程描述符及任务结构 进程存放在叫做任务队列(tasklist)的双向循环链表中.链表中的每一项包含一个具体进程的所有信息,类型为task_struct,称为进程描述符(process descriptor),该结构定义在<linux/sched.h>文件中. Linux通过slab分配器分配task_struct结构,这样能达到对象复用和缓存着色(cache coloring)的目的.另一方面,为了避免使用额外的寄存器存储专门记录,让像x86这样寄存器较少的硬件体

Linux进程管理 (7)实时调度

关键词:RT.preempt_count.RT patch. 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略.本章只是一个简单的介绍. 更详细的介绍参考<Linux进程管理 (9)实时调度类分析,以及FIFO和RR对比实验>. 同时为了提高Linux的实时性,Linux社区还维护了realtime相关的补丁.这些补丁的介绍在<Linux实时补丁及其分析>. 1. 抢占内核 如果Linux内核不支持抢占,那么进程要么主动要求调度,如schedule()或者

深入Linux内核架构——进程管理和调度(上)

如果系统只有一个处理器,那么给定时刻只有一个程序可以运行.在多处理器系统中,真正并行运行的进程数目取决于物理CPU的数目.内核和处理器建立了多任务的错觉,是通过以很短的间隔在系统运行的应用程序之间不停切换做到的.由此,以下两个问题必须由内核解决:除非明确要求,否则应用程序不能彼此干扰:CPU时间必须在各种应用程序之间尽可能公平共享(一些程序可能比其他程序更重要).本篇博文主要涉及内核共享CPU时间的方法以及如何在进程之间切换(内核为各进程分配时间,保证切换之后从上次撤销其资源时执行环境完全相同)

Linux进程管理知识整理

Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) TASK_INTERRUPTIBLE(可中断等待状态) TASK_UNINTERRUPTIBLE(不可中断等待状态) TASK_STOPPED(进程被其它进程设置为暂停状态) TASK_TRACED(进程被调试器设置为暂停状态) TASK_DEAD(退出状态) 进程由于所需资源得不到满足,从而进入

Linux进程管理.md

目录 Linux进程管理 1.进程基本概述 1.1.进程的组成部分 1.2.进程的环境 1.3.进程的产生 1.4.进程的分类 2.进程状态 2.1.Linux进程状态 3.2.进程优先级 3.3.相对优先级 3.4.nice级别与权限 3.5.进程优先级调整 4.进程管理命令 4.1.ps 4.2.pstree 4.3.pgrep 4.4.pidof 4.5.vmstat 5.控制作业 5.1.作业与会话 5.2.作业分类 5.3.在后台运行作业 6.进程间通信 7.使用信号控制进程 8.监控

Linux进程管理简谈

Linux系统进程管理简谈 进程是什么? 简单来说进程是一个正在执行的程序的一个副本,存在生命周期,有段指令和代码在不断运行. linux内核存储信息的固定格式:task struct 进程的相关信息存储在链表中 多个任务的task struct组件的链表:task list 进程的创建:父进程创建子进程(内核创建init进程,剩余一切进程有init及其子进程进程创建) 父进程创建子进程时向内核调用fork()来创建子进程并且通过调用clone()复制父进程的信息给子进程 Linux进程的优先级