5.图解进程管理-CFS调度类

302 阅读1分钟

主要介绍了CFS调度器含义、虚拟时间计算、调度延迟、CFS调度器架构、CFS调度器的实现。

const struct sched_class fair_sched_class = {
    .next = &idle_sched_class, // 下一个调度类
    .enqueue_task = enqueue_task_fair, // 向CFS就绪队列中添加一个进程
    .dequeue_task = dequeue_task_fair, // 将一个进程从就就绪队列中删除

    .check_preempt_curr = check_preempt_wakeup, // 该函数将检查当前运行的任务是否被抢占

    .pick_next_task = pick_next_task_fair, // 选择接下来要运行的最合适的进程
    .put_prev_task = put_prev_task_fair, // 用另一个进程代替当前运行的进程

    .task_tick = task_tick_fair, // 由周期性调度器调用,可能引起进程切换
    .task_fork = task_fork_fair, // 新进程建立后, 则用sched_fork通知调度器

    .update_curr = update_curr_fair,
};

图片源文件路径

5.图解进程管理-CFS调度类.png