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

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

1. 实时调度

1.1 RMS调度分析

RMS(Rate Monotonic Scheduling)调度在使用100% CPU时,只有任务周期为谐波关系才能保证可调度性。谐波任务周期指每个任务的周期必须是系统中所有更短周期的精确整数倍,相同周期也是允许的。例如,周期集合{2, 10, 20}是谐波的,因为2能整除10和20,10能整除20;而{2, 10, 25}不是谐波的,因为2和10都不能整除25。

使用非谐波任务周期会大幅降低可使用的CPU资源,同时仍要保证任务截止时间。在实际应用中,大多数嵌入式系统使用谐波周期来最大化CPU利用率。为了使任务集成为谐波关系,有时会让一些任务运行得比实际需要更快。例如,若任务必须在2、11和21毫秒内完成,可将相应的截止时间分别设置为2、10和20毫秒,这样既能满足所有截止时间,又能使任务集成为谐波关系。

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

1.2 RMS的变体:DMS调度

DMS(Deadline Monotonic Scheduling)是RMS的一种变体,二者的唯一区别在于DMS系统中截止时间可以短于周期。在DMS中,会创建一个伪周期,其值为周期和截止时间中的较小值,调度时假设任务每伪周期运行一次。例如,一个周期为10毫秒、截止时间为3毫秒的任务,其伪周期为3毫秒,这会使其与所有其他3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值