Windows版 iTRONサービスコールの作成 (セマフォ)
(その1)

概要

組み込みソフトウェアで利用されているOS「iTRON」のサービスコールをWindows上で動作させるためのライブラリです。

タスク間の排他制御で用いられる『セマフォ機能』の実装を説明します。

セマフォとは、共通の資源の数をカウンタとして管理し、同時に利用できる数を制限します。

セマフォの資源を獲得するときにカウンタを-1して、カウンタが0になった時点でセマフォ資源を獲得しようとしたときに、セマフォ資源が獲得できるまでタスクをスリープさせます。

セマフォの資源を返却するとカウンタを+1します。このときセマフォ資源を獲得しようとしてスリープしているタスクがある場合、そのタスクはウェイクアップしてセマフォ資源を獲得できます。

また、セマフォの資源獲得の待ち時間をタイムアウト付きで制限したり、セマフォ資源を獲得できるかどうかを確認して、獲得できないときに待たずに制御を戻すポーリング方式があります。

サービスコール

 

・Ver3.0のセマフォ機能で提供されるサービスコールは以下のとおりです。

サービスコール名説明
cre_sem

セマフォを生成します。

del_sem

セマフォを削除します。

sig_sem

セマフォ資源を返却します。(シグナルを発生させます。)

wai_sem / pol_sem / twai_sem

セマフォ資源を獲得します。(シグナルの発生を待ちます。)

ref_sem

セマフォの状態を参照します。

 

・Ver4.0のセマフォ機能で提供されるサービスコールは以下のとおりです。

サービスコール名説明
cre_sem / acre_sem

セマフォを生成します。

del_sem

セマフォを削除します。

sig_sem / isig_sem

セマフォ資源を返却します。(シグナルを発生させます。)

wai_sem / pol_sem / twai_sem

セマフォ資源を獲得します。(シグナルの発生を待ちます。)

ref_sem

セマフォの状態を参照します。



Windowsは米国Microsoft Corporationの登録商標です。