排他制御
読み:はいたせいぎょ
二つ以上のものが、同時に成り立たないように制御すること。
概要
ある処理で、複数のタスクから同時に呼びされると問題が発生するケースがある。このような場合、その部分に排他制御を設けることで対処をする。
最も単純な方法は、フラグを一つ用意するものである。フラグが立っていない場合はフラグを立てて処理を実行、フラグが立っていたら既に他のタスクが実行中なので処理が終わるまで待機する、といった制御となる。
特徴
OS
マルチタスクOS等では、OS自体がこのような機能としてセマフォを用意している。
通常は、フラグが立っているかいないかという二値での判定で充分だが、このようなシンプルで使いやすいセマフォをバイナリセマフォといい、多くのセマフォ対応OSで利用できる。
セマフォ
セマフォを取得し、実際の処理をし、セマフォを返却する、という一つのまとまりが排他制御処理の基本となる。
処理はタスクに分割されているため、セマフォを取得したままタスクが終わった場合、自動的にセマフォが返却されるよう設計されているOSも多い。
再検索