![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux调度子系统
文章平均质量分 80
真胖子
这个作者很懒,什么都没留下…
展开
-
进程调度子系统(3)完全公平调度类CFS
1. 完全公平调度类 最重要的就是维护一颗红黑树,对普通进程排队 /kernel/sched_fair.c 1802 static const struct sched_class fair_sched_class = { 1803 .next = &idle_sched_class, 1804 .enqueue_t原创 2014-03-11 20:45:46 · 1120 阅读 · 0 评论 -
进程调度子系统(1)调度器数据结构
调度器的任务,在进程间共享cpu时间,创造并行执行的错觉。该任务分为两个不同的部分:一个涉及调度策略,另一个涉及上下文切换。 1.相关数据结构 1.1task_struct相关成员 1042 struct task_struct { 1058 int on_rq; 1059 1060 int prio, static_prio, normal_prio;原创 2014-03-17 14:50:02 · 1245 阅读 · 0 评论 -
进程调度子系统(4)CFS补充
一、概述 首先简单介绍一下基本的设计思路, CFS思路很简单,就是根据各个进程的权重分配运行时间(权重怎么来的后面再说)。 进程的运行时间计算公式为: 分配给进程的运行时间 = 调度周期 * 进程权重 / 所有进程权重之和 (公式1) 调度周期很好理解,就是将所有处于TASK_RUNNING态进程都调度一遍的时间, 差不多相当于O(1)调度算法中运行队列和过期队列切换一次的时间转载 2014-03-11 20:46:35 · 695 阅读 · 0 评论 -
进程调度子系统(2)核心调度器
调度器的实现基于两个函数:周期性调度器函数 和 主调度器函数 1.周期调度器函数(scheduler_tick) 内核按照频率(HZ)自动调用该函数 (1)管理整个系统和各个进程的调度相关的统计量 (2)激活负责当前进程的调度器类的调度方法 sched/core.c // 周期调度器 // 调用路径:update_process_times->scheduler_tick原创 2014-03-17 15:57:27 · 1231 阅读 · 1 评论