37、嵌入式系统开发:实时调度、用户界面设计与代码优化

嵌入式系统开发:实时调度、用户界面设计与代码优化

1. 实时调度

1.1 RMS 调度

RMS(Rate Monotonic Scheduling)调度通常在中断服务程序(ISRs)相较于主任务计算非常短时可行。不过,一般的 RMS 调度无法使用 100% 的 CPU 并保证任务按时完成,且其理论背景和相关数学计算较为复杂。

RMS 调度要保证 100% CPU 利用率下的可调度性,需使用谐波任务周期,即每个任务的周期必须是系统中所有更短周期的精确整数倍。例如,周期集 {2, 10, 20} 是谐波的,因为 2 能整除 10 和 20,10 能整除 20;而 {2, 10, 25} 不是谐波的,因为 2 和 10 都不能整除 25。使用非谐波任务周期会大幅降低可使用的 CPU 资源,同时仍要保证任务按时完成。

在实际应用中,多数嵌入式系统使用谐波周期以最大化 CPU 利用率。有时,为使所有周期呈谐波关系,系统会让某些任务运行速度比实际需求更快。例如,若任务需在 2、11 和 21 毫秒内完成,可将相应的截止时间分别设为 2、10 和 20 毫秒,使任务集呈谐波关系,同时满足所有截止时间。这种稍微加快任务周期的做法,实际上可通过避免某些不利的任务到达模式,降低 RMS 的最坏情况 CPU 负载。

当任务周期变为谐波倍数后,只需确保 CPU 负载不超过 100%(建议留些余量,因为实际中所有假设都并非完全准确),即所有任务的 CPU 使用比例(Ci/Pi)之和小于 100%。与之前讨论的周期性调度方法不同,只要周期是谐波倍数且总 CPU 负载不超过 100%,周期的长短没有限制。

1.2 改进的调度方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值