私は、イベントベースとポーリングベースの両方の組み込みシステムを作成した経験があります(プリエンプティブOSのない小さなMCUの場合)。
イベントベースのシステムでは、タスクは通常、キューでイベント(メッセージ)を受信し、それらを順番に処理します。
ポーリングベースのシステムでは、タスクは特定の間隔でステータスをポーリングし、変更に応答します。
どのアーキテクチャが好きですか?両方が共存できますか?
更新:ポイントが作成されました
POLL
BASED-タイミングの側面に関連する緊密な結合(@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