JPH07160645A - マルチプロセッサシステムにおける共通資源排他制御方法 - Google Patents
マルチプロセッサシステムにおける共通資源排他制御方法Info
- Publication number
- JPH07160645A JPH07160645A JP5302115A JP30211593A JPH07160645A JP H07160645 A JPH07160645 A JP H07160645A JP 5302115 A JP5302115 A JP 5302115A JP 30211593 A JP30211593 A JP 30211593A JP H07160645 A JPH07160645 A JP H07160645A
- Authority
- JP
- Japan
- Prior art keywords
- common resource
- semaphore
- common
- cpu
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 マルチプロセッサシステムにおける共通資源
管理情報による共通資源の排他制御方法に関し、共通メ
モリ上に全ての共通資源の現在の使用状況および種別の
情報の領域を設けて排他制御することを目的とする。 【構成】 マルチプロセッサシステムにおいて、システ
ム内に存在する全ての共通資源の現在の使用状況及び種
別の情報の領域を共通メモリ上に新たに設け、システム
内の同一種類の共通資源が複数ある場合に、そのうちの
排他的に使用中の共通資源を或るCPU内の或るタスク
が獲得要求した場合、該当CPUのOSは共通メモリ上
に新たに設けた領域を参照し、他の同一種類の共通資源
を獲得することにより、該当タスクは共通資源待ち状態
になることなく、獲得要求したものと同一種別の共通資
源を排他的に使用できるように構成する。
管理情報による共通資源の排他制御方法に関し、共通メ
モリ上に全ての共通資源の現在の使用状況および種別の
情報の領域を設けて排他制御することを目的とする。 【構成】 マルチプロセッサシステムにおいて、システ
ム内に存在する全ての共通資源の現在の使用状況及び種
別の情報の領域を共通メモリ上に新たに設け、システム
内の同一種類の共通資源が複数ある場合に、そのうちの
排他的に使用中の共通資源を或るCPU内の或るタスク
が獲得要求した場合、該当CPUのOSは共通メモリ上
に新たに設けた領域を参照し、他の同一種類の共通資源
を獲得することにより、該当タスクは共通資源待ち状態
になることなく、獲得要求したものと同一種別の共通資
源を排他的に使用できるように構成する。
Description
【0001】
【産業上の利用分野】本発明はマルチプロセッサシステ
ムにおける共通資源管理情報による共通資源の排他制御
方法に関する。マルチプロセッサシステムにおいて、全
てのCPU内の全てのタスクが共通に使用することが可
能な共通資源を或るCPU内の或るタスクが使用する場
合、使用中に自CPU内または他CPU内の他のタスク
に使用されないようにするために、セマフォという共通
資源管理情報により共通資源の排他制御を行っている。
ムにおける共通資源管理情報による共通資源の排他制御
方法に関する。マルチプロセッサシステムにおいて、全
てのCPU内の全てのタスクが共通に使用することが可
能な共通資源を或るCPU内の或るタスクが使用する場
合、使用中に自CPU内または他CPU内の他のタスク
に使用されないようにするために、セマフォという共通
資源管理情報により共通資源の排他制御を行っている。
【0002】マルチプロセッサシステムにおける共通資
源の位置づけを図10に示す。図において、21は共通メモ
リ、22はCPU、23は共通資源を示す。マルチプロセッ
サシステム内に同一種類の共通資源(例えばメモリ、プ
リンタ、入出力装置、主記憶装置等)が複数個あり、か
つ同一種類の共通資源であればどの共通資源を使用して
も同じ処理を行え、また同じ結果を得ることが出来る。
源の位置づけを図10に示す。図において、21は共通メモ
リ、22はCPU、23は共通資源を示す。マルチプロセッ
サシステム内に同一種類の共通資源(例えばメモリ、プ
リンタ、入出力装置、主記憶装置等)が複数個あり、か
つ同一種類の共通資源であればどの共通資源を使用して
も同じ処理を行え、また同じ結果を得ることが出来る。
【0003】全てのCPU内の全てのタスク(アプリケ
ーションプログラム)が、システム内の全ての共通資源
を使用することが可能である。全ての共通資源は必ずシ
ステム内の或るCPUのOS(オペレーションシステ
ム)が管理しており、或るタスクが他CPUのOSが管
理している共通資源を使用する場合は、共通資源獲得要
求のシステムコールを発行し、OSは共通メモリを介し
て他CPUに対してCPU間通信要求を行うことによ
り、該当共通資源を獲得する。
ーションプログラム)が、システム内の全ての共通資源
を使用することが可能である。全ての共通資源は必ずシ
ステム内の或るCPUのOS(オペレーションシステ
ム)が管理しており、或るタスクが他CPUのOSが管
理している共通資源を使用する場合は、共通資源獲得要
求のシステムコールを発行し、OSは共通メモリを介し
て他CPUに対してCPU間通信要求を行うことによ
り、該当共通資源を獲得する。
【0004】ここで、マルチプロセッサシステムにおい
ては共通資源の獲得/返却することが必要となり、共通
資源管理情報(セマフォ)の獲得/返却のために、共通
資源獲得要求システムコールと共通資源返却システムコ
ールを発行するタスク及びCPU、及び該当セマフォの
存在するCPUにより、共通資源の排他制御を行ってい
る。
ては共通資源の獲得/返却することが必要となり、共通
資源管理情報(セマフォ)の獲得/返却のために、共通
資源獲得要求システムコールと共通資源返却システムコ
ールを発行するタスク及びCPU、及び該当セマフォの
存在するCPUにより、共通資源の排他制御を行ってい
る。
【0005】
【従来の技術】セマフォの論理的実体は、内部的に管理
されるカウント数(使用可能な共通資源の個数)と、そ
のカウント数の獲得を待つタスクの待ち行列である。自
CPU内のタスクとOSとの関係を図11に示す。図11
(a)は共通資源獲得要求システムコール発行時、要求
したカウントを獲得できない場合、図11(b)は共通資
源返却システムコールを発行時、要求したカウントを獲
得できた場合を示す。
されるカウント数(使用可能な共通資源の個数)と、そ
のカウント数の獲得を待つタスクの待ち行列である。自
CPU内のタスクとOSとの関係を図11に示す。図11
(a)は共通資源獲得要求システムコール発行時、要求
したカウントを獲得できない場合、図11(b)は共通資
源返却システムコールを発行時、要求したカウントを獲
得できた場合を示す。
【0006】図11(a)において、或るタスクAが共通
資源を使用したい場合、タスクはシステムコールでこの
カウントを獲得する要求を出す。要求したカウント数を
タスクが獲得することが可能であれば、タスクはそのま
ま処理を続行する。要求したカウントを獲得できない場
合にはタスクは待ち状態になり、OSは図11(c)に示
すような該当タスクのタスク情報(TCB、タスクコン
トロールブロック)を該当セマフォの待ち行列につな
ぐ。
資源を使用したい場合、タスクはシステムコールでこの
カウントを獲得する要求を出す。要求したカウント数を
タスクが獲得することが可能であれば、タスクはそのま
ま処理を続行する。要求したカウントを獲得できない場
合にはタスクは待ち状態になり、OSは図11(c)に示
すような該当タスクのタスク情報(TCB、タスクコン
トロールブロック)を該当セマフォの待ち行列につな
ぐ。
【0007】図11(b)において、その後に他タスクC
が共通資源の使用を終了した場合、共通資源を返却する
ことにより、このカウント数をシステムコールで増やす
ことが可能である。これによりタスクが要求したカウン
トを獲得できるようになれば、該当タスクAの待ち状態
は解除される。
が共通資源の使用を終了した場合、共通資源を返却する
ことにより、このカウント数をシステムコールで増やす
ことが可能である。これによりタスクが要求したカウン
トを獲得できるようになれば、該当タスクAの待ち状態
は解除される。
【0008】このような機能を持ったセマフォを計数型
セマフォと言う。このセマフォカウント数に資源の数を
対応させることにより共通資源の管理に利用することが
できる。セマフォを獲得/返却することが共通資源を獲
得/返却することになり、以降共通資源獲得/返却とセ
マフォ獲得/返却とを同じ意味にて記述する。セマフォ
の処理を定義すると次のようになる。
セマフォと言う。このセマフォカウント数に資源の数を
対応させることにより共通資源の管理に利用することが
できる。セマフォを獲得/返却することが共通資源を獲
得/返却することになり、以降共通資源獲得/返却とセ
マフォ獲得/返却とを同じ意味にて記述する。セマフォ
の処理を定義すると次のようになる。
【0009】共通資源獲得要求システムコールでは、 ・X=セマフォのカウント数(これが“0”の場合、必
ず該当タスクは待ち状態になる) ・A=タスクが要求するカウント数(最低値は“1”で
あり、“0”は不可) ・(X−A)<0なら待ち状態にする。 ・(X−A)≧0なら、セマフォのカウント数Xからタ
スクが要求するカウント数Aを引き(X=X−A)、タ
スクは実行を続ける。
ず該当タスクは待ち状態になる) ・A=タスクが要求するカウント数(最低値は“1”で
あり、“0”は不可) ・(X−A)<0なら待ち状態にする。 ・(X−A)≧0なら、セマフォのカウント数Xからタ
スクが要求するカウント数Aを引き(X=X−A)、タ
スクは実行を続ける。
【0010】共通資源返却要求システムコールでは、 ・X=セマフォのカウント数 ・B=タスクが返却するカウント数 ・A=セマフォ待ち状態のタスクが要求しているカウン
ト数(セマフォ待ち状態のタスクが存在する場合) ・セマフォのカウント数Xに返却するカウント数Bを足
す。(X=X+B) ・セマフォ待ちのタスクがある場合、この新しいカウン
ト値で共通資源獲得要求システムコールで行ったのと同
様の判定を行う。 ・(X−A)<0ならタスクは待ち状態を続ける。 ・(X−A)≧0なら、セマフォのカウント数Xからタ
スクが要求するカウント数Aを引き(X=X−A)、タ
スクを実行状態にする。
ト数(セマフォ待ち状態のタスクが存在する場合) ・セマフォのカウント数Xに返却するカウント数Bを足
す。(X=X+B) ・セマフォ待ちのタスクがある場合、この新しいカウン
ト値で共通資源獲得要求システムコールで行ったのと同
様の判定を行う。 ・(X−A)<0ならタスクは待ち状態を続ける。 ・(X−A)≧0なら、セマフォのカウント数Xからタ
スクが要求するカウント数Aを引き(X=X−A)、タ
スクを実行状態にする。
【0011】したがって、一つのセマフォに対して複数
のタスクが待ち状態になることが可能である。従来のマ
ルチプロセッサシステムにおけるCPU間通信の仕組み
を図12と図13に示す。図は、マルチプロセッサシステム
にての共通資源獲得要求/共通資源返却のシステムコー
ルを発行するタスク及びCPU、及び該当セマフォの存
在するCPUの位置づけを示す。
のタスクが待ち状態になることが可能である。従来のマ
ルチプロセッサシステムにおけるCPU間通信の仕組み
を図12と図13に示す。図は、マルチプロセッサシステム
にての共通資源獲得要求/共通資源返却のシステムコー
ルを発行するタスク及びCPU、及び該当セマフォの存
在するCPUの位置づけを示す。
【0012】図12は、CPU−1のタスクAがCPU−
2内の共通資源(該当共通資源は排他制御されていない
ため、獲得可能な状態)を獲得要求するシステムコール
を発行して該当共通資源を利用し、その後該当タスクが
該当共通資源を返却するシステムコールを発行する場合
のCPU間の通信の仕組みを示す。
2内の共通資源(該当共通資源は排他制御されていない
ため、獲得可能な状態)を獲得要求するシステムコール
を発行して該当共通資源を利用し、その後該当タスクが
該当共通資源を返却するシステムコールを発行する場合
のCPU間の通信の仕組みを示す。
【0013】図13は、CPU−1のタスクEがCPU−
2内の共通資源(該当共通資源は排他制御されていない
ため、獲得可能な状態)を獲得要求するシステムコール
を発行して該当共通資源を利用している間(図12のタス
クAと同じ処理のため省略)に、CPU−3のタスクC
がCPU−2内の排他制御中の共通資源を獲得要求する
システムコールを発行したために、該当タスクのTCB
(タスク情報)は該当セマフォの待ちキューに組み込ま
れ、待ち状態になる。
2内の共通資源(該当共通資源は排他制御されていない
ため、獲得可能な状態)を獲得要求するシステムコール
を発行して該当共通資源を利用している間(図12のタス
クAと同じ処理のため省略)に、CPU−3のタスクC
がCPU−2内の排他制御中の共通資源を獲得要求する
システムコールを発行したために、該当タスクのTCB
(タスク情報)は該当セマフォの待ちキューに組み込ま
れ、待ち状態になる。
【0014】その後にCPU−1のタスクEが該当共通
資源を返却するシステムコールを発行したために、該当
セマフォの待ちキューに組み込まれているCPU−3の
タスクCのTCBは待ちキューから外され、以降該当タ
スクは実行可能状態になり、その後該当共通資源を使用
することができる。
資源を返却するシステムコールを発行したために、該当
セマフォの待ちキューに組み込まれているCPU−3の
タスクCのTCBは待ちキューから外され、以降該当タ
スクは実行可能状態になり、その後該当共通資源を使用
することができる。
【0015】なお原則として、共通資源獲得要求システ
ムコールを発行したタスクの存在するCPUが共通資源
返却システムコールを発行することになっており、また
全てのタスクが全ての共通資源を利用可能である。
ムコールを発行したタスクの存在するCPUが共通資源
返却システムコールを発行することになっており、また
全てのタスクが全ての共通資源を利用可能である。
【0016】
【発明が解決しようとする課題】図10のマルチプロセッ
サシステムにおける共通資源の位置づけに示すように、
全ての共通資源は必ずシステム内のあるCPUのOSが
管理しており、或るタスクが他CPUのOSが管理して
いる共通資源を使用する場合は、図12や図13に示すよう
に共通資源獲得要求のシステムコールを発行し、OSは
共通メモリを介して他CPUに対してCPU間通信要求
を行うことにより、該当共通資源を獲得する。
サシステムにおける共通資源の位置づけに示すように、
全ての共通資源は必ずシステム内のあるCPUのOSが
管理しており、或るタスクが他CPUのOSが管理して
いる共通資源を使用する場合は、図12や図13に示すよう
に共通資源獲得要求のシステムコールを発行し、OSは
共通メモリを介して他CPUに対してCPU間通信要求
を行うことにより、該当共通資源を獲得する。
【0017】ここで、仮にCPU−2のタスクFがCP
U−1のOSの管理している共通資源A1を排他制御中
に、CPU−3のタスクGが該当共通資源A1を獲得要求
するためのシステムコールを発行したとする。この場
合、図13に示すようにCPU−3のタスクGは該当共通
資源を獲得できず待ち状態となり、CPU−2のタスク
Fが該当共通資源A1を返却するまでは待ち状態を解除さ
れず、以降の処理が遅れる問題があった。
U−1のOSの管理している共通資源A1を排他制御中
に、CPU−3のタスクGが該当共通資源A1を獲得要求
するためのシステムコールを発行したとする。この場
合、図13に示すようにCPU−3のタスクGは該当共通
資源を獲得できず待ち状態となり、CPU−2のタスク
Fが該当共通資源A1を返却するまでは待ち状態を解除さ
れず、以降の処理が遅れる問題があった。
【0018】この場合、CPU−3のタスクGは該当共
通資源A2またはA3を獲得要求するシステムコールを発行
すれば、待ち状態にならずに該当共通資源を獲得できる
が、同一種類の共通資源の有無の情報、及び同一種類の
共通資源がある場合は、どの共通資源が排他制御中でど
の共通資源が獲得可能かの情報が無いためできない。
通資源A2またはA3を獲得要求するシステムコールを発行
すれば、待ち状態にならずに該当共通資源を獲得できる
が、同一種類の共通資源の有無の情報、及び同一種類の
共通資源がある場合は、どの共通資源が排他制御中でど
の共通資源が獲得可能かの情報が無いためできない。
【0019】本発明は上記問題点を解決するため、共通
メモリ上に全ての共通資源の現在の使用状況および種別
の情報の領域を設けて排他制御することを目的とする。
メモリ上に全ての共通資源の現在の使用状況および種別
の情報の領域を設けて排他制御することを目的とする。
【0020】
【課題を解決するための手段】本発明の共通メモリ内の
原理構成図を図1と図2に示す。図1は本発明によるマ
ルチプロセッサシステムにおける共通メモリ内のセマフ
ォ情報ブロックアドレスとセマフォ情報ブロックの位置
づけを示し、図2は本発明によるマルチプロセッサシス
テムにおける共通メモリ内の共通資源種別キューイング
情報とセマフォ情報ブロックの位置づけを示す。
原理構成図を図1と図2に示す。図1は本発明によるマ
ルチプロセッサシステムにおける共通メモリ内のセマフ
ォ情報ブロックアドレスとセマフォ情報ブロックの位置
づけを示し、図2は本発明によるマルチプロセッサシス
テムにおける共通メモリ内の共通資源種別キューイング
情報とセマフォ情報ブロックの位置づけを示す。
【0021】図において、1は各CPU毎のセマフォ情
報ブロックアドレステーブル、2は共通資源毎のセマフ
ォ情報ブロックテーブル、3はセマフォ毎のセマフォ情
報ブロック、4は共通資源種別毎のキューイング情報テ
ーブルを示す。セマフォ毎のセマフォ情報ブロック3
は、順リンク情報、逆リンク情報、CPU−ID、セマ
フォID、セマフォカウント値、共通資源種別No. とか
ら構成される。
報ブロックアドレステーブル、2は共通資源毎のセマフ
ォ情報ブロックテーブル、3はセマフォ毎のセマフォ情
報ブロック、4は共通資源種別毎のキューイング情報テ
ーブルを示す。セマフォ毎のセマフォ情報ブロック3
は、順リンク情報、逆リンク情報、CPU−ID、セマ
フォID、セマフォカウント値、共通資源種別No. とか
ら構成される。
【0022】図1と図2に示すように、共通メモリ上に
全てのセマフォに対して各セマフォ毎に順リンク情報、
逆リンク情報、CPU−ID、セマフォID、セマフォ
カウント値、共通資源種別No. の情報3を格納する領域
2(以下この領域をセマフォ情報ブロックと呼ぶ)を新
たに設け、また全てのCPUに対してセマフォNo.1のセ
マフォ情報ブロックアドレスの領域1を新たに設け、ま
た同一の共通資源種別毎にセマフォ情報ブロックをキュ
ーイングするためのキューイング情報領域4を新たに設
けた。
全てのセマフォに対して各セマフォ毎に順リンク情報、
逆リンク情報、CPU−ID、セマフォID、セマフォ
カウント値、共通資源種別No. の情報3を格納する領域
2(以下この領域をセマフォ情報ブロックと呼ぶ)を新
たに設け、また全てのCPUに対してセマフォNo.1のセ
マフォ情報ブロックアドレスの領域1を新たに設け、ま
た同一の共通資源種別毎にセマフォ情報ブロックをキュ
ーイングするためのキューイング情報領域4を新たに設
けた。
【0023】セマフォ情報ブロック内のセマフォカウン
ト値には常に該当CPU内の該当セマフォの現在のカウ
ント数が格納されており、また同一種別の共通資源セマ
フォ情報ブロックは全て該当する共通資源種別キューイ
ング情報にキューイングされている。
ト値には常に該当CPU内の該当セマフォの現在のカウ
ント数が格納されており、また同一種別の共通資源セマ
フォ情報ブロックは全て該当する共通資源種別キューイ
ング情報にキューイングされている。
【0024】或るCPU内の或るタスクが共通資源獲得
要求システムコールを発行すると、該当CPUのOSは
先ず共通メモリ内の該当共通資源のセマフォ情報ブロッ
クをチェックし、セマフォカウント値がシステムコール
にて要求しているカウント数以上の場合は、該当共通資
源を管理しているCPUに対して共通資源獲得要求を行
う。
要求システムコールを発行すると、該当CPUのOSは
先ず共通メモリ内の該当共通資源のセマフォ情報ブロッ
クをチェックし、セマフォカウント値がシステムコール
にて要求しているカウント数以上の場合は、該当共通資
源を管理しているCPUに対して共通資源獲得要求を行
う。
【0025】上記の場合でセマフォカウント値がシステ
ムコールにて要求しているカウント数未満の場合は、該
当CPUのOSは該当セマフォ情報ブロックから共通資
源種別No. の情報を読み、該当共通資源種別のキューイ
ング情報にキューイングされているセマフォ情報ブロッ
クを先頭から一つ一つチェックし、セマフォカウント値
がシステムコールにて要求しているカウント数以上の場
合は、該当セマフォ情報ブロックに格納されているセマ
フォを管理しているCPUに対して共通資源獲得要求を
行い、未満の場合は次にキューイングされているセマフ
ォ情報ブロックをチェックし、同様の処理を行い、以降
キューイングされている全ての情報ブロックをチェック
し終わるまでこの処理を続ける。
ムコールにて要求しているカウント数未満の場合は、該
当CPUのOSは該当セマフォ情報ブロックから共通資
源種別No. の情報を読み、該当共通資源種別のキューイ
ング情報にキューイングされているセマフォ情報ブロッ
クを先頭から一つ一つチェックし、セマフォカウント値
がシステムコールにて要求しているカウント数以上の場
合は、該当セマフォ情報ブロックに格納されているセマ
フォを管理しているCPUに対して共通資源獲得要求を
行い、未満の場合は次にキューイングされているセマフ
ォ情報ブロックをチェックし、同様の処理を行い、以降
キューイングされている全ての情報ブロックをチェック
し終わるまでこの処理を続ける。
【0026】
【作用】これにより従来問題になっていたマルチプロセ
ッサシステム内に同一種類の共通資源が複数ある場合、
どの共通資源が排他制御中で、どの共通資源が獲得可能
かの情報が無いため獲得可能な共通資源があるにもかか
わらず、排他制御中の共通資源に対して共通資源獲得要
求のシステムコールを発行し、その結果以降の処理が遅
れる問題を解決することができる。
ッサシステム内に同一種類の共通資源が複数ある場合、
どの共通資源が排他制御中で、どの共通資源が獲得可能
かの情報が無いため獲得可能な共通資源があるにもかか
わらず、排他制御中の共通資源に対して共通資源獲得要
求のシステムコールを発行し、その結果以降の処理が遅
れる問題を解決することができる。
【0027】本発明の処理手順のフローチャートを図3
と図4に示す。図3は、本発明におけるシステム立ち上
げ時の共通メモリ内の領域の獲得及び初期設定の手順を
示し、図4は、本発明におけるシステムコール発行後共
通資源獲得要求を行うまでに発行元CPUのOSが共通
メモリ内のセマフォ情報ブロック等をチェックする手順
を示す。
と図4に示す。図3は、本発明におけるシステム立ち上
げ時の共通メモリ内の領域の獲得及び初期設定の手順を
示し、図4は、本発明におけるシステムコール発行後共
通資源獲得要求を行うまでに発行元CPUのOSが共通
メモリ内のセマフォ情報ブロック等をチェックする手順
を示す。
【0028】まずシステム立ち上げ時、各CPU毎に共
通メモリ内のセマフォ情報ブロック等の領域の獲得及び
初期設定を行うが、図3のフローチャートによりその手
順を説明する。
通メモリ内のセマフォ情報ブロック等の領域の獲得及び
初期設定を行うが、図3のフローチャートによりその手
順を説明する。
【0029】その方法は、先ずマルチプロセッサシステ
ム内に存在するCPUの数分セマフォNo.1セマフォ情報
ブロックアドレスの領域を、またシステム内に存在する
全ての共通資源の種類の数分、共通資源種別キューイン
グ情報の領域を共通メモリ上に獲得する(S−1)。
ム内に存在するCPUの数分セマフォNo.1セマフォ情報
ブロックアドレスの領域を、またシステム内に存在する
全ての共通資源の種類の数分、共通資源種別キューイン
グ情報の領域を共通メモリ上に獲得する(S−1)。
【0030】次に、各CPU毎に設定可能な最大共通資
源数分のセマフォ情報ブロックの領域を共通メモリ上に
獲得する(S−2)とともに、No.1のセマフォ情報ブロ
ックの先頭アドレスを該当CPUのセマフォNo.1セマフ
ォ情報ブロックアドレスに格納する(S−3)。
源数分のセマフォ情報ブロックの領域を共通メモリ上に
獲得する(S−2)とともに、No.1のセマフォ情報ブロ
ックの先頭アドレスを該当CPUのセマフォNo.1セマフ
ォ情報ブロックアドレスに格納する(S−3)。
【0031】また、初期設定を行う各セマフォ毎にセマ
フォ情報ブロック内のCPU−ID、セマフォIDにそ
れぞれ該当するIDを格納し、セマフォカウント値には
該当セマフォの初期カウント値を格納(S−4)し、共
通資源種別No. に該当する共通資源種別No. を格納(S
−5)し、また、各セマフォ毎に該当する共通資源種別
のキューイング情報にキューイングされているセマフォ
情報ブロックの最後尾に該当セマフォ情報ブロックをエ
ンキューするために、順リンク情報及び逆リンク情報を
書込む(S−6)。各CPU毎に全てのセマフォに対し
て(S−4)〜(S−6)の処理を行い(S−7)、ま
たシステム内の全てのCPU毎に(S−2)〜(S−
7)の処理を行う(S−8)。
フォ情報ブロック内のCPU−ID、セマフォIDにそ
れぞれ該当するIDを格納し、セマフォカウント値には
該当セマフォの初期カウント値を格納(S−4)し、共
通資源種別No. に該当する共通資源種別No. を格納(S
−5)し、また、各セマフォ毎に該当する共通資源種別
のキューイング情報にキューイングされているセマフォ
情報ブロックの最後尾に該当セマフォ情報ブロックをエ
ンキューするために、順リンク情報及び逆リンク情報を
書込む(S−6)。各CPU毎に全てのセマフォに対し
て(S−4)〜(S−6)の処理を行い(S−7)、ま
たシステム内の全てのCPU毎に(S−2)〜(S−
7)の処理を行う(S−8)。
【0032】次に、システム立ち上げが終わり実際の運
用時に、或るCPU内の或るタスクが共通資源を獲得す
るためにシステムコールを発行してから該当CPUのO
Sが共通資源獲得要求を行うまでに該当OSが共通メモ
リ内のセマフォ情報ブロック等の情報をチェックする
が、図4のフローチャートに沿ってその手順を説明す
る。
用時に、或るCPU内の或るタスクが共通資源を獲得す
るためにシステムコールを発行してから該当CPUのO
Sが共通資源獲得要求を行うまでに該当OSが共通メモ
リ内のセマフォ情報ブロック等の情報をチェックする
が、図4のフローチャートに沿ってその手順を説明す
る。
【0033】或るCPU(以下CPU−1とする)内の
或るタスク(以下タスクAとする)が他CPU(以下C
PU−2とする)のOSが管理している共通資源(セマ
フォID=1、セマフォカウント値=1)を獲得要求
(要求カウント数=1)するシステムコールを発行した
場合、CPU−1のOSは共通メモリ内の該当共通資源
(CPU−2のセマフォNo.1) のセマフォ情報ブロック
をチェックし(S−11)、セマフォカウント値がシステ
ムコールを要求しているカウント値以上の場合(S−1
2)は獲得可能なので、CPU−2に対して共通資源要
求を行う(S−17)。
或るタスク(以下タスクAとする)が他CPU(以下C
PU−2とする)のOSが管理している共通資源(セマ
フォID=1、セマフォカウント値=1)を獲得要求
(要求カウント数=1)するシステムコールを発行した
場合、CPU−1のOSは共通メモリ内の該当共通資源
(CPU−2のセマフォNo.1) のセマフォ情報ブロック
をチェックし(S−11)、セマフォカウント値がシステ
ムコールを要求しているカウント値以上の場合(S−1
2)は獲得可能なので、CPU−2に対して共通資源要
求を行う(S−17)。
【0034】上記の場合で獲得要求する共通資源が既に
排他制御中の場合(セマフォカウント値=0がシステム
コールにて要求しているカウント値=1未満の場合)
(S−12)は直ぐには獲得不可能なので、セマフォ情報
ブロックの共通資源種別No. を読取り(S−13)、CP
U−1のOSはシステムコールにて要求している共通資
源の種別に該当するキューイング情報にキューイングさ
れているセマフォ情報ブロックを先頭から一つ一つチェ
ックする(S−14)。
排他制御中の場合(セマフォカウント値=0がシステム
コールにて要求しているカウント値=1未満の場合)
(S−12)は直ぐには獲得不可能なので、セマフォ情報
ブロックの共通資源種別No. を読取り(S−13)、CP
U−1のOSはシステムコールにて要求している共通資
源の種別に該当するキューイング情報にキューイングさ
れているセマフォ情報ブロックを先頭から一つ一つチェ
ックする(S−14)。
【0035】チェックの方法としては、セマフォカウン
ト値がシステムコールにて要求しているカウント値(=
1)以上の場合(S−15)は獲得可能なので、該当共通
資源を管理しているCPUに対して共通資源獲得要求を
行い(S−18)、未満の場合は次にキューイングされて
いるセマフォ情報ブロックを同様の方法にてチェックし
(S−14)、以降獲得可能な共通資源が見つかるまでこ
の処理を繰り返す。
ト値がシステムコールにて要求しているカウント値(=
1)以上の場合(S−15)は獲得可能なので、該当共通
資源を管理しているCPUに対して共通資源獲得要求を
行い(S−18)、未満の場合は次にキューイングされて
いるセマフォ情報ブロックを同様の方法にてチェックし
(S−14)、以降獲得可能な共通資源が見つかるまでこ
の処理を繰り返す。
【0036】なお、該当共通資源種別のキューイング情
報にキューイングされている全てのセマフォ情報ブロッ
クのセマフォカウント値がシステムコールにて要求して
いるカウント値未満の場合(S−16)は、システムコー
ルにて指定された共通資源を管理しているCPUに対し
て共通資源獲得要求を行う(S−17)。この場合、該当
共通資源は他タスクによって排他制御中のため直ぐには
獲得できず、該当システムコールを発行したタスクは該
当セマフォの待ち状態になり、以降従来技術と同じ手順
にて該当共通資源は使用可能になる。
報にキューイングされている全てのセマフォ情報ブロッ
クのセマフォカウント値がシステムコールにて要求して
いるカウント値未満の場合(S−16)は、システムコー
ルにて指定された共通資源を管理しているCPUに対し
て共通資源獲得要求を行う(S−17)。この場合、該当
共通資源は他タスクによって排他制御中のため直ぐには
獲得できず、該当システムコールを発行したタスクは該
当セマフォの待ち状態になり、以降従来技術と同じ手順
にて該当共通資源は使用可能になる。
【0037】CPU−1のOSがCPU−2に対して共
通資源獲得要求を行うと(S−17またはS−18)、CP
U−2のOSは先ず該当共通資源のセマフォカウント数
と要求カウント数をチェックして獲得可能かを判断す
る。獲得可能の場合はセマフォカウント数から要求カウ
ント数を引くとともに、共通メモリ内の該当共通資源の
セマフォ情報ブロック内のセマフォカウント値から要求
カウント数を引いた後、CPU−1のタスクAは該当共
通資源を獲得して排他的に利用する。
通資源獲得要求を行うと(S−17またはS−18)、CP
U−2のOSは先ず該当共通資源のセマフォカウント数
と要求カウント数をチェックして獲得可能かを判断す
る。獲得可能の場合はセマフォカウント数から要求カウ
ント数を引くとともに、共通メモリ内の該当共通資源の
セマフォ情報ブロック内のセマフォカウント値から要求
カウント数を引いた後、CPU−1のタスクAは該当共
通資源を獲得して排他的に利用する。
【0038】その後、CPU−1のタスクAが該当共通
資源の利用を終え、該当共通資源を返却するシステムコ
ールを発行すると、CPU−2のOSは該当共通資源の
セマフォカウント値に返却するカウント数を加算すると
ともに、共通メモリ内の該当共通資源のセマフォ情報ブ
ロック内のセマフォカウント値に返却するカウント数を
加算する。これにより、セマフォカウント数と共通メモ
リ内の該当共通資源のセマフォ情報ブロック内のセマフ
ォカウント値は常に一致している。
資源の利用を終え、該当共通資源を返却するシステムコ
ールを発行すると、CPU−2のOSは該当共通資源の
セマフォカウント値に返却するカウント数を加算すると
ともに、共通メモリ内の該当共通資源のセマフォ情報ブ
ロック内のセマフォカウント値に返却するカウント数を
加算する。これにより、セマフォカウント数と共通メモ
リ内の該当共通資源のセマフォ情報ブロック内のセマフ
ォカウント値は常に一致している。
【0039】
〔実施例1〕本発明のマルチプロセッサシステムにおけ
る共通資源の位置づけの実施例を図5に示す。また、本
発明によるシステム立上げ終了(初期設定)後の共通メ
モリ内のセマフォ情報ブロック等の状態の実施例を図6
に示す。図において、11は共通メモリ、12はCPU、13
は共通資源、14は各CPU毎のセマフォ情報ブロックア
ドレステーブル、15は共通資源種別毎のキューイング情
報テーブル、16は共通資源毎のセマフォ情報ブロックテ
ーブル、17はセマフォ情報ブロックを示す。
る共通資源の位置づけの実施例を図5に示す。また、本
発明によるシステム立上げ終了(初期設定)後の共通メ
モリ内のセマフォ情報ブロック等の状態の実施例を図6
に示す。図において、11は共通メモリ、12はCPU、13
は共通資源、14は各CPU毎のセマフォ情報ブロックア
ドレステーブル、15は共通資源種別毎のキューイング情
報テーブル、16は共通資源毎のセマフォ情報ブロックテ
ーブル、17はセマフォ情報ブロックを示す。
【0040】図5の共通資源の位置づけにおいて、シス
テム立上げ後、CPU−1のタスクEがCPU−2のO
Sが管理しているセマフォID−1の共通資源(種別N
o.1)を獲得するシステムコール(要求カウント数=
1)を発行すると、CPU−1のOSは共通メモリ内の
該当セマフォ情報ブロック(CPU−2、セマフォID
−1)のセマフォカウント値(=1)をチェックし、獲
得可能なのでCPU−2に対して共通資源獲得要求を行
う。
テム立上げ後、CPU−1のタスクEがCPU−2のO
Sが管理しているセマフォID−1の共通資源(種別N
o.1)を獲得するシステムコール(要求カウント数=
1)を発行すると、CPU−1のOSは共通メモリ内の
該当セマフォ情報ブロック(CPU−2、セマフォID
−1)のセマフォカウント値(=1)をチェックし、獲
得可能なのでCPU−2に対して共通資源獲得要求を行
う。
【0041】その後、CPU−2のOSは該当セマフォ
のセマフォカウント数(=1)から要求カウント数(=
1)を引き、また共通メモリ内の該当共通資源のセマフ
ォ情報ブロック内のセマフォカウント(=1)要求カウ
ント数を引き、CPU−1のタスクEは以降該当共通資
源を排他的に使用できる。
のセマフォカウント数(=1)から要求カウント数(=
1)を引き、また共通メモリ内の該当共通資源のセマフ
ォ情報ブロック内のセマフォカウント(=1)要求カウ
ント数を引き、CPU−1のタスクEは以降該当共通資
源を排他的に使用できる。
【0042】その後、CPU−1のタスクEが該当共通
資源を排他的に使用中にCPU−3のタスクCが該当共
通資源を獲得するシステムコール(要求カウント数=
1)を発行すると、CPU−3のOSは共通メモリ内の
該当セマフォ情報ブロック(CPU−2、セマフォID
−1)のセマフォカウント値(=0)をチェックするが
直ぐには獲得できないので、該当共通資源種別(=No.
1)のキューイング情報にキューイングされているセマ
フォ情報ブロックを先頭から一つ一つチェックする。
資源を排他的に使用中にCPU−3のタスクCが該当共
通資源を獲得するシステムコール(要求カウント数=
1)を発行すると、CPU−3のOSは共通メモリ内の
該当セマフォ情報ブロック(CPU−2、セマフォID
−1)のセマフォカウント値(=0)をチェックするが
直ぐには獲得できないので、該当共通資源種別(=No.
1)のキューイング情報にキューイングされているセマ
フォ情報ブロックを先頭から一つ一つチェックする。
【0043】まず、CPU−2のセマフォID−1のセ
マフォ情報ブロックのセマフォカウント値をチェックす
るが“0”なので、次にキューイングされているセマフ
ォ情報ブロック(CPU−4、セマフォID−1)のセ
マフォカウント値をチェックすると“1”であり、獲得
可能なのでCPU−3のOSは該当共通資源を獲得する
ため、CPU−4に対して共通資源獲得要求を行う。
マフォ情報ブロックのセマフォカウント値をチェックす
るが“0”なので、次にキューイングされているセマフ
ォ情報ブロック(CPU−4、セマフォID−1)のセ
マフォカウント値をチェックすると“1”であり、獲得
可能なのでCPU−3のOSは該当共通資源を獲得する
ため、CPU−4に対して共通資源獲得要求を行う。
【0044】その後、CPU−4のOSはセマフォID
−1のセマフォカウント値(=1)から要求カウント数
(=1)を引き、また共通メモリ内の該当共通資源のセ
マフォ情報ブロック内のセマフォカウント値(=1)か
ら要求カウント数を引き、以降CPU−3のタスクCは
システムコールにて獲得要求した共通資源と同じ種類の
共通資源を排他的に使用できる。(従来技術ではCPU
−3のタスクCはCPU−2のセマフォID−1の共通
資源の待ち状態になっていた)。 〔実施例2〕システム立ち上げが終了し実際の運用状態
に入った後、新たにメモリ、プリンタ、入出力装置、主
記憶装置等の共通資源を追加したい場合や共通資源が障
害から復旧した場合、該当共通資源に対応する共通メモ
リ内のセマフォ情報ブロック内のセマフォカウント値は
“0”であり、また新規追加の場合は該当セマフォ情報
ブロックはどの共通資源種別キューイング情報にもキュ
ーイングされていない(但し立ち上げ時に該当共通資源
のセマフォ情報ブロックの領域は確保されている)。
−1のセマフォカウント値(=1)から要求カウント数
(=1)を引き、また共通メモリ内の該当共通資源のセ
マフォ情報ブロック内のセマフォカウント値(=1)か
ら要求カウント数を引き、以降CPU−3のタスクCは
システムコールにて獲得要求した共通資源と同じ種類の
共通資源を排他的に使用できる。(従来技術ではCPU
−3のタスクCはCPU−2のセマフォID−1の共通
資源の待ち状態になっていた)。 〔実施例2〕システム立ち上げが終了し実際の運用状態
に入った後、新たにメモリ、プリンタ、入出力装置、主
記憶装置等の共通資源を追加したい場合や共通資源が障
害から復旧した場合、該当共通資源に対応する共通メモ
リ内のセマフォ情報ブロック内のセマフォカウント値は
“0”であり、また新規追加の場合は該当セマフォ情報
ブロックはどの共通資源種別キューイング情報にもキュ
ーイングされていない(但し立ち上げ時に該当共通資源
のセマフォ情報ブロックの領域は確保されている)。
【0045】この場合、該当共通資源を管理しているC
PUのOSは共通メモリ内の該当共通資源に対応するセ
マフォ情報ブロック内のCPU−ID、セマフォID、
共通資源種別No. にそれぞれ該当するID及び種別No.
を格納し、セマフォカウント値には該当セマフォの初期
カウント値を格納し、また該当共通資源の種別に対応す
るキューイング情報にキューイングされているセマフォ
情報ブロックの最後尾に該当セマフォ情報ブロックをエ
ンキューするために順リンク情報及び逆リンク情報を
(新規追加の場合のみ)書込み(フローチャート図3の
S−4〜S−6の処理参照)、障害復旧の場合は、図7
のセマフォ情報ブロックの障害発生フラグをリセットす
る。
PUのOSは共通メモリ内の該当共通資源に対応するセ
マフォ情報ブロック内のCPU−ID、セマフォID、
共通資源種別No. にそれぞれ該当するID及び種別No.
を格納し、セマフォカウント値には該当セマフォの初期
カウント値を格納し、また該当共通資源の種別に対応す
るキューイング情報にキューイングされているセマフォ
情報ブロックの最後尾に該当セマフォ情報ブロックをエ
ンキューするために順リンク情報及び逆リンク情報を
(新規追加の場合のみ)書込み(フローチャート図3の
S−4〜S−6の処理参照)、障害復旧の場合は、図7
のセマフォ情報ブロックの障害発生フラグをリセットす
る。
【0046】これにより、以降運用状態に入ってから新
たに追加したり、また障害から復旧した共通資源につい
ても、システム立ち上げ時に初期設定した共通資源と同
様の手順(図4のフローチャート参照)にて獲得要求を
行ったり、排他的に使用したりすることが可能となる。 〔実施例3〕システム立ち上げが終了し実際の運用状態
に入った後、共通メモリ、プリンタ、入出力装置、主記
憶装置等の共通電源に障害が発生したり、また不要にな
った場合は、該当共通資源を管理しているCPUのOS
は該当共通資源のセマフォ情報ブロックのセマフォカウ
ント値を“0”にする。
たに追加したり、また障害から復旧した共通資源につい
ても、システム立ち上げ時に初期設定した共通資源と同
様の手順(図4のフローチャート参照)にて獲得要求を
行ったり、排他的に使用したりすることが可能となる。 〔実施例3〕システム立ち上げが終了し実際の運用状態
に入った後、共通メモリ、プリンタ、入出力装置、主記
憶装置等の共通電源に障害が発生したり、また不要にな
った場合は、該当共通資源を管理しているCPUのOS
は該当共通資源のセマフォ情報ブロックのセマフォカウ
ント値を“0”にする。
【0047】また不要になった場合のみ該当共通資源の
種別のキューから該当セマフォ情報ブロックをデキュー
するために、その前後にキューイングされているセマフ
ォ情報ブロックの順リンク情報及び逆リンク情報を書き
添える。また障害復旧時は、該当セマフォ情報ブロック
の障害発生フラグ(図7参照)を“ON”にする。
種別のキューから該当セマフォ情報ブロックをデキュー
するために、その前後にキューイングされているセマフ
ォ情報ブロックの順リンク情報及び逆リンク情報を書き
添える。また障害復旧時は、該当セマフォ情報ブロック
の障害発生フラグ(図7参照)を“ON”にする。
【0048】これにより、以降他CPU内の或るタスク
が該当共通資源を獲得するシステムコールを発行して
も、システムコール発行元のCPUのOSは該当共通資
源の種別にキューイングされている他の同一種類の共通
資源を獲得し、以降該当タスクは他の同一種類の共通資
源を排他的に使用する。
が該当共通資源を獲得するシステムコールを発行して
も、システムコール発行元のCPUのOSは該当共通資
源の種別にキューイングされている他の同一種類の共通
資源を獲得し、以降該当タスクは他の同一種類の共通資
源を排他的に使用する。
【0049】また他CPU内の或るタスクが該当共通資
源と同一種別の共通資源を獲得するシステムコールを発
行し、システムコールにて指定された共通資源が排他制
御中で獲得できない場合でも、システムコール発行元C
PUのOSは該当共通資源を獲得せず(セマフォ情報ブ
ロックの障害発生フラグが“ON”または該当セマフォ
情報ブロックは該当種別キューにキューイングされてい
ないために)、以降該当タスクは他の同一種類の共通資
源を排他的に使用する。 〔実施例4〕処理フローチャート図3,図4や実施例1
にて述べたように、或るCPU内の或るタスクが他タス
クによって排他的に使用中の共通資源を獲得要求するシ
ステムコールを発行した場合、他の同一種類の未使用の
共通資源がシステム内に存在すれば、代わりに該当資源
を獲得できる。
源と同一種別の共通資源を獲得するシステムコールを発
行し、システムコールにて指定された共通資源が排他制
御中で獲得できない場合でも、システムコール発行元C
PUのOSは該当共通資源を獲得せず(セマフォ情報ブ
ロックの障害発生フラグが“ON”または該当セマフォ
情報ブロックは該当種別キューにキューイングされてい
ないために)、以降該当タスクは他の同一種類の共通資
源を排他的に使用する。 〔実施例4〕処理フローチャート図3,図4や実施例1
にて述べたように、或るCPU内の或るタスクが他タス
クによって排他的に使用中の共通資源を獲得要求するシ
ステムコールを発行した場合、他の同一種類の未使用の
共通資源がシステム内に存在すれば、代わりに該当資源
を獲得できる。
【0050】この場合、システムコール発行元タスクは
獲得した共通資源の種別(メモリ、プリンタ、入出力装
置、主記憶装置等)によっては、その後の処理手順(例
えば共通資源獲得後、メモリや主記憶装置の内容を参照
/変更したり、プリンタへの印字結果を参照する場合)
において実際にどの共通資源を獲得したかの情報が必要
になる(従来技術ではシステムコールに指定した共通資
源しか獲得できなかったが、本発明ではシステムコール
にて指定した以外の共通資源を獲得することがあり得る
ため)。
獲得した共通資源の種別(メモリ、プリンタ、入出力装
置、主記憶装置等)によっては、その後の処理手順(例
えば共通資源獲得後、メモリや主記憶装置の内容を参照
/変更したり、プリンタへの印字結果を参照する場合)
において実際にどの共通資源を獲得したかの情報が必要
になる(従来技術ではシステムコールに指定した共通資
源しか獲得できなかったが、本発明ではシステムコール
にて指定した以外の共通資源を獲得することがあり得る
ため)。
【0051】このため、共通資源を正常に獲得できた場
合は、通信元CPUのOSは実際に獲得した共通資源の
IDを復帰値とするとともに、システムコール発行元タ
スクに通知する(図13参照)。 (実施例5〕処理フローチャート図3,図4や実施例1
にて述べた方式では、システム内の全てのタスクがシス
テム内に存在する全ての共通資源(図5参照)を使用す
ることが可能であることを前提としている。しかしシス
テムによっては、システム内に存在する全ての共通資源
を使用することができない場合がある(例えば遠隔のた
め他CPU管理のプリンタの印字結果を参照できない
等)。
合は、通信元CPUのOSは実際に獲得した共通資源の
IDを復帰値とするとともに、システムコール発行元タ
スクに通知する(図13参照)。 (実施例5〕処理フローチャート図3,図4や実施例1
にて述べた方式では、システム内の全てのタスクがシス
テム内に存在する全ての共通資源(図5参照)を使用す
ることが可能であることを前提としている。しかしシス
テムによっては、システム内に存在する全ての共通資源
を使用することができない場合がある(例えば遠隔のた
め他CPU管理のプリンタの印字結果を参照できない
等)。
【0052】この場合、図8の使用可能共通資源テーブ
ルに示すように、各CPUのローカルメモリ上に新たに
使用可能共通資源テーブルの領域を設けるとともに、実
際にあるタスクが共通資源獲得要求のシステムコールを
発行した場合、該当CPUのOSは使用可能共通資源テ
ーブルをチェックし、使用不可能な共通資源に対しては
獲得要求を行わないようにする。図4のフローチャート
の(S−15)と(S−16)との間に獲得要求しようとし
ている共通資源が使用可能かどうかを使用可能共通資源
テーブルにてチェックする処理が追加になる。
ルに示すように、各CPUのローカルメモリ上に新たに
使用可能共通資源テーブルの領域を設けるとともに、実
際にあるタスクが共通資源獲得要求のシステムコールを
発行した場合、該当CPUのOSは使用可能共通資源テ
ーブルをチェックし、使用不可能な共通資源に対しては
獲得要求を行わないようにする。図4のフローチャート
の(S−15)と(S−16)との間に獲得要求しようとし
ている共通資源が使用可能かどうかを使用可能共通資源
テーブルにてチェックする処理が追加になる。
【0053】図9に実施例5における発行元CPUのO
Sが使用可能共通資源テーブルをチェックする処理手順
をフローチャートで示す。図において、(S−15’)と
(S−15”)の処理が追加される手順を示す。
Sが使用可能共通資源テーブルをチェックする処理手順
をフローチャートで示す。図において、(S−15’)と
(S−15”)の処理が追加される手順を示す。
【0054】
【発明の効果】従来技術では、或るCPUのタスクは他
のCPUのセマフォIDの共通資源の待ち状態になって
いたが、本発明ではシステムコールで獲得要求した共通
資源と同じ種類の共通資源を排他的に使用できる。
のCPUのセマフォIDの共通資源の待ち状態になって
いたが、本発明ではシステムコールで獲得要求した共通
資源と同じ種類の共通資源を排他的に使用できる。
【0055】また、以降運用状態に入ってから新たに追
加したり、また障害から復旧した共通資源についても、
システム立ち上げ時に初期設定した共通資源と同様の手
順で獲得要求を行ったり、排他的に使用したりすること
ができる。
加したり、また障害から復旧した共通資源についても、
システム立ち上げ時に初期設定した共通資源と同様の手
順で獲得要求を行ったり、排他的に使用したりすること
ができる。
【図1】 本発明の原理構成図(その1)
【図2】 本発明の原理構成図(その2)
【図3】 本発明の処理手順のフローチャート(その
1)
1)
【図4】 本発明の処理手順のフローチャート(その
2)
2)
【図5】 本発明の共通資源の位置づけの実施例
【図6】 セマフォ情報ブロック等の状態の実施例
【図7】 セマフォ情報ブロックの実施例
【図8】 使用可能共通資源テーブルの実施例
【図9】 使用可能共通資源テーブルのチェック処理手
順
順
【図10】 マルチプロセッサシステムにおける共通資
源の位置づけ
源の位置づけ
【図11】 自CPU内のタスクとOSとの関係図
【図12】 従来例のCPU間通信の仕組み(その1)
【図13】 従来例のCPU間通信の仕組み(その2)
1,14 各CPU毎のセマフォ情報ブロックアドレステ
ーブル 2,16 共通資源毎のセマフォ情報ブロックテーブル 3,17 セマフォ毎のセマフォ情報ブロック 4,15 共通資源種別毎のキューイング情報テーブル 11,21 共通メモリ 12,22 CPU 13,23 共通資源
ーブル 2,16 共通資源毎のセマフォ情報ブロックテーブル 3,17 セマフォ毎のセマフォ情報ブロック 4,15 共通資源種別毎のキューイング情報テーブル 11,21 共通メモリ 12,22 CPU 13,23 共通資源
Claims (5)
- 【請求項1】 マルチプロセッサシステムにおいて、 共通メモリ上に全てのセマフォに対して各セマフォ毎に
順リンク情報、逆リンク情報、CPU−ID、セマフォ
ID、セマフォカウント値、共通資源種別No.のセマフ
ォ情報ブロック(3)を格納するテーブル(2)と、全
てのCPUに対してセマフォNo. 毎にセマフォ情報ブロ
ックアドレスを格納するテーブル(1)と、同一の共通
資源種別毎にセマフォ情報ブロック(3)をキューイン
グするためのキューイング情報テーブル(4)とを設
け、 システム内に存在する全ての共通資源の現在の使用状況
及び種別の情報を把握し、システム内の同一種類の共通
資源が複数ある場合に、そのうちの排他的に使用中の共
通資源を或るCPU内の或るタスクが獲得要求した場
合、該当CPUのOSは共通メモリ上に新たに設けた前
記テーブル(1,2,4)を参照し、他の同一種類の共
通資源を獲得することにより、該当タスクは共通資源待
ち状態になることなく、獲得要求したものと同一種別の
共通資源を排他的に使用できることを特徴とするマルチ
プロセッサシステムにおける共通資源排他制御方法。 - 【請求項2】 前記方法において、共通資源を正常に獲
得できた場合、通信元CPUのOSは実際に獲得した共
通資源のIDの情報をシステムコール発行元タスクに復
帰値として通知し、以降システムコール発行元タスクは
実際に獲得した共通資源を排他的に使用できることを特
徴とする請求項1記載のマルチプロセッサシステムにお
ける共通資源排他制御方法。 - 【請求項3】 前記方法において、システム運用中に新
たに共通資源を追加したい場合や、共通資源が障害から
復旧した場合、該当共通資源の現在の使用状況及び種別
等の情報を共通メモリ上の領域に格納することにより、
共通資源を排他的に使用できることを特徴とする請求項
1記載のマルチプロセッサシステムにおける共通資源排
他制御方法。 - 【請求項4】 前記方法において、システム運用中に共
通資源に障害が発生したり、不要になった場合は、共通
メモリ上の該当共通資源や他の同一種類の共通資源を獲
得要求するシステムコールを発行しても、該当CPUの
OSは他の同一種類の共通資源を獲得することを特徴と
する請求項1記載のマルチプロセッサシステムにおける
共通資源排他制御方法。 - 【請求項5】 前記方法において、システム内の全ての
共通資源の一つ一つについて自CPU内の各タスクが実
際に使用かどうかの情報の領域を各CPUのローカルメ
モリ上に新たに設けることにより、システム内の同一種
類の共通資源が複数ある場合でそのうち排他的に使用中
の共通資源を自CPU内の或るタスクが獲得した場合、
自CPUのOSは他の同一種類の未使用の共通資源のう
ち実際に使用可能な共通資源のみを獲得要求することを
特徴とする請求項1記載のマルチプロセッサシステムに
おける共通資源排他制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5302115A JPH07160645A (ja) | 1993-12-02 | 1993-12-02 | マルチプロセッサシステムにおける共通資源排他制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5302115A JPH07160645A (ja) | 1993-12-02 | 1993-12-02 | マルチプロセッサシステムにおける共通資源排他制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07160645A true JPH07160645A (ja) | 1995-06-23 |
Family
ID=17905116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5302115A Withdrawn JPH07160645A (ja) | 1993-12-02 | 1993-12-02 | マルチプロセッサシステムにおける共通資源排他制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07160645A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120089760A1 (en) * | 2006-03-29 | 2012-04-12 | Bratin Saha | Increasing Functionality Of A Reader-Writer Lock |
JP2021060707A (ja) * | 2019-10-04 | 2021-04-15 | イーソル株式会社 | 同期制御システムおよび同期制御方法 |
CN116974771A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 资源调度方法、相关装置、电子设备及介质 |
-
1993
- 1993-12-02 JP JP5302115A patent/JPH07160645A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120089760A1 (en) * | 2006-03-29 | 2012-04-12 | Bratin Saha | Increasing Functionality Of A Reader-Writer Lock |
US8407386B2 (en) * | 2006-03-29 | 2013-03-26 | Intel Corporation | Increasing functionality of a reader-writer lock |
US8775708B2 (en) | 2006-03-29 | 2014-07-08 | Intel Corporation | Increasing functionality of a reader-writer lock |
JP2021060707A (ja) * | 2019-10-04 | 2021-04-15 | イーソル株式会社 | 同期制御システムおよび同期制御方法 |
JP2022079764A (ja) * | 2019-10-04 | 2022-05-26 | イーソル株式会社 | 同期制御システムおよび同期制御方法 |
CN116974771A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 资源调度方法、相关装置、电子设备及介质 |
CN116974771B (zh) * | 2023-09-18 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 资源调度方法、相关装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9923967B2 (en) | Storage management system for preserving consistency of remote copy data | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
US8418191B2 (en) | Application flow control apparatus | |
US6848021B2 (en) | Efficient data backup using a single side file | |
US6385658B2 (en) | Method and apparatus for synchronized message passing using shared resources | |
JPH04308961A (ja) | 占有されたプロセスの同期ロックの状態を通知するための手段及び装置 | |
JPH01251258A (ja) | ネットワークシステムにおける共用領域管理方法 | |
KR20020090520A (ko) | 트랜잭션 처리 시스템의 병렬 로깅 방법 | |
US20080201712A1 (en) | Method and System for Concurrent Message Processing | |
TWI460659B (zh) | 用於降低競爭之鎖定窗 | |
US8443371B2 (en) | Managing operation requests using different resources | |
US20230168953A1 (en) | Inter-process communication method and apparatus | |
CN110445580B (zh) | 数据发送方法及装置、存储介质、电子装置 | |
JP2821345B2 (ja) | 非同期i/o制御方式 | |
US9088569B2 (en) | Managing access to a shared resource using client access credentials | |
McGee | The information management system IMS/VS, Part V: Transaction processing facilities | |
JPH07160645A (ja) | マルチプロセッサシステムにおける共通資源排他制御方法 | |
US7093253B2 (en) | Method, computer program product, and system for a self-throttled computing task | |
US11972293B2 (en) | Data structure, memory means and device | |
US7010781B1 (en) | Methods and apparatus for managing debugging I/O | |
WO2001013229A2 (en) | System and method for data exchange | |
CN110941496A (zh) | 一种分布式锁实现方法、装置、计算机设备及存储介质 | |
KR19980049353A (ko) | 분산 트랜잭션의 회복방법 | |
CN116266143A (zh) | 协程管理方法、装置、设备及介质 | |
JP2000003287A (ja) | 共有リソースの排他制御装置、排他制御方法及び排他制御プログラムを記録した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010206 |