我之前有过编写基于事件和轮询的嵌入式系统的经验(对于没有抢先操作系统的小型MCU).
在基于事件的系统中,任务通常接收队列上的事件(消息)并依次处理它们.
在基于轮询的系统中,任务以特定间隔轮询状态并响应更改.
你更喜欢哪种架构?两者可以共存吗?
更新:点数
基于POLL
- 与时序方面相关的紧耦合(@Lundin)
*可以使用队列与事件系统共存(@ embedded.kyle)
*适用于较小的程序(@Lundin)
基于事件
+从长远来看更灵活的系统(@ embedded.kyle)
- RTOS版增加了复杂性(@Lundin)
*小程序=状态机控制(@Lundin)
*可以使用队列和"超级循环"实现(内部控制器/主要)(@ embedded.kyle)
*只有真正的"事件"是hw中断的(@Lundin)
相关问题
*寻找有限状态机的不同调度算法的比较(@ embedded.kyle)
相关信息
*"首选使用活动对象而不是裸线程"(@Miro)
http://www.drdobbs.com/parallel/prefer-using-active-objects-instead-of-n/225700095
*"正确使用线程=隔离+异步消息"(@Miro)
http://www.drdobbs.com/parallel/use-threads-correctly-isolation-asynch/215900465