本文主要是介绍Linux Kernel调度管理之sched_entity,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
sched_entity是调度实体描述,描述可被调度的对象:
struct sched_entity { struct load_weight load; /* for load-balancing */ struct rb_node run_node; struct list_head group_node; unsigned int on_rq; u64 exec_start; u64 sum_exec_runtime; u64 vruntime; u64 prev_sum_exec_runtime; u64 nr_migrations; #ifdef CONFIG_SCHEDSTATS struct sched_statistics statistics; #endif #ifdef CONFIG_FAIR_GROUP_SCHED int depth; struct sched_entity *parent; /* rq on which this entity is (to be) queued: */ struct cfs_rq *cfs_rq; /* rq "owned" by this entity/group: */ struct cfs_rq *my_q; #endif #ifdef CONFIG_SMP /* * Per entity load average tracking. * * Put into separate cache line so it does not * collide with read-mostly values above. */ struct sched_avg avg ____cacheline_aligned_in_smp; #endif };
需要注意,进程描述符中含有三个类别的调度实体,即cfs,rt,dl三个。
这篇关于Linux Kernel调度管理之sched_entity的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!