Linux知识点汇集

调度相关数据结构

2019-03-16  本文已影响0人  vincent_0425

1. task_struct

说到调度,第一个首先相当的应该是task_struct,它用于表示一个进程/线程,它可以看做调度的一个实体单位,该结构体中,几个与调度较为密切的成员如下:

struct task_struct {
    int prio, static_prio, normal_prio;
    unsigned int rt_priority;
    const struct sched_class *sched_class;
    struct sched_entity se;
    struct sched_rt_entity rt;
#ifdef CONFIG_CGROUP_SCHED
    struct task_group *sched_task_group;
#endif
    struct sched_dl_entity dl;
...
    unsigned int policy;
    int nr_cpus_allowed;
    cpumask_t cpus_allowed;
}

2. sched_class

3. sched_entity

struct sched_entity {
    struct load_weight load;
    struct rb_node run_node;
    unsigned int on_rq;
    u64 exec_start;
    u64 sum_exec_runtime;
    u64 vruntime;
    u64 prev_sum_exec_runtime;
}

上一篇 下一篇

猜你喜欢

热点阅读