[其他产品] MCU多任务调度与实时性的要求

[复制链接]
600|2
 楼主| forgot 发表于 2025-7-4 09:26 | 显示全部楼层 |阅读模式
为MCU(微控制器单元)选择并实施一个好的任务调度方案是嵌入式系统设计的关键,它直接影响系统的实时性、可靠性、功耗和开发效率。没有“一刀切”的最佳方案,选择取决于应用的具体需求(实时性要求、复杂度、资源限制等)。

抢占式多任务调度
这是一种策略或特性。在这种策略下,操作系统内核拥有绝对控制权,可以在任何时刻(通常是在中断发生时)强行暂停(抢占)当前正在运行的线程/进程,并切换到另一个就绪的线程/进程上运行,而无需当前线程/进程主动放弃CPU。
依赖于硬件定时器中断和中断处理程序。定时器中断周期性地产生,将控制权交还给内核。内核在中断服务例程中检查是否有更高优先级的任务就绪,或者当前任务的时间片是否用完,并据此决定是否进行上下文切换。
公平性与优先级: 可以实现基于优先级的调度(高优先级任务可以抢占低优先级任务),也可以实现基于时间片的轮转(每个任务运行固定时间后被抢占)。

时间片轮询调度
这是一种具体的调度算法,它是实现抢占式多任务调度最常见和基础的方式之一。该算法将CPU时间划分为固定长度的小区间,称为“时间片”。
调度器选择队列头的任务执行。该任务被分配一个固定长度的时间片。
任务被抢占的主要原因是时间片到期(由定时器中断触发)。
所有优先级相同的任务轮流获得CPU时间片,每个任务都能分到时间,防止了某个任务长期独占CPU导致其他任务“饿死”。
实现相对简单直观。

实时性要求:
硬实时 (Hard Real-Time): 任务必须在严格的截止时间前完成(如电机控制、安全关键系统)。错过截止期意味着系统失败。需要确定性调度(如固定优先级抢占式调度RMS/Deadline Monotonic)。
软实时 (Soft Real-Time): 任务期望在截止时间前完成,偶尔错过可以容忍(如用户界面刷新、非关键数据采集)。可以使用更灵活的调度策略(如带优先级的时间片轮询、协作式+中断)。
无实时要求: 任务没有严格的时序约束(如后台日志记录)。几乎任何调度策略都可接受。
无论哪种方案:
实时性、资源、功耗是选择的基础。
合理划分任务是良好调度的前提。
正确使用同步通信原语是系统稳定性的关键。
监控、测量和优化是保证性能和可靠性的必要手段。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
拿走一光年 发表于 2025-8-29 13:36 | 显示全部楼层
MCU 多任务调度需按优先级分配 CPU,用抢占式调度,配定时器精准计时,低延迟响应高优先级任务,满足实时性要求。
老橘树下的桥头 发表于 2025-9-19 14:08 | 显示全部楼层
核心要点
多任务调度:通过操作系统(如 RTOS)管理任务,支持抢占式或协作式调度,提升资源利用率。
实时性关键:需低任务切换延迟、确定的执行时间,避免非关键任务阻塞关键任务,保障系统稳定性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2112

主题

14683

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部