前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核】实时调度类 ③ ( 实时调度类 rt_sched_class 源码 | 调度类 sched_class 源码 )

【Linux 内核】实时调度类 ③ ( 实时调度类 rt_sched_class 源码 | 调度类 sched_class 源码 )

作者头像
韩曙亮
发布2023-03-30 14:01:00
7370
发布2023-03-30 14:01:00
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、调度类 ( 停机调度类 | 限期调度类 | 实时调度类 | 公平调度类 | 空闲调度类 )


linux-5.6.18\include\linux\sched.h 头文件中 task_struct " 进程描述符 " 结构体 中定义的 sched_class 字段 ,

表示该进程所属的调度类 ;

代码语言:javascript
复制
const struct sched_class	*sched_class;

源码地址 : linux-5.6.18\include\linux\sched.h#680

上述可设置的调度类参考 【Linux 内核】调度器 ⑦ ( 调度器类型 | 停机调度类 stop_sched_class | 限期调度类 dl_sched_class | 实时调度类 | 公平调度类 | 空闲调度类 ) 博客 , 在 Linux 内核中 , sched_class 调度器 分为以下

5

种类型 :

  • stop_sched_class : 停机调度类 ;
  • dl_sched_class : 限期调度类 ;
  • rt_sched_class : 实时调度类 ;
  • fair_sched_class : 公平调度类 ;
  • idle_sched_class : 空闲调度类 ;

调度类 优先级 由高到低排列为 : 停机调度类 > 限期调度类 > 实时调度类 > 公平调度类 > 空闲调度类

二、 实时调度类 rt_sched_class 源码


实时调度类 , 是 sched_class 调度类 结构体 类型 的 , 在 Linux 内核源码的 linux-5.6.18\kernel\sched\rt.c 源文件中定义 ;

代码语言:javascript
复制
const struct sched_class rt_sched_class = {
	.next			= &fair_sched_class,
	.enqueue_task		= enqueue_task_rt,
	.dequeue_task		= dequeue_task_rt,
	.yield_task		= yield_task_rt,

	.check_preempt_curr	= check_preempt_curr_rt,

	.pick_next_task		= pick_next_task_rt,
	.put_prev_task		= put_prev_task_rt,
	.set_next_task          = set_next_task_rt,

#ifdef CONFIG_SMP
	.balance		= balance_rt,
	.select_task_rq		= select_task_rq_rt,
	.set_cpus_allowed       = set_cpus_allowed_common,
	.rq_online              = rq_online_rt,
	.rq_offline             = rq_offline_rt,
	.task_woken		= task_woken_rt,
	.switched_from		= switched_from_rt,
#endif

	.task_tick		= task_tick_rt,

	.get_rr_interval	= get_rr_interval_rt,

	.prio_changed		= prio_changed_rt,
	.switched_to		= switched_to_rt,

	.update_curr		= update_curr_rt,

#ifdef CONFIG_UCLAMP_TASK
	.uclamp_enabled		= 1,
#endif
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、调度类 ( 停机调度类 | 限期调度类 | 实时调度类 | 公平调度类 | 空闲调度类 )
  • 二、 实时调度类 rt_sched_class 源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档