ywg_dev_doc
1. tee
2. u-boot dev note
3. kernel note
3.1. linux kernel map
3.2. linux kernel debug tools
3.3. DTS设备树详解
3.4. linux 通用双向循环链表
3.5. linux 内核函数
3.6. kernel queue note
3.7. 进程管理与调度
3.7.1. 进程描述
3.7.2. 进程创建
3.7.3. 进程运行
3.7.4. 进程调度
3.7.5. 调度普通进程-完全公平调度器CFS
3.7.5.1. CFS调度器概述
3.7.5.2. CFS调度器负荷权重load_weight
3.7.5.3. 虚拟时钟vruntime和调度延迟
3.7.5.4. CFS队列操作
3.7.5.5. pick_next_task_fair选择下一个被调度的进程
3.7.5.6. task_tick_fair周期性调度器
3.7.5.7. 唤醒抢占
3.7.5.8. WAKE_AFFINE机制
3.7.6. thread_info与内核栈stack的关系
3.8. linux系统调用
3.9. kernel 启动流程
3.10. linux 内存管理
3.11. linux并发控制机制
4. linux driver modules note
5. file system note
6. application development node
7. misc
8. embeded
9. net
10. rtos note
ywg_dev_doc
»
3.
kernel note
»
3.7.
进程管理与调度
»
3.7.5.
调度普通进程-完全公平调度器CFS
查看页面源码
3.7.5.
调度普通进程-完全公平调度器CFS
3.7.5.1. CFS调度器概述
3.7.5.1.1. cfs调度器类fair_sched_class
3.7.5.1.2. cfs就绪队列
3.7.5.2. CFS调度器负荷权重load_weight
3.7.5.2.1. 负荷权重
3.7.5.2.1.1. 负荷权重struct load_weight
3.7.5.2.1.2. 调度实体的负荷权重load
3.7.5.2.1.3. 进程的负荷权重
3.7.5.2.2. 优先级和权重的转换
3.7.5.2.2.1. 优先级->权重转换表
3.7.5.2.2.2. 1.25的乘积因子
3.7.5.2.3. 进程负荷权重的计算
3.7.5.2.3.1. scale_load取得负荷权重的值
3.7.5.2.4. 就绪队列的负荷权重
3.7.5.2.4.1. cfs就绪队列的负荷权重
3.7.5.2.4.2. 就绪队列的负荷权重计算
3.7.5.3. 虚拟时钟vruntime和调度延迟
3.7.5.3.1. 虚拟运行时间
3.7.5.3.1.1. 虚拟运行时间的引入
3.7.5.3.1.2. cfs虚拟时钟
3.7.5.3.2. 虚拟时钟相关的数据结构
3.7.5.3.2.1. 调度实体的虚拟时钟信息
3.7.5.3.2.2. 就绪队列上的虚拟时钟信息
3.7.5.3.3. update_curr函数计算进程虚拟时间
3.7.5.3.3.1. 重新设置cfs->min_vruntime
3.7.5.3.4. 红黑树的键值entity_key和entity_befor
3.7.5.3.5. 延迟跟踪(调度延迟)与虚拟时间在调度实体内部的再分配
3.7.5.3.5.1. 调度延迟与其控制字段
3.7.5.3.5.2. 虚拟时间在调度实体内的分配
3.7.5.4. CFS队列操作
3.7.5.4.1. enqueue_task_fair入队操作
3.7.5.4.1.1. enqueue_task_fair函数
3.7.5.5. pick_next_task_fair选择下一个被调度的进程
3.7.5.5.1. put_prev_task函数
3.7.5.5.1.1. 全局put_prev_task函数
3.7.5.5.1.2. CFS的put_prev_task_fair函数
3.7.5.5.2. pick_next_entity函数
3.7.5.5.2.1. cfs的last和next指针域
3.7.5.5.2.2. wakeup_preempt_entity检查是否可以被抢占
3.7.5.6. task_tick_fair周期性调度器
3.7.5.6.1. CFS的周期性调度
3.7.5.6.1.1. task_tick_fair与周期性调度
3.7.5.6.1.2. entity_tick函数
3.7.5.6.1.3. check_preempt_tick函数
3.7.5.7. 唤醒抢占
3.7.5.7.1. 进程的创建
3.7.5.7.2. 处理新进程
3.7.5.8. WAKE_AFFINE机制