(57)【要約】【課題】タスク内でセマフォハンドルを意識することなくリソースのシンボルを用いてセマフォを操作することができるセマフォ管理方法を得ること。【解決手段】対応テーブル管理手段８１が、リソース７のシンボル名に対応付けて当該リソース７を管理するセマフォのセマフォハンドルが登録されるシンボル／ハンドル対応テーブル４から、タスク５が発行するセマフォ操作命令に含まれるシンボルに対応付けられているセマフォハンドルを取得し、セマフォ操作命令がセマフォ獲得命令の場合には、セマフォ獲得処理手段８３が、取得したセマフォハンドルが示すセマフォを取得し、取得したセマフォが管理するリソース７を命令を発行したタスク５に割当て、セマフォ操作命令がセマフォ開放命令の場合には、セマフォ開放処理手段８４が、取得したセマフォハンドルが示すセマフォを開放し、当該セマフォが管理するリソース７を命令を発行したタスク５から開放する。【選択図】        図１
2007179190.tif 000002
【特許請求の範囲】
【請求項１】
セマフォによって排他制御を行うマルチタスクシステムのオペレーティングシステムに適用され、
前記オペレーティングシステム内のリソースに対応付けられたセマフォに対応付けられ、当該セマフォの使用状態に関するセマフォ情報が登録されるセマフォ構造体と、オペレーティングシステム内のリソースを識別するためのシンボルに対応付けて、当該リソースを管理するセマフォを識別するためのセマフォハンドルが登録されるシンボル／ハンドル対応テーブルと、に基づいて、タスクが発行するリソースのシンボルを含むセマフォ操作命令によってセマフォを操作するセマフォ管理方法であって、
前記セマフォ操作命令に含まれるシンボルに対応付けて前記シンボル／ハンドル対応テーブルに登録されているセマフォハンドルを取得する対応テーブル管理ステップと、
前記セマフォ操作命令がセマフォ獲得命令である場合、前記対応テーブル管理ステップが取得したセマフォハンドルが示すセマフォに対応するセマフォ構造体のセマフォ情報に基づいてセマフォを取得し、当該セマフォが管理するリソースを前記セマフォ獲得命令を発行したタスクに割当てるセマフォ獲得ステップと、
前記セマフォ操作命令がセマフォ開放命令である場合、前記対応テーブル管理ステップが取得したセマフォハンドルが示すセマフォに対応するセマフォ構造体のセマフォ情報に基づいてセマフォを開放し、当該セマフォが管理するリソースを前記セマフォ開放命令を発行したタスクから開放するセマフォ開放ステップと、
を備えることを特徴とするセマフォ管理方法。
【請求項２】
前記対応テーブル管理ステップが、前記セマフォ操作命令に含まれるシンボルに対応付けて前記シンボル／ハンドル対応テーブルに登録されているセマフォハンドルを取得することができなかった場合、新たなセマフォ構造体を生成してセマフォを作成するセマフォ作成ステップ、
をさらに備え、
前記対応テーブル管理ステップは、
前記セマフォ操作命令に含まれるシンボルに対応付けて、前記セマフォ生成ステップによって生成されたセマフォを識別するためのシンボルを前記シンボル／ハンドル対応テーブルに登録すること、
を特徴とする請求項１に記載のセマフォ管理方法。
【請求項３】
請求項１または２に記載のセマフォ管理方法をコンピュータに実行させるセマフォ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチタスクシステムを用いたオペレーティングシステムにおけるリソースの排他制御に関するものであり、特に、セマフォを用いて排他制御を行う際のセマフォの管理方法に関するものである。
【背景技術】
【０００２】
マルチタスクシステムを用いたオペレーティングシステムにおけるリソースの排他制御には、セマフォが用いられることが多い。セマフォを用いたリソースの排他制御では、まずリソースを使用する前に、タスクは、セマフォ作成命令によってセマフォを作成する。セマフォ作成時には、セマフォ構造体のポインタ、セマフォ構造体配列のインデックスまたはオペレーティングシステムが提供するセマフォ操作のためのハンドル（以下、セマフォハンドルという）がタスク側に戻される。タスク側では、セマフォハンドルを指定したセマフォ獲得命令によってセマフォを獲得してリソースを使用する。そしてリソース使用後は、セマフォハンドルを指定したセマフォ開放命令によってセマフォを開放することでリソースを開放する。
【０００３】
タスクは、所望の機能を実現するためにユーザが作成するプログラムである。そのため、上述したようなセマフォ操作命令（セマフォ作成命令、セマフォ獲得命令、およびセマフォ開放命令）を用いてリソースを使用するセマフォによる排他制御においては、セマフォハンドルとリソースとの関連付けをユーザが把握しておく必要がある。
【０００４】
しかしながら、セマフォハンドルは数値であるため、セマフォハンドルとリソースとの関連付けを直感的に行うことは難しく、セマフォハンドルとリソースとの関連付けの管理が面倒であるという問題があった。
【０００５】
このような問題を改善するための従来技術として、特許文献１がある。特許文献１には、資源（リソース）を名前（シンボル）で管理できるようにして、プログラム（タスク）の作成および流用ならびにリソースの管理が容易に行えるリソースの管理方式に関する技術が開示されている。
【０００６】
具体的には、タスクは、使用するリソースのシンボルを資源管理モジュールに通知する。資源管理モジュールの識別番号割当て手段を介してタスクからシンボルが入力されると、識別番号管理手段は、リソースのシンボルと識別番号（セマフォハンドル）との対応を記憶する識別番号管理テーブルを検索して未使用のセマフォハンドルを検出し、検出したセマフォハンドルに対応付けて通知されたシンボルを登録して当該セマフォハンドルを使用中にするとともに、識別番号割当て手段を介して検出したセマフォハンドルをタスクに通知する。タスクは、通知されたセマフォハンドルを用いてマルチタスクオペレーティングシステムにシステムコールを発行してリソースを使用する。リソースの使用が終了すると、タスクは、使用しているセマフォハンドルを資源管理モジュールに通知する。資源管理モジュールの識別番号解放手段を介してタスクからセマフォハンドルが通知されると、識別番号管理手段は、通知されたセマフォハンドルに対応付けて識別番号管理テーブルに登録されているシンボルを削除して当該セマフォハンドルを未使用にして解放する。
【０００７】
【特許文献１】特開平５−８１０４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記特許文献１に記載の従来技術では、リソースのシンボルとセマフォハンドルを対応付けるための識別番号管理テーブルを備え、この識別番号管理テーブルを管理する対応表資源管理モジュールに対してタスクがシンボルを通知し、識別番号管理手段から返却されたセマフォハンドルを用いてセマフォの操作をおこなうようにしているため、タスクを作成するユーザは、リソースのシンボルとセマフォハンドルとの対応を把握することなく、リソースをシンボルで管理することができる。
【０００９】
しかしながら、上記特許文献１に記載の従来技術では、タスクを作成するユーザは、シンボルとセマフォハンドルとの対応付けを把握する必要は無いが、資源管理モジュールからタスクにセマフォハンドルを戻し、戻されたセマフォハンドルを用いてセマフォを使用するため、タスク内においてセマフォハンドルを管理しなければならないという問題があった。
【００１０】
また、上記特許文献１に記載の従来技術では、シンボルに対応付けたセマフォハンドルを取得し、取得したセマフォハンドルを用いてセマフォを獲得する必要がある。すなわち、タスクは、シンボルに対応付けたセマフォハンドルを取得する命令と、セマフォを獲得するセマフォ獲得命令の２命令が必要であり、ステップ数が多くなるという問題があった。
【００１１】
また、セマフォを使用する際には、セマフォ作成命令によってセマフォに対応するセマフォ構造体を作成し、作成したセマフォ構造体に対応するセマフォのセマフォハンドルを取得するが、作成したセマフォを使用するすべてのタスクに、取得したセマフォハンドルを通知しなければならないという問題があった。
【００１２】
本発明は、上記に鑑みてなされたものであって、セマフォを用いた排他制御において、タスク内でセマフォハンドルを管理することなくリソースのシンボルを用いてセマフォを操作することができるセマフォ方法を得ることを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、セマフォによって排他制御を行うマルチタスクシステムのオペレーティングシステムに適用され、前記オペレーティングシステム内のリソースに対応付けられたセマフォに対応付けられ、当該セマフォの使用状態に関するセマフォ情報が登録されるセマフォ構造体と、オペレーティングシステム内のリソースを識別するためのシンボルに対応付けて、当該リソースを管理するセマフォを識別するためのセマフォハンドルが登録されるシンボル／ハンドル対応テーブルと、に基づいて、タスクが発行するリソースのシンボルを含むセマフォ操作命令によってセマフォを操作するセマフォ管理方法であって、前記セマフォ操作命令に含まれるシンボルに対応付けて前記シンボル／ハンドル対応テーブルに登録されているセマフォハンドルを取得する対応テーブル管理ステップと、前記セマフォ操作命令がセマフォ獲得命令である場合、前記対応テーブル管理ステップが取得したセマフォハンドルが示すセマフォに対応するセマフォ構造体のセマフォ情報に基づいてセマフォを取得し、当該セマフォが管理するリソースを前記セマフォ獲得命令を発行したタスクに割当てるセマフォ獲得ステップと、前記セマフォ操作命令がセマフォ開放命令である場合、前記対応テーブル管理ステップが取得したセマフォハンドルが示すセマフォに対応するセマフォ構造体のセマフォ情報に基づいてセマフォを開放し、当該セマフォが管理するリソースを前記セマフォ開放命令を発行したタスクから開放するセマフォ開放ステップと、を備えることを特徴とする。
【発明の効果】
【００１４】
この発明によれば、対応テーブル管理手段が、リソースを識別するためのシンボル名に対応付けて当該リソースを管理するセマフォを識別するためのセマフォハンドルが登録されるシンボル／ハンドル対応テーブルから、タスクが発行するセマフォ操作命令に含まれるシンボルに対応付けられているセマフォハンドルを取得し、セマフォ操作命令がセマフォ獲得命令である場合には、セマフォ獲得処理手段が、取得したセマフォハンドルが示すセマフォを取得し、取得したセマフォが管理するリソースをセマフォ獲得命令を発行したタスクに割当て、セマフォ操作命令がセマフォ開放命令である場合には、セマフォ解放処理手段が、取得したセマフォハンドルが示すセマフォを開放し、当該セマフォが管理するリソースをセマフォ開放命令を発行したタスクから開放するようにしているため、セマフォを用いた排他制御において、タスク内でセマフォハンドルを管理することなくリソースのシンボルを用いてセマフォを操作することができるセマフォ管理方法を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかるセマフォ管理方法およびセマフォ管理プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態．
図１〜図３を用いてこの発明の実施の形態を説明する。図１は、この発明におけるセマフォ管理方法が適用されるマルチタスクシステム１の構成を示す図である。図１において、マルチタスクシステム１は、マルチタスクシステム１の管理下で動作する複数（この場合は２つ）のタスク５（５−１，５−２を示す）、およびｎ（ｎは自然数）個のリソース７（７−１〜７−ｎを示す）と、タスク５からの命令に基づいてセマフォを用いた排他制御によってリソース７の割当ておよび開放するセマフォ管理手段３と、を有するオペレーティングシステム２を主要部分として備えている。
【００１７】
タスク５は、ユーザが作成するプログラムであり、所望の機能を実現するための各種命令によって構成される。タスク５を構成する命令の中には、リソース７を利用する命令として、リソース７を排他制御するセマフォを操作するセマフォ操作命令が含まれる。セマフォ操作命令は、リソース７を使用する際にリソース７に対応するセマフォ獲得するためのセマフォ獲得命令（図中ではＰ命令）と、使用したリソース７を開放する際にリソース７に対応するセマフォを開放するためのセマフォ開放命令（図中ではＶ命令）とがある。ユーザは、セマフォ獲得命令およびセマフォ開放命令を用いる際には、対象となるリソース７に予め付与されているシンボルを指定する。
【００１８】
リソース７は、オペレーティングシステム２で用いられるメモリやプリンタなどの機器であり、それぞれにシンボルが付与されている。シンボルには、ユーザがリソース７を認識しやすい名称を用いることが可能であり、図１においては、リソース７−１にはシンボルは「ｍｅｍ１」が付与され、リソース７−２にはシンボルは「ｍｅｍ２」が付与され、…、リソース７−ｎにはシンボルは「ｍｅｍｎ」が付与されている。
【００１９】
セマフォ管理手段３は、セマフォ構造体６（６−１〜６−ｎを示す）と、シンボル／ハンドル対応テーブル４と、セマフォ操作手段８とを備えている。セマフォ構造体６は、リソース７を排他制御するセマフォに対応付けられ、予め定められた順番による配列（セマフォ構造体配列）を構成する。セマフォ管理手段３において各セマフォ構造体６はセマフォ構造体配列のインデックスやポインタによって識別される。
【００２０】
図１においては、セマフォ構造体６−１がリソース７−１を排他制御するセマフォに対応付けらており、セマフォ構造体６−２がリソース７−２を排他制御するセマフォに対応付けらており、…、セマフォ構造体６−ｎがリソース７−ｎを排他制御するセマフォに対応付けられている。また、セマフォ構造体６−１のインデックスは「ｓｅｍ１」であり、セマフォ構造体６−２のインデックスは「ｓｅｍ２」であり、…、セマフォ構造体６−ｎのインデックスは「ｓｅｍｎ」である。なお、セマフォ構造体６のインデックスは数値である。また、セマフォには、セマフォ操作に用いるハンドル（以下、セマフォハンドルとする）がオペレーティングシステム２から提供されるが、ここでは、セマフォハンドルと、当該セマフォハンドルが示すセマフォに対応するセマフォ構造体６のインデックスとは同じ値であるものとする。
【００２１】
セマフォ構造体６は、対応するセマフォの使用状態に関するセマフォ情報が登録される。セマフォ構造体６は、対応するセマフォの状態や属性が登録されるフラグ６１と、対応するセマフォの残り数が登録されるカウンタ６２と、対応するセマフォ待ちのタスク５のプロセス名が登録される待ちタスクキュー６３とで構成される。
【００２２】
シンボル／ハンドル対応テーブル４は、リソース７のシンボルに対応付けて、当該リソース７を排他制御するセマフォのセマフォハンドルが登録される。セマフォ操作手段８は、タスク５からのセマフォ操作命令を受けると、シンボル／ハンドル対応テーブル４およびセマフォ構造体６に基づいてセマフォを獲得または開放して、タスク５にリソース７を割当てたり、タスク５からリソース７を開放する処理を実行する。
【００２３】
セマフォ操作手段８は、シンボル／ハンドル対応テーブル４を管理する対応テーブル管理手段８１と、セマフォに対応するセマフォ構造体６を作成するセマフォ作成手段８２と、セマフォ構造体６に基づいてセマフォの獲得処理を実行するセマフォ獲得処理手段８３と、セマフォ構造体６に基づいてセマフォの開放処理を実行するセマフォ開放処理手段８４とを備えている。
【００２４】
図１〜図３を参照して、この発明におけるセマフォ管理方法が適用されるマルチタスクシステム１の動作を説明する。まず、図２のフローチャート、および図１を参照して、セマフォ獲得命令による動作を説明する。リソース７を使用する場合、タスク５は、使用するリソース７のシンボルを含むセマフォ獲得命令をセマフォ操作手段８に出力（発行）する（ステップＳ１００）。
【００２５】
セマフォ獲得命令が入力されると、セマフォ操作手段８の対応テーブル管理手段８１は、セマフォ獲得命令内のシンボルに対応付けられてシンボル／ハンドル対応テーブル４に登録されているセマフォハンドルを取得する（ステップＳ１０１）。
【００２６】
セマフォハンドルを取得した場合、すなわちシンボル／ハンドル対応テーブル４にセマフォ獲得命令内のシンボルと当該シンボルに対応付けられたセマフォハンドルが登録されている場合（ステップＳ１０２，Ｙｅｓ）、対応テーブル管理手段８１は、取得したセマフォハンドルを含むセマフォ獲得指示をセマフォ獲得処理手段８３に通知する。
【００２７】
セマフォ獲得指示を受けると、セマフォ獲得処理手段８３は、セマフォ獲得指示内のセマフォハンドルを用いてセマフォ獲得処理を実行する（ステップＳ１０３）。具体的には、セマフォ獲得処理手段８３は、セマフォ獲得指示内のセマフォハンドルに対応するセマフォ構造体６のカウンタ６２に登録されているカウント値を確認して、セマフォを獲得できるか否かを判定する。カウント値は、セマフォ構造体６に対応するセマフォの残り数を示している。したがって、セマフォ獲得処理手段８３は、カウント値が「０」である場合にはセマフォを獲得することができないと判定し、カウント値が「０」でない場合にはセマフォを獲得することができると判定する。セマフォを獲得することができると判定した場合、セマフォ獲得処理手段８３は、セマフォ獲得指示内のセマフォハンドルに対応するセマフォ構造体６のカウンタ６２の値をデクリメントしてセマフォを獲得する。
【００２８】
セマフォを獲得した場合（ステップＳ１０４，Ｙｅｓ）、セマフォ獲得処理手段８３は、セマフォを獲得したことをタスク５に通知する。セマフォを獲得したことが通知されると、タスク５は、セマフォ獲得命令によって獲得したセマフォが排他制御するリソース７を利用して所望の処理を実行する（ステップＳ１０５）。
【００２９】
セマフォを獲得できなかった場合、すなわちセマフォを獲得することができないと判定した場合（ステップＳ１０４，Ｎｏ）、セマフォ獲得処理手段８３は、セマフォハンドルに対応するセマフォ構造体６の待ちタスクキュー６３にセマフォ獲得命令を出力したタスク５のプロセス名を登録する（ステップＳ１０６）。
【００３０】
待ちとなっているセマフォを他のタスク５が開放すると（ステップＳ１０７）、セマフォ獲得処理手段８３は、セマフォ獲得処理を実行してセマフォを獲得し、セマフォを獲得したことをタスク５に通知し、タスク５はセマフォ獲得命令によって獲得したセマフォが排他制御するリソース７を利用して所望の処理を実行する（ステップＳ１０３〜Ｓ１０５）。なお、セマフォ獲得処理手段８３は、セマフォ待ちからセマフォを獲得する場合には、セマフォに対応するセマフォ構造体６のカウンタ６２をデクリメントするとともに、待ちタスクキュー６３に登録されている当該タスクのプロセス名を削除する。
【００３１】
一方、シンボル／ハンドル対応テーブル４からセマフォハンドルを取得することができない場合、すなわちシンボル／ハンドル対応テーブル４にセマフォ獲得命令内のシンボルと当該シンボルに対応付けられたセマフォハンドルが登録されていない場合（ステップＳ１０２，Ｎｏ）、対応テーブル管理手段８１は、セマフォ作成指示をセマフォ作成手段８２に通知する。
【００３２】
セマフォ作成指示を受けると、セマフォ作成手段８２は、新たなセマフォ構造体をセマフォ構造体配列に追加してセマフォを作成する（ステップＳ１０８）。セマフォ作成手段８２は、セマフォ作成時にオペレーティングシステム２から提供されるセマフォハンドルを含む作成完了通知を対応テーブル管理手段８１に通知する。
【００３３】
作成完了通知を受けると、対応テーブル管理手段８１は、作成完了通知内のセマフォハンドルをセマフォ獲得命令内のシンボルに対応付けてシンボル／ハンドル対応テーブル４に登録する（ステップＳ１０９）。対応テーブル管理手段８１は、作成完了通知内のセマフォハンドル、すなわちシンボル対応テーブルに登録したセマフォハンドルを含むセマフォ獲得指示をセマフォ獲得処理手段８３に通知する。
【００３４】
セマフォ獲得処理手段８３は、セマフォ獲得処理を実行してセマフォを獲得し、セマフォを獲得したことをタスク５に通知し、タスク５はセマフォ獲得命令によって獲得したセマフォが排他制御するリソース７を利用して所望の処理を実行する（ステップＳ１０３〜Ｓ１０５）。
【００３５】
つぎに、図３のフローチャート、および図１を参照して、セマフォ開放命令による動作を説明する。セマフォ獲得命令によって獲得したセマフォを開放する場合、タスク５は、開放するリソース７のシンボルを含むセマフォ開放命令をセマフォ操作手段８に出力する（ステップＳ２００）。
【００３６】
セマフォ開放命令が入力されると、セマフォ操作手段８の対応テーブル管理手段８１は、セマフォ開放命令内のシンボルに対応付けられてシンボル／ハンドル対応テーブル４に登録されているセマフォハンドルを取得する（ステップＳ２０１）。対応テーブル管理手段８１は、取得したセマフォハンドルを含むセマフォ開放指示をセマフォ開放処理手段８４に通知する。
【００３７】
セマフォ開放指示を受けると、セマフォ開放処理手段８４は、セマフォ開放指示内のセマフォハンドルを用いてセマフォ開放処理を実行する（ステップＳ２０２）。具体的には、セマフォ開放処理手段８４は、セマフォ開放指示内のセマフォハンドルに対応するセマフォ構造体６のカウンタ６２に登録されているカウント値をインクリメントする。
【００３８】
セマフォ開放処理手段８４は、セマフォを開放したことをタスク５に通知する。これにより、タスク５はセマフォの開放操作が終了したと認識して、つぎの命令を実行する（ステップＳ２０３）。
【００３９】
このようにこの実施の形態においては、対応テーブル管理手段８１が、リソース７を識別するためのシンボル名に対応付けて当該リソース７を管理するセマフォを識別するためのセマフォハンドルが登録されるシンボル／ハンドル対応テーブル４から、タスク５が発行するセマフォ操作命令に含まれるシンボルに対応付けられているセマフォハンドルを取得し、セマフォ操作命令がセマフォ獲得命令である場合には、セマフォ獲得処理手段８３が、取得したセマフォハンドルが示すセマフォを取得し、取得したセマフォが管理するリソース７をセマフォ獲得命令を発行したタスク５に割当て、セマフォ操作命令がセマフォ開放命令である場合には、セマフォ開放処理手段８４が、取得したセマフォハンドルが示すセマフォを開放し、当該セマフォが管理するリソース７をセマフォ開放命令を発行したタスク５から開放するようにしているため、セマフォを用いた排他制御において、タスク５内でセマフォハンドルを管理することなくリソース７のシンボルを用いてセマフォを操作することができる。
【００４０】
また、タスク５内でセマフォハンドルを管理することなくリソース７のシンボルを用いてセマフォを操作することができるため、同一のセマフォを使用するすべてのタスク５に対してセマフォハンドルを通知することなく、セマフォを用いた排他制御を実現することができる。
【００４１】
また、この実施の形態においては、タスク５が発行するセマフォ操作命令内のシンボルに対応付けたセマフォハンドルが、シンボル／ハンドル対応テーブル４に登録されていない場合、セマフォ作成手段８２が、新たなセマフォ構造体６を生成してセマフォを作成し、対応テーブル管理手段８１が、セマフォ操作命令内のシンボルに対応付けてセマフォ作成手段８２が作成したセマフォのセマフォハンドルをシンボル／ハンドル対応テーブル４に登録した後に、セマフォ獲得処理手段８３が、セマフォを獲得するようにしているため、セマフォの作成および獲得を１命令で実行することができ、タスク５のステップを削減することができる。
【００４２】
さらに、セマフォを用いた排他制御において、タスク５内でセマフォハンドルを管理することなくリソース７のシンボルを用いてセマフォを操作することができるため、タスク５を作成するユーザの労力を削減することができるとともに、セマフォハンドルとシンボルとの対応付けの誤りを回避することができプログラムの品質を向上するという効果も期待できる。
【００４３】
なお、この実施の形態においては、セマフォ獲得命令の動作時に、シンボル／ハンドル対応テーブル４からセマフォハンドルを取得できなかった場合、無条件にセマフォを作成するようにしたが、図４のフローチャートに示すように、先の図２のフローチャートのステップＳ１０８のセマフォの作成の処理の前に、明示的なセマフォの作成が必要か否かを判定するステップＳ１１０を追加して、セマフォの作成が必要な場合のみセマフォを作成し、セマフォの作成が必要ではない場合には、エラー通知をタスク５に通知する（ステップＳ１１１）ようにしてもよい。明示的なセマフォの作成とは、セマフォ作成命令を含むセマフォ獲得命令のことであり、この場合には、セマフォ獲得命令として、シンボル／ハンドル対応テーブル４からセマフォハンドルを取得できた場合、すなわちシンボルとセマフォハンドルとの対応付がシンボル／ハンドル対応テーブル４に登録されている場合のみセマフォ獲得する命令と、シンボル／ハンドル対応テーブル４からセマフォハンドルを取得できなかった場合、すなわちシンボルとセマフォハンドルとの対応付がシンボル／ハンドル対応テーブル４に未登録の場合には、セマフォを作成してシンボル／ハンドル対応テーブル４に登録した後、セマフォを獲得する命令とを用意しておき、タスク５上で２つの命令を使い分けるようにすればよい。
【００４４】
また、この発明におけるセマフォ操作手段８の対応テーブル管理手段８１、セマフォ作成手段８２、セマフォ獲得処理手段８３、およびセマフォ開放処理手段８４によって実現される前述した機能を、オペレーティングシステム２が動作するＣＰＵ（Central Processing Unit）などのマイクロプロセッサに実行させるためのプログラムとして提供するようにしてもよい。
【産業上の利用可能性】
【００４５】
以上のように、本発明にかかるセマフォ管理方法は、セマフォによって排他制御を行うマルチタスクシステムのオペレーティングシステムに有用であり、特に、同一のセマフォを複数のタスクから操作する場合に適している。
【図面の簡単な説明】
【００４６】
【図１】この発明におけるセマフォ管理方法が適用されるマルチタスクシステムの構成を示す図である。
【図２】この発明におけるセマフォ管理方法が適用されるマルチタスクシステムのセマフォ獲得命令による動作を説明するためのフローチャートである。
【図３】この発明におけるセマフォ管理方法が適用されるマルチタスクシステムのセマフォ開放命令による動作を説明するためのフローチャートである。
【図４】この発明におけるセマフォ管理方法が適用されるマルチタスクシステムのセマフォ獲得命令による動作を説明するためのフローチャートである。
【符号の説明】
【００４７】
１  マルチタスクシステム
２  オペレーティングシステム
３  セマフォ管理手段
４  シンボル／ハンドル対応テーブル
５−１，５−２  タスク
６−１，６−２，６−ｎ  セマフォ構造体
７−１，７−２，７−ｎ  リソース
８  セマフォ操作手段
６１  フラグ
６２  カウンタ
６３  待ちタスクキュー
８１  対応テーブル管理手段
８２  セマフォ作成手段
８３  セマフォ獲得処理手段
８４  セマフォ開放処理手段
【図１】
2007179190.tif 000003
【図２】
2007179190.tif 000004
【図３】
2007179190.tif 000005
【図４】
2007179190.tif 000006