嵌入式实时系统多核负载均衡调度架构

背景介绍

目前嵌入式开发为了追求稳定性、可靠性,多核处理器多使用静态任务调度架构,静态分配CPU、进程(APP)、线程(Task)、任务(runnable)的多层调用关系树。系统在低负载场景十分稳定,但高负载场景无法实时优化多核负载,造成任务延迟。

本文介绍了一种多核实时负载均衡的调度架构,均衡多核CPU资源,提高任务处理效率和系统实时响应能力。

架构

 

嵌入式实时系统多核负载均衡调度架构

 

  • 任务激励可配:中断、定时器(周期和功能分类);
  • CPU通过激励源上下文和任务Manager,在任务队列中获取和占据合适任务,完成后释放;
  • CPUs清空激励源相关任务集,并等待下一个激励源;
  • CPU在任务执行过程中发布新的任务和产生中断;
  • 任务锁保护任务不被重入执行;
  • 任务队列初始化时需要配置启动任务集;

 

优点

 

  • CPU只需要配置中断和定时器即可,任务调度解耦处理器架构;
  • 激励的处理由CPUs共同完成,完全的负载均衡,单一CPU负载降低,延时减少;
  • 单一CPU失效,其余CPUs不受影响,可继续完成任务,乃至分析失效CPU原因,系统不会失效。