JPH04291445A - プロセス状態変更方法 - Google Patents

プロセス状態変更方法

Info

Publication number
JPH04291445A
JPH04291445A JP11955691A JP11955691A JPH04291445A JP H04291445 A JPH04291445 A JP H04291445A JP 11955691 A JP11955691 A JP 11955691A JP 11955691 A JP11955691 A JP 11955691A JP H04291445 A JPH04291445 A JP H04291445A
Authority
JP
Japan
Prior art keywords
message
state
state change
subpool
processor
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.)
Granted
Application number
JP11955691A
Other languages
English (en)
Other versions
JP2517852B2 (ja
Inventor
Kazuaki Mutsuzawa
六澤 一昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP3119556A priority Critical patent/JP2517852B2/ja
Publication of JPH04291445A publication Critical patent/JPH04291445A/ja
Application granted granted Critical
Publication of JP2517852B2 publication Critical patent/JP2517852B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、非同期メッセージ通信
によってプロセッサ間処理を行なうマルチプロセッサシ
ステムにおいて、特定のID(一意名)を有する全ての
プロセスの状態を変更させるプロセス状態変更方式に関
するものである。
【0002】
【従来の技術】マルチプロセッサシステムにおいては、
処理の高速化等を期して、特定のIDを有する複数のプ
ロセスを複数のプロセッサに分配して実行することが多
い。このような場合において、コンソールからの外部指
令やハードウェアの物理的な制約等によって、同一ID
を有する全てのプロセスの状態を変更させることも生じ
る。
【0003】従来のプロセス状態変更方式として下記の
文献Aに記載のものがある。従来のプロセス状態変更方
式の説明の準備としてまず、「計算モデル」と従来のプ
ロセス状態変更方式が利用している「終了の検出方式(
WTC方式)」とをこの順に説明し、その後、従来の「
状態変更方式」を説明する。
【0004】文献A;川合英夫、仲瀬明彦、今井明、後
藤厚宏、六沢一昭、“並列推論マシンにおけるKL1の
実行制御方式−分散ゴール管理の課題と対策−”、情報
処理学会第74回計算機アーキテクチャ研究会82−2
,1990.4.20。
【0005】(1)「計算モデル」 (1−1) 仮定するプロセスモデルは以下の通りであ
る。なお、図2は、仮定するプロセスモデルの説明図で
ある。 図2及び後述する各図において、制御プロセスをプロセ
スプールID(以下、単にIDと略す)を内部に有する
矩形の2重実線で示し、子プロセスをプロセスIDを内
部に有する円形の実線で示し、プロセッサをプロセスを
内部に有する実線で示している。
【0006】(1−1−1) 1個のプロセスプールは
、1個の制御プロセスと少なくとも1個以上の子プロセ
スとからなる。 (1−1−2) システムには複数のプロセスプールが
存在し得、各プロセスプールはシステムで固有のIDを
有する。 (1−1−3) 子プロセスは状態を持つ。 (1−1−4) 子プロセスはいつでも終了し得る。 (1−1−5) 子プロセスは、同じIDを有する子プ
ロセスをいつでも生成することができる。また、新しい
IDを有するプロセスプールをいつでも生成することが
できる。 (1−1−6) あるIDを有する全ての子プロセスが
終了すると、そのIDのプロセスプールは終了する。 (1−1−7) あるIDのプロセスプールの状態変更
とは、そのIDを有する全ての子プロセスの状態を制御
プロセスが変更させることである。
【0007】(1−2) 上述したプロセスプールは、
以下の形式によってマルチプロセッサシステムで実行さ
れる。 なお、図3は、プロセッサとプロセスプールとの関係の
説明図であって、3個のプロセッサPEi、PEj、P
Ekと、IDがA及びBの2個のプロセスプールとを示
している。ここで、プロセッサはハードウェア的にはC
PU、メモリ及び他のプロセッサとの通信構成とを基本
構成としているものである。
【0008】(1−2−1) 1個のプロセッサ中に存
在するプロセスの内、同じIDを有するものを「サブプ
ール」と呼ぶ。 (1−2−2) サブプールは、それを構成する全ての
子プロセスが終了すると終了する。 (1−2−3) プロセッサは、自プロセッサ中のサブ
プールの終了を検出することができる。また、自プロセ
ッサ中の特定のIDを有するサブプールに属する全ての
子プロセスの状態を変更することができる。このような
状態変更処理を、ソフトウェアやハードウェアやファー
ムウェアのいずれで実現しても良い。 (1−2−4) プロセッサは、自プロセッサ中に存在
する子プロセスを他のプロセッサに送信することができ
る。子プロセスの送信は、具体的には子プロセスを運ぶ
メッセージを送信することである。 (1−2−5) 制御プロセスと各プロセッサ(本明細
書においては、サブプールの終了処理部やサブプールの
状態変更部も単にプロセッサと呼んでいる)は非同期メ
ッセージによって互いに通信することができる。例えば
、サブプールの終了を検出したプロセッサは、その旨を
伝えるメッセージを制御プロセスに送ることができる。 また、制御プロセスは「特定のIDのサブプールに属す
る全ての子プロセスの状態を指定した状態に変更させる
メッセージ」をプロセッサに送ることができる。 (1−2−6) メッセージは送信されてから受信され
るまでに任意の時間がかかる。このため、任意の時刻に
おいて、「送信はされたがまだ受信されていないメッセ
ージ」(以下、通信中のメッセージと呼ぶ)が存在し得
る。
【0009】(2)「終了の検出方式(WTC方式)」
全ての子プロセスが終了したことを検出することは上述
した計算モデルでは非常に基本的で重要な機能である。 文献Aが述べている状態変更方式では、WTC方式とい
うプロセス終了検出方式を使用している。このWTC方
式を以下に述べる。なお、WTC方式は以下に示す文献
Bに書かれている。
【0010】文献B;K.Rokusawa, N.I
chiyoshi et al.  “An Effi
cient Termination Detecti
on and Abortion Algorithm
 for Distributed Processi
ng Systems”,InProceedings
 of the 1988 Internationa
lConference on Parallel P
rocessing,Vol.1 ,pp.18−22
,August 1988 。
【0011】この方式は、制御プロセス、サブプール及
び通信中のメッセージにそれぞれ「重み」を持たせる方
式である。制御プロセスに持たせる重み(負)と、サブ
プール及びメッセージに持たせる重み(正)とは正負が
逆の整数である。そして、「重みの合計が0」になるよ
うに制御するものである。また、全ての子プロセスが終
了したときのみ制御プロセスの重みが0になるように制
御する。図4は、全て(3個)のサブプールのそれぞれ
に180、250、480の重みが付与され、通信中の
子プロセスに20の重みが付与され、制御プロセスに−
850の重みが付与されている例である。
【0012】このような重みを管理するため、各プロセ
ッサは、制御プロセス用重みテーブルとサブプール用重
みテーブルとを備えている。制御プロセス用重みテーブ
ルには、プロセッサが有する全制御プロセスのIDと制
御プロセスの重みとが対応付けられて格納されている。 図5は、IDが0、1、35、40の制御プロセスが存
在し、それぞれ−250、−450、−5014、−4
002の重みを有するテーブルを示している。サブプー
ル用重みテーブルには、プロセッサが有する全サブプー
ルのIDとサブプールの重みとが対応付けられて格納さ
れている。図6は、IDが21、22、50の制御プロ
セスが存在し、それぞれ800、132、95の重みを
有するテーブルを示している。サブプール用重みテーブ
ルには、サブプールのIDが格納されているので、当該
プロセッサに存在するサブプールの検索や、あるサブプ
ールが当該プロセッサに存在するか否かの確認に用いら
れる。
【0013】次に、プロセッサ間で子プロセスを授受す
る際の重みの変化について説明する。プロセッサは子プ
ロセス(を運ぶメッセージ)に重みを付けて送信する。 その際、子プロセスに付けた分だけサブプールの重みを
減らす。他方、プロセッサは子プロセスを受信すると、
サブプール用重みテーブルに基づいてそのIDのサブプ
ールが存在していたか否かを判断する。存在していると
、付いていた重みを受信した子プロセスと同じIDのサ
ブプールに追加する。存在していないと、そのIDのサ
ブプールを新しく生成し、受信した子プロセスに付いて
いた重みをそのサブプールの重みとする。
【0014】図7は、送信プロセッサPEiが、IDが
Aのある子プロセスに重み40を付与して送信すること
でそのサブプールの重みが420から380に変化し、
他方、この子プロセスを受信したプロセッサPEjにお
いては、IDがAの既存のサブプールの重みがこの受信
によって220から260に変化したことを示している
。図8は、送信プロセッサPEiが、IDがAのある子
プロセスに重み40を付与して送信することでそのサブ
プールの重みが420から380に変化し、他方、この
子プロセスを受信したプロセッサPEjにおいては、I
DがAのサブプールが存在せず、そのため、重み40を
有するIDがAのサブプールを生成したことを示してい
る。
【0015】次に、サブプールから制御プロセスに終了
メッセージを通信する際の重みの変化について説明する
。サブプールが終了すると終了メッセージを制御プロセ
スに送信する。終了メッセージには終了したサブプール
が有していた重みを全て付ける。また、終了したサブプ
ールをサブプール用重みテーブルから削除する。制御プ
ロセスは、終了メッセージを受信すると、付与されてい
た重みを自己の重みに加える。加えた結果の重みが0に
なると、プロセスプールの終了(全ての子プロセスが終
了したこと)を検出する。
【0016】図9は、IDがAのサブプールが終了し、
自己の重み340を付与した終了メッセージを制御プロ
セスに送信し、これにより制御プロセスの重みが−14
00から−1060に変化した例を示している。図10
は、当初において重み−2500が付与されている制御
プロセスに、全てのサブプールのそれぞれから順次その
サブプールが有していた重み1000、800、700
が付与されている終了メッセージが与えられ、制御プロ
セスの重みが0になってプロセスプールの終了を検出し
た場合を示している。
【0017】(3)「状態変更方式」 プロセスプールの全子プロセスの状態を変更するために
は、制御プロセスが「特定のIDを持つサブプールに属
する全ての子プロセスの状態を変更するメッセージ」(
以下、状態変更メッセージと呼ぶ)を全てのプロセッサ
へ送信することを要する。しかし、この状態変更メッセ
ージの送信だけでは、子プロセスの完全な状態変更はで
きない。すなわち、非同期メッセージ通信を利用して子
プロセスを通信するようにしているので、図11に示す
ように、全てのサブプールに状態変更メッセージが与え
られたときにいずれのサブプールにも属さない通信中の
子プロセスが存在し得、この通信中の子プロセスの状態
は変更できない。なお、図11において、制御プロセス
及び子プロセスに係る「a」及び「b」の文字は状態を
表している。
【0018】上述した文献Aは、プロセッサがサブプー
ルを生成したときにその旨を制御プロセスへ伝えること
によって、通信中のプロセスの存在を制御プロセスが認
識してその通信中にあった子プロセスの状態をも変更で
きる方式を記載している。以下、状態変更メッセージの
送信時に通信中の子プロセスが存在していても、その子
プロセスの状態をも変更できる従来の状態変更方式を、
メッセージの追い越しがないシステムの場合と、メッセ
ージの追い越しがあるシステムの場合とに分けて説明す
る。
【0019】(3−1) メッセージの追い越しがない
場合プロセッサは、サブプールを生成するとその生成を
伝えるメッセージ(以下、生成メッセージと呼ぶ)を制
御プロセスへ送信する。制御プロセスは、生成メッセー
ジを受信するとその送信元プロセッサを記憶し、終了メ
ッセージを受信すると削除する。制御プロセスに記憶さ
れているプロセッサには必ずサブプールが存在する。生
成メッセージの送信元プロセッサを記憶するために各プ
ロセッサはサブプールテーブルを有する。サブプールテ
ーブルは、図12に示すように、サブプールのIDと、
生成メッセージの送信元プロセッサとからなる。
【0020】(3−1−1) 制御プロセスの処理この
サブプールテーブルをも用いた状態変更の際の制御プロ
セスの処理は、以下の通りである。サブプールテーブル
に登録されているプロセッサのみに状態変更メッセージ
を送信する。かかる処理の後に、生成メッセージを受信
したならば、その送信元プロセッサを記憶し、状態変更
メッセージを送信する。なお、状態変更メッセージにも
重みを付け、制御プロセスの重みはその分だけ減らす。
【0021】(3−1−2) プロセッサの処理状態変
更メッセージを受信したプロセッサは、まず、状態変更
メッセージが示すIDと同じIDのサブプールが存在す
るか否かをサブプール用重みテーブルを検索することで
調べる。
【0022】サブプールが存在した場合には、そのサブ
プールに属する全ての子プロセスの状態を状態変更メッ
セージが指定した状態に変更する。また、状態変更メッ
セージが持っていた重みをサブプールの重みに加える。
【0023】他方、サブプールが存在しなかった場合に
は、状態変更メッセージが有していた重みを送返すメッ
セージ(以下、重み返却メッセージと呼ぶ)を制御プロ
セスへ送ることで、状態変更メッセージが持っていた重
みを制御プロセスへ返す。
【0024】(3−1−3) 状態変更状態変更開始時
点で制御プロセスが認識していた(サブプールテーブル
に登録されていた)サブプール内に存在した子プロセス
は、上述した最初の状態変更メッセージの送信によって
状態が変更される。一方、開始時点で通信中であった子
プロセスは、生成メッセージの受信後に再送信された状
態変更メッセージによって状態が変更される。これは、
通信中の子プロセスは有限時間内にどこかのプロセッサ
に到着し、サブプールが生成され、生成メッセージが制
御プロセスに送られるからである。
【0025】図13ないし図16は、サブプールテーブ
ルに登録されていたプロセッサPEi及びPEj内のサ
ブプールに属する子プロセスは当初の状態変更メッセー
ジによって状態が変更(aからbへ)され、最初の状態
変更メッセージの送出時点で通信中の子プロセスは、サ
ブプールテーブルに登録されていないその送信先のプロ
セッサPEkが制御プロセスに生成メッセージを送信し
た後に、制御プロセスが再度送信した状態変更メッセー
ジによって、その状態が変更されることを示したもので
ある。
【0026】(3−2) メッセージの追い越しがある
場合メッセージの追い越しがある(システムの)場合に
おいては、ある状態への変更を指示する状態変更メッセ
ージが、後から送信された別の状態への変更を指示する
状態変更メッセージに追い越されてしまう可能性がある
。そのため、受信した状態変更メッセージに従って単純
に状態を変更したのでは状態が正しく変更されない恐れ
がある。例えば、制御プロセスが、まず、状態aへ変更
する状態変更メッセージ(以下、状態変更メッセージ(
a)と書くことにする)を送信し、次に、状態bへ変更
する状態変更メッセージ(b)を送信した場合には、子
プロセスの状態は最終的には状態bに設定されるべきで
あるが、状態変更メッセージ(b)が状態変更メッセー
ジ(a)を追い越してしまうと最終的には状態aに設定
されてしまう。
【0027】そのため、メッセージの追い越しがある場
合に特有な処理が必要である。上述した文献Aには、扱
う状態が2状態に限定されているが、メッセージの追い
越しがある場合にも問題が生じないようにした方式を記
載している。この方式は、扱う状態をstopとsta
rt の2状態に限定し、受信した状態変更メッセージ
数をカウントすることによって状態を正しく設定する方
式である。
【0028】以下、具体的に説明する。プロセッサは、
サブプール毎にカウンタを設け、以下のように操作する
。例えば、サブプール用重みテーブル(図6)にカウン
タフィールドを設けて、カウンタの値を以下のように操
作する。サブプールを生成したときには0をセットする
。状態変更メッセージ(stop)を受信したときには
+1する。状態変更メッセージ(start )を受信
したときは−1する。
【0029】状態変更メッセージ(stop)又は状態
変更メッセージ(start )を受信したときには、
上述のようにカウンタを操作した後、以下のように状態
を設定する。カウンタの値が正ならば状態をstopに
設定する。カウンタの値が0以下ならば状態をstar
t に設定する。
【0030】このようにして、状態変更メッセージ(s
top)と状態変更メッセージ(start)の到着順
序が入れ代わっても、以上の操作により状態は正しく設
定される。
【0031】図17は、サブプールが状態start 
、カウンタの値0にあるときに、制御プロセスがそのサ
ブプールの状態を状態stopに変更させる状態変更メ
ッセージ(stop)と、状態start に変更させ
る状態変更メッセージ(start )とをこの順に送
信し、後で送信された状態変更メッセージ(start
 )が先にプロセッサに到着しても最終的な状態が正し
く状態start に設定される様子を示したものであ
る。
【0032】
【発明が解決しようとする課題】(1)追い越しがある
場合及びない場合に共通の課題 しかしながら、従来のプロセス状態変更方式によれば、
メッセージの追い越しがあるシステム及び追い越しがな
いシステムのいずれに適用しても、以下のような問題が
あった。
【0033】各プロセッサが、状態変更のために、サブ
プールを生成したときには制御プロセスへ生成メッセー
ジを送信するという準備処理が必要であった。実際上、
各プロセッサの均一な稼動率を得るように、又は、プロ
セスの並行処理や高速処理を期して子プロセスが通信さ
れることも多く、生成メッセージの送信回数も多くなる
。最悪の場合、送信される子プロセスと同数の生成メッ
セージが送信されてしまう。しかしながら、結果として
状態の変更が指示されないプロセスプールもあり、この
ようなプロセスプールについての生成メッセージの通信
は無駄であり、この回数が多いことは問題である。
【0034】制御プロセスが、生成メッセージを受信し
たときに、その送信元プロセッサを記憶する必要がある
。1個のサブプールについて記憶するだけでも全てのプ
ロセッサ数分の容量が必要であり、複数になるとその数
に応じた容量が必要でこのテーブルがメモリ容量を圧迫
していた。
【0035】また、従来の方式によれば、制御プロセス
が状態の変更が完了したことを確認することができない
。すなわち、ある状態変更メッセージを送信した場合、
有限時間内に全ての子プロセスの状態変更が完了するこ
とは保証できるが、変更の完了を検出することはできな
い。そのため、制御プロセスによる状態制御が適切に実
行されない恐れも生じる。
【0036】(2)追い越しがある場合に特有な課題メ
ッセージの追い越しがあるシステムの場合には、上述の
問題に加えて、さらに以下のような問題もある。
【0037】状態変更メッセージの受信を管理するカウ
ンタをサブプール毎に用意しなければならず、このカウ
ンタの操作が非常に複雑であり、また、この情報もメモ
リ容量の圧迫を引き起こす原因となっていた。
【0038】また、取り扱う状態が2状態に限定されて
おり、これより多い状態を取り扱うシステムに適用する
ことができない。
【0039】(3)目的 本発明は、以上の点を考慮してなされたものであり、状
態変更処理期間以外に行なう状態変更のための準備処理
が不要な、状態変更処理のために必要なメモリ容量が少
ない、しかも、制御プロセスが状態変更の完了を検出す
ることができる、取り扱うことができる状態数が制限さ
れないプロセス状態変更方式を提供しようとするもので
ある。
【0040】
【課題を解決するための手段】かかる課題を解決するた
め、本発明においては、非同期メッセージ通信によって
プロセッサ間処理を行なうマルチプロセッサシステムの
プロセス状態変更方式であって、1個の制御プロセスと
1個以上の子プロセスからなるプロセスプールの、各プ
ロセッサに存在するサブプールの状態を、制御プロセス
が、各プロセッサの状態変更部を制御して変更させるプ
ロセス状態変更方式を、以下の第1ないし第6の処理に
よって実現した。
【0041】第1の処理:全てのプロセッサに状態変更
メッセージを送信する制御プロセスが行なう処理。
【0042】第2の処理:各プロセッサの状態変更部が
状態変更メッセージを受信したときに行なう処理であっ
て、当該プロセッサに状態変更が求められたサブプール
が存在する場合にそのサブプールの状態を変更させて変
更済みメッセージを制御プロセスに送信すると共に状態
変更中情報を記憶し、当該プロセッサに状態変更が求め
られたサブプールが存在しない場合に状態変更中情報を
記憶する処理。
【0043】第3の処理:状態変更中情報を記憶してい
る状態で他のプロセッサから子プロセスが与えられた場
合に、受信した子プロセスの状態を変更し、変更済みメ
ッセージを制御プロセスに送信する、各プロセッサの状
態変更部が行なう処理。
【0044】第4の処理:受信した変更済みメッセージ
に基づいてプロセスプールの状態の変更の完了を監視し
、完了を検出したときに、全てのプロセッサに完了メッ
セージを送信する、制御プロセスが行なう処理。
【0045】第5の処理:各プロセッサの状態変更部が
、完了メッセージを受信した場合に行なう処理であって
、状態変更中情報を削除すると共に、完了メッセージに
対する到着確認メッセージを制御プロセスに送信する処
理。
【0046】第6の処理:全てのプロセッサから到着確
認メッセージを受信したとき、プロセスプールの状態変
更処理を終了させる制御プロセスが行なう処理。
【0047】
【作用】本発明において、あるプロセスプールの状態の
変更が必要になると、制御プロセスは、全てのプロセッ
サに状態変更メッセージを送信する(第1の処理)。
【0048】このとき、各プロセッサの状態変更部は、
当該プロセッサに状態変更が求められたサブプールが存
在する場合にはそのサブプールの状態を変更させて変更
済みメッセージを制御プロセスに送信すると共に状態変
更中情報を記憶し、当該プロセッサに状態の変更が求め
られたサブプールが存在しない場合には状態変更中情報
を記憶する(第2の処理)。
【0049】なお、各プロセッサの状態変更部は、状態
変更中情報を記憶している状態で、他のプロセッサから
子プロセスが与えられた場合にはその子プロセスの状態
を変更し、変更済みメッセージを制御プロセスに送信す
る(第3の処理)。
【0050】制御プロセスは、状態変更メッセージの送
信後、変更済みメッセージの受信を待ち受けており、受
信すると、受信した変更済みメッセージに基づいてプロ
セスプールの状態変更の完了を監視し、完了を検出した
ときに全てのプロセッサに完了メッセージを送信する(
第4の処理)。
【0051】各プロセッサの状態変更部は、完了メッセ
ージを受信すると、状態変更中情報を削除すると共に、
完了メッセージに対する到着確認メッセージを制御プロ
セスに送信する(第5の処理)。
【0052】制御プロセスは、全てのプロセッサから到
着確認メッセージを受信することによって、プロセスプ
ールの状態の変更処理を終了する(第6の処理)。
【0053】
【実施例】以下、本発明の一実施例を図面を参照しなが
ら詳述する。なお、計算モデルは「従来の技術」の項で
説明した通りである。
【0054】(1)テーブル この実施例において、各プロセッサは、テーブルとして
、制御プロセス用重テーブル及びサブプール用重みテー
ブルを有する。すなわち、従来とは異なり、サブプール
テーブルは設けられていない。
【0055】(1−1) 制御プロセス用重みテーブル
この実施例の制御プロセス用重みテーブルは、図18に
示すように、3個のフィールドからなっている。第1フ
ィールドには当該プロセッサに存在する制御プロセスに
係るプロセスプールのIDが格納されている。第2フィ
ールドには、制御プロセスに付与された重みが格納され
ている。第3フィールドは、状態変更処理時の作業エリ
アとして用いられるものであり、状態変更処理時の状態
変更が完了した分の子プロセスの重みや後述する到着確
認メッセージの受信していない数などを格納する。
【0056】図18は、IDが0、12、3250及び
4000の制御プロセスについて、それぞれ重み−30
0、−8200、−5900及び−75が格納され、I
Dが3250のプロセスプールについては子プロセスの
状態の変更処理中であって重みが−3700分の子プロ
セスについて状態の変更が完了していることを示してい
る。
【0057】(1−2) サブプール用重みテーブルこ
の実施例のサブプール用重みテーブルは、図19に示す
ように、3個のフィールドからなっている。第1フィー
ルドには当該プロセッサに存在するサブプールに係るプ
ロセスプールのIDが格納されている。第2フィールド
には、サブプールに付与された重みが格納されている。 第3フィールドは新状態フィールドであって状態変更中
の新しい状態を格納している。新状態フィールドに状態
が書かれているときは、そのサブプールが状態変更中で
あることを意味する。なお、後述するように、メッセー
ジの追い越しがある場合には、新状態フィールドに状態
変更メッセージの受信待ちにあることが格納されること
がある。
【0058】図19は、IDが3、55、2300及び
7214のサブプールについてそれぞれ重み3100、
55、209、20340が格納され、IDが2300
のサブプールについては状態bへの変更中であることを
示している。
【0059】この実施例のサブプール用重みテーブルに
も、上述したようにサブプールのIDが格納されている
ので、当該プロセッサに存在するサブプールの検索や、
あるサブプールが当該プロセッサに存在するか否かの確
認に用いられる。
【0060】(2)子プロセスの送受信処理(2−1)
 子プロセスの送信処理 子プロセスを送信しようとするときには、サブプール用
重みテーブルを検索し、そのIDの子プロセスの状態の
変更処理中であるか否かを判別する。すなわち、新状態
フィールドに状態が記憶されているか否かを判別する。 状態変更中でない場合には、上述したWTC方式に従い
、子プロセスに重みを付けて送信する。この際には、サ
ブプールの重みをその分だけ減じる。すなわち、サブプ
ール用重みテーブルの重みフィールドの値を更新する。 なお、この減算によって重みが0になると、サブプール
用重みテーブルからそのサブプールを削除する。他方、
サブプール用重みテーブルの検索の結果、状態変更中で
あると、状態変更が完了して通常状態(状態変更中でな
い状態)になるのを待ち、通常状態になったときに上述
したWTC方式に従った送信を行なう。
【0061】(2−2) 子プロセスを受信したときの
処理子プロセスを受信すると、正確には、子プロセスを
運ぶメッセージを受信すると、まず、サブプール用重み
テーブルを検索する。すなわち、受信した子プロセスと
同じIDのサブプールが既に存在しているか又は存在し
ていないかを調べ、存在している場合にはさらに、その
サブプールが通常状態にあるのか又は状態変更中である
のかを調べる。
【0062】(2−2−1) 受信した子プロセスと同
じIDのサブプールが存在しない場合には、そのIDを
有するサブプールを生成して、サブプール用重みテーブ
ルに登録する。このとき、受信した子プロセスの重みを
生成したサブプールの重みの初期値とする。
【0063】(2−2−2) 受信した子プロセスと同
じIDのサブプールが存在していて、そのサブプールが
通常状態にある場合には、受信した子プロセスの重みを
そのサブプールの重みに加える。すなわち、サブプール
用重みテーブルの重みフィールドの値をその加算値に更
新する。
【0064】(2−2−3) 受信した子プロセスと同
じIDのサブプールが存在していて、そのサブプールが
状態変更中である場合には、子プロセスの状態をサブプ
ール用重みテーブルの新状態フィールドに書かれている
新しい状態に変える。また、子プロセスが持っていた重
みをサブプールの重みに加える。さらに、子プロセスが
持っていた重みを、変更済みメッセージによって制御プ
ロセスへ送る。この変更済みメッセージは、「この重み
分だけ子プロセスに対して状態の変更を行なった」とい
うことを伝えるものである。なお、この場合には、状態
変更中であることの情報を継続してサブプール用重みテ
ーブルに格納しておく。
【0065】図20は、IDが8、重みが350であっ
て状態bへの変更処理中にあるサブプールを有するプロ
セッサが、他のプロセッサから送信された重みが50、
IDが8、状態がaの子プロセスを受信したため、サブ
プール用重みテーブルの重みを400に更新すると共に
、制御プロセスに重みが50の変更済みメッセージを送
信した場合を示している。
【0066】なお、制御プロセスは、変更済みメッセー
ジを受信した場合には、制御プロセス用重みテーブルの
作業エリアの重みを更新する。
【0067】(3)状態変更処理 次に、プロセスプールの全ての子プロセスの状態を変更
する処理について説明する。メッセージの追い越しがな
いシステムの場合及びメッセージの追い越しがあり得る
システムの場合共に、状態変更処理の特徴部分は同じで
あるが、以下では場合を分けて説明する。
【0068】(3−1) メッセージの追い越しがない
場合(3−1−1) 一般的な処理の流れ メッセージの追い越しがないシステムの状態変更処理を
、図1のフローチャーを参照しながら詳述する。なお、
図1(A)は制御プロセスの処理を示しており、図1(
B)はプロセッサ(ソフトウェア、ハードウェア、ファ
ームウェアのいずれで実現されていようがプロセッサの
状態変更部と呼ぶべきであるかも知れないが、以下でも
プロセッサと呼ぶ)の処理を示している。また、図1で
は「メッセージ」を略して「MS」で表している。
【0069】あるプロセスプールについて状態変更の必
要が生じると、制御プロセスは図1(A)に示す処理を
開始する。そして、まず、全てのプロセッサに対して新
しい状態を運ぶ状態変更メッセージを送信すると共に(
ステップ100)、制御プロセス用重みテーブルのその
サブプールの重みフィールドの値(重み)を作業エリア
フィールドに複写する(ステップ101)。作業エリア
の重みは、状態変更が未だなされていない子プロセスの
重みの合計を示すものである。その後、制御プロセスは
、変更済みメッセージの受信待ち状態に進む(ステップ
102)。なお、全てのプロセッサが送信先である点は
従来とは異なる。また、状態変更メッセージに重みを付
与する必要がない。
【0070】状態変更メッセージを受信した各プロセッ
サは、図1(B)に示す処理を開始する。そしてまず、
状態変更が指示されたサブプールが存在するか否かを、
サブプール用重みテーブルを用いて調べる(ステップ2
00)。
【0071】サブプールが存在した場合には、そのサブ
プールに属する全ての子プロセスの状態を状態変更メッ
セージが示す新しい状態に変更し(ステップ201)、
サブプール用重みテーブルの新状態フィールドにその新
しい状態を書き込む(ステップ202)。その後、サブ
プールが持っていた重みを全て付けた変更済みメッセー
ジを制御プロセスへ返信する(ステップ203)。上述
したように、サブプールが持っていた重みを全て付けた
変更済みメッセージは、「この重みの子プロセス分だけ
状態の変更を行なった」ことを意味している。なお、サ
ブプール用重みテーブルの重みをこの送信後にも保持し
ておく。
【0072】他方、サブプールが存在しなかった場合に
は、そのサブプールをサブプール用重みテーブルに登録
した後(ステップ204)、状態変更メッセージが示す
プロセスプールが状態変更中であることをサブプール用
重みテーブルに書込む(ステップ205)。すなわち、
プロセッサは、重みフィールドには0を、新状態フィー
ルドには新しい状態を書込む。その後、メッセージの受
信待ち状態に進む(ステップ206)。
【0073】制御プロセスは、上述したように、状態変
更メッセージを送信した後は変更済みメッセージッセー
ジの受信待ち状態に進み、いずれかのプロセッサからの
変更済みメッセージを受信すると、その変更済みメッセ
ージに付与されている重みを制御プロセス用重みテーブ
ルの作業エリアに格納されている重みに加算した後(ス
テップ103)、加算後の重みが全ての子プロセスの状
態変更が完了したことを表す0であるか否かを判別する
(ステップ104)。0でない場合には、変更済みメッ
セージの受信待ち状態に戻る。変更済みメッセージの受
信が進むに従って、作業エリアの重みは0に近付いてい
き、やがて0となってステップ104で肯定結果が得ら
れる。
【0074】このときには、制御プロセスは、全てのプ
ロセッサに対して完了メッセージを送信する(ステップ
105)。ここで、完了メッセージとは、「そのIDの
全ての子プロセスの状態変更が完了したことを伝えるメ
ッセージ」である。その後、送信した完了メッセージ数
(プロセッサ数に等しい:図1ではTで表している)を
、制御プロセス用重みテーブルの作業エリアに書込む(
ステップ106)。そして、到着確認メッセージの受信
待ち状態に進む(ステップ107)。
【0075】プロセッサが、新しい状態を格納すること
で状態変更中であることをサブプール用重みテーブルに
設定した後のメッセージ受信待ち状態(ステップ206
)において、メッセージを受信すると受信したメッセー
ジの種別を判別する(ステップ207)。この状態変更
中のサブプールに対して送信されてくるメッセージは、
子プロセスを運搬するメッセージ又は完了メッセージで
ある。
【0076】子プロセスを運搬するメッセージであると
、上述した子プロセスの受信処理で説明した処理を行な
う(ステップ208)。すなわち、子プロセスの状態を
新しい状態に変え、子プロセスが持っていた重みをサブ
プールの重みに加え、子プロセスが持っていた重みを、
変更済みメッセージによって制御プロセスへ送る。 その後、メッセージの受信待ち状態に戻る。
【0077】子プロセスを運搬するメッセージを状態変
更中に受信したか否かに拘らず、完了メッセージは必ず
受信する。このときには、プロセッサは、サブプール用
重みテーブルの重みフィールドの重みが0であるか否か
を判断する(ステップ209)。すなわち、状態変更メ
ッセージの受信時において当該プロセッサにサブプール
が存在せず、新状態を記憶するためにサブプール用重み
テーブルに追加登録されたサブプール(ステップ204
参照)であるか否かを確認する。
【0078】重みが0でない場合には、すなわち、状態
変更メッセージの受信時において当該プロセッサに存在
していたサブプールについては、サブプール用重みテー
ブルの新状態フィールドに格納されている状態を削除す
ることでそのサブプールを状態変更中から通常状態に復
帰させた後(ステップ210)、完了メッセージに対す
る到着確認メッセージを制御プロセスに返信して一連の
処理を終了する(ステップ211)。
【0079】他方、重みが0か否かの判断で重みが0で
あるという結果を得ると、サブプール用重みテーブルか
らそのサブプールを削除した後(ステップ212)、完
了メッセージに対する到着確認メッセージを制御プロセ
スに返信して一連の処理を終了する(ステップ211)
【0080】制御プロセスは、いずれかのプロセッサか
らの到着確認メッセージを受信すると、制御プロセス用
重みテーブルの作業エリアフィールドに格納されている
完了メッセージ送信数Tを1デクリメントした後(ステ
ップ108)、その値Tが0か否かを確認する(ステッ
プ109)。0でない場合には、到着確認メッセージの
受信待ち状態に戻る。このような処理を繰返すうちに全
てのプロセッサからの到着確認メッセージを受信して完
了メッセージ送信数(到着確認メッセージ数)Tが0と
なり、このときには制御プロセス用重みテーブルの作業
エリアフィールドをリセットして一連の処理を終了する
(ステップ110)。
【0081】(3−1−2) 状態変更処理とサブプー
ルの終了以上、プロセスプールに属する全ての子プロセ
スの状態を変更する基本的な処理の流れを説明したが、
このような状態変更の処理中にサブプール(子プロセス
)が終了することがある。以下では、サブプールの終了
と状態変更処理との関係を説明する。
【0082】状態変更中であるサブプールが終了した場
合には、プロセッサは、変更済みメッセージの送信を、
状態の変更が完了するのを待って行なう。完了メッセー
ジを受信し、到着確認メッセージを送信した後に終了メ
ッセージを送信する。終了メッセージを先に送信した場
合には、サブプール用重みテーブルからサブプールが削
除されて、上述した完了メッセージを受信した際の処理
を実行し得ないからである。
【0083】状態変更中ではないサブプールが終了した
場合には、プロセッサは通常の終了処理を行なう。すな
わち、制御プロセスに終了メッセージを送信し、終了し
たサブプールをサブプール用重みテーブルから削除する
【0084】状態変更中に終了メッセージを制御プロセ
スが受信した場合は、制御プロセス用重みテーブルの重
みフィールド及び作業エリアフィールドの両者の重みを
、終了メッセージに付与されていた重み分更新する。 この結果、作業エリアフィールドの重みが0になった場
合にも、全ての子プロセスの状態変更が完了したとして
完了メッセージの送信処理に進む。
【0085】(3−1−3) 具体例での説明次に、図
21ないし図25を参照しながら、プロセス状態変更処
理を具体例を用いて説明する。
【0086】図21は、状態をaからbへ変更させる状
態変更メッセージが送信された時点において、状態変更
の対象のサブプールが存在するプロセッサがPEi及び
PEjの2個であって、プロセッサPEjからプロセッ
サPEiに向かう子プロセス(運搬メッセージ)と、プ
ロセッサPEjからプロセッサPEkに向かう子プロセ
スとが存在している例を示している。
【0087】サブプールが存在するプロセッサPEi及
びPEjはそれぞれ状態変更メッセージを受信すると、
図22に示すように、サブプールの状態をaからbに変
更した後、サブプールの重み2000、1650を付与
した変更済みメッセージを制御プロセスに返信すると共
に、状態変更中であることをサブプール用重みテーブル
に格納する。一方、サブプールが存在しないプロセッサ
PEkは、図示しない他のプロセッサと同様に、状態変
更メッセージを受信すると、図22に示すように、その
サブプールをサブプール用重みテーブルに登録して状態
変更中であることをサブプール用重みテーブルに格納す
る。この段階で送信された変更済みメッセージを制御プ
ロセスが受信しても、通信中の子プロセスが存在するた
め、制御プロセス用重みテーブルの作業エリアの重みは
0にはならない。
【0088】状態変更中であることをサブプール用重み
テーブルに格納した後、子プロセスを受信したプロセッ
サPEi及びPEkはそれぞれ、図23に示すように、
受信した子プロセスの状態を新しい状態bに変更すると
共に、受信した子プロセスの重みを付与した変更済みメ
ッセージを制御プロセスに送信する。この送信後も状態
変更中であることを維持する。勿論、プロセッサPEi
及びPEkはそれぞれ、子プロセスを受信すると、サブ
プール用重みテーブルの重みフィールドの値を更新する
【0089】これらの状態変更メッセージを受信して作
業エリアの重みの更新処理を行なうと、その重みは0に
なる。このとき、制御プロセスは、図24に示すように
、これらプロセッサPEi及びPEkだけでなく全ての
プロセッサに対して完了メッセージを送信する。また、
制御プロセスは完了メッセージの送信数Tを作業エリア
に格納する。
【0090】子プロセスが属しているサブプールが存在
する各プロセッサPEi、PEj、PEkは完了メッセ
ージを受信すると、図25に示すように、状態変更中を
通常状態に復帰させた後到着確認メッセージを制御プロ
セスに返信して一連の処理を終了する。子プロセスがな
いサブプール(重み0でテーブルに登録されている)が
存在する図示しない他の各プロセッサは完了メッセージ
を受信すると、テーブルからサブプールを削除した後、
到着確認メッセージを制御プロセスに返信して一連の処
理を終了する。制御プロセスは、完了メッセージを送信
した数Tだけ到着確認メッセージを受信して作業エリア
の値が0になると、作業エリアをクリアして一連の処理
を終了する。
【0091】(3−2) メッセージの追い越しがある
場合上述したメッセージの追い越しがない場合の強制終
了方式を、メッセージの追い越しがある場合にそのまま
適用することはできない。以下では、変更する処理部分
について説明する。
【0092】メッセージの追い越しが問題になるのは、
完了メッセージが状態変更メッセージを追い越してしま
う場合(サブプールが存在しないプロセッサについての
み生じる現象である)と、終了メッセージが到着確認メ
ッセージを追い越してしまう場合である。到着確認メッ
セージ同士の追い越しは同一のメッセージであるため、
問題となることはない。
【0093】(3−2−1) 完了メッセージによる状
態変更メッセージの追い越し 追い越しした完了メッセージの受信時の処理を規定して
いない場合には、このような追い越した完了メッセージ
や追い越された状態変更メッセージの受信によってシス
テムが暴走する等の不都合を生じる。そのため、メッセ
ージの追い越しがある場合には、完了メッセージが状態
変更メッセージを追い越した際の処理を明確に規定して
おくことを要する。
【0094】まず、完了メッセージをプロセッサが受信
した場合の処理を説明する。完了メッセージを受信した
場合には、単純に到着確認メッセージを送信するのでは
なく、状態変更メッセージを受信しているか否かを調べ
、未受信であったならば状態変更メッセージの受信を待
って到着確認メッセージを送信する必要がある。状態変
更メッセージの受信済み/未受信は、サブプール用重み
テーブルを検索することによって調べることができる。 該当するIDが登録されていて、新状態フィールドに状
態が格納されていれば(すなわち状態変更中であれば)
受信済みであり、これ以外の場合には未受信である。
【0095】従って、プロセッサの処理は以下のように
なる。まず、状態変更メッセージの受信済み/未受信を
調べる。その結果、受信済みの場合(追い越しがなかっ
た場合)には追い越しがない場合と同様に処理する。未
受信の場合(追い越しがあった場合)には、完了メッセ
ージが示すIDのサブプールが存在するか否かを判断し
、存在する場合には直ちに、存在しない場合にはテーブ
ルにそのサブプールを登録した後に、新状態フィールド
に「状態変更メッセージ待ち」を書込む。なお、サブプ
ールが登録されていない場合において登録する際には重
みフィールドに0を書く。
【0096】次に、状態変更メッセージをプロセッサが
受信した場合の処理を説明する。状態変更メッセージを
受信した場合にも完了メッセージの受信済み/未受信に
よって異った処理を行なう。完了メッセージの受信済み
/未受信は、サブプール用重みテーブルを検索すること
によって調べることができる。すなわち、該当するID
の新状態フィールドに「状態変更メッセージ待ち」が書
き込まれていたならば受信済み、それ以外は未受信であ
る。
【0097】従って、プロセッサの処理は、以下のよう
になる。まず、完了メッセージの受信済み/未受信を調
べる。その結果、未受信の場合(追い越しがなかった場
合)には追い越しがない場合と同様に処理する。完了メ
ッセージが受信済みの場合(追い越しがあった場合)に
は、追い越しがない場合の完了メッセージを受信した際
の処理を行なう。すなわち、重みフィールドが0でなけ
れば新状態フィールドをクリアして通常状態に戻すと共
に、完了メッセージの到着確認メッセージを制御プロセ
スに送信し、重みフィールドが0の場合にはそのサブプ
ールの登録をテーブルから削除した後、完了メッセージ
の到着確認メッセージを制御プロセスに送信する。
【0098】(3−2−2) 終了メッセージによる到
着確認メッセージの追い越し 上述したように、状態変更中であるサブプールが終了し
た場合には、プロセッサは、到着確認メッセージを送信
した後に終了メッセージを送信する。しかし、メッセー
ジの追い越しがあるシステムの場合には、終了メッセー
ジが先に制御プロセスに届くことがある。この終了メッ
セージの受信によっては、制御プロセス用重みテーブル
からそのサブプールが削除されることもある。この後に
到着確認メッセージが制御プロセスで受信されても、制
御プロセスはどのような処理を実行すれば良いかが明確
ではなく、暴走の恐れがある。そのため、メッセージの
追い越しがある場合には、終了メッセージが到着確認メ
ッセージを追い越した際の処理を明確に規定しておくこ
とを要する。
【0099】プロセスプールの終了を確認するには重み
が0になっただけでは不十分であり、全ての到着確認メ
ッセージの受信を確認する必要がある。制御プロセス用
重みテーブルの作業エリアには未受信の到着確認メッセ
ージの数が書かれているので、作業エリアを調べること
によって全ての到着確認メッセージの受信を確認するこ
とができる。
【0100】まず、終了メッセージの受信時の処理を説
明する。制御プロセスは終了メッセージを受信したこと
によってWTC方式に従って重みを更新し、その重みが
0になった場合には、制御プロセス用重みテーブルの作
業エリアを調べる。作業エリアが0の場合には、全ての
到着確認メッセージを受信済みであるので、プロセスプ
ールの終了を検出する。すなわち、プロセスプールのテ
ーブルからの削除を行なう。他方、0でない場合には、
受信していない到着確認メッセージが残っているので、
なんら処理することなく到着確認メッセージを待ち受け
る状態のままとし、重みが0であってもプロセスプール
の終了と検出することを留保しておく。すなわち、プロ
セスプールのテーブルからの削除を実行しない。
【0101】次に、到着確認メッセージの受信時の処理
を説明する。このときには、作業エリアの値を更新して
それが0か否かを判断する。0でない場合には、受信し
ていない到着確認メッセージがあるので、重みフィール
ドの値を調べることなく、次の到着確認メッセージを待
ち受ける状態のままとする。他方、作業エリアの値が更
新により0になると、全ての到着確認メッセージを受信
したので、さらに重みフィールドの値が0か否かを調べ
る。0であれば、そのプロセスプールの終了を検出した
としてテーブルから削除する。他方、重みが0の場合に
は、状態変更は完了したが、プロセスプールは終了して
いるわけではないので、作業エリアをクリアする処理の
みを行なう。
【0102】(4)実施例の効果 上述の実施例によれば、以下の効果を得ることができる
【0103】状態変更処理期間以外に、状態変更のため
の処理を行なう必要がない。例えば、生成メッセージの
送信処理等が不要である。すなわち、状態変更がなされ
ないサブプールに対する生成メッセージの送信処理は結
局のところ無駄であるが、このような無駄な処理が生じ
ない。
【0104】状態変更処理に必要なテーブルは、通常の
終了処理でも用いるテーブルだけであって、状態変更処
理だけに用いるテーブルは不要であり、メモリ資源の有
効利用を実現することができる。
【0105】メッセージの追い越しがあるシステム及び
追い越しがないシステムの両方に適用可能であり、しか
も、両者での処理の異なる部分が極わずかであり、多く
の部分の設計や構成を共通化し得る。また、メッセージ
の追い越しがないシステムを、追い越しがあるシステム
に変更することが容易である。
【0106】また、上述の実施例によれば、取り扱うこ
とができる状態の種類数は制限されるものではない。こ
の点から、本発明を広範囲のマルチプロセッサシステム
に適用することができる。
【0107】従来では、制御プロセスが全てのサブプー
ルの状態が変更されたことを検出できなかったが、この
実施例では検出することができる。そのため、制御プロ
セスが処理を適切なタイミングで行ない易くなる。
【0108】(5)他の実施例 状態変更中や状態変更メッセージ受信待ちを専用のテー
ブル等によって管理するようにしても良い。
【0109】制御プロセスが行なう状態変更メッセージ
や完了メッセージの送信を、マルチプロセッサシステム
の放送機能を利用して行なうようにしても良い。
【0110】本発明のプロセス状態変更方式が適用され
るマルチプロセッサシステムの用途及びプロセッサ数は
限定されるものではない。
【0111】
【発明の効果】以上のように、本発明によれば、状態変
更処理期間内のメッセージの授受だけで状態変更処理を
行なうようにしたので、また、到着確認メッセージの受
信数や変更済みメッセージの充分な受信を制御プロセス
が確認しながら処理を進めていくようにしたので、さら
に、状態変更中を記憶してその変更中に受信した子プロ
セスの状態をもプロセッサが変更して制御プロセスに報
告するようにしたので、状態変更処理期間以外に行なう
状態変更のための準備処理が不要な、必要なメモリ容量
が少ない、制御プロセスが状態変更の完了を検出するこ
とができる、取り扱うことができる状態数が制限されな
いプロセス状態変更方式を実現することができる。
【図面の簡単な説明】
【図1】実施例の制御プロセス及びプロセッサ(の状態
変更部)の処理フローチャートである。
【図2】プロセスプールの構成図である。
【図3】プロセスプールのマルチプロセッサシステムへ
の適用説明図である。
【図4】従来の終了検出方式であるWTC方式の説明図
である。
【図5】従来の制御プロセス用重みテーブルの構成図で
ある。
【図6】従来のサブプール用重みテーブルの構成図であ
る。
【図7】従来の送信先にサブプールが存在する場合の子
プロセスの送受信処理の説明図である。
【図8】従来の送信先にサブプールが存在しない場合の
子プロセスの送受信処理の説明図である。
【図9】従来のサブプールの終了処理の説明図である。
【図10】従来のプロセスプールの終了検出処理の説明
図である。
【図11】従来の通信中の子プロセスが状態変更処理に
与える影響の説明図である。
【図12】従来、用いられていたサブプールテーブルの
構成図である。
【図13】従来の状態変更処理の説明図(その1)であ
る。
【図14】従来の状態変更処理の説明図(その2)であ
る。
【図15】従来の状態変更処理の説明図(その3)であ
る。
【図16】従来の状態変更処理の説明図(その4)であ
る。
【図17】メッセージの追い越しがある場合の従来の状
態変更処理の説明図である。
【図18】実施例の制御プロセス用重みテーブルの構成
図である。
【図19】実施例のサブプール用重みテーブルの構成図
である。
【図20】実施例の状態変更中に子プロセスを受信した
際の処理の説明図である。
【図21】実施例の状態変更処理の説明図(その1)で
ある。
【図22】実施例の状態変更処理の説明図(その2)で
ある。
【図23】実施例の状態変更処理の説明図(その3)で
ある。
【図24】実施例の状態変更処理の説明図(その4)で
ある。
【図25】実施例の状態変更処理の説明図(その5)で
ある。
【符号の説明】
100…状態変更メッセージの送信処理、101〜10
4…状態変更の完了の検出処理、105…完了メッセー
ジの送信処理、106〜109…到着確認メッセージの
受信完了の検出処理、110…一連の処理の終了処理、
201…状態変更処理、202、205…状態変更中の
格納処理、203、208…変更済みメッセージの送信
処理、204…サブプール用重みテーブルへのサブプー
ルの登録処理、210…通常状態への復帰処理、211
…到着確認メッセージの送信処理、212…サブプール
用重みテーブルからのサブプールの削除処理。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  非同期メッセージ通信によってプロセ
    ッサ間処理を行なうマルチプロセッサシステムのプロセ
    ス状態変更方式であって、1個の制御プロセスと1個以
    上の子プロセスからなるプロセスプールの、各プロセッ
    サに存在するサブプールの状態を、上記制御プロセスが
    、上記各プロセッサの状態変更部を制御して変更させる
    プロセス状態変更方式において、全ての上記プロセッサ
    に状態変更メッセージを送信する上記制御プロセスが行
    なう第1の処理と、上記各プロセッサの状態変更部が状
    態変更メッセージを受信したときに行なう処理であって
    、当該プロセッサに状態変更が求められたサブプールが
    存在する場合にそのサブプールの状態を変更させて変更
    済みメッセージを上記制御プロセスに送信すると共に状
    態変更中情報を記憶し、当該プロセッサに状態変更が求
    められたサブプールが存在しない場合に状態変更中情報
    を記憶する第2の処理と、状態変更中情報を記憶してい
    る状態で、他のプロセッサから子プロセスが与えられた
    場合に受信した子プロセスの状態を変更すると共に変更
    済みメッセージを上記制御プロセスに送信する、上記各
    プロセッサの状態変更部が行なう第3の処理と、受信し
    た変更済みメッセージに基づいて上記プロセスプールの
    状態の変更の完了を監視し、完了を検出したときに、全
    ての上記プロセッサに完了メッセージを送信する、上記
    制御プロセスが行なう第4の処理と、上記各プロセッサ
    の状態変更部が、完了メッセージを受信した場合に行な
    う処理であって、上記状態変更中情報を削除すると共に
    、完了メッセージに対する到着確認メッセージを上記制
    御プロセスに送信する第5の処理と、全ての上記プロセ
    ッサから到着確認メッセージを受信することによって、
    上記プロセスプールの状態変更処理を終了させる上記制
    御プロセスが行なう第6の処理とからなることを特徴と
    するプロセス状態変更方式。
  2. 【請求項2】  完了メッセージが状態変更メッセージ
    より先に上記プロセッサに到達することが有り得る、マ
    ルチプロセッサシステムに適用される請求項1に記載の
    プロセス状態変更方式において、上記各プロセッサの状
    態変更部が完了メッセージを受信した場合に上記第5の
    処理に代えて行なう処理であって、上記状態変更中情報
    が記憶されているか否かに基づいてこの受信以前に上記
    状態変更メッセージを受信しているか否かを判別し、状
    態変更メッセージを先に受信しているときに上記第5の
    処理を実行すると共に、完了メッセージを先に受信して
    いるときに状態変更メッセージの受信待ち情報を記憶す
    る第7の処理と、上記各プロセッサの状態変更部が状態
    変更メッセージを受信したときに上記第2の処理に代え
    て行なう処理であって、状態変更メッセージの受信待ち
    情報が記憶されているか否かに基づいてこの受信以前に
    完了メッセージを受信しているか否かを判別し、状態変
    更メッセージを先に受信しているときに上記第2の処理
    を実行すると共に、完了メッセージを先に受信している
    ときに上記状態変更中情報を削除し、完了メッセージに
    対する到着確認メッセージを上記制御プロセスに送信す
    る第8の処理とを設けたことを特徴とするプロセス状態
    変更方式。
JP3119556A 1991-03-19 1991-03-19 プロセス状態変更方法 Expired - Lifetime JP2517852B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3119556A JP2517852B2 (ja) 1991-03-19 1991-03-19 プロセス状態変更方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3119556A JP2517852B2 (ja) 1991-03-19 1991-03-19 プロセス状態変更方法

Publications (2)

Publication Number Publication Date
JPH04291445A true JPH04291445A (ja) 1992-10-15
JP2517852B2 JP2517852B2 (ja) 1996-07-24

Family

ID=14764243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3119556A Expired - Lifetime JP2517852B2 (ja) 1991-03-19 1991-03-19 プロセス状態変更方法

Country Status (1)

Country Link
JP (1) JP2517852B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013172305A (ja) * 2012-02-21 2013-09-02 Nec Corp 情報処理装置、情報処理方法および情報処理用プログラム
CN116402103A (zh) * 2023-04-13 2023-07-07 苏州亿铸智能科技有限公司 一种存算一体静态控制配置方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013172305A (ja) * 2012-02-21 2013-09-02 Nec Corp 情報処理装置、情報処理方法および情報処理用プログラム
CN116402103A (zh) * 2023-04-13 2023-07-07 苏州亿铸智能科技有限公司 一种存算一体静态控制配置方法

Also Published As

Publication number Publication date
JP2517852B2 (ja) 1996-07-24

Similar Documents

Publication Publication Date Title
US5175732A (en) Method and apparatus for controlling data communication operations within stations of a local-area network
US4414620A (en) Inter-subsystem communication system
US5396613A (en) Method and system for error recovery for cascaded servers
EP0592117A2 (en) Asynchronous inter-process communications arrangement
CN100412847C (zh) Rdma完成和重传系统以及方法
JPH07101407B2 (ja) スケジユーリング方法及び装置
JPH1049507A (ja) 並列計算機
JPH06164574A (ja) データ通信装置及び方法
JP3462064B2 (ja) 分散シミュレーションシステム
JPH07210519A (ja) データ転送制御方法および送受信制御装置
JPH04291445A (ja) プロセス状態変更方法
JP3345546B2 (ja) データ配送方法及び情報通信装置
US5754856A (en) MVS/ESA message transport system using the XCF coupling facility
JPH04291444A (ja) プロセス強制終了方法
JP2005507522A (ja) 分散コンピューティングにおける順次整合性を保証する方法およびシステム
JPS62126457A (ja) 分散デ−タ処理方式
EP0568479A2 (en) Method and system of establishing parallel conversations in a communications network
US20040133642A1 (en) Server and application programming interface for distributed rendezvous
JPH04113442A (ja) プロセッサ間通信方式
JP3231563B2 (ja) メッセージ到着順序制御方式
JPH09259051A (ja) アラーム通知処理方式
JPS6175643A (ja) 波状ブロ−ドキヤスト通信方式
JPH02118841A (ja) 入力待ち行列管理方式
JP2752456B2 (ja) チャネル装置
JPH05265986A (ja) 疎結合マルチホットスタンバイコンピュータシステム

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term