08/07/24 10:06:13
>>332
それを優先度の逆転とはいいません。優先度逆転を議論するなら、セマフォおよびミューテックスですかね。
たしかに、送信側の優先度が高い場合は、メールボックスでは、送信一辺倒でひたすら送信する状態になる場合もありますね。
「安全」という言葉が出てきたので、あえて言うけど、
1)送信側が一方的に送信データ、つまりメールボックスが膨張していく状態
2)送信側が一方的に送信データが増えた場合に、ある程度のところで送信タスクがWaitされる状態
ではどちらが安全だろうか? すぐにわかる話だと思いますが
それから、私が言っているのは、MBX + MPF の場合と DTQ + MPF の場合の比較です。
かならず、固定長メモリプールとの組合せの場合のことです。
送信側は、固定長メモリプールから、一定のメモリを獲得、そのアドレスを
データキューあるいは、メールボックスで送る。
受信タスクは、データキュー、あるいは、メールボックスを受信、
そのアドレスから、該当メモリを参照し処理、処理が終わったら、
その該当メモリを固定長メモリプールに返却する。
という流れですね。
この場合にメールボックスが膨張する状況が起こったら、そのうち、固定長メモリ
プールが獲得不可になって、結局待ちになるから同じなんじゃないかという
ことですが、
お分かりになりましたか?