はじめに
組み込みエンジニアになりたての自分が、アウトプットするため投稿させていただきます(※初投稿)
セマフォとは
・同期・排他制御に用いる仕組み、または変数のこと
・リアルタイムOS上で多数の時間軸(タスク)が動いており、あるタスクと別のタスク間で動機や排他制御を実装するために使われる。
使用方法
P操作:セマフォに対して「許可を待つ」「通知を待つ」
※資源を利用する(資源管理用カウンタを1減らす)
空くのを待つイメージです。
V操作:セマフォに対して「許可を与える」「通知する」
※資源を与える(資源管理用カウンタを1増やす)
通知許可のイメージです。
なぜセマフォが必要か
リアルタイムOS上では、複数の時間軸(タスク)が動作している。あるタスクが他のタスクに動きを合わせる必要がある値時に「待合せ」が必要。
この待ち合わせることを「同期制御」という。
イベントフラグがわかりやすい考え方です。例えば「スイッチを押したときLEDが点灯」という同期制御の要求仕様があるとします。
P操作をスイッチがONされたときにおけるフラグを待つ、V操作をスイッチをONしたときフラグをセットするというコードをイメージしてもらえれば、わかりやすいかと思います。
また、勉強したことはどんどん追記していこうと思います。