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

日期内核版本架构作者GitHubCSDN
2016-07-21Linux-4.6X86 & armgatiemeLinuxDeviceDriversLinux进程管理与调度

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 进程的描述


CSDNGitHub
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 进程的创建


CSDNGitHub
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 进程的加载与运行


CSDNGitHub
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 进程的退出


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

6 进程的调度


CSDNGitHub
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

CSDNGitHub
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/
Linux CFS调度器之唤醒WAKE_AFFINE 机制–Linux进程的管理与调度(三十一)study/kernel/01-process/05-schedule/07-cfs/08-wake_affine

7 公众号


工作以后,很长时间,没写博客了。近期准备重新拾起来,知识是无界的,我最喜欢的就是把技术当笔记一样分享出来跟大家一起讨论,一些思考。

近期开了公众号和知乎, 刚开始运营,欢迎大家多多支持。

推荐大家关注下我的公众号,内核干货,谢谢。

后期所有博文都将在这些平台同步推送,大家选择自己关注的平台即可。当然推荐大家把公众号关注了,谢谢。

CSDN公众号知乎自建站点
kernel-csdn内核干货知乎oskernellsb
kernel-csdn公众号 "内核干货"知乎在这里插入图片描述
目录 1 进程的组织 5 1.1 进程相关数据结构 5 1.1.1 进程的基本信息 6 1.1.2 进程状态 10 1.1.3 TASK_RUNNING状态的进程链表 11 1.1.4 进程间关系 12 1.2 Linux的线程——轻量级进程 15 1.3 进程的创建——do_fork()函数详解 19 1.4 执行进程间切换 33 1.4.1 进程切换之前的工作 33 1.4.2 进程切换实务 —— switch_to宏 37 1.4.3 __switch_to函数 39 1.5 fork与vfock系统调用的区别 42 1.6 内核线程 46 1.7 挂起状态进程的组织 49 1.7.1 等待队列头 49 1.7.2 等待队列的操作 50 1.7.3 进程资源限制 55 1.8 系统调用execve() 56 1.8.1 拷贝用户态参数 57 1.8.2 重要的数据结构 61 1.8.3 search_binary_handler函数 66 1.8.4 目标文件的装载和投入运行 69 1.8.5 库函数 92 2 中断控制 94 2.1 中断的分类 94 2.2 中断的硬件环境 95 2.2.1 外部中断请求IRQ 95 2.2.2 中断描述符表 96 2.2.3 中断和异常的硬件处理 97 2.3 中断描述符表 99 2.3.1 中断门、陷阱门及系统门 99 2.3.2 IDT的初步初始化 100 2.4 异常处理 101 2.5 中断处理 106 2.5.1 中断向量 107 2.5.2 IRQ数据结构 108 2.5.3 do_IRQ()函数 113 2.5.4 中断服务例程 115 2.5.5 IRQ线的动态分配 116 2.6 下半部分 117 2.6.1 软中断 118 2.6.2 tasklet 121 2.6.3 工作队列 122 2.7定时中断 124 2.7.1 时钟与定时 124 2.7.2 定时中断相关的数据结构 127 2.7.3 定时中断的上半部分 129 3 进程调度 138 3.1 进程调度的概念 138 3.2 进程调度的数据结构和优先级 141 3.2.1 进程的优先级 141 3.2.2 数据结构 145 3.3 调度程序所使用的函数 151 3.3.1 scheduler_tick函数 151 3.3.2 try_to_wake_up函数 156 3.3.3 recalc_task_prio函数 160 3.4 schedule()函数 163 3.4.1 直接调用 163 3.4.2 延迟调用 164 3.4.3 进程切换之前所做的工作 168 3.4.4 完成进程切换时所执行的操作 171 3.4.5 进程切换后所执行的操作 173 3.5 多处理运行队列的平衡 175 3.5.1 调度域 176 3.5.2 rebalance_tick()函数 178 3.5.3 load_balance()函数 180 3.5.4 move_tasks()函数 183 3.6 进程退出 187 3.6.1 进程终止 187 3.6.2 进程删除 189 4 进程的并发性体现 191 4.1 内核抢占 193 4.1.1 内核抢占概念 193 4.1.2 同步技术总揽 196 4.2 每CPU变量 197 4.3 原子操作 199 4.4 优化屏障和内存壁垒 203 4.4.1 优化屏障 204 4.4.2 内存壁垒 204 4.5 自旋锁 206 4.6 读写自旋锁 211 4.6.1 为读获取和释放一个锁 213 4.6.2 为写获取或释放一个锁 214 4.7 顺序锁 215 4.8 RCU机制 217 4.9 信号量 219 4.9.1 获取和释放信号量 221 4.9.2 读/写信号量 224 4.9.3 补充信号量 225 4.10 禁止本地中断 226 4.10.1 禁止本地中断 227 4.10.2 禁止下半部(可延迟函数) 229 4.11 一些避免竞争条件的实例 231 4.11.1 引用计数 231 4.11.2 大内核锁 231 4.11.3 内存描述符读/写信号量 232 4.11.4 slab高速缓存链表的信号量 233 4.11.5 索引节点的信号量 233 4.12 内核同步与互斥的总结 233
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值