同期

更新日:

用語解説

並行・並列処理における同期は、複数のスレッドやプロセスの実行順序と共有データへのアクセスを調整し、競合状態や不整合を防ぐ制御です。

■ 試験で押さえるポイント

  • 同じ変数を同時更新すると、読取りと書込みの順序により結果が変わる競合状態が起きます。クリティカルセクションをmutexやlockで相互排他にします。

  • セマフォはカウンタで同時利用数や通知を制御し、条件変数は条件成立まで待機、バリアは全参加処理が所定点へ到達するまで待ち合わせます。

  • ロック取得順序の循環はデッドロック、ある処理が資源を得られない状態はスタベーション、互いに譲り続け進まない状態はライブロックです。

  • 同期を広く・頻繁に行うと待ち時間と直列部分が増えます。ロック範囲縮小、不変データ、メッセージパッシング、原子操作などで正しさと性能を両立します。

■ 選択肢での判断ポイント

相互排他=同時進入防止、バリア=処理段階の待合せ、デッドロック=循環待ちを区別します。時刻合わせだけが同期ではありません。

例: 二つのスレッドが残高を同時更新する場合、読取りから書込みまでをlockで保護しないと一方の加算が失われます。

音声で聞く

同じ分野の用語