[ITRON] メールボックスとデータキューの違い

ITRON 4.0 におけるメールボックスとデータキューの違い

 

  メールボックス データキュー
データ構造 リンクリスト リングバッファ
送受信メッセージの複製作成 なし あり

 

送信待ち

  メールボックス データキュー
送信待ち行列 ない ある
ポーリング式送信関数 ない psnd_dtq()

メールボックスは送信側でメモリを確保さえできれば無限にメールボックスにポストすることができる。一方のデータキューはリングバッファが満杯になったタイミングで送信できなくなる(送信待ちに遷移する)。

 

受信待ち

  メールボックス データキュー
受信待ち行列 ある ある
無限待ち受信関数 rcv_mbx() rcv_dtq()
ポーリング式受信関数 prcv_mbx() prcv_dtq()

受信側はメールボックスやデータキューが空のときに「待ち状態に遷移する」か「実行状態のまますぐに関数抜ける」
か選択する必要がある。


ITRON 3.0 では『リンクリストで実装したメールボックス』と『リングバッファーで実装したメールボックス』の2種類が存在した。 ITRON 4.0 ではメールボックスはリンクリストのみとなり、リングバッファ方式のデータキューの仕様が追加された。