(57)【要約】【課題】プログラム側のデータクセス動作を従来通り変更することなく、排他区間の短縮が可能な共用資源の排他制御方法および排他制御システムを提供する。【解決手段】プログラム１１から共用資源の排他要求が出されると、共用資源の排他が行われずに、プログラムに対して排他成功が返却される。プログラムがデータアクセス要求を行なうと、データアクセス手段１２は、データが排他要資源内か排他不要資源内かを判別し、排他不要資源内にある場合は共用資源排他手段１３に実排他要求を行うことなく排他不要資源にデータアクセスし、排他要資源内にある場合は共用資源排他手段に実排他要求を行う。したがって、データアクセス手段が実際に排他要資源にデータアクセスするときに排他要資源が排他されるようになるから、共用資源（排他要資源）の排他区間を短くすることが可能である。このとき、プログラムから見れば従来通りの動作を変更されることがない。【選択図】　　　　図１
2004013485.tif 000002
【特許請求の範囲】
【請求項１】
プログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して共用資源の排他処理、排他解除処理およびデータアクセス処理を行なう共用資源の排他制御方法であって、前記排他処理が、前記データアクセス要求されたデータが排他を必要としない共用資源内のデータである場合には排他を行なわず、前記データアクセス要求されたデータが排他を必要とする共用資源内のデータである場合には排他を行なうことを特徴とする共用資源の排他制御方法。
【請求項２】
プログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して共用資源の排他処理、排他解除処理およびデータアクセス処理を行なう共用資源の排他制御方法であって、前記排他要求が、中間に排他解除要求が要求されることなく、連続して要求されたとき、あるいは／および、前記排他解除要求が、中間に排他要求が要求されることなく、連続して要求されたときに、前記複数の排他要求あるいは／および排他解除要求のうちの最初の要求以外の要求は無効とされることを特徴とする共用資源の排他制御方法。
【請求項３】
同時に動作し得る１つまたは複数のプログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して共用資源の排他処理、排他解除処理およびデータアクセス処理を行なう共用資源の排他制御方法であって、前記各プログラムが動作するプロセス毎の排他状態を記録するプロセス管理表を有し、前記プロセス管理表を参照して排他状態の変化が行なわれることを特徴とする共用資源の排他制御方法。
【請求項４】
前記プログラムからの排他要求に対して、共用資源の排他が行なわれずに、前記プログラムに排他成功が返却されることを特徴とする請求項１から３のいずれかに記載の共用資源の排他制御方法。
【請求項５】
前記プロセス管理表が、前記プログラムから排他要求された際、共用資源の排他を行なわずに前記プログラムに排他成功を返却したことを排他済みとして示す仮排他状態表示項目と、前記プログラムからデータアクセス要求された際、前記データアクセス要求されたデータが排他を必要とする共用資源内にある場合、該排他を必要とする共用資源の排他が行なわれたことを排他済みとして示す実排他状態表示項目とを有し、前記プログラムから排他解除要求された際、前記排他されていた共用資源の排他が解除されたことを前記仮排他状態表示項目および前記実排他状態表示項目を排他未とすることによって示すことを特徴とする請求項３または４に記載の共用資源の排他制御方法。
【請求項６】
前記プログラムから排他要求された際、前記仮排他状態表示項目が排他済みとなっているときに、該排他要求を無効にすることを特徴とする請求項５に記載の共用資源の排他制御方法。
【請求項７】
前記プログラムから排他解除要求された際、前記仮排他状態表示項目が排他未となっているときに、該排他解除要求を無効にすることを特徴とする請求項５に記載の共用資源の排他制御方法。
【請求項８】
前記プロセス管理表が、２種類以上の前記排他要求および排他解除要求の要求種別に、前記各プロセス毎の排他状態を記録することを特徴とする請求項３から７のいずれかに記載の共用資源の排他制御方法。
【請求項９】
プログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して、共用資源の排他処理および排他解除処理を行なう共用資源排他手段と、データアクセス処理を行なうデータアクセス手段とを有する共用資源の排他制御システムであって、前記データアクセス手段が、前記データアクセス要求されたデータが排他を必要としない共用資源内のデータである場合には該共用資源の排他を行なわずに該データのアクセスを行い、前記データアクセス要求されたデータが排他を必要とする共用資源内のデータである場合には前記共用資源排他手段に該共用資源の排他を要求することを特徴とする共用資源の排他制御システム。
【請求項１０】
同時に動作し得る１つまたは複数のプログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して、共用資源の排他処理および排他解除処理を行なう共用資源排他手段と、データアクセス処理を行なうデータアクセス手段とを有する共用資源の排他制御システムであって、前記共用資源排他手段が、前記各プログラムが動作するプロセス毎の排他状態を記録するプロセス管理表を有することを特徴とする共用資源の排他制御システム。
【請求項１１】
前記プロセス管理表が、２種類以上の前記排他要求および排他解除要求の要求種別に、前記各プロセス毎の排他状態を記録することを特徴とする請求項１０に記載の共用資源の排他制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムにおける共用資源の排他制御方法および排他制御システムに関し、特に、データアクセス処理において排他要資源と排他不要資源とを判別し、排他を行なうか否かを決定して、共用資源の排他区間を短縮する共用資源の排他制御方法および排他制御システムに関するものである。
【０００２】
【従来の技術】
従来、コンピュータなどのデータ処理システムにおいて、単一の資源が、その資源へのアクセスを要求し得るプログラムによって共用されるということが行なわれている。同時に複数のプログラムからアクセス要求が出された場合に、一般的に、１つのプログラムが共用資源をアクセスしている間に、他のプログラムが当該共用資源をアクセスできないように、共用資源に排他が施され、順番にアクセスが行なわれる。図１４は、従来の共用資源の排他制御システムのブロック図を示す。図１４に示すように、従来の共用資源の排他制御システムは、プログラム５１からのデータアクセス要求を処理するデータアクセス手段５２と、プログラム５１からの排他要求および排他解除要求を処理する共用資源排他手段５３とから構成されている。
【０００３】
プログラム５１は、データのアクセスに先立って、共用資源排他手段５３を用いて共用資源の排他を要求し、排他が成功すれば、データアクセス手段５２を用いてデータアクセスを行なう。データの参照や更新などのデータアクセスが完了すれば、プログラム５１は、共用資源排他手段５３を用いて共用資源の排他解除を行う。また、プログラム５１が、例えばデータｌ、ｍ、ｎといった複数の共用資源内のデータのアクセスを行なう場合に、それらのデータアクセスの度毎に共用資源の排他を行うと、それらの動作に伴うオーバヘッドが無視できなくなる場合が発生するため、データｌ、ｍ、ｎへのデータアクセスに先立って、それらデータの収容されている共用資源の排他がまとめて実行され、データｌ、ｍ、ｎのデータアクセスが全て終了した時点で、それら共用資源の排他解除が実行されるということが行われている。
【０００４】
【発明が解決しようとする課題】
上述した従来の技術では、複数のデータのアクセスに先立って、それらのデータの収容されている共用資源の排他が行なわれるが、それらの共用資源が全て、他のプログラムによるアクセスを排他する必要のある共用資源であるとは限らない。共用資源には、共用資源自身への同時アクセス数に有限の制限があるため、プログラムの同時実行数が制限される共用資源と、共用資源自身への同時アクセス数に制限がないため、プログラムの同時実行数が制限されない共用資源とがある。前者は、アクセスの際に、排他が必要とされる共用資源（以後、「排他要資源」という）であり、後者は、排他が必要とされない共用資源（以後、「排他不要資源」という）である。前者の代表がファイルであり、後者の代表がメモリである。ファイルの場合には、システムにより同時にアクセスできるプロセス数の上限が設定されているため、排他が必要となる。メモリの場合には、そのような上限がないため、排他が不要である。
【０００５】
図１４において、プログラム５１がアクセスするデータが全て排他要資源内にあるデータｌ、ｍ、ｎである場合には、データｌ、ｍ、ｎをアクセスしている間中、共用資源（排他要資源）を排他している必要がある。しかしながら、プログラム５１がアクセスするデータが、例えば、排他不要資源内にあるデータｌ’、ｍ’と排他要資源要内にあるデータｎとであるような場合には、データｎをアクセスするときだけ排他を行なえば十分であり、データｌ’、ｍ’、ｎをアクセスしている間中、排他していると排他区間が不要に長くなる。
【０００６】
本発明はこれらの課題に鑑みてなされたものであって、その目的は、プログラムがデータアクセスする際、そのデータの収容されている共用資源が排他要資源であるか排他不要資源であるかをプログラム側で意識することなく、データアクセス処理において、排他要資源と排他不要資源とを判別し、排他を行なうか否かを決定して、共用資源の排他区間を短縮することによって、プログラム間の排他による待ち合わせを削減する共用資源の排他制御方法および排他制御システムを提供することである。
【０００７】
【課題を解決するための手段】
上記の目的を達成するため、本発明によれば、プログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して共用資源の排他処理、排他解除処理およびデータアクセス処理を行なう共用資源の排他制御方法であって、前記排他処理が、前記データアクセス要求されたデータが排他を必要としない共用資源内のデータである場合には排他を行なわず、前記データアクセス要求されたデータが排他を必要とする共用資源内のデータである場合には排他を行なうことを特徴とする共用資源の排他制御方法、が提供される。
【０００８】
また、上記の目的を達成するため、本発明によれば、プログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して共用資源の排他処理、排他解除処理およびデータアクセス処理を行なう共用資源の排他制御方法であって、前記排他要求が、中間に排他解除要求が要求されることなく、連続して要求されたとき、あるいは／および、前記排他解除要求が、中間に排他要求が要求されることなく、連続して要求されたときに、前記複数の排他要求あるいは／および排他解除要求のうちの最初の要求以外の要求は無効とされることを特徴とする共用資源の排他制御方法、が提供される。
【０００９】
また、上記の目的を達成するため、本発明によれば、同時に動作し得る１つまたは複数のプログラムからの排他要求、排他解除要求およびデータアクセス要求を入力して共用資源の排他処理、排他解除処理およびデータアクセス処理を行なう共用資源の排他制御方法であって、前記各プログラムが動作するプロセス毎の排他状態を記録するプロセス管理表を有し、前記プロセス管理表を参照して排他状態の変化が行なわれることを特徴とする共用資源の排他制御方法、が提供される。
【００１０】
また、上記の目的を達成するため、本発明によれば、上記共用資源の排他制御方法を実行する排他制御システム、が提供される。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、本発明の第１の実施の形態に係る共用資源の排他制御システムのブロック図である。図１に示すように、本実施の形態に係る共用資源の排他制御システムは、プログラム１１からのデータアクセス要求を処理するデータアクセス手段１２と、プログラム１１からの排他要求および排他解除要求を処理する共用資源排他手段１３とを有している。データアクセス手段１２および共用資源排他手段１３の働きは、以下の通りである。
共用資源排他手段１３は、プロセス管理表１４を持っている。プロセス管理表１４には、プログラム１１が動作するプロセス毎にプロセス番号が設けられ、各プロセス番号には、仮排他状態１５および実排他状態１６という２つの欄が備えられている。仮排他状態１５および実排他状態１６は、排他済みか排他未かのいずれかを取り得る。仮排他状態１５および実排他状態１６は、そのプロセス番号に対応したプロセスが何らのデータアクセス動作状態にないときに排他未となり、排他要求、データアクセス要求あるいは排他解除要求の状態にあるときに、その状態に応じて変化する。したがって、仮排他状態１５および実排他状態１６は、プログラム１１が動作する各プロセスの状態を表わすものであって、どの共用資源（排他要資源）が排他されているかを示すものではない。
【００１２】
共用資源排他手段１３は、（１）プログラム１１から、データのアクセスに先立って共用資源の排他要求が出されると、（２）プログラム１１が動作するプロセス毎にプロセス管理表１４の対応したプロセス番号の仮排他状態１５を仮排他済みに更新し、実際には共用資源の排他を行わずに、（３）プログラム１１に対して排他成功を返却する。この時点では、共用資源には、何らの動作も加えられていない。共用資源排他手段１３は、また、（６）データアクセス手段１２から実排他要求があれば、（７）プログラム１１が動作するプロセス毎にプロセス管理表１４の対応したプロセス番号の実排他状態１６を参照し、（８）実排他済みでなければ、共用資源（排他要資源）が他のプログラムのプロセスあるいは自プログラムの他プロセス（以下、「他プロセス」と総称する）から排他されていない場合はそのプロセスで排他要資源の排他処理を行い、排他要資源が他プロセスから排他されている場合は他プロセスからの排他が解除されるのを待ってからそのプロセスで排他要資源の排他処理を行い、（９）排他処理が完了したときに、プログラム１１が動作するプロセス毎にプロセス管理表１４の対応したプロセス番号の実排他状態１６を実排他済みに更新し、（１０）データアクセス手段１２に排他成功を返却する。共用資源排他手段１３は、さらに、（１２）プログラム１１から排他解除要求があれば、（１３）プログラム１１が動作するプロセス毎にプロセス管理表１４の対応するプロセス番号の仮排他状態１５および実排他状態１６を、それぞれ、仮排他未、実排他未とし、（１４）共用資源の排他を解除する。上記の過程（８）において、実排他要求に対して、プロセス管理表１４の実排他状態１６が実排他済みであれば、共用資源排他手段１３は、排他処理を行わずにデータアクセス手段１２に排他成功を返却する。
【００１３】
データアクセス手段１２は、（３）共用資源排他手段１３からプログラム１１に排他成功が返却されて、（４）プログラム１１からデータアクセスが要求されると、そのアクセス対象のデータが排他要資源内にあるか排他不要資源内にあるかを判定し、（５）アクセス対象が排他不要資源内にあった場合は、共用資源排他手段１３に実排他要求を行うことなく、排他不要資源内のデータのアクセスを行ない、（６）アクセス対象が排他要資源内にあった場合は、共用資源排他手段１３に実排他要求を行う。データアクセス手段１２は、また、（１０）共用資源排他手段１３から排他成功が返却されると、（１１）排他要資源内のデータのアクセスを行なう。
【００１４】
このようにして、プログラム１１では共用資源の排他、データのアクセス、および、共用資源の排他解除の要求を行うという従来通りの処理が変更されることなく、データアクセス手段１２が、実際にデータアクセスを行なうときに、排他要資源のみの排他を行うことによって、排他区間を短くすることが可能になる。
【００１５】
図２は、図１のデータアクセス手段１２および共用資源排他手段１３の処理動作を説明するためのフローチャートである。図２のフローチャートを参照して、本実施の形態に係る共用資源の排他制御方法の全体の動作について説明する。
ｆ１１：プログラム１１から共用資源排他手段１３に排他要求が出され、共用資源排他手段１３にて、仮排他処理が行なわれる。
ｆ１２０：共用資源排他手段１３からプログラム１１に排他成功が返却されると、プログラム１１からデータアクセス手段１２に、１つあるいは複数のデータアクセス要求が出され、データアクセス手段１２が、プログラム１１より要求されたデータアクセス要求を順次実行する。
ｆ１２１：プログラム１１は全てのデータアクセス要求が完了したか否かを判定する。完了していればｆ１５に進み、排他解除処理を行なう。完了していなければｆ１２２に進む。
ｆ１２２：データアクセス手段はアクセス要求されたデータを収容している資源が排他要資源であるか否かを判定する。排他要資源でなければステップｆ１２３に進み、排他要資源であればステップｆ１２４に進む。
ｆ１２３：データアクセス手段１２が、実排他要求を行なうことなく、排他不要資源内のアクセス対象データのアクセスを行なって、ステップｆ１２１に戻る。
ｆ１２４：データアクセス手段１２が、実排他要求を共用資源排他手段１３に出力する。
ｆ１３：共用資源排他手段１３が、排他要資源の排他を行ない、データアクセス手段１２に排他成功を返却する。
ｆ１４：データアクセス手段１２が、共用資源排他手段１３から返却された排他成功をみて、排他された排他要資源内のデータのアクセスを行なう。
ステップｆ１２１からステップｆ１４までを、全てのデータアクセス要求について繰り返し、全てのデータアクセス要求が完了するとプログラム１１から排他解除要求が出され、ステップｆ１５に進む。
ｆ１５：共用資源排他手段１３にて、排他要資源の排他解除処理が行なわれる。
【００１６】
次に、図３のフローチャートを参照して、図２の仮排他フロー（ステップｆ１１）の動作について詳細に説明する。
先ず、従来通り、プログラム１１が、共用資源排他手段１３に排他要求を出す。
ｆ１１０：共用資源排他手段１３が、取得された排他要求のプロセスに対応するプロセス管理表１４のプロセス番号の仮排他状態１５が仮排他済みであるか否かを判定する。仮排他済みでなければステップｆ１１１に進み、仮排他済みであればステップｆ１１３に進む。
ｆ１１１：共用資源排他手段１３が、仮排他状態１５を仮排他済みに更新する。
ｆ１１２：共用資源排他手段１３からプログラム１１に排他成功を返却する。
ｆ１１３：共用資源排他手段１３からプログラム１１に排他失敗を返却する。
【００１７】
プログラム１１が誤って共用資源排他手段１３に、２度連続して排他要求を行った場合は、２度目の排他要求時に、仮排他状態１５が仮排他済みになっている。この場合には、ステップｆ１１３によって、２度目の排他要求の処理が終了させられる。１度目の排他要求は、ステップｆ１１１以降のステップに進んでいく。このように、プロセス管理表１４にプロセスの仮排他状態を記録しておくことによって、誤った排他要求による動作が防止される。
【００１８】
共用資源排他手段１３から排他成功を返却されると、プログラム１１は、従来通り、１つもしくは複数のデータアクセス要求を出す。
次に、図４のフローチャートを参照して、図２の実排他フロー（ステップｆ１３）の動作について詳細に説明する。
ｆ１３０：共用資源排他手段１３が、実排他要求のプロセスに対応するプロセス管理表１４のプロセス番号の実排他状態１６が実排他済みであるか否かを判定する。実排他状態１６が実排他済みである場合には、ステップｆ１３５に進み、実排他済みでない場合には、ステップｆ１３１に進む。
ｆ１３１：アクセス対象排他要資源が、他プロセスから排他されているか否かを調べる。排他されていない場合には、ステップｆ１３２に進み、排他されている場合には、ステップｆ１３３に進む。
ｆ１３２：アクセス対象排他要資源を排他する。
ｆ１３３：他プロセスからの排他の解除を待ってから、アクセス対象排他要資源を排他する。
ｆ１３４：プロセス管理表１４の対応するプロセス番号の実排他状態１６を実排他済みに更新する。
ｆ１３５：共用資源排他手段１３からデータアクセス手段１２へ排他成功を返却する。
【００１９】
次に、図５のフローチャートを参照して、図２の排他解除フロー（ステップｆ１５）の動作について詳細に説明する。
ｆ１５０：共用資源排他手段１３が、プロセス管理表１４の対応するプロセス番号の仮排他状態１５が仮排他済みであるか否かを判定する。仮排他状態１５が仮排他済みでない場合には、ステップｆ１５１に進み、仮排他済みである場合には、ステップｆ１５２に進む。
ｆ１５１：共用資源排他手段１３からプログラム１１に排他解除失敗を返却して、本実施の形態の排他制御方法の全過程を終了する。
ｆ１５２：仮排他状態１５を仮排他未に更新する。
ｆ１５３：プロセス管理表１４の対応するプロセス番号の実排他状態１６が実排他済みであるか否かが判定される。実排他状態１６が実排他済みでない場合には、ステップｆ１５６に進み、実排他済みである場合には、ステップｆ１５４に進む。
ｆ１５４：実排他状態１６を実排他未に更新する。
ｆ１５５：排他要資源の排他を解除する。
ｆ１５６：共用資源排他手段１３からプログラム１１に、排他解除成功を返却して、本実施の形態の排他制御方法の全過程を終了する。
ステップｆ１５１は、図３の仮排他フローｆ１１におけるステップｆ１１３と同様に、２度目の要求を無効にするためである。
【００２０】
以上説明したように、プログラムから排他要求が出されたときには排他を行わず、データアクセス手段が、アクセス対象のデータが排他要資源内にあるか、排他不要資源内にあるかを判定し、アクセス対象のデータが排他不要資源内にあれば、排他を行なうことなく直ちにアクセスが行なわれ、データアクセス手段が実際に排他要資源をアクセスするときに排他が行われる。これによって、共用資源（排他要資源）の排他区間を短くすることが可能である。さらに、プロセス管理表にプロセス毎の仮排他状態、実排他状態を記録しておくことによって、二重排他や二重排他解除の誤りを検出することが可能である。この際、プログラム１１から見れば、排他を要求すると排他成功が返却され、次いで、データアクセスを要求するとデータアクセスが実行され、次に、データアクセスが完了した後、排他解除を要求すると排他解除成功が返却されるという、従来通りの過程が変更されることなく実行される。
【００２１】
〔第２の実施の形態〕
図６および図７は、本発明の第２の実施の形態に係る共用資源の排他制御システムのブロック図である。図６および図７に示すように、本実施の形態に係る共用資源の排他制御システムは、第１の実施の形態に係る共用資源の排他制御システムと同様に、プログラムからのデータアクセス要求を処理するデータアクセス手段２２と、プログラムからの排他要求および排他解除要求を処理する共用資源排他手段２３とを有している。共用資源排他手段２３は、プログラムが動作する各プロセスの状態を表わすプロセス管理表２４を持っている。なお、図６および図７において、データアクセス要求されたデータが排他不要資源内のデータである場合の処理が省略されている。
【００２２】
本実施の形態においては、２種類の異なるプログラム群２１ａ、２１ｂが扱われる。プログラム群２１ａ内のプログラム同士およびプログラム群２１ｂ内のプログラム同士は、ともに、それぞれのプログラム群内では、第１の実施の形態と同様に、同一の排他要資源に同時にアクセスすることはできない。しかしながら、第１の実施の形態と異なって、プログラム群２１ａ内のプログラムとプログラム群２１ｂ内のプログラムとの間では、１つの排他要資源を同時にアクセスすることが可能である。
【００２３】
このようなことは、プログラム群２１ａ内のプログラム２１Ａが共用資源排他手段２３にプログラム群２１ａ内だけで有効な排他種別Ａで排他要求を行い、プログラム群２１ｂ内のプログラム２１Ｂが共用資源排他手段２３にプログラム群２１ｂ内だけで有効な排他種別Ｂで排他要求を行うというように２種類の排他を行なうことで実現される。しかしながら、データアクセス手段２２から実排他要求を行う場合、従来のようにプログラム２１Ａやプログラム２１Ｂからデータアクセスが要求されるだけでは、排他要資源内のデータアクセス時に、どちらの排他種別で排他要資源の排他を行えばよいか判定できない。そこで、プログラム２１Ａやプログラム２１Ｂからデータアクセス手段２２にどちらの種類の排他を行なうべきかの情報を提供する方法も考えられるが、それは、従来のアクセス方法を変えることになり、プログラムとデータアクセス手段との間のインターフェースの変更を伴う。そこで、本実施の形態においては、プロセス管理表２４で、排他種別ごとに、各プログラムの各プロセスに対応する仮排他状態２５Ａ、２５Ｂと実排他状態２６Ａ、２６Ｂを管理することにより、従来のプログラムとデータアクセス手段との間のインターフェースの変更を伴うことなく、１つの排他要資源を同時にアクセスすることを可能にする。
【００２４】
図８は、図６のデータアクセス手段２２および共用資源排他手段２３の処理動作を説明するためのフローチャートである。図８におけるステップｆ２２０〜ｆ２２４、ｆ２４における処理動作は、第１の実施の形態の図２のステップｆ１２０〜ｆ１２４、ｆ１４における処理動作と同じである。また、仮排他フロー（ステップｆ２１）、実排他フロー（ステップｆ２３）、排他解除フロー（ステップｆ２５）における処理動作は、排他種別がＡかＢかを判定して行われるという点を除けば、各ステップに対応する第１の実施の形態の図２のフローにおける各ステップの処理動作とほぼ同じである。
【００２５】
次に、図９のフローチャートを参照して、図８の仮排他フロー（ステップｆ２１）の動作について説明する。
ｆ２１０Ａ：共用資源排他手段２３で、排他要求が排他種別Ａであるか否かが判定される。排他要求が排他種別Ａでない場合には、ステップｆ２１０Ｂに進み、排他要求が排他種別Ａである場合には、ステップｆ２１１Ａに進む。
ｆ２１０Ｂ：共用資源排他手段２３で、排他要求が排他種別Ｂであるか否かが判定される。排他要求が排他種別Ｂである場合には、ステップｆ２１１Ｂに進み、排他種別Ｂでない場合には、ステップｆ２１５に進む
ｆ２１１Ａ／ｆ２１１Ｂ：共用資源排他手段２３が、排他要求のプロセスに対応するプロセス管理表２４のプロセス番号で排他種別Ａ／Ｂを選択し、その仮排他状態２５Ａ／２５Ｂが仮排他済みであるか否かを判定する。仮排他済みでなければステップｆ２１２Ａ／２１２Ｂに進み、仮排他済みであればステップｆ２１４Ａ／２１４Ｂに進む。
ｆ２１２Ａ／２１２Ｂ：仮排他状態２５Ａ／２５Ｂを排他済みに更新する。
ｆ２１５：ステップ２１０Ｂにおいて排他要求が排他種別Ｂでないときは、その排他要求が、プログラム２１Ａおよび２１Ｂ以外のプログラムからの排他要求であり、そのプログラムに排他成功を返却する。
ステップｆ２１３Ａ〜ｆ２１４Ａのフロー、および、ステップｆ２１３Ｂ〜ｆ２１４Ｂのフローの動作は、第１の実施の形態の場合の図３のステップｆ１１２〜ｆ１１３のフローの動作と同様である。
【００２６】
次に、図１０および図１１のフローチャートを参照して、図８の実排他フロー（ステップｆ２３）の動作について説明する。
ステップｆ２３０Ａ：共用資源排他手段２３が、プロセス管理表２４の対応するプロセス番号を参照して、その仮排他状態２５Ａ、２５Ｂのうち仮排他済みになっている排他種別が排他種別Ａであるか否かを判定する。排他種別Ａでない場合にはステップｆ２３０Ｂに進む。排他種別Ａである場合には、実排他要求が排他種別Ａの実排他要求であり、ステップｆ２３１Ａに進む。
ステップｆ２３０Ｂ：共用資源排他手段２３が、プロセス管理表２４の対応するプロセス番号の仮排他状態２５Ｂが仮排他済みになっているか否かを判定する。仮排他済みになっていなければ、ステップｆ２３６に進む。仮排他済みになっていれば、実排他要求が排他種別Ｂの実排他要求であり、ステップｆ２３１Ｂに進む。
ステップｆ２３１Ａ〜ｆ２３６のフロー、および、ステップｆ２３１Ｂ〜ｆ２３６のフローの動作は、第１の実施の形態の場合の図４のステップｆ１３０〜ｆ１３５のフローの動作と同様である。
【００２７】
次に、図１２および図１３のフローチャートを参照して、図８の排他解除フロー（ステップｆ２５）の動作について説明する。
ステップｆ２５０Ａでは、共用資源排他手段２３において、排他解除要求が排他種別Ａであるか否かが判定される。排他解除要求が排他種別Ａである場合には、ステップｆ２５１Ａに進む。排他解除要求が排他種別Ａでない場合には、ステップｆ２５０Ｂに進む。ステップｆ２５０Ｂでは、排他解除要求が排他種別Ｂであるか否かが判定される。排他解除要求が排他種別Ｂである場合には、ステップｆ２５１Ｂに進む。排他解除要求が排他種別Ｂでない場合には、その排他解除要求が、プログラム２１Ａおよび２１Ｂ以外のプログラムからの排他解除要求であり、そのプログラムに排他解除成功を返却する。
ステップｆ２５１Ａ〜ｆ２５７Ａのフロー、および、ステップｆ２５１Ｂ〜ｆ２５７Ｂのフローの動作は、第１の実施の形態の場合の図６のステップｆ１５０〜ｆ１５６のフローの動作と同様である。
【００２８】
本実施の形態においては、第１の実施の形態の場合と同様に、プログラム１Ａやプログラム１Ｂとデータアクセス手段２２とのインタフェースを変更することなく、データアクセス手段２２で排他要資源をアクセスするのか排他不要資源をアクセスするのかを判別して、排他を行うか否かを決定し、データアクセス手段２２が実際にデータアクセスを行うときに排他要資源が排他されるようにすることによって、資源の排他区間の短縮を可能にする。さらに、本実施の形態においては、プロセス管理表２４に排他種別ごとに各プロセスの状態を記録して管理することにより、プログラムとデータアクセス手段２２との間の従来通りのインタフェースを変更することなく、１つの共用資源を複数のプログラム群中のプログラムで同時にアクセスすることを可能にする。
【００２９】
【発明の効果】
以上説明したように、本発明に係る共用資源の排他制御方法は、データアクセス手段で排他要資源をアクセスするのか排他不要資源をアクセスするのかを判別して、排他を行うか否かを決定し、データアクセス手段が実際にデータアクセスを行うときに排他要資源が排他されるようにするものであるから、プログラムから見れば従来通りの動作を変更することなく、共用資源（排他要資源）の排他区間を短くすることが可能である。
また、本発明に係る共用資源の排他制御方法は、プロセス管理表にプロセス毎の仮排他状態、実排他状態を記録して管理するものであるから、二重排他や二重排他解除の誤りを検出することが可能である。
また、本発明に係る共用資源の排他制御方法は、プロセス管理表に排他種別ごとに各プロセスの状態を記録して管理するものであるから、プログラムとデータアクセス手段との間の従来通りのインタフェースを変更することなく、１つの共用資源を複数のプログラム群中のプログラムで同時にアクセスすることを可能にする。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る共用資源の排他制御システムのブロック図。
【図２】図１のデータアクセス手段および共用資源排他手段の処理動作を説明するためのフローチャート。
【図３】図２の仮排他処理のフローチャート。
【図４】図２の実排他処理のフローチャート。
【図５】図２の排他解除処理のフローチャート。
【図６】本発明の第２の実施の形態に係る共用資源の排他制御システムのブロック図の一部。
【図７】本発明の第２の実施の形態に係る、図６の残りの共用資源の排他制御システムのブロック図。
【図８】図６のデータアクセス手段および共用資源排他手段の処理動作を説明するためのフローチャート。
【図９】図８の仮排他処理のフローチャート。
【図１０】図８の実排他処理のフローチャートの一部。
【図１１】図８の実排他処理の、図１０に続くフローのフローチャート。
【図１２】図８の排他解除処理のフローチャート。
【図１３】図８の排他解除処理の、図１２に続くフローのフローチャート。
【図１４】従来の共用資源の排他制御システムのブロック図。
【符号の説明】
１１、２１Ａ、２１Ｂ、５１　プログラム
１２、２２、５２　データアクセス手段
１３、２３、５３　共用資源排他手段
１４、２４　プロセス管理表
１５、２５Ａ、２５Ｂ　仮排他状態
１６、２６Ａ、２６Ｂ　実排他状態
２１ａ、２１ｂ　プログラム群
【図１】
2004013485.tif 000003
【図２】
2004013485.tif 000004
【図３】
2004013485.tif 000005
【図４】
2004013485.tif 000006
【図５】
2004013485.tif 000007
【図６】
2004013485.tif 000008
【図７】
2004013485.tif 000009
【図８】
2004013485.tif 000010
【図９】
2004013485.tif 000011
【図１０】
2004013485.tif 000012
【図１１】
2004013485.tif 000013
【図１２】
2004013485.tif 000014
【図１３】
2004013485.tif 000015
【図１４】
2004013485.tif 000016