7、实时事件驱动编程与UML状态机:原理、应用与优势

实时事件驱动编程与UML状态机:原理、应用与优势

1. 实时内核与事件处理

在实时系统中,中断服务程序(ISRs)能够随时抢占活动对象的执行。对于“普通”内核而言,每个ISR执行完后都会返回到被抢占的精确位置。若ISR向某个活动对象发布事件,该事件的处理要等到当前的运行到完成(RTC)步骤结束后才会开始。这种情况下,最高优先级活动对象的事件可能被延迟的最长时间,被称为任务级响应时间。

在非抢占式的“普通”内核里,任务级响应时间等同于系统中所有活动对象最长的RTC步骤时长。不过,“普通”内核的任务级响应时间仍比传统的“超级循环”(即main + ISRs)架构要好很多。

以下是不同内核任务级响应时间的对比表格:
| 内核类型 | 任务级响应时间特点 |
| ---- | ---- |
| 非抢占式“普通”内核 | 等于系统中所有活动对象最长的RTC步骤时长 |
| 传统“超级循环”架构 | 任务级响应时间较差 |

简单的“普通”内核的任务级响应时间在很多应用场景中是足够的。这是因为状态机本质上能快速处理事件,无需忙等待事件到来。状态机执行完当前任务后会进入休眠状态,直到下一个事件到来。而且,我们可以通过将较长的RTC步骤拆分成较短的步骤,来加快任务级响应时间,例如使用“提醒”状态模式。

2. QK抢占式内核

在某些情况下,将长的RTC步骤拆分成足够短的片段可能非常困难,这会导致非抢占式“普通”内核的任务级响应时间过长。以GPS接收器为例,它需要在定点CPU上进行大量的浮点运算来计算GPS位置,同时还要以亚毫秒级的间隔跟踪GPS卫星信号。将位置计算任务拆分成足够短的RTC步骤以实现

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值