イベントフラグ【event flag】

概要

イベントフラグとは組み込みOSやリアルタイムOSにおいてタスク間の同期に用いられる仕組みで、オペレーティングシステム(OS)が管理するビット列の各ビットの状態変化によって特定のイベント(事象)の発生を通知するもの。このビット列自体をイベントフラグと呼ぶ。
イベントフラグのイメージ画像

イベントフラグは符号なし整数型の変数として実装され、多くの場合は32ビットビット列が用いられる。各ビットは個別のイベントに対応づけられている。例えば、あるビットを「ボタンが押された」、別のビットを「データ受信が完了した」といった任意のイベントに割り当てることができる。

イベントが発生すると、送信側のタスクや割り込み処理が対応するビットを「1」にセットし、それを別のタスクへ伝達する。受信側のタスクは、対象のビットが立つまで処理をブロックして待機する。このとき、指定したすべてのビットが立った時点で待機を解除する「AND待ち」と、いずれか一つが立った時点で解除する「OR待ち」を選択できる実装が多く、複雑なタスク間の実行順序や連携を制御できる。イベント通知後に対応ビットを自動で「0」に戻すオートクリア機能を備えるOSもある。

似た同期機構に「セマフォ」(semaphore)や「ミューテックス」(mutex)などがあるが、これらは主に資源の排他制御や同時利用数の管理に用いられる。これに対しイベントフラグは、複数の異なるイベントの発生状態を一つの変数でまとめて管理し通知することを目的としており、用途が異なる。μITRONに代表されるRTOSではイベントフラグが標準的な同期機構として定義されており、家電や車載機器、産業機器など、メモリCPU資源が限られた組み込み環境で広く利用されている。

(2026.6.9更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。