Skip to content

maces622/proj-134-CFS-based-userspace-scheduler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

proj-134-CFS-based-userspace-scheduler

基于 CFS 的用户态调度框架

项目描述

操作系统调度器的能力直接影响着各类业务服务的质量。随着 workload 种类的日益增多,业界对调度器也提出了新的诉求。当前各类 workload 主要使用 Linux CFS 调度类,而该调度类对 workload 的识别能力仅限于调度策略(SCHED_{NORMAL,BATCH,IDLE}),换言之 CFS 旨在提供一个通用的调度算法来大致满足各类业务的诉求,即使它们的诉求并不相同。

为了提供更好的服务,针对各类 workload 进行针对性的调度优化是业界主流的努力方向,而用户态调度器则是其中较为合理的方案。用户态调度器不仅能让用户的自定义策略渗透到内核调度器来达到针对性的优化,还具有轻、快的运维优势,在不重启系统、几乎不影响业务运行的前提下调整策略。

另一方面,尽管用户态调度器可以不局限于 CFS(比如 Google 的 ghOSt 方案),但在云场景下整个管控面仍然非常依赖 CFS 相关的配套设施,所以基于 CFS 来构建用户态调度能力可能是最容易被业界采用的方案。这也就是本项目的目标:设计实现基于 CFS 且兼容 cpu cgroup 的用户态调度框架,使得管控面能够注入策略让调度行为变得更为可控。

所属赛道

2022全国大学生操作系统比赛的“OS功能挑战”赛道

参赛要求

  • 以小组为单位参赛,最多三人一个小组,参赛对象为全国普通高等学校全日制在校本科生和在校研究生,参赛队员的在校本科生或在校研究生身份均以报名时为准
  • 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
  • 请遵循“2022全国大学生操作系统比赛”的章程和技术方案要求

项目导师

吴云 wuyun.abel@bytedance.com

难度

中等

特征

  • 调度框架针对的 workload 基于 CFS 调度类
  • 兼容 Linux CPU cgroup

License

  • GPL-2.0

预期目标

注意:下面的内容是建议内容,不要求必须全部完成。选择本项目的同学也可与导师联系,提出自己的新想法,如导师认可,可加入预期目标

给出详细的设计文档,包括但不限于:实现 task delegation 的机制、实现 preemption 的机制以及对 fairness 的考虑等,并且在实现后给出性能测试报告。

扩展题:挖掘实际应用的场景,并针对该场景设计实现调度策略并通过该调度框架注入到内核达到优化。

About

基于 CFS 的用户态调度框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published