データ競合とは

でーたきょうごう

複数のスレッドが同じ変数に同期なしで同時にアクセスし、少なくとも1つが書き込みである状態。結果が実行ごとに変わる。C言語やC++では未定義の動作になる。

この用語の分野: マルチコアと同期

解説の中の「データ競合」

「データ競合」が出てくる問題(6問)

  1. データ競合(データレース)の説明として正しいものはどれか。
  2. 上のコードを2つのスレッドで同時に実行すると、counterの最終的な値が200000より小さくなることがある。その理由として正しいものはどれか。
  3. RISC-Vのamoadd.w命令やx86のlock xadd命令のような、フェッチ・アンド・アッド(fetch-and-add)命令の動作として正しいものはどれか。
  4. クリティカルセクションの説明として正しいものはどれか。
  5. RTOSで、センサを読むタスクから表示するタスクへデータを渡すのに、キュー(メッセージキュー)を使う利点として正しいものはどれか。
  6. 性能を測るための仕組みを入れたことで、測りたいプログラムの動きそのものが変わってしまう現象を何と呼ぶか。

関連する用語

クリティカルセクション RTOS(リアルタイムOS) 性能カウンタ アクワイア・リリース アトミック命令 ABA問題 LR/SC コンペア・アンド・スワップ 条件変数 ストアバッファ

用語集の一覧へ