IT用語集 › プログラミング › ビジーウェイト

ビジーウェイト

プログラミング Svenska → 更新: 2026-11-03

条件が成立するか、十分な時間が経つまで、何も生産しないループをプロセッサに回し続けることで待つ方式。

ファームウェアで最も古い遅延手法は for (i = 0; i < 100000; i++); である。これには古典的な落とし穴が二つある。カウンタが volatile でなければ、最適化によってループごと削除されること。そしてクロック周波数やコンパイラオプションが変わった瞬間に、遅延時間が狂うことである。Linuxは起動時に遅延ループを較正しており、その値がBogoMIPSとして表示される。

ドライバ内の数マイクロ秒程度の短い待ちなら、ビジーウェイトが正解であることも多い。スリープして復帰するコストのほうが、待ち時間そのものより大きいからだ。それより長い待ちには、他のタスクを動かせるタイマーや RTOS の呼び出しが向く。スピンロックは、ロックの解放を条件にしたビジーウェイトにほかならない。

← 用語集に戻る