Windows版iTRONサービスコールの作成 (ミューテックス)
(その1)
組み込みソフトウェアで利用されているOS「iTRON」のサービスコールをWindows上で動作させるためのライブラリです。
タスク間の排他制御で用いられる『ミューテックス機能』の実装を説明します。
ミューテックスはセマフォと同様に、ミューテックスの資源を確保(ミューテックスのロック)をしてリソースへのアクセスを制限し、資源の返却(ミューテックスのロック解除)を行うことでアクセス制限を解除します。
セマフォの場合はセマフォ・カウンタの最大値まで、同時にリソースへアクセスできるタスクを制限できましたが、ミューテックスの場合は常に1つのタスクしかアクセスできません。
また、資源の返却については、セマフォでは、どのタスクでも返却できましたが(セマフォ資源を確保したタスク以外からも返却できる)、ミューテックスの場合は、ミューテックスをロックしたタスク以外は解除ができません。
ミューテックスはVer4.0でのみサポートされます。
・ミューテックス機能で提供されるサービスコールは以下のとおりです。
サービスコール名 | 説明 |
---|---|
cre_mtx / acre_mtx | ミューテックスを生成します。 |
del_mtx | ミューテックスを削除します。 |
loc_mtx / ploc_mtx / tloc_mtx | ミューテックスをロックします。 |
unl_mtx | ミューテックスのロックを解除します。 |
ref_mtx | ミューテックスの状態を参照します。 |