JPH03257633A - マルチスレッド環境の計算機システム - Google Patents

マルチスレッド環境の計算機システム

Info

Publication number
JPH03257633A
JPH03257633A JP2057079A JP5707990A JPH03257633A JP H03257633 A JPH03257633 A JP H03257633A JP 2057079 A JP2057079 A JP 2057079A JP 5707990 A JP5707990 A JP 5707990A JP H03257633 A JPH03257633 A JP H03257633A
Authority
JP
Japan
Prior art keywords
group
thread
management method
processes
threads
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
JP2057079A
Other languages
English (en)
Other versions
JP2990286B2 (ja
Inventor
Masahiko Saito
雅彦 齊藤
Shinichiro Yamaguchi
伸一朗 山口
Tadashi Kamiwaki
正 上脇
Yoshiki Kobayashi
芳樹 小林
Tomoaki Nakamura
智明 中村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2057079A priority Critical patent/JP2990286B2/ja
Publication of JPH03257633A publication Critical patent/JPH03257633A/ja
Application granted granted Critical
Publication of JP2990286B2 publication Critical patent/JP2990286B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マルチプログラミングを行う計算機システム
のユーザインタフェースに係り、特に、相互に関連する
プロセスまたはスレッドをまとめて制御するのに好適な
プロセス管理方式に関するものである。
〔従来の技術〕
マルチプロセス環境を実現するオペレーティングシステ
ムの代表例として、米国AT&T社が開発したUNIX
がある。UNIXにおいては、以下に示すようなプロセ
スグループという概念を設けている。
a、プロセスグループにはプロセスグループリーダと呼
ばれるプロセスが存在する。
b、親プロセスが子プロセスを生成したとき、子プロセ
スは自動的に親プロセスと同じプロセスグループに入る
C6全てのプロセスは、自プロセスをプロセスグループ
リーダとしたプロセスグループを生威し、元のプロセス
グループから抜けることができる。
d、プロセスグループは、プロセスグループリーダが終
了したときに、プロセスグループに属する全てのプロセ
スを終了させるために使用する。
そこで、UNIXでは、各プロセスを管理するためのプ
ロセス管理テーブル内に、自プロセスがどのプロセスグ
ループに属するかを示す変数を設けている。各プロセス
の変数としてはプロセスグループリーダのプロセスID
が設定され、当該プロセスグループに属することが示さ
れる。プロセスグループリーダとは、前記変数の値と自
プロセスIDとが一致するプロセスである。
プロセスグループリーダが終了したとき、システム内に
存在する全てのプロセス管理テーブルを調べ、前記変数
の値がプロセスグループリーダのプロセスIDに一致す
るならば、対応するプロセスを終了させることにより、
上記d、を実現している。
また、プロセス内で並列に実行されるスレッドを導入し
たマルチスレッド環境を実現するオペレーティングシス
テムの代表例として、米国カーネギメロン大学のM a
 c hと米国サンマイクロシステムズ社の5unO8
とがある。
いずれも、プロセスという単位でスレッドをまとめて制
御可能であるが、プロセスをグループ化し当該プロセス
グループに対してそのグループに属しているプロセスを
停止させたり再開させたりする機能、プロセス内部でス
レッドをグループに分類する機能、プロセス間にまたが
ってスレッドをまとめる機能は存在しない。
なお、この種の従来技術を示す例としては、(1)M、
J、BACH: The  Design  of  the  UNI
XOperating  System (PHI出版 pp、210−213)(2)M、Ac
cetta他: Mach:A  New   Kernel  Fou
nd−ation  for  UNIX  Deve
lopment (Proceedings  of  USENIX1
986  Summer  Conferencepp
、93−112) (3)山下智明: Sun  Lightweight  ProcesS
プログラミング (UNIX  MAGAZINE  昭和63年7月号
pp、9O−115) 等がある。
〔発明が解決しようとする課題〕
上記UNIXの実現しているプロセスグループは、各プ
ロセスの管理テーブルに、当該プロセスがどのプロセス
グループに属するかを示す変数を用意することにより実
現されている。そこで、プロセスグループに対して処理
を行うには、プロセス管理テーブル全体を検索し、それ
ぞれのプロセスが当該プロセスグループに属するか否か
を調べ、属している場合にのみ処理を行う必要がある。
また、UNIXでは、プロセスグループの存在意義自体
が、プロセスグループリーダが終了したときに、当該プ
ロセスグループ内の他のプロセスを終了させるためのも
のでしかない。
本発明の目的は、プロセスをグループ化し、すべてのプ
ロセス管理テーブルを検索しなくても、前記プロセスに
対して、グループに属しているプロセスの停止/再開な
どの各種処理を高速に実行できるようにするプロセス管
理方法を提供することである。
本発明の他の目的は、プロセス内で実行環境を共有して
動作するスレッドに対しても、スレッドのグループ化を
実現し、プロセスbは、独立に、複数個のスレッドを制
御できるようにするプロセス管理方法を提供することで
ある。
〔課題を解決するための手段〕
本発明は、上記目的を達成するために、プロセスのグル
ープ化の場合、相互に関連するプロセスの管理テーブル
同士を接続する手段を設けることを提案するものである
プロセス管理テーブル同士を接続する手段は、具体的に
は、次のいずれかを用いることになる。
A、プロセス管理テーブル内にプロセス管理テーブル自
身を指す記憶場所(以下、グループリンク領域と呼ぶ)
を設け、これにグループ内の次のプロセス管理テーブル
のアドレスを設定して、グループに属するプロセス管理
テーブル同士を接続する。
B、グループに属するプロセスの管理テーブルを指す値
を要素とする配列(以下、グループテーブルと呼ぶ)を
設け、これにグループ内の全てのプロセス管理テーブル
のアドレスを設定し、グループに属するプロセス管理テ
ーブル同士をまとめる。
さらに、上記A、Bいずれの場合にも、グループの管理
を行うグループ管理テーブルを用意する。
上記Aの手段を用いている場合は、グループ管理テーブ
ルは、グループリンク領域により接続したプロセス群自
体を管理するが、上記Bの場合には、グループテーブル
を管理するものとなる。
スレッドのグループ化の場合も、プロセスのグループ化
と同様、スレッド管理テーブルに対して上記A、Hのい
ずれかの手段と、グループ管理テーブルとを用いること
により、発明の目的が達成される。
〔作用〕
グループリンク領域にはグループ内の次のプロセス/ス
レッドの管理テーブルのアドレスを設定する。グループ
管理を行うプログラムはそのグループリンク領域を辿る
ことにより、グループに属する全てのプロセス/スレッ
ドを検索できる。
グループテーブルにはグループに属する全てのプロセス
/スレッドの管理テーブルのアドレスを要素として登録
する。グループ管理を行うプログラムは前記グループテ
ーブルの要素を調べることにより、グループに属する全
てのプロセス/スレッドを検索できる。
グループ管理テーブルはシステム内に存在するグループ
自体を管理する。各グループごとにグループ管理テーブ
ルのエントリを対応させる。グループ管理テーブルの各
エントリは以下の役割を持つ。
e、前記グループリンク領域を用いる場合は、グループ
に属するプロセス/スレッドの管理テーブルの内、先頭
の管理テーブルのアドレスを指し、グループに属する全
てのプロセス/スレッドを辿れるように設定される。
f、前記グループテーブルを使用する場合は、対応する
グループテーブルのアドレスを指し、グループに属する
全てのプロセス/スレッドを検索できるように設定され
る。
〔実施例〕
次に、図面を参照して、本発明の詳細な説明する。以下
、実施例では、プロセスのグループ化についてのみ言及
するが、スレッドのグループ化についてもプロセスをス
レッドに置き換えるだけで、同様の構成となる。
第1図はプロセス管理テーブル内に管理テーブル自身を
指すための記憶場所(グループリンク領域)を設けて、
プロセスのグループ化を行う例を示している。図におい
て、10はグループ管理テーブルであり、各エントリ1
1がシステム内に存在する各グループに対応している。
グループ管理テーブルのエントリはグループに属するプ
ロセス管理テーブルの内、先頭の管理テーブルを指して
いる。12a、12b、12cは、それぞれ、プロセス
管理テーブルである。プロセス管理テーブルの内容は、
以下に述べるグループリンク領域を除いて、全て従来と
同様であると考えてよい。具体的には、プロセスID、
CPU使用時間などが記憶されている。
プロセス管理テーブル12a、12b、12c内には、
それぞれ、グループリンク領域13を新設する。グルー
プリンク領域はグループ内のプロセスを互いに接続する
。具体的には、グループ内に存在するプロセス管理テー
ブルの内、次の管理テーブルのアドレスを設定すること
になる。グループ管理テーブルの各エントリからグルー
プリンク領域を辿っていくと、グループに存在する全て
のプロセスを検索できる。第1図の例では、グループリ
ンク領域の設定により、12aで示されるプロセスが第
1のグループを、12bで示されるプロセスが第2のグ
ループを形成している。また、12cはグループ管理テ
ーブルのいずれのエントリからも指されておらず、グル
ープに属さないプロセスである。
第2図は、第1図においてプロセス管理テーブル12c
が示すプロセスを新たに第2のプロセスグループに入れ
る方法を示した例である。プロセス管理テーブル12b
のグループリンク領域を繋ぎ換えることにより、対応す
るプロセスを第2のグループに入れることが可能となる
。この例では、グループの最終位置に置いているが、グ
ループリンク領域の接続を変えると、グループの先頭位
置または中央に置くことも可能である。
本発明の第1の実施例では、第1図と第2図において、
あたかも、グループリンク領域が一重リンク(一方向接
続)のみであるかのように示したが、これを、二重リン
ク(逆方向接続を追加した方式)、循環リンク(最終位
置のプロセス管理テーブルのグループリンク領域が先頭
位置のプロセス管理テーブルを指すようにした方式)、
および二重リンクと循環リンクの組合せ等に変更するこ
とは容易である。これらいずれの方式においても、グル
ープリンク領域はプロセス管理テーブルのアドレスを値
とする変数を1個まはた2個(二重リンクの場合)用意
するだけでよい。
次に、グループ管理テーブル10のエントリ11の内容
を第3図に示しておく。各エントリには、グループの先
頭位置のプロセス管理テーブルのアドレスを示すグルー
プリンク領域50が存在する。
その他に、グループ内に存在するプロセス数を示すフィ
ールド(グループカウンタ)51、グループの最終位置
のプロセス管理テーブルのアドレスを示すフィールド(
グループリンクテール)52等のグループの情報を設定
するフィールドを設けてもよい。51および52のフィ
ールドは省略可能である。
第4図はプロセスグループごとに配列を設け、グループ
に属するプロセスの管理テーブルを指す値を当該配列の
要素として設定することにより、グループ化を実現する
例を示している。20は第1図と同様にグループ管理テ
ーブルであるが、この各エントリ21は対応するグルー
プテーブルのアドレスを指す。22a、22bがグルー
プテーブルである。グループテーブル22a、22bの
各エントリは、プロセス管理テーブルのアドレスを示す
変数となっている。このエントリにおいては、プロセス
管理テーブルのアドレス以外に設定する情報はない。
各グループテーブルのエントリからプロセス管理テーブ
ルのアドレスを指すことにより、プロセスのグループ化
が可能である。第4図では、グループテーブル22aと
22bとによって、プロセス管理テーブルが第1のグル
ープ12aおよび第2のグループ12bに分類されてい
る。プロセス管理テーブル12cはグループテーブルか
ら指されていないため、いずれのグループにも属さない
プロセスを管理するテーブルとなる。
第5図に前記いずれのグループにも属していないプロセ
ス12cを第2のグループに入れる方式を示した。グル
ープテーブルのエントリを新たに用意し、当該エントリ
が新たなプロセス管理テーブルのアドレスを指すように
設定すると、プロセスをグループに入ることが可能であ
る。
本発明の第2の実施例では、2つ以上のグループテーブ
ルのエントリが同一のプロセス管理テーブルを指すよう
に設定することによって、1つのプロセスが同時に2つ
以上のグループに入れることが可能である。
第6図にグループ管理テーブル20のエントリの内容を
示しておく。エントリ内には、各グループに対応するグ
ループテーブルを指すためのグループテーブルポインタ
60が存在する。その他に第3図と同様、グループカウ
ンタ51を設けてもよい。
上記グループ化手段を用いて構築するユーザインタフェ
ースについて述べる。グループ化の概念を用いて複数個
のプロセスを同時に処理するグループ管理方法を実現す
る関数(サブルーチン)の処理手順例について、以下、
順に記述する。なお、以下の例では、グループリンク領
域(第1図)を用いて実現したグループについて説明す
るが、グループテーブル(第4図)を用いてグループを
実現した場合も、リンク接続が配列接続に変更される以
外は、同様の手順である。
(1)複数プロセスの生成 複数プロセスを生威し、グループに登録する関数である
。例えば、同一または同様の処理を行うプロセスを同時
に複数個発生させ、これらのプロセス群に対する処理は
全てグループとして扱う場合に使用する。複数プロセス
生成処理のアルゴリズムの例を第7図に示す。
関数内では、指定グループが存在しない場合、グループ
自体を生成する。その後、指定側のプロセスを生威し、
各プロセスをグループに登録する。
プロセスのグループへの登録は第2図または第5図と同
様である。また、プロセスの生成処理は従来の方式と同
様であると考えてよい。
(2)グループ内プロセスの終了 グループ内プロセスの終了処理を行う関数のアルゴリズ
ムの例を第8図に示す。この関数では呼び出したプロセ
スを除いて、グループ内の全プロセスを終了させる。
指定グループに対応するグループ管理テーブルのグルー
プリンク領域50からグループ内のプロセス管理テーブ
ルを全て辿り、当該プロセス管理テーブルが自プロセス
のものでなければ、該当プロセスを終了させる。グルー
プに属するプロセスを全て辿れば、関数の処理は終了で
ある。第8図のフローチャート中、80はグループリン
ク領域を辿り、グループの最終位置のプロセスを辿り終
えれば、ループを終了する処理を示している。なお、プ
ロセスの終了処理は従来の処理と同様であるが、以下の
(3)、(4)に示す終了待ち処理のため、終了待ち状
態のプロセスを再開する処理を付加しておく必要がある
(3)グループ内プロセスの終了待ち 第9図はグループ内のいずれか1つのプロセスの終了待
ちを行う関数のアルゴリズムの例である。
本関数の処理では、グループ内プロセスの終了待ちであ
ることを示して待ち状態となる処理以外は、全てチエツ
ク処理である。通常のオペレーティングシステムで待ち
状態となるための基本動作は、「1つの仮想アドレスを
指定して、そのアドレスについて待ち状態となる処理」
である。このアドレスの例としては、グループ管理テー
ブルの該当グループのエントリのアドレス等を選択すれ
ばよい。待ち状態となったプロセスはシステムの待ち行
列に登録される。なお、プロセスの終了処理では、(2
)において示したように、終了待ち状態のプロセスを再
開する処理が付加されている。
(4)グループ内全プロセスの終了待ち第10図はグル
ープに属する全てのプロセスの終了待ちを行う関数のア
ルゴリズムの例である。
基本的には第9図の動作と同様である。この処理は、グ
ループ内プロセスが存在しなくなるか、グループに自プ
ロセスしか存在しなくなるまで繰り返す。なお、グルー
プにプロセスが存在するか否かは、グループ管理テーブ
ルのグループリンク領域50がいずれのプロセス管理テ
ーブルも指していないか、グループカウンタ51の値が
Oであるかを調べることにより調査できる。
(5)グループ内プロセスの停止 グループ内プロセスの停止処理を行う関数のアルゴリズ
ム例を第11図に示す。この関数では呼び出したプロセ
スを除いて、グループ内の全プロセスを停止させる。
指定グループに対応するグループ管理テーブルのグルー
プリンク領域50からグループ内のプロセス管理テーブ
ルを全て辿り、当該プロセス管理テーブルが自プロセス
のものでなく、かつ、プロセスが実行可能状態であれば
、該当プロセスを停止させる。グループに属するプロセ
スを全て辿れば、関数の処理は終了する。プロセスの停
止処理は従来のプロセスの停止処理(11つの仮想アド
レスを指定して、そのアドレスについてプロセスを待ち
状態となる処理」)と同様である。
(6)グループ内プロセスの再開 グループ内プロセスの再開処理を行う関数のアルゴリズ
ム例を第12図に示す。
指定グループに対応するグループ管理テーブルのグルー
プリンク領域50からグループ内のプロセス管理テーブ
ルを全て辿り、当該プロセスが待ち状態であれば、該当
プロセスを再開する。グループに属するプロセスを全て
辿れば、関数の処理は終了する。なお、本関数において
、グループ内のプロセスが自プロセスと一致するか否か
をチエツクしていないのは、関数を実行する自プロセス
が待ち状態であることがないためである。プロセスの再
開処理は、「指定された仮想アドレスについて待ち状態
となっているプロセスを待ち行列から取り出し、実行可
能状態とする処理」である。
(7)グループの作成 グループの作成は、グループ管理テーブルに新たなエン
トリを登録し、当該エントリの初期化(グループリンク
領域がいずれのプロセス管理テーブルも指さないように
設定すること、グループカウンタ等をOにリセットする
こと)を行うだけでよい。グループ作成のアルゴリズム
例を第13図に示す。
(8)グループの削除 グループの削除では、グループ管理テーブルのエントリ
を削除する前に、当該グループに属するプロセスを、い
ずれのグループにも属さないように設定し直す必要があ
る。この処理のアルゴリズム例を第14図に示す。
グループ管理テーブルのグループリンク領域50からグ
ループに属するプロセスの管理テーブルを辿り、各管理
テーブルのグループリンク領域をリセットする。
(9)プロセスのグループへの登録 1つのプロセスをグループへ登録する方式を第15図に
示す。
図示の方式はグループリンク領域を使用してグループ化
を行う場合に、登録するプロセスをグループの最終位置
に置く方式である。本方式ではグループリンク領域を辿
って、グループの最終位置のプロセス管理テーブルに達
し、最終位置のプロセス管理テーブルのグループリンク
領域が新たに登録するプロセスの管理テーブルのアドレ
スを指すように設定する。なお、これは、第1図の状態
から第3図の状態への変更を行う方式である。
(10)プロセスのグループからの除去1つのプロセス
をグループから除去する方式のアルゴリズムを第16図
に示す。
グループ管理テーブルのグループリンク領域50からグ
ループに属しているプロセスを辿り、指定プロセスが見
つかったら、その前後に位置するプロセス管理テーブル
を接続することにより、指定プロセスの管理テーブルを
グループから除去する。この後、グループから除去した
プロセスのグループリンク領域はリセットしておく必要
がある。
(11)プロセスの存在チエツク 第17図はプロセスが指定されたグループに属している
か否かをチエツクする方式を示している。
これは、グループリンク領域を利用してグループに属す
るプロセス管理テーブルを辿り、指定プロセスの管理テ
ーブルがあれば、YESを示す値を返すだけでよい。
(12)グループへのメツセージ放送 第18図はグループ内の全てのプロセスに対してメツセ
ージを通知する関数のアルゴリズムを示している。例え
ば、同様の処理を行うプロセスをグループ化してまとめ
ておき、「グループに対して一斉にメツセージを通知し
、グループに属するプロセスを同時に起動する」といっ
た形で使用する。
第18図の処理は、ループ180で、グループの全ての
プロセス(自プロセスもグループに属する場合は自分以
外のプロセス)が自プロセスからのメツセージ受信待ち
状態になるまで待つ処理を行っている。グループ内の全
てのプロセスがメツセージ受信待ち状態となれば、ルー
プ181に制御が移行し、グループ内の各プロセスに対
するメツセージの転記と受信待ち状態であるプロセスの
再開とを行う。
(13)グループへのメツセージ送信 第19図はグループ内のいずれかのプロセスに対してメ
ツセージを通知する関数のアルゴリズムを示している。
例えば、同一の処理を行うプロセスをグループ化してま
とめておき、「グループに対してメツセージを通知し、
グループに属するプロセスの内、現在仕事がないプロセ
スを起動する」といった形で使用する。
第19図の処理では、グループのいずれかのプロセスが
自プロセスからのメツセージ受信待ち状態になっている
かを調べ、メツセージ受信待ち状態のプロセスがあれば
、該当プロセスを実行可能状態として、メツセージを通
知する。グループ内の全てのプロセスがメツセージ受信
待ち状態でなければ、自らメツセージ送信待ち状態とな
る。この場合、グループのいずれかのプロセスがメツセ
ージ受信を行うときに、送信待ち状態から実行可能状態
に変更される。
(14)グループからのメツセージ受信第20図はグル
ープ内のいずれかのプロセスからメツセージを受信する
関数のアルゴリズムを示している。例えば、同一の処理
を行うプロセスをグループ化してまとめておき、「グル
ープからのメツセージを待ち、グループに属するプロセ
スの内、最も早く仕事が終ったプロセスのメツセージか
ら処理を行う」といった形で使用する。
第20図の処理では、グループのいずれかのプロセスが
自プロセスへのメツセージ送信待ち状態になっているか
を調べ、メツセージ送信待ち状態のプロセスがあれば、
該当プロセスを実行可能状態として、メツセージの通知
を待つ。この間、受信側プロセスは受信待ち状態となり
、メツセージ転記の終了を待つことになる。グループ内
の全てのプロセスがメツセージ送信待ち状態でなければ
、自らメツセージ受信待ち状態となる。いずれの場合も
、グループのいずれかのプロセスがメツセージ転記を終
了したときに、受信待ち状態から実行可能状態に変更さ
れる。
以上に示したプロセスグループ化処理を支援する関数(
サブルーチン)を使用することにより、ユーザは同一処
理/類似処理を行うプロセス、同一制御対象を扱うプロ
セス等をグループとしてまとめることが可能である。個
々のプロセスを制御することなく、グループ単位で制御
すると、プロセス制御を容易に実現できることになる。
以下、上記グループ化の基本制御関数をいかに用いるか
を、グラフィックシステムの構成を例として説明する。
第21図は通常のグラフィックシステムの構成の一例を
示している。なお、本例では、システムのプログラムを
実行する単位として、プロセスを選択しているが、これ
をスレッドに置き換えて高速化することも可能である。
スレッドは−っのプロセス内部で実行環境を共有して並
列に動作するため、実行環境の切り換えの必要がなく、
スレッド切り換え時間がプロセス切り換え時間にくらべ
て短縮されるからである。
ユーザによって、キーボード210等の入力装置から描
画コマンドが与えられた場合、コマンド処理プロセス2
11がコマンドを解釈し、グラフィックシステムを起動
する。グラフィックシステムでは、まず、図形データ変
換プロセス212a。
212b、212cが起動される。各図形データ変換プ
ロセスは、描画に必要なデータを図形データベース21
3から取り出し、計算機で処理し易いデータである描画
プリミティブ214へと変換する。第21図の構成例で
は、各図形データ変換プロセスが、球、立方体2円錐な
どの図形データと結び付いている。描画プリミティブと
は、例えば、線データ(始点/終点の位M)、面データ
(三角形近似、四角形近似であれば、各頂点の位置)等
である。これは描画アルゴリズムの種類によって各種存
在する。
画像プリミティブは座標変換プロセス215a。
215b、215cによって、座標データ216に変換
される。X座標、Y座標、Z座標は独立に計算可能であ
るため、別個のプロセスによって計算させている。グラ
フィックスシステムを動作させる計算機システムがマル
チプロセッサ型計算機であり、複数個のプロセスを同時
に実行可能である場合、高速化が図れることになる。最
後に、輝度計算プロセス217が、座標データに対して
輝度計算等を行い、CRTデイスプレィ218に表示可
能な表示データ219を生成する。
次に、上記のグラフィックシステムに対して、プロセス
のグループ化制御がどのように使用されるかを示す。第
22図はグラフィックシステムに本発明のグループ化制
御を使用した場合の構成の一例を示している。
本実施例では、3つのプロセスグループを導入している
。第1のプロセスグループは、図形データ変換グループ
220であり、各種のデータに対応している図形データ
変換プロセス212a、212b、212cをまとめて
制御する。各図形データ変換プロセスは個別に図形デー
タと結び付いているが、コマンド処理プロセス211か
らは、1つのグループに対する依頼処理によって起動で
きる(グループへのメツセージ放送等による依頼を行え
ばよい)。
第2のプロセスグループは、座標変換グループ221で
ある。各描画プリミティブに対しては、必ず、X座標、
Y座標、2座標の3つの変換を行わなければならない。
これらの座標変換を行うプロセスをグループとしてまと
めることにより、個々のプロセスの存在を意識すること
なく、グループ全体が3次元の座標変換を行う処理単位
であると見なすことができる。なお、描画プリミティブ
の通知はグループに対するメツセージ放送等により、座
標データの受理はグループからのメツセージ受信等によ
り実現できる。
第3のプロセスグループは、輝度計算グループ222で
ある。第21図の構成例では、輝度計算プロセスは1個
のみであった。しかし、輝度計算(境界線平滑化処理、
何形処理等を含む)は負荷が大きく、1つのプロセスで
行う場合には、この処理がシステムのネックとなる場合
がある。このため、マルチプロセッサ型計算機でグラフ
ィックシステムを実現するに当たっては、輝度計算プロ
セスを複数個発生させ、複数個のプロセッサを使用して
並列に動作させる方式がとられることが多い。このとき
、輝度計算プロセスに処理を依頼する場合に、各プロセ
スの状態を調べ、処理を実行中でないプロセスに新たな
処理を依頼するという手段をとる。グループ制御を用い
て、同一処理を行う輝度計算プロセスをまとめれば、こ
の手間を省くことができる。具体的には、グループに対
するメツセージ送信等を利用すれば、グループ制御を行
うライブラリ関数又はシステムコール側で忙しくないプ
ロセスを選択し、当該プロセスに処理依頼を通知してく
れる。
このように、プロセスグループを使用することにより、
空きプロセスを探すステップ等を記述することが不要と
なるので、プログラム作成やデバッグなどの手間を省く
ことが可能である。プロセスグループ化の手法は、この
他、各種の応用システムにおいて使用できる。
以上、プロセスのグループ化制御について実施例を詳細
に説明したが、スレッドのグループ化制御も同様である
。ただし、スレッドのグループ化制御を使用する場合は
、第23図に示すようなグループ化も可能である。すな
わち、プロセス間にまたがって、スレッドをグループ化
できる。これにより、プロセスとしてスレッドをまとめ
る方式と、グループによりスレッドをまとめる方式とを
共存させ、より細かな制御が可能となる。プロセス間に
またがってスレッドをグループ化する例として、プロセ
ス間で互いに通信するスレッドをグループ化すること、
または、エラーメツセージの出力を行うスレッド等間−
の制御対象を扱うスレッドをグループ化して、排他制御
を行うことが挙げられる。
〔発明の効果〕
本発明のグループ化手段によれば、同一処理や類似処理
を行うプロセス/スレッド、または、同一制御対象を扱
うプロセス/スレッドを、複数個まとめて制御すること
が可能となる。複数個のプロセス/スレッドを1つのグ
ループとして制御することにより、並列処理や排他制御
を容易に実現できる。したがって、本発明のグループ化
プロセス/スレッド管理方式により、ユーザインタフェ
ースが向上する。
【図面の簡単な説明】
第1図は本発明によるプロセスグループ化手段の第1実
施例の構成を示す図、第2図は第1実施例におけるプロ
セスのグループへの登録方法を示す図、第3図は第1実
施例におけるグループ管理テーブルの構成を示す図、第
4図は本発明のプロセスグループ化の第2実施例の構成
を示す図、第5図は第2実施例におけるプロセスのグル
ープへの登録方法を示す図、第6図は第2実施例におけ
るグループ管理テーブルの構成を示す図、第7図は複数
プロセスを1威してグループに登録するアルゴリズムを
示す図、第8図はグループ内プロセスを終了させるアル
ゴリズムを示す図、第9図はグループ内の1つのプロセ
スの終了待ちを行うアルゴリズムを示す図、第10図は
グループ内全プロセスの終了待ちを行うアルゴリズムを
示す図、第11図はグループ内プロセスの停止処理のア
ルゴリズムを示す図、第12図はグループ内プロセスの
再開処理のアルゴリズムを示す図、第13図は新規グル
ープの生成処理のアルゴリズムを示す図、第14図はグ
ループの削除を行うアルゴリズムを示す図、第15図は
グループへプロセスを追加する処理を行うアルゴリズム
を示す図、第16図はグループからプロセスを除去する
処理を行うアルゴリズムを示す図、第17図はプロセス
がグループに存在するか否かをチエツクするためのアル
ゴリズムを示す図、第18図はグループ内全プロセスに
メツセージを放送するアルゴリズムを示す図、第19図
はグループ内の1つのプロセスにメツセージを送信する
アルゴリズムを示す図、第20図はグループ内の1つの
プロセスからメツセージを受理するアルゴリズムを示す
図、第21図は従来のグラフィックシステムの構成の一
例を示す図、第22図はグラフィックシステムに本発明
のプロセスグループ化手段を導入した構成の一例を示す
図、第23図はスレッドグループ化の概念を示す図であ
る。 10.20・・・グループ管理テーブル、11,21・
・・グループ管理テーブルの1エントリ、12a。 12b、12c・・・プロセス管理テーブル、13゜5
0・・・グループリンク領域、22a、22b・・・グ
ループテーブル、51・・・グループカウンタ、52・
・・グループリンクテール、60・・・グループテーブ
ルポインタ、210・・・キーボード、211・・・コ
マンド処理、212・・・図形データの変換、213・
・図形データベース、214・・・描画プリミティブ、
215・・・座標変換、216・・・座標データ、21
7・・・輝度計算、218・・・CRT、219・・・
表示データ、220・・・図形データ変換グループ、2
21・・・座標変換グループ、222・・・輝度計算グ
ループ。

Claims (1)

  1. 【特許請求の範囲】 1、仮想プロセッサ(スレッド)とその実行環境とから
    構成され自らを管理するための管理テーブルを有するプ
    ロセスを複数個並行して動作させるマルチプロセス環境
    において、相互に関連するプロセスの各々の前記プロセ
    ス管理テーブルを接続してプロセス群をグループ化し、
    当該グループ内の複数個のプロセスをまとめて制御する
    手段を備えたことを特徴とするプロセス管理方法。 2、請求項1に記載のプロセス管理方法において、存在
    するグループを管理するグループ管理テーブルを設け、
    前記プロセス管理テーブル内にプロセス管理テーブルを
    指すための記憶場所を設け、同一グループに属するプロ
    セスの管理テーブル同士を前記記憶場所を用いて互いに
    接続し、プロセスをグループ化することを特徴とするプ
    ロセス管理方法。 3、請求項1に記載のプロセス管理方法において、存在
    するグループを管理するグループ管理テーブルと前記グ
    ループごとの配列とを設け、グループに属するプロセス
    の管理テーブルを指す値を前記配列に設定し、プロセス
    をグループ化することを特徴とするプロセス管理方法。 4、プロセス内でスレッドを複数個並行して動作させる
    マルチスレッド環境において、 相互に関連するスレッドの各々の管理テーブルを接続し
    てスレッド群をプロセスとは独立にグループ化し、当該
    グループ内の複数個のスレッドをまとめて制御する手段
    を備えたことを特徴とするスレッド管理方法。 5、請求項4に記載のスレッド管理方法において、存在
    するグループを管理するグループ管理テーブルを設け、
    前記スレッド管理テーブル内にスレッド管理テーブルを
    指すための記憶場所を設け、同一グループに属するスレ
    ッドの管理テーブル同士を前記記憶場所を用いて互いに
    接続し、スレッドをグループ化することを特徴とするす
    るスレッド管理方法。6、請求項4に記載のスレッド管
    理方法において、存在するグループを管理するグループ
    管理テーブルと前記グループごとの配列とを設け、グル
    ープに属するスレッドの管理テーブルを指す値を前記配
    列に設定し、スレッドをグループ化することを特徴とす
    るスレッド管理方法。 7、プロセスのグループ化を可能とする計算機システム
    のプロセス管理方法において、 親プロセスが複数個の新たな子プロセスを生成し、生成
    した子プロセスを1つのグループに属させる関数(サブ
    ルーチン)を備えたことを特徴とするプロセス管理方法
    。 8、プロセスのグループ化を可能とする計算機システム
    のプロセス管理方法において、 1つのグループを指定し、当該グループに属している全
    てのプロセスを終了させる関数を備えたことを特徴とす
    るプロセス管理方法。 9、プロセスのグループ化を可能とする計算機システム
    のプロセス管理方法において、 1つのグループを指定し、当該グループに属しているい
    ずれか1つのプロセスが終了するまで自プロセスを待ち
    状態とする関数を備えたことを特徴とするプロセス管理
    方法。 10、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、1つのグループを指定
    し、当該グループに属している全てのプロセスが終了す
    るまで自プロセスを待ち状態とする関数を備えたことを
    特徴とするプロセス管理方法。 11、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、1つのグループを指定
    し、当該グループに属している全てのプロセスを待ち状
    態とする関数を備えたことを特徴とするプロセス管理方
    法。 12、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、1つのグループを指定
    し、当該グループに属している全てのプロセスを実行可
    能状態とする関数を備えたことを特徴とするプロセス管
    理方法。 13、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、新たなグループを作成
    する関数を備えたことを特徴とするプロセス管理方法。 14、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、1つのグループを指定
    し、当該グループに属している全てのプロセスを当該グ
    ループから除去し、当該グループを削除する関数を備え
    たことを特徴とするプロセス管理方法。 15、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、1つのグループと1つ
    のプロセスを指定し、当該グループに当該プロセスを登
    録する関数を備えたことを特徴とするプロセス管理方法
    。 16、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、1つのグループと1つ
    のプロセスを指定し、当該グループから当該プロセスを
    除去する関数を備えたことを特徴とするプロセス管理方
    法。 17、プロセスのグループ化を可能とする計算機システ
    ムのプロセス管理方法において、1つのグループと1つ
    のプロセスを指定し、当該グループに当該プロセスが存
    在するか否かを調査する関数を備えたことを特徴とする
    プロセス管理方法。 18、プロセスのグループ化と同期型メッセージ通信と
    を可能とする計算機システムのプロセス管理方法におい
    て、 1つのグループを指定し、当該グループに属している全
    てのプロセスが自プロセスからのメッセージ受信待ち状
    態であれば、当該グループ内の全てのプロセスにメッセ
    ージを通知し、当該グループに属しているいずれかのプ
    ロセスが自プロセスからのメッセージ受信待ち状態でな
    ければ、当該グループ内の全てのプロセスが自プロセス
    からのメッセージ受信の要求を出すまで、自プロセスを
    待ち状態とし、その後、当該グループ内の全てのプロセ
    スにメッセージを通知する関数を備えたことを特徴とす
    るプロセス管理方法。 19、プロセスのグループ化と同期型メッセージ通信と
    を可能とする計算機システムのプロセス管理方法におい
    て、 1つのグループを指定し、当該グループに属しているい
    ずれかのプロセスが自プロセスからのメッセージ受信待
    ち状態であれば、当該プロセスにメッセージを通知し、
    当該グループに属しているいずれのプロセスも自プロセ
    スからのメッセージ受信待ち状態でなければ、当該グル
    ープ内のいずれかのプロセスが自プロセスからのメッセ
    ージ受信の要求を出すまで、自プロセスを待ち状態とし
    、その後、メッセージ受信要求を出したプロセスにメッ
    セージを通知する関数を備えたことを特徴とするプロセ
    ス管理方法。 20、プロセスのグループ化と同期型メッセージ通信と
    を可能とする計算機システムのプロセス管理方法におい
    て、 1つのグループを指定し、当該グループに属しているい
    ずれかのプロセスが自プロセスへのメッセージ受信待ち
    状態であれば、当該プロセスからメッセージを受理し、
    当該グループに属しているいずれのプロセスも自プロセ
    スへのメッセージ送信待ち状態でなければ、当該グルー
    プ内のいずれかのプロセスが自プロセスへのメッセージ
    送信の要求を出すまで、自プロセスを待ち状態とし、そ
    の後、メッセージ送信要求を出したプロセスからメッセ
    ージを受信する関数を備えたことを特徴とするプロセス
    管理方法。 21、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、親スレッドが複数個の
    新たな子スレッドを生成し、生成した子スレッドを1つ
    のグループに属させる関数を備えたことを特徴とするス
    レッド管理方法。 22、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループを指定
    し、当該グループに属している全てのスレッドを終了さ
    せるを関数を備えたことを特徴とするスレッド管理方法
    。 23、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループを指定
    し、当該グループに属しているいずれか1つのスレッド
    が終了するまで、自スレッドを待ち状態とする関数を備
    えたことを特徴とするスレッド管理方法。 24、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループを指定
    し、当該グループに属している全てのスレッドが終了す
    るまで、自スレッドを待ち状態とする関数を備えたこと
    を特徴とするスレッド管理方法。 25、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループを指定
    し、当該グループに属している全てのスレッドを待ち状
    態とする関数を備えたことを特徴とするスレッド管理方
    法。 26、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループを指定
    し、当該グループに属している全てのスレッドを実行可
    能状態とする関数を備えたことを特徴とするスレッド管
    理方法。 27、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、新たなグループを作成
    する関数を備えたことを特徴とするスレッド管理方法。 28、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループを指定
    し、当該グループに属している全てのスレッドを当該グ
    ループから除去し、当該グループを削除する関数を備え
    たことを特徴とするスレッド管理方法。 29、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループと1つ
    のスレッドを指定し、当該グループに当該スレッドを登
    録する関数を備えたことを特徴とするスレッド管理方法
    。 30、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループと1つ
    のスレッドを指定し、当該グループから当該スレッドを
    除去する関数を備えたことを特徴とするスレッド管理方
    法。 31、スレッドのグループ化を可能とする計算機システ
    ムのスレッド管理方法において、1つのグループと1つ
    のスレッドを指定し、当該グループに当該スレッドが存
    在するか否かを調査する関数を備えたことを特徴とする
    スレッド管理方法。 32、スレッドのグループ化と同期型メッセージ通信と
    を可能とする計算機システムのスレッド管理方法におい
    て、 1つのグループを指定し、当該グループに属している全
    てのスレッドが自スレッドからのメッセージ受信待ち状
    態であれば、当該グループ内の全てのスレッドにメッセ
    ージを通知し、当該グループに属しているいずれかのス
    レッドが自スレッドからのメッセージ受信待ち状態でな
    ければ、当該グループ内の全てのスレッドが自スレッド
    からのメッセージ受信の要求を出すまで、自スレッドを
    待ち状態とし、その後、当該グループ内の全てのスレッ
    ドにメッセージを通知する関数を備えたことを特徴とす
    るスレッド管理方法。 33、スレッドのグループ化と同期型メッセージ通信と
    を可能とする計算機システムのスレッド管理方法におい
    て、 1つのグループを指定し、当該グループに属しているい
    ずれかのスレッドが自スレッドからのメッセージ受信待
    ち状態であれば、当該スレッドにメッセージを通知し、
    当該グループに属しているいずれのスレッドも自スレッ
    ドからのメッセージ受信待ち状態でなければ、当該グル
    ープ内のいずれかのスレッドが自スレッドからのメッセ
    ージ受信の要求を出すまで、自スレッドを待ち状態とし
    、その後、メッセージ受信要求を出したスレッドにメッ
    セージを通知する関数を備えたことを特徴とするスレッ
    ド管理方法。 34、スレッドのグループ化と同期型メッセージ通信と
    を可能とする計算機システムのスレッド管理方法におい
    て、 1つのグループを指定し、当該グループに属しているい
    ずれかのスレッドが自スレッドへのメッセージ受信待ち
    状態であれば、当該スレッドからメッセージを受理し、
    当該グループに属しているいずれのスレッドも自スレッ
    ドへのメッセージ送信待ち状態でなければ、当該グルー
    プ内のいずれかのスレッドが自スレッドへのメッセージ
    送信の要求を出すまで、自スレッドを待ち状態とし、そ
    の後、メッセージ送信要求を出したスレッドからメッセ
    ージを受信する関数を備えたことを特徴とするスレッド
    管理方法。 35、プロセスのグループ化を可能とする計算機システ
    ムのオペレーティングシステムにおいて、請求項7〜2
    0のいずれか一項に示した関数の内、少なくとも1個を
    システムコールとして内在させたことを特徴とするオペ
    レーティングシステム。 36、プロセスのグループ化を可能とする計算機システ
    ムのコンパイラにおいて、 請求項7〜20のいずれか一項に示した関数の内、少な
    くとも1個をライブラリとして内在させたことを特徴と
    するコンパイラ。 37、スレッドのグループ化を可能とする計算機システ
    ムのオペレーティングシステムにおいて、請求項21〜
    34のいずれか一項に示した関数の内、少なくとも1個
    をシステムコールとして内在させたことを特徴とするオ
    ペレーティングシステム。 38、スレッドのグループ化を可能とする計算機システ
    ムのコンパイラにおいて、 請求項21〜34のいずれか一項に示した関数の内、少
    なくとも1個をライブラリ関数として内在させたことを
    特徴とするコンパイラ。 39、プロセスのグループ化とスレッドのグループ化と
    を可能とする計算機システムのオペレーティングシステ
    ムにおいて、 請求項7〜34のいずれか一項に示した関数の内、少な
    くとも1個をシステムコールとして内在させたことを特
    徴とするオペレーティングシステム。 40、プロセスのグループ化とスレッドのグループ化と
    を可能とする計算機システムのコンパイラにおいて、 請求項7〜34のいずれか一項に示した関数の内、少な
    くとも1個をライブラリ関数として内在させたことを特
    徴とするコンパイラ。
JP2057079A 1990-03-08 1990-03-08 マルチスレッド環境の計算機システム Expired - Lifetime JP2990286B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2057079A JP2990286B2 (ja) 1990-03-08 1990-03-08 マルチスレッド環境の計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2057079A JP2990286B2 (ja) 1990-03-08 1990-03-08 マルチスレッド環境の計算機システム

Publications (2)

Publication Number Publication Date
JPH03257633A true JPH03257633A (ja) 1991-11-18
JP2990286B2 JP2990286B2 (ja) 1999-12-13

Family

ID=13045471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2057079A Expired - Lifetime JP2990286B2 (ja) 1990-03-08 1990-03-08 マルチスレッド環境の計算機システム

Country Status (1)

Country Link
JP (1) JP2990286B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04338836A (ja) * 1991-05-16 1992-11-26 Ricoh Co Ltd 画像形成装置の制御方式
JPH06314207A (ja) * 1993-04-30 1994-11-08 Nec Corp データ処理装置
JPH07219789A (ja) * 1994-01-27 1995-08-18 Internatl Business Mach Corp <Ibm> 複数スレッド・システムにおける外部事象を処理する方法
WO2006070510A1 (ja) * 2004-12-28 2006-07-06 Sony Computer Entertainment Inc. プログラムデバッグ装置、プログラムデバッグ方法及び情報記憶媒体
JP2012073786A (ja) * 2010-09-28 2012-04-12 Fujitsu Ten Ltd 情報処理装置及び情報処理方法
JP2022548579A (ja) * 2019-09-20 2022-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテナに対する外部操作とミューテーション・イベントとの対応関係

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04338836A (ja) * 1991-05-16 1992-11-26 Ricoh Co Ltd 画像形成装置の制御方式
JPH06314207A (ja) * 1993-04-30 1994-11-08 Nec Corp データ処理装置
JPH07219789A (ja) * 1994-01-27 1995-08-18 Internatl Business Mach Corp <Ibm> 複数スレッド・システムにおける外部事象を処理する方法
WO2006070510A1 (ja) * 2004-12-28 2006-07-06 Sony Computer Entertainment Inc. プログラムデバッグ装置、プログラムデバッグ方法及び情報記憶媒体
JP2012073786A (ja) * 2010-09-28 2012-04-12 Fujitsu Ten Ltd 情報処理装置及び情報処理方法
JP2022548579A (ja) * 2019-09-20 2022-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテナに対する外部操作とミューテーション・イベントとの対応関係
US11960578B2 (en) 2019-09-20 2024-04-16 International Business Machines Corporation Correspondence of external operations to containers and mutation events

Also Published As

Publication number Publication date
JP2990286B2 (ja) 1999-12-13

Similar Documents

Publication Publication Date Title
CA2037750C (en) Hierarchical inter-panel process flow control
CN1316357C (zh) 通过虚拟线程执行计算机多任务的方法及装置
KR930000853B1 (ko) 멀티 프로세서 시스템을 사용한 데이터 베이스 프로세싱 시스템.
US7098921B2 (en) Method, system and computer program product for efficiently utilizing limited resources in a graphics device
US6996829B2 (en) Handling callouts made by a multi-threaded virtual machine to a single threaded environment
US20150026691A1 (en) Task scheduling based on dependencies and resources
JPH03138735A (ja) データベース管理装置及び方法
CN109302321A (zh) 服务器、业务需求处理系统、方法和监控系统
CN116795524A (zh) 任务处理方法、装置、计算机设备、存储介质及程序产品
CN112346835B (zh) 一种基于协程的调度处理方法及系统
JPH03257633A (ja) マルチスレッド環境の計算機システム
CN103810041A (zh) 一种支持动态伸缩的并行计算的方法
Satapathy et al. Distributed intelligent architecture for logistics (DIAL)
CN113051279B (zh) 数据消息的存储方法、存储装置、电子设备及存储介质
CN112667236A (zh) 网格化布局的工作流程实现方法、系统及介质
CN114281467A (zh) 实现热迁移的系统方法、装置和存储介质
CN112162840A (zh) 一种基于中断重入机制的协程处理及管理方法
Kermarrec et al. Ada communication components for distributed and real time applications
US20240311164A1 (en) Interface processing
JPH086813A (ja) トレース制御方式
JP3077812B2 (ja) 情報処理装置
JP3022398B2 (ja) 仮想計算機方式
JPH1040118A (ja) クライアント/サーバシステム及びクライアント端末装置
CN120631384A (zh) 一种容器开发环境docker镜像构建方法、装置与系统
CN120706349A (zh) 超导量子芯片图形化设计系统