組込み・ファームウェア
RTOSで、センサを読むタスクから表示するタスクへデータを渡すのに、キュー(メッセージキュー)を使う利点として正しいものはどれか。
- Aデータがキューを通ると、自動で暗号化される
- B受け取る側はデータが来るまで眠って待て、送る側と受け取る側の速さの違いもキューにためて吸収できる
- Cキューを使うと、タスクの優先度が不要になる
答えと解説を見る
正解:B. 受け取る側はデータが来るまで眠って待て、送る側と受け取る側の速さの違いもキューにためて吸収できる
共有の変数とフラグでデータを渡すと、データ競合を防ぐ工夫や、受け取る側が何度も調べに行く手間が必要です。RTOSのキューを使えば、送る側はデータを入れるだけ、受け取る側はデータが来るまで待ち状態でCPUを使わずに待てます。キューの中に複数のデータをためられるので、一時的に送る側が速くてもデータを失いません。
- A. 暗号化はされません。
- B. 正しい。共有の変数を自分で守る必要もありません。
- C. 優先度は引き続き必要です。