JPH0668729B2 - マルチプロセッサシステムの新規プログラムの実行を開始する方法 - Google Patents

マルチプロセッサシステムの新規プログラムの実行を開始する方法

Info

Publication number
JPH0668729B2
JPH0668729B2 JP62325166A JP32516687A JPH0668729B2 JP H0668729 B2 JPH0668729 B2 JP H0668729B2 JP 62325166 A JP62325166 A JP 62325166A JP 32516687 A JP32516687 A JP 32516687A JP H0668729 B2 JPH0668729 B2 JP H0668729B2
Authority
JP
Japan
Prior art keywords
processor
file
computer
packet
execution
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.)
Expired - Fee Related
Application number
JP62325166A
Other languages
English (en)
Other versions
JPS63172347A (ja
Inventor
パトリック ビッショプ トマス
ウェイン フィッシュ ロバート
ステュアート ピターソン ジェイムズ
ユージン トゥヴェル ジュニア ウォルター
Original Assignee
アメリカン テレフォン アンド テレグラフ カムパニー
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 アメリカン テレフォン アンド テレグラフ カムパニー filed Critical アメリカン テレフォン アンド テレグラフ カムパニー
Publication of JPS63172347A publication Critical patent/JPS63172347A/ja
Publication of JPH0668729B2 publication Critical patent/JPH0668729B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Description

【発明の詳細な説明】 (発明の背景) [発明の属する技術分野] 本発明はコンピュータのオペレーティングシステムに関
し、特に、複数のプロセッサ上で同時にアクティブであ
る拡張プロセスによるマルチプロセッサシステム上のプ
ログラムの初期実行に関する。
[問題点] 単一のコンピュータまたはプロセッサ上でのプログラム
の実行、および、その実行中におけるそれらのプログラ
ムによる入出力装置やメモリのようなシステム資源の利
用を制御するオペレーティングシステムの使用は、既知
の技術である。このようなオペレーティングシステムの
1つにUNIX(ユニックス)オペレーティングシステ
ムがある。このオペレーティングシステムは、ケー.ト
ンプソン(K.Thompson)の論文「UNIXの実現(UNIX Im
plementation)」Bell System Technical Journal、19
78年7−8月、第57巻第6号、に記載されている。
この論文に記載されているUNIXオペレーティングシ
ステムは、単一プロセッサの資源を制御するように設計
されている。新規プログラムの実行は、この論文の第1
933ページに記載されており、標準のfork(フォ
ーク)およびexec(エクゼク)システムコールにつ
いて説明してある。その手続きでは、forkシステム
コールを実行して、実行中のプロセスを子プロセスと親
プロセスへと複製する。これらのプロセスは同じプログ
ラムを共有するが、データの記憶領域は異なる。続いて
子プロセスがexecシステムコールを実行する。ex
ecシステムコールの実行によって、新たなプログラム
が実行される。UNIXオペレーティングシステムに関
する詳細は、エム.ジェイ.バック(M.J.Bach)著「UN
IXオペレーティングシステムの設計(The Design Of T
he UNIX Operating System)」、ニュージャージー、イ
ーグルウッド クリフス、プレンティス・ホール(19
86年)に説明されている。他の既知のオペレーティン
グシステムにも同様のシステムコールがある。
トンプソン論文に記載されているUNIXオペレーティ
ングシステムのexecシステムコールは、新規プログ
ラムの実行に特に効果的な機構ではあるが、execシ
ステムコールがあるプロセッサ上で実行され、第2の不
特定のプロセッサ上で新規プログラムを起動するような
マルチプロセッサ環境では実行できない。マルチプロセ
ッサ環境で、他のプロセッサ上の特殊なプロシジャまた
はサブルーチンを実行するようなオペレーティングシス
テムは既知である。しかし、こうしたシステムでは、他
のプロセッサ上に既にそのプロシジャまたはプログラム
が存在していることが要求される。このようなシステム
の1つが、米国特許第4,530,051号(発明者:
ジェー.ダブリュ.ジョンソン(J.W.Johnson)他)に記
載されている。この特許には、あるプロセッサが、他の
プロセッサ上でプロシジャ(サブルーチン)を実行する
ことができるようなマルチプロセッサシステムが記載さ
れている。問題なのは、このプロシジャが、実行前に他
のプロセッサ上に既に存在していなければならないこと
である。同様のシステムが、ピー.ジャクソン(P.Jacks
on))の論文「マリツプロセッサシステムの管理への道
を開くUNIXの変形(UNIX Variant Opens a Path to
Managing Multiprocessor Systems)」(Electronics、1
983年7月28日)に記載されている。この論文に
は、あるプロセッサ上で実行中のプログラムが、入出力
装置(例えばディスクドライブ)を制御する他のプロセ
ッサ上でプロシジャを起動することにより、そのディス
クドライブにアクセスすることが可能となるようなシス
テムが記載されている。当該他のプロセッサは、情報を
ディスクドライブから取得すると、この情報を要求した
プロセッサに転送する。この論文では、プログラムがリ
モートシステム上に存在するように事前に指定されず
に、自動的にディスクから取得され、リモートシステム
上で実行されるような一般的な機能は記載されていな
い。
第1のプロセッサから、第2のプロセッサ内のプログラ
ムを実行するもう1つの方法が、サン・マイクロシステ
ムズ社(アメリカ合衆国、94043 カリフォルニ
ア、マウンテン ヴュー、ガルシア アヴェニュー 2
250)の品番800−1177−01のマニュアル
「リモートプロシジャコールプロトコル仕様」に詳述さ
れている。このマニュアルは、サン・マイクロシステム
ズ社によって実施された、UNIXオペレーティングシ
ステムへの追加であるリモートプロシジャコールについ
て詳述している。リモートプロシジャコールによって、
第1のプロセッサから第2のプロセッサ上でプロシジャ
を実行することが可能となる。
従来技術の問題点は、マルチプロセッサシステムにおい
て新規プログラムを実行するシステムコールが、マルチ
プロセッサシステム内のさまざまなプロセッサの負荷、
プログラムがメモリ内にあるかファイルシステム内にあ
るかというプログラムの物理的位置、および、プログラ
ムの実行によってシステムコールがマルチプロセッサ内
の多くのプロセッサに拡がることが要求される場合に必
要なシグナリングパスの設定、を処理することを考慮せ
ずにすむような、マリチプロセッサシステムにおいて新
規プログラムを実行する一般的方法が存在しないことで
ある。
[解決策] 本発明は以上の問題点およびその他の問題点ならびに従
来技術の欠点を解決するものである。本発明によれば、
マルチプロセッサシステムは、新規プログラムの実行の
要求に自動的に応答して、新規プログラムの実行に必要
な資源を有する複数のプロセッサに拡がる拡張プロセス
を確立する。最初に、拡張プロセスは、新規プログラム
の実行を要求している主プロセスからなる。新規プログ
ラムのオブジェクトコードファイルへのアクセスを獲得
し、新規プログラムを実行するプロセッサを割り当て、
新規プログラムの実行に割り当てられたプロセッサを初
期化するために必要な場合、補助プロセスが、拡張プロ
セスの一部として生成される。
マルチプロセッサシステムにおいて新規プログラムの実
行を開始する方法は、新規プログラムのオブジェクトコ
ードファイルに関係するプロセッサ(ファイルプロセッ
サ)を決定するステップと、ファイルプロセッサが開始
プロセッサとは異なると決定された場合に、決定された
ファイルプロセッサ上に第1の補助プロセスを生成する
ステップと、新規プログラムのオブジェクトコードファ
イルを実行するために他のプロセッサ(実行プロセッ
サ)を割り当てるステップと、実行プロセッサが開始プ
ロセッサまたはファイルプロセッサとは異なると決定さ
れた場合に、割り当てられた実行プロセッサ上に第2の
補助プロセスを生成するステップと、開始プロセッサ上
の第1主プロセスから第2補助プロセスへプロセス情報
を転送するステップと、第2補助プロセスを主プロセス
に変換するステップと、第1補助プロセスとともにその
主プロセスによってオブジェクトコードファイルを実行
するステップとからなる。
また、割当ステップは、開始プロセッサからファイルプ
ロセッサへ、第1補助プロセスがオブジェクトコードフ
ァイルの一部を読み出すことを要求する第1のパケット
を送信するステップと、要求されたブオジェクトコード
ファイルの一部を第1補助プロセスによって読み出すス
テップと、読み出した部分を含む第2のパケットをファ
イルプロセッサから開始プロセッサへ送信するステップ
とからなる。
さらに、このシステムは、プロセス管理機能を実行する
指定されたホストプロセッサを有し、このプロセス管理
機能はプロセッサの割当を行う。割当ステップは、新規
プログラム作成に対するプロセッサ割当を要求する第3
のパケットをホストプロセスに通信するステップと、プ
ロセス管理機能を実行するホストプロセッサにより新規
プログラムを実行するために実行プロセッサを割り当て
るステップと、第4パケットによって開始プロセッサに
割当情報を通信するステップとをさらに有する。
またオブジェクトコードファイルの一部は、第1のプロ
セッサ割当パラメータのセットを含み、開始プロセッサ
は第2の補助プロセスの情報のサブセットに格納されて
いる第2のプロセッサ割当パラメータのセットを有し、
第3のパケットは第1および第2のプロセッサ割当パラ
メータのセットを含み、割当ステップは、第3のパケッ
トからこれらのプロセッサ割当パラメータのセットを読
み取るステップと、これらのプロセッサ割当パラメータ
のセットに応じてプロセッサ割当に対する実行プロセッ
サを指定するステップとをさらに有する。
さらに、第1の主プロセスに関連するプロセス情報は、
拡張プロセスの主プロセスとして第1の主プロセスが機
能することを可能にし、また転送ステップは、開始プロ
セッサによりプロセス情報を読み取るステップと、開始
プロセスによりプロセス情報から第5のパケットを形成
するステップと、開始プロセッサから実行プロセッサへ
第5のパケットを転送するステップとをさらに有する。
転送するステップは、第5のパケットからプロセス情報
を読み取るステップと、プロセス情報を第2の補助プロ
セスに格納するステップと、第2の補助プロセスを第1
の補助プロセスに変換するステップとからなる。また変
換するステップは、もとの第1の主プロセスを第3の補
助プロセスに変える。さらに、変換するステップは、第
2の補助プロセスが主プロセスになり、もとの第1の主
プロセスが第3の補助プロセスになったことを第1およ
び第3の補助プロセスにそれぞれ通知する第6および第
7のパケットをそれぞれ第1および第3の補助プロセス
に送るステップをさらに有する。
本発明の以上およびその他の利点および特徴は、図面と
あわせて以下の本発明の実施例の説明で明らかとなる。
(実施例の説明) 第1図にバス107により相互に連結されている複数の
コンピュータ101〜106を有するマルチプロセッサ
システムを示す。第1図に示すコンピュータのうちのい
くつかは特定の機能を有する。例えばコンピュータ10
1はホストコンピュータと見なされ、コンピュータ10
5〜106は計算サーバやファイルサーバとすることが
できる。各コンピュータはオペレーティングシステムの
カーネルによって制御されており、このオペレーティン
グシステムのカーネルは例えば、トンプソンの論文で説
明されているあるバージョンのUNIXオペレーティン
グシステムのものである。トンプソンによって説明され
ているオペレーティングシステムカーネルは単一コンピ
ュータのみに限定されるが、第1図のカーネルは複数の
コンピュータ上にプロセスを拡張することが可能であ
る。この拡張プロセスは別個のコンピュータ上で作動す
る個々の特別のプロセスの集合体である(詳細は後
述)。この特別のプロセスは、主プロセスすなわちユー
ザプロセス、および、補助プロセスすなわちスラブプロ
セスともいう。拡張プロセスに関係する各カーネルは、
その拡張プロセスがそのカーネルにより制御されている
コンピュータ上で機能することが可能であるために必要
な別個のプロセスを維持する。コンピュータはそれぞれ
対応するメモリと入出力装置を有するが、あるコンピュ
ータは、データ通信インタフェースまたは大容量記憶装
置といった特別の入出力装置に連結されうる。
第1図のシステムにおいて新規プログラムが開始される
と、そのプログラムは、余分の処理能力を有するかまた
はこのプログラムにより要求される特別の入出力資源を
有する不特定のコンピュータに自動的に割り当てられ
る。この不特定のコンピュータは、要求を実行している
のと同一のコンピュータであることもあれば、他の異な
るコンピュータであることもある。プログラムの実行
は、処理能力を有する1つのコンピュータを利用し、さ
らに必要なファイルや特殊な入出力能力を有するコンピ
ュータを使用して、いくつかのコンピュータに分散され
ることも可能である。プログラム実行が分散されると、
拡張プロセスが生成される。プログラムを複数のコンピ
ュータで実行すうことを可能にするようにプログラムの
実行を開始し、その動作をアプリケーションプログラマ
にとって分かりやすいものにすることに本発明の課題が
ある。
資源の割当および動的負荷バランスは、第1図のシステ
ムのホストコンピュータとして示されているコンピュー
タ101で実行されているプロセス管理(PM)機能1
08により行われる。新規プログラムの実行の開始はe
xecシステムコールにより実行される。このexec
システムコールは、マルチプロセッサシステム上で動作
するように本発明によって変更されている。このexe
cシステムコールの実行について説明するために、以下
の例を考察する。コンピュータ102上のオールドユー
ザ(olduser)プロセス109というプロセスは、exe
cシステムコールを実行する。最終結果は、新規プログ
ラムが、コンピュータ104上のニューユーザ(newuse
r)プロセス111というプロセスにより実行されること
である。最初に、新規プログラムを含んでいるファイル
は、コンピュータ103のファイルシステム内にあり、
a.out(エーアウト)プロセス110というプロセ
スによりアクセスされる。また、コンピュータ105お
よび106はニューユーザプロセス111により利用さ
れることになる資源を有する。
前述のトンプソンの論文によれば、プロセスは、メモリ
のテキスト領域、データ領域およびbss領域を要求
し、オペレーティングシステムにはプロセス制御ブロッ
クによって識別されるソフトウェアユニットである。ト
ンプソンにより説明されているオペレーティングシステ
ムでは、オペレーティングシステムが単一プロセッサシ
ステム上で実行されているため、プロセス制御ブロック
はメモリの1領域に含まれる。第1図に例示されている
システムでは、プロセス制御ブロックは拡張プロセスと
関連しているコンピュータ全部に分散されている。拡張
プロセスはプソセス112、110、111からなり、
execシステムコールが完了した後は、おそらくはコ
ンピュータ105および106内にあるプロセスも含ま
れる。拡張プロセスは、ユーザプロセスおよび複数のス
タブプロセスからなる。ユーザプロセスは、プロセス制
御ブロックのほかに、メモリのテキスト領域、データ領
域およびbss領域を有する。スタブプロセスは、プロ
セス制御ブロックのうち、拡張プロセスに関わる特定の
コンピュータの動作に関係した、任意の時点で要求され
るオペレーティングシステム機能に関連する部分のみを
含む。
オールドユーザプロセス109がexecシステムコー
ルを実行すると、コンピュータ102のカーネルはコン
ピュータ103にパケットを転送してa.outプロセ
ス110により、a.outファイルのヘッダ部分を取
得し、このプログラムを実行するのに要求される資源の
タイプを決定する。次に、コンピュータ102のカーネ
ルは、コンピュータ101のカーネルへ、ニューユーザ
プロセス111の実行に対する資源の割当を要求するパ
ケットを転送する。この要求に答えてコンピュータ10
1のカーネルは、プロセス管理機能108を実行する。
本実施例では、コンピュータ101のカーネルは、プロ
セス管理機能108を実行後、コンピュータ104がニ
ューユーザプロセス111を実行するように指示するメ
ッセージを返す。プロセス管理機能108の動作に関す
る詳しい情報は、本願と同日に出願した特許願(2)
(特願昭62−323013号)に添付した明細書およ
び図面に詳細に説明されている。続いてコンピュータ1
01のカーネルは、コンピュータ104のカーネルが拡
張プロセスの将来の実行のためにニューユーザプロセス
111ならびにコンピュータ102、105、および1
06内のスタブプロセスをセットアップすることができ
るように、プロセス管理情報をコンピュータ104のカ
ーネルに転送する。
この初期化が行われると、コンピュータ102のカーネ
ルはexecシステムコールの実行をコンピュータ10
4のカーネルに渡す。コンピュータ104のカーネルは
コンピュータ103からa.outファイルを得る。ま
た、コンピュータ104のカーネルは、初めはオールド
ユーザプロセス109であったユーザプロセスがコンピ
ュータ104に移動してニューユーザプロセス111に
なることを伝えるメッセージを他のコンピュータのカー
ネルに送る。ここで、オールドユーザプロセス109は
スタブプロセスになる。他のコンピュータのカーネル
は、オールドユーザプロセス109に対するシグナルを
ニューユーザプロセス111に転送する。さらに、コン
ピュータ104のカーネルは拡張プロセスがコンピュー
タ104に移動したことを他のコンピュータが知らされ
る前にコンピュータ102に到着したオールドユーザプ
ロセス109宛のすべてのシグナルを回復するメッセー
ジを、コンピュータ102のカーネルに送る。ニューユ
ーザプロセス111がセットアップされ実行を開始する
と、ニューユーザプロセス111は、必要に応じて、他
のコンピュータにおいて生成されたスタブプロセスによ
ってそのコンピュータの資源を利用できる。プログラム
の実行中、拡張プロセスの一部として最初に指定されて
いなかったコンピュータにアクセスする必要がある場
合、その時コンピュータ104のオペレーティングシス
テムは、プログラムの実行の継続に必要なこのコンピュ
ータ上にスタブプロセスを生成することをを要求する。
第2図は、本実施例のexecシステムコールの実行お
よび拡張プロセスの生成をさらに詳しく示す。オールド
ユーザプロセス109によるexecシステムコールの
実行後、判断ブロック202が実行される。execシ
ステムコールは、プロセッサ割当に影響するパラメータ
を指定することがある。判断ブロック202は、a.o
utファイルを含むファイルがコンピュータ102にと
ってローカルであるか、それともリモートコンピュータ
上にあるかを決定する。本実施例では、ファイルはコン
ピュータ103上にあることからリモートである。本拡
張プロセスに対して、スタブプロセスがコンピュータ1
03上にまだ存在しない場合(203)、コンピュータ
103上にスタブプロセスを生成するパケットが送られ
る。このパケットに応じて、コンピュータ103のカー
ネルは、a.outファイルへのアクセスを可能にする
a.outプロセス110を生成する。続いてa.ou
tプロセス110は拡張プロセスの一部になる。ブロッ
ク206で、a.outプロセス110によりコンピュ
ータ103上にあるa.outファイルにアクセスす
る。ヘッダ情報をa.outファイルから読み出し、
a.outプロセス110のプロセス制御ブロックに格
納する。続いてコンピュータ103のカーネルは、ヘッ
ダのサブセットをコンピュータ102のカーネルに送
る。コンピュータ102のカーネルは、コンピュータ1
02内のオールドユーザプロセス109のプロセス制御
ブロックにそのサブセットを格納する。この時点で、
a.outファイルから得られる情報はa.outファ
イルのサイズを指定するものであり、また、プロセッサ
割当決定に影響するパラメータも指定しうる。a.ou
tファイルからこの情報を得た後、ブロック208で、
コンピュータ102のカーネルは、コンピュータ101
のカーネルがプロセス管理機能108を実行してニュー
ユーザプロセス111を割り当てるコンピュータを選択
することを要求するパケットを、コンピュータ101の
カーネルに送る。このパケットは、ブロック206で
a.outファイルから得た情報、および、execシ
ステムコールにおけるプロセッサ割当に関するパラメー
タを含む。ニューユーザプロセス111のプロセッサ割
当をするために、プロセス管理機能108は、このパケ
ットに応じて、a.outまたはexecシステムコー
ルの情報に明示的な割当が含まれていればその割当を検
査し、または、第1図に示したマルチプロセッサシステ
ムに対し動的負荷バランスをとる。本実施例では、ユー
ザプロセス111はコンピュータ104に割り当てられ
る。
次に、コンピュータ102のカーネルは、ブロック21
0を実行する。ブロック210の実行によって、exe
cシステムコールの引数が読み出される。コンピュータ
102のカーネルは、この引数およびオールドユーザプ
ロセス109のアドレス空間からの環境変数に応じて、
ニューユーザプロセス111に対する初期スタックにこ
の情報のフォーマットを合わせて、システム作業領域に
この情報を転送する。次にブロック212が実行され、
オールドユーザプロセス109の資源をコンピュータ1
02のオペレーティングシステムに返して解放する。特
にオールドユーザプロセス109のアドレス空間が解放
される。
ここまでの実行は、execシステムコールの実行前段
階を表す。ニューユーザプロセスがオールドユーザプロ
セスとは異なるコンピュータ上にある場合、ブロック2
20〜238を実行後、ブロック240〜250を実行
する。本実施例では、コンピュータ102のカーネルは
ブロック220〜228を実行し、コンピュータ104
のカーネルはブロック230〜238を実行する。しか
しオールドユーザプロセスおよびニューユーザプロセス
が同一コンピュータ上にある場合は、第2図に示される
ブロック240〜250はこの時点で実行される。判断
ブロック214はニューユーザプロセスおよびオールド
ユーザプロセスが異なるコンピュータ上にあるかどうか
決定する。本実施例では、オールドユーザプロセス10
9はコンピュータ102上にあり、ニューユーザプロセ
ス111はコンピュータ104上にある。スタブプロセ
スがコンピュータ104上にまだ存在していない場合、
コンピュータ102のカーネルはブロック220を実行
し、パケットがコンピュータ104のカーネルに転送さ
れる。このパケットは、コンピュータ104上でニュー
ユーザプロセス111になることになるスタブプロセス
を生成することを要求する。カーネルはこの要求に応じ
て、プロトタイプスタブプロセスに対してカーネルfo
rk機能を実行することによりスケルトンスタブプロセ
スを生成する。第1図の各カーネルは、スタブプロセス
を生成する目的で、このプロトタイプスタブプロセスの
コピーを保有している。次に、コンピュータ102のカ
ーネルはブロック222を実行する。このブロックで、
コンピュータ102からコンピュータ104への移動パ
ケットが転送される。このパケットはニューユーザプロ
セス111に対する初期プロセス制御情報を含む。この
情報はブロック210でフォーマットされたものであ
る。移動パケットは、コンピュータ104上のニューユ
ーザプロセス111に対するスタブプロセスを、拡張プ
ロセスの実行可能なユーザプロセスに変換するために必
要な情報を含む。ここで実行可能とは、ニューユーザプ
ロセスが、必要なときに正常に終了するために必要な情
報をすべて有することを意味する。正常終了とは、拡張
プロセスを終了させることが必要な場合、拡張プロセス
のすべての部分を第1図のすべてのコンピュータから削
除することができるような終了のことである。
移動パケットに含まれる主要な情報は、スタブプロセス
の再接続データおよび拡張プロセスのオープンファイル
を定義する情報である。このデータはスタブプロセスお
よびオールドユーザプロセス109に結合(attach)して
いたファイルをニューユーザプロセス111に再結合さ
せるために使用される。この再結合は、仮想チャネルを
再配置することにより実行される(第3図に関して後
述)。プロセスグループID、親プロセスID、フラグ
ワード、ユーザID、グループID、カレントディレク
トリ、プライベートルートディレクトリ、新しい引数の
ポインタ、および種々の時計フィールドを定義するプロ
セス制御ブロックからのいくつかの重要なデータも移動
パケットにより伝達される。コンピュータ104のカー
ネルは、オールドユーザプロセス109からの移動パケ
ットに応じて、このパケットに含まれるデータをニュー
ユーザプロセス111の制御ブロックに設定し、他のコ
ンピュータ内のすべてのスタブプロセスに再接続メッセ
ージを出す。ブロック232および234の実行後、ニ
ューユーザプロセス111は実行可能と見なされる。
ブロック234によって他のコンピュータに送られた再
接続メッセージによって、当該他のコンピュータのカー
ネルは、拡張プロセスのプロセス制御ブロックの当該他
のコンピュータの部分を変換して、コンピュータ102
内のオールドユーザプロセス109ではなくコンンピュ
ータ104内のニューユーザプロセス111を指すよう
にする。この再接続は、他のコンピュータのスタブプロ
セスによって拡張プロセスに対し発生されるシグナルが
オールドユーザプロセス109ではなくニューユーザプ
ロセス111に送られるようにすることを意味する。
次に、コンピュータ102のオペレーティングシステム
はブロック224を実行し、コンピュータ104のカー
ネルにより、コンピュータ102のカーネルからの一連
のパケットにより、ニューユーザプロセス111へex
ec引数およびその他の情報を転送する。続いて、ニュ
ーユーザプロセス111は、コンピュータ104のカー
ネルによりコンピュータ104上のニューユーザプロセ
ス111アドレス空間に、これらのパケットを設定する
ことによって構築される。これは、ニューユーザプロセ
ス111を、拡張プロセスのさらに完全なユーザプロセ
スに変換する。
続いてコンピュータ104のカーネルはブロック236
を実行し、ブロック226を実行させるメッセージをコ
ンピュータ102へ送り、このブロック226によっ
て、オールドユーザプロセス109はスラブプロセスに
変えられる。次に、ブロック238で、コンピュータ1
04のカーネルは、コンピュータ102内のオールドユ
ーザスタブプロセス109に対して格納されている可能
性のある拡張プロセスのユーザプロセス宛のすべてのシ
グナルに対する要求をコンピュータ102のカーネルへ
送る。コンピュータ102のカーネルは、このメッセー
ジに応じて、ブロック228を実行し、これらのシグナ
ルをブロック238に送る。
次に、コンピュータ104のカーネルは、第2図のブロ
ック240〜250を実行する。これらブロックは、オ
ールドユーザプロセスおよびニューユーザプロセスの同
一のコンピュータ上にあるかどうかに関係なく同じよう
に実行される。最初にカーネルは、ブロック240を実
行して、a.outプロセス110により、コンピュー
タ103上あるa.outファイルにアクセスし、a.
outヘッダを取得する。このヘッダ情報を利用して、
コンピュータ104のカーネルは、ブロック242を実
行して、a.outファイルからの種々のセクションを
コンピュータ103からコンピュータ104にロードす
ることにより、テキスト、データ、およびbssの空間
を含むニューユーザプロセス111のアドレス空間を作
成する。
この機能の実行後、カーネルは、ブロック244を実行
して、オールドユーザプロセス109に関係づけられて
いたがニューユーザプロセス111に関係づけられるこ
とのないファイルをすべて閉じる。
閉じるべきファイルは、アプリケーショーンプログラマ
によって決定される。プログラマは、execシステム
コールの実行前に、fcntlシステムコールを使用し
て標準的なUNIXの方法で、閉じるべきファイルをマ
ークする。この情報はオールドユーザプロセス109の
プロセス制御ブロックに格納され、後でニューユーザプ
ロセス111に転送される。マークしたファイルを全部
閉じた後、コンピュータ104のカーネルは、ブロック
246を実行して、シグナル受信後にとるべき動作を定
義するエントリを含むシグナルハンドラの配列を再初期
化する。各エントリは、デフォルト値、ノグノア値、お
よび、そのシグナルのファンクションを識別するポイン
タのうちの1つを指定できる。シグナルはブロック22
8で、コンピュータ102からコンピュータ104へ送
られ、ブロック238でシグナルエントリ423と結合
される。ブロック246で、シグナル配列においてファ
ンクションを指定するすべてのエントリはデフォルト値
にセットされるが、イグノア値のエントリは変更されな
い。プロセスからシグナルを受け取ると、カーネルはそ
のプロセスのプロセス制御ブロックにアクセスして、第
4図のエントリ423のようなsigエントリにそのシ
グナルを格納する。シグナルがカーネルによって処理さ
れる場合、シグナル番号はシグナル配列にアクセスする
ための添字として使用される。デフォルト値がアクセス
された場合、プロセスは正常終了する。アクセスされた
エントリがイグノア値である場合、処理は行われない。
アクセスされたエントリがポインタである場合、ポイン
タにより識別される機能が実行される。アプリケーショ
ンが実行されると、配列をそのプログラムの条件に合わ
せるためにsignalシステムコールが使用される。
シグナルの処理に関するさらに詳しい情報は、バックの
前掲書に記載されている。次に、コンピュータ104の
カーネルはブロック248を実行して、ニューユーザプ
ロセス111の新しいアドレス空間に必要なメモリ管理
情報を再初期化し、その他のこまごました処理を完了す
る。最後に、制御がニューユーザプロセス111に渡さ
れ、プログラムがブロック250を実行できるようにな
る。
第3図は、execシステムコールを実行した結果の拡
張プロセスの一部をさらに詳細に示す。ニューユーザプ
ロセス111は拡張プロセスのユーザプロセスであり、
プロセス112および110は拡張プロセスのスタブプ
ロセスである。拡張プロセスのプロセスはすべて共通の
pid番号を共有する。仮想チャネルは、スタブプロセ
スが確立されたとき、拡張プロセスのユーザプロセスと
スタブプロセスの間に設定される。このチャネルはユー
ザプロセスとスタブプロセスの間のパケットの通信に利
用される。拡張プロセスのスタブプロセスは、直接相互
に通信はしない。さらに、第1図に示したシステム内の
他のプロセスからの通信は、すべて拡張プロセスのユー
ザプロセスへと通じている。第1図に示す各コンピュー
タは、第3図の301〜303のようなprocポイン
タテーブルを保有する。pid番号は、301〜303
のようなprocポインタテーブル内を指し、304〜
306のようなポインタを取得して指定されたプロセス
を見つけるために、カーネルによって利用される。例え
ば、コンピュータ104のpid番号は、パス312を
経由してprocテーブル309に通じるprocポイ
ンタテーブル303のエントリ306にアクセスするた
めに使用される。同様に、pid番号はprocポイン
タテーブル301のエントリ304にアクセスするため
に利用され、procテーブル307に通じるパス31
0が得られる。
仮想チャネル313および314はプロセスに直接関係
づけられる。このチャネルの識別情報は個々のプロセス
のprocテーブル内に設定される。拡張プロセスのユ
ーザプロセスは、スタブプロセスのそれぞれに通じる仮
想チャネルを有する。しかし、ホストプロセス112の
ような、拡張プロセスの各スタブプロセスは、だた1つ
の仮想チャネルを有するのみである。このチャネルは、
ニューユーザプロセス111のような、拡張プロセスの
ユーザプロセスに通じる。
第4図は、ホストプロセス112およびニューユーザプ
ロセス111により利用されるメモリを詳しく説明して
おり、拡張プロセスのユーザプロセスとスタブプロセス
の間の差異を示している。各スタブプロセスのそれぞれ
に対し、procテーブルおよびuブロックの一部が示
されている。さらにポートテーブルにおよびachan
リストが示されている。ポートテーブルはプロセス間に
仮想チャネルを識別するものである。ニューユーザプロ
セス111に対し、実行中にこのプロセスにより利用さ
れるテキスト領域、データ領域およびスタック領域は図
示していない。同様に、拡張プロセスのスタブプロセス
であるホストプロセス112に対し、メモリのスタック
領域は図示していない。ニューユーザプロセス111は
拡張プロセスのユーザプロセスである。
次に、procテーブル307および309のエントリ
を詳しく考察する。テーブル307および309に対し
て示したエントリは、これらのテーブルに存在するエン
トリの一部のみである。niceエントリ401、40
2はプロセスのスケジューリング優先順位を定義する。
niceエントリ401は、すべてのスタブプロセスに
対して、システム管理者により、システム全体で固定さ
れる。niceエントリ421はユーザプロセスに対す
るものであるため、優先度のレベルを下げることができ
るような特定のシステムコールを実行するユーザによっ
て、または、優先度のレベルを上下させることができる
システム管理者すなわちスーパーユーザによりなされる
作用によって、調節可能である。pidのエントリ40
2および422はこの2つのエントリに対して同じプロ
セス識別番号を定義する。このpid番号は拡張プロセ
スごとに付与されるため、拡張プロセスのユーザプロセ
スおよびすべてのスタブプロセスは同じpid番号を有
する。
sigエントリ403および423は、statusエ
ントリ406および426とともに、プロセス間のシグ
ナルを処理するために使用される。さらに、procテ
ーブルのstatusワードは、従来のUNIXシステ
ムタイプの情報を含む。スタブプロセス上では、sta
tusワード内に含まれるシグナルフラグは、シグナル
をユーザプロセスから受け取ったかどうかを示す。この
ユーザプロセスは本実施例ではニューユーザプロセス1
11である。ホストプロセス112はエントリ403に
格納されたシグナルの受信に応じて、現在の動作を中断
できるかどうかによって異なる動作を実行する。ニュー
ユーザプロセス111では、statusエントリ42
6内のシグナルフラグは、シグナルがホストプロセス1
12に転送されたかどうかを示すために使用される。さ
らに、エントリ426内のシグナルフラグはメッセージ
がホストプロセス112のようなスタブプロセスに送ら
れたかどうかを記憶している。このシグナルフラグの表
示は、後の時点での異なるタイプの動作に整理を容易に
するために使用される。受け取られるシグナルのタイプ
は、ニューユーザプロセッサ111によりsigエント
リ423に格納される。
親pid(ppid)エントリ404および424につ
いては、これらのエントリは拡張プロセスの親プロセス
の識別情報を記憶するために使用される。これは従来の
UNIXシステムのタイプの分野である。しかし、拡張
プロセスでは、ppidエントリはホストコンピュータ
101によって実行中の拡張プロセスのプロセス上での
み有効である。この拡張プロセスのプロセスは、本実施
例ではホストプロセス112である。このことにより、
拡張プロセスの種々のスタブプロセスとユーザプロセス
の間のパケット通信量が削減される。拡張プロセスのユ
ーザプロセスがホストコンピュータ上に存在していない
場合、この拡張プロセスのユーザプロセスは、有効なp
pidエントリを有しない。
bicid変数は以下のようにして、特定のプロセスが
拡張プロセスのスタブプロセスまたユーザプロセスのい
ずれであるかを決定する。第1図に示したマルチプロセ
ッサシステムの各プロセッサは、プロセッサの識別番号
をその内容とする変数MYLOCにプロセッサの識別番
号を格納している。プロセッサがスタブプロセスである
かユーザプロセスであるかに関係なく、bicid変数
は常に拡張プロセスのユーザプロセスを実行しているプ
ロセッサの識別番号である。本実施例では、このプロセ
ッサはコンピュータ104である。エントリ425は、
コンピュータ104のカーネルにより保持されているM
YLOC変数の内容と同じである。エントリ405もま
たコンピュータ104のMYLOC変数の内容を有し、
そのためコンピュータ101のMYLOC変数とは一致
しない。特定のコンピュータのカーネルは、そのbic
id変数をMYLOC変数と比較することにより、ユー
ザプロセスを実行中であるか、それともスタブプロセス
を実行中であるかを決定する。比較した結果、一致して
いる場合、カーネルは拡張プロセスのユーザプロセスを
実行している。
uブロックページエントリ407および427は、第4
図のuブロック418および438に図示されているよ
うなuブロックへのアクセスを可能にするために仮想ア
ドレスを設定するためのアドレス情報を含む。これらの
uブロックは、uブロックがホストプロセス112のよ
うな拡張プロセスのスタブプロセスであるか、ニューユ
ーザプロセス111のような拡張プロセスのユーザプロ
セスであるかによって異なる情報を含む。これらのuブ
ロックのエントリの多くは、トンプソンの前掲論文に記
載されているUNIXシステムのuブロックのエントリ
と同様である。拡張プロセスのスタブプロセスはテキス
ト、スタック、およびデータのメモリ領域を有しないた
め、ホストプロセス112に対してはエントリ408、
409および410は0(ゼロ)である。カーネルは、
スタブプロセスに関連する機能を実行しているとき、ス
ラブプロセスのuブロック内に、そのスタブプロセスに
固有のカーネルスタックを保有する。これは、単一プロ
セッサUNIXシステムにおいてプロセスがカーネルモ
ードで実行中に、カーネルスタックが使用される方法と
同様である。エントリ428、429および430は、
必要な情報を含んでいるため、拡張プロセスのユーザプ
ロセスすなわちニューユーザプロセス111は、前述の
ようにa.outファイルから取得したプログラムの実
行に対するテキスト領域、データ領域およびスタックを
有する。
拡張プロセスのユーザプロセスでは、変数lockip
(エントリ431)およびexecip(エントリ43
2)がそれぞれ旧a.outファイルおよび新a.ou
tファイルを識別するために使用される。本実施例で
は、コンピュータ103は新a.outファイルを格納
し、コンピュータ102は旧a.outファイルを格納
している。エントリ431は旧a.outファイルを指
し示しており、エントリ432はexecシステムコー
ルの結果として実行される新a.outファイルを指し
示している。このファイルが両方とも拡張プロセスのユ
ーザプロセスを実行するプロセッサにとってローカルで
ある場合、これらのエントリは、ローカルファイルを識
別するために、標準的なUNIXシステムの方法でロー
カルプロセッサのカーネルにより保有されるiノードテ
ーブルを指し示すポインタである。a.outファイル
がプロセスにより直接使用されるのではなくカーネルに
より使用されるため、システムファイルのテーブルは使
用されない。しかし、このファイルがリモートである場
合、例えば他のプロセッサに関係づけられている場合、
エントリはポートテーブル440のようなユーザプロセ
スポートテーブル内のエントリの識別情報を含む。次
に、例えば、ポートテーブル440内のこのエントリは
仮想チャネルを識別し、411または412のようなリ
モートエントリは拡張プロセスのスタブプロセスにおい
て識別される。例えばエントリ431がリモートファイ
ルを示している場合、このエントリは、そのリモートフ
ァイルにとってローカルであるプロセッサに関係づけら
れたスタブプロセス内の対応するエントリ411を指示
する。これらのエントリについてさらに詳しい事報は、
第6図に関して後述する。
概して拡張プロセスのスタブプロセスのuブロックは、
ユーザプロセスのuブロックに関する3つのタイプのエ
ントリを含む。第1のタイプのエントリ408は、スタ
ブプロセスでは使用されないが、ユーザプロセスで通常
の方法で使用される。スタブプロセスのuブロック内の
第2のタイプのエントリは常に用いられるものであり、
このタイプのエントリの例はacptrエントリ414
であり、後述する。スタブプロセスのuブロック内の第
3のタイプは、特定の機能を実行する要求パケットがユ
ーザプロセスからスタブプロセスへ転送されるときに、
拡張プロセスのユーザプロセスから転送されてくる必要
な情報のみが必要に応じて入るエントリである。この一
例としてdirpエントリ413があり、他の例として
エントリ411および412がある。エントリ413は
パス名を指し示すポインタである。拡張プロセスのユー
ザプロセスでは、このエントリは常に、パス名を指定す
るユーザアドレス空間を指し示す。しかしスタブプロセ
スでは、パス名に関する情報はユーザプロセスから受け
取られ、カーネルによって適切な位置に格納される。こ
の時点でカーネルは、パス名を指し示すようにdirp
エントリをセットする。パス名が送られる場合の例は、
openシステムコールの最中である。openシステ
ムコールは拡張プロセスのユーザプロセスを実行するプ
ロセッサ上で実行されるため、パス名の情報はスタブプ
ロセス上で得ることは不可能である。
acptrエントリ414および434はachanリ
スト419および439をそれぞれ指し示す。ユーザプ
ロセスのachanリストは、スタブプロセスへの仮想
チャネルをそれぞれ定義する多くの構造体を有しうる。
本実施例では、ニューユーザプロセス111のacha
nリスト439は、拡張プロセスのスタブプロセスへの
仮想チャネルをそれぞれ定義するいくつかの構造体を有
する。各構造体は仮想チャネル用に、リンクポインタお
よびポートポインタならびにその他の情報を含む。これ
らの構造体はリンクポインタ442および435によっ
てリンクされてリンクリストをなす。このリストは最後
のリンクポインタの内容がヌル(0)となるところで終
了する。仮想チャネルはポートポインタにより識別され
る。ポートポインタ431および436はポートテーブ
ル440を指し示す。ニューユーザプロセス111は、
achanリスト439内でニューユーザプロセス11
1に対応するリンクリストを指し示すacptrエント
リ434を利用することによって、対応する仮想チャネ
ルを識別する。次にポートポインタを利用してポートテ
ーブル440にアクセスする。同様にホストプロセス1
12は、achanリスト419のポインタ415およ
び416を含む構造体を指し示すacptrエントリ4
14を有する。拡張プロセスのスタブプロセスは複数の
仮想チャネルを有し得ないため、リンクポインタ415
は、ポインタ415の内容がヌル(0)であることによ
りリンクリストを終了させる。ポート番号417はニュ
ーユーザプロセス111への仮想チャネル314を定義
する。仮想チャネルに関するさらに詳しい情報は、本願
と同日に出願した特許願(3)(特願昭62−3230
14号)に添付した明細書および図面を参照されたい。
第2図のブロック234および236の観点から、仮想
チャネルを考察する。再接続情報が最初にブロック23
4により送られると、拡張プロセスのスタブプロセス
は、第4図に図示したのと同様にして、その時点でのユ
ーザプロセスであるオールドユーザプロセス109との
仮想チャネルを設定する。再接続情報を受信後、受信側
の各カーネルは、ポートテーブルおよびその他のチャネ
ル情報を更新し、その結果、スタブプロセスの仮想チャ
ネルはオールドユーザプロセス109ではなくニューユ
ーザプロセス111と接続される。ブロック236によ
り実行される動作の一部として、achanリスト43
9およびポートを第4図に示したテーブルに変換するこ
とがある。ブロック226は、オールドユーザプロセス
109のテーブルを第4図のホストプロセス112に対
して示したテーブルと同様のテーブルに変える。第5図
は、拡張プロセスのファイルが拡張プロセスのユーザプ
ロセスにより識別される方法を示している。ファイル
が、コンピュータ104およびニューユーザプロセス1
11のように拡張プロセスのユーザプロセスを実行中の
プロセッサにとってローカルである場合、標準的なUN
IXシステムのファイル制御構造体が利用される。例え
ば、ローカルファイル507はファィルテーブル501
のエントリ504によって識別される。このファイルテ
ーブルはニューユーザプロセス111のuブロックの一
部であり、u−ofile構造体と呼ばれるものであ
る。さらに、エントリ504の内容はシステムファイル
テーブル502のエントリ505を識別する。システム
ファイルテーブル502は、iノードテーブル503お
よびエントリ506を指し示すために利用される。エン
トリ504は、通常のUNIXシステムのように、ファ
イル507に関係づけられたファイルデイスクリプタ番
号を使用することによりテーブル501内で識別され
る。続いてエントリ506が通常のUNIXシステムの
ようにして、ローカルファイル507を識別する。ファ
イルが、リモートファイル517のようにリモートであ
る場合、エントリ520は、このファイルがリモートで
あり、システムファイルテーブル502を指し示すので
はなくポートテーブル440を指し示すことを識別す
る。リモートファイル517はコンピュータ105にと
ってローカルであると仮定する。ファイル517に対す
るファイルディスクリプタ番号はエントリ520にアク
セスするために使用される。エントリ508は、仮想チ
ャネル509を識別するポートテーブル440のエント
リ520によりテーブル440において識別される。仮
想チャネル509は、前述のように、拡張プロセスのス
タブプロセスであるファイルプロセス510と相互接続
される。ファイル517に対するファイルディスクリプ
タ番号を含むパケットは、コンピュータ105のカーネ
ルに送られる。このカーネルは、ファイルディスクリプ
タ番号を使用して、ファイルプロセス510のuブロッ
ク内にあるファイルテーブル511のエントリ514を
識別する。するとファイル制御構造体がテーブル512
および513のそれぞれのエントリ515および516
によって通常のUNIXの方法でリモートファイル51
7を識別する。
第6図は、拡張プロセスのユーザプロセス内のlock
ip変数およびexecip変数ならびに拡張プロセス
のスタッブプロセス内のremlockip変数および
remexecip変数の利用法を詳細に示す。第6図
は、第2図のブロック224の実行前の、第1図に示し
たマルチプロセッサシステムの状態を示す。このとき拡
張プロセスのユーザプロセスは、コンピュータ102に
より実行されているオールドユーザプロセス109であ
る。第6図は、execシステムコールを実行するため
に使用されたもとのa.outファイルが、コンピュー
タ102にとってローカルであると仮定している。本実
施例では、もとのa.outファイルは旧a.outフ
ァイル607である。新しいプログラムは新a.out
ファイルから得られるが、この新a.outファイルは
リモートファイルであり、コンピュータ103に関係づ
けられる。このファイルはa.outファイル617と
図示してある。コンピュータ103上で実行されている
拡張プロセスのスタブプロセスは、a.outプロセス
110である。オールドユーザプロセス109に対し
て、そのuブロック601およびポートテーブル622
を図示してある。a.outプロセス110に対して
は、そのuブロック611を図示してある。オールドユ
ーザプロセス109のuブロック601のエントリ60
4は、iノードテーブル603のエントリ606を利用
して、標準的なUNIXシステムの方法で、旧a.ou
tファイル607を識別する。lockip変数がロー
カルファイルを識別するため、拡張プロセスに関係する
スタブプロセスで使用される対応するremlocki
p変数はない。
しかし新a.outファイルは、コンピュータ102か
らリモートである。uブロック601のエントリ620
は、iノードテーブル603を指し示すのではなく、ポ
ートテーブル622内のエントリ621を指し示す。エ
ントリ621は、a.outプロセス110のuブロッ
ク610に接続されている仮想チャネル509を識別す
る。uブロック610のエントリ614は、iノードテ
ーブル613のa.outファイル617へのエントリ
616を指し示す。旧a.outファイルはコンピュー
タ102にとってローカルであるため、remlock
ip変数のエントリ623は、uブロック611内では
使用されない。
前述の例は本発明の原理を単に示したものであり、他の
組み合わせは本発明の精神および特許請求の範囲内に含
まれる。
【図面の簡単な説明】
第1図は本発明の一実施例のマルチプロセッサシステム
のブロック図、 第2図は第1図のマルチプロセッサにより、execシ
ステムコールの実行中に動作する機能の流れ図、 第3図は第1図のプロセッサのサブセットに対する拡張
プロセスの相互接続のブロック図、 第4図は第3図のソフトウェア相互接続の詳細図、 第5図は第1図のプロセッサ上で実行中の拡張プロセス
に対するファイル制御のブロック図、 第6図は第1図のプロサッサ上で実行中の拡張プロセス
に対するa.outファイルにアクセスするファイル制
御構造のブロック図である。
フロントページの続き (72)発明者 ジェイムズ ステュアート ピターソン アメリカ合衆国,60505 イリノイ,オー ロラ,ペパートゥリィ レイン 255 (72)発明者 ウォルター ユージン トゥヴェル ジュ ニア アメリカ合衆国,07060 ニュージャージ ィ,ノース プレインフィールド,ノーウ ッド アヴェニュ 196 (56)参考文献 特開 昭60−79461(JP,A)

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサを有するマルチプロセッ
    サシステムで、オブジェクトコードのファイルとして表
    現された新規プログラムの実行を開始する方法におい
    て、 開始プロセッサ(102)によって実行される第1の主
    プロセス(109)によって、前記新規プログラムのオ
    ブジェクトコードに関係するファイルプロセッサ(10
    3)を決定するステップと、 前記ファイルプロセッサが前記開始プロセッサとは異な
    ると決定された場合に、前記ファイルプロセッサによっ
    て第1の補助プロセス(110)を生成するステップ
    と、 ホストプロセッサ(101)とともに、前記開始プロセ
    ッサによって、前記新規プログラムのオブジェクトコー
    ドを実行する実行プロセッサ(104)を割り当てる割
    当ステップと、 前記実行プロセッサが前記開始プロセッサと異なると決
    定された場合に、前記実行プロセッサによって第2の補
    助プロセス(111)を生成するステップと、 前記開始プロセッサによって、前記第1主プロセスから
    前記第2補助プロセスへプロセス情報を転送する転送ス
    テップと、 前記実行プロセッサによって、前記第2補助プロセスを
    第2の主プロセスに変換する変換ステップと、 前記ファイルプロセッサ上の前記第1補助プロセスとと
    もに、前記実行プロセッサ上で前記第2主プロセスによ
    って前記オブジェクトコードを実行するステップとから
    なることを特徴とする、新規プログラムの実行を開始す
    る方法。
  2. 【請求項2】前記割当ステップが、 前記開始プロセッサから前記ファイルプロセッサに、前
    記第1補助プロセスが前記オブジェクトコードのファイ
    ルの一部を読み込むことを要求する第1のパケットを送
    信するステップと、 前記第1補助プロセスによって前記オブジェクトコード
    のファイルの一部を読み込むステップと、 前記ファイルプロセッサから前記開始プロセッサに、読
    み込んだ部分を含む第2のパケットを送信するステップ
    とからなることを特徴とする請求項1の方法。
  3. 【請求項3】前記ホストプロセッサがプロセッサ割当を
    管理する機能を実行し、前記割当ステップが、 前記新規プログラムの実行中の前記プロセッサの割当を
    要求する第3のパケットを前記ホストプロセッサに送信
    するステップと、 前記管理機能によって、前記新規プログラムを実行する
    プロセッサを割り当てるステップと、 前記ホストプロセッサから前記開始プロセッサへ、第4
    のパケットによって、前記割当を通信するステップとを
    さらに有することを特徴とする請求項2の方法。
  4. 【請求項4】前記オブジェクトコードのファイルの一部
    は第1のプロセッサ割当パラメータのセットを含み、前
    記開始プロセッサは前記第1主プロセスのプロセス情報
    のサブセットに格納されている第2のプロセッサ割当パ
    ラメータのセットを有し、前記第3パケットは前記第1
    セットおよび第2セットのプロセッサ割当パラメータを
    含み、 前記割当ステップが、 前記プロセッサ割当パラメータを前記第3パケットから
    読み出すステップと、 前記ホストプロセッサによって、前記プロセッサ割当パ
    ラメータのセットに応じて、プロセッサの割当のために
    前記実行プロセッサを指定するステップとからなること
    を特徴とする請求項3の方法。
  5. 【請求項5】前記プロセス情報は、主プロセスとして機
    能するように前記第1主プロセスを変換し、 前記転送ステップが、 前記開始プロセッサによって前記プロセス情報を読み出
    すステップと、 前記開始プロセッサによって前記プロセス情報から第5
    のパケットを形成するステップと、 前記開始プロセッサから前記実行プロセッサへ前記第5
    パケットを送信するステップとからなることを特徴とす
    る請求項3の方法。
  6. 【請求項6】前記変換ステップが、 前記プロセス情報を前記第5パケットから読み出すステ
    ップと、 前記プロセス情報を前記第2補助プロセスに格納するス
    テップと、 前記第2補助プロセスを第2の主プロセスに変換するス
    テップとからなることを特徴とする請求項5の方法。
JP62325166A 1986-12-22 1987-12-22 マルチプロセッサシステムの新規プログラムの実行を開始する方法 Expired - Fee Related JPH0668729B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/941,700 US4849877A (en) 1986-12-22 1986-12-22 Virtual execution of programs on a multiprocessor system
US941700 1986-12-22

Publications (2)

Publication Number Publication Date
JPS63172347A JPS63172347A (ja) 1988-07-16
JPH0668729B2 true JPH0668729B2 (ja) 1994-08-31

Family

ID=25476920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62325166A Expired - Fee Related JPH0668729B2 (ja) 1986-12-22 1987-12-22 マルチプロセッサシステムの新規プログラムの実行を開始する方法

Country Status (7)

Country Link
US (1) US4849877A (ja)
EP (1) EP0272835B1 (ja)
JP (1) JPH0668729B2 (ja)
KR (1) KR970004090B1 (ja)
BR (1) BR8706963A (ja)
CA (1) CA1296433C (ja)
DE (1) DE3786069T2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136708A (en) * 1987-06-09 1992-08-04 Oce-Nederland B.V. Distributed office automation system with specific task assignment among workstations
US5109515A (en) * 1987-09-28 1992-04-28 At&T Bell Laboratories User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
US5062039A (en) * 1988-09-07 1991-10-29 International Business Machines Corp. Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
CA1329432C (en) * 1988-11-02 1994-05-10 William Davy Method of memory and cpu time allocation for a multi-user computer system
US5142622A (en) * 1989-01-31 1992-08-25 International Business Machines Corporation System for interconnecting applications across different networks of data processing systems by mapping protocols across different network domains
US5175854A (en) * 1989-06-19 1992-12-29 Digital Equipment Corporation Inter-applicataion interface system
US5247676A (en) * 1989-06-29 1993-09-21 Digital Equipment Corporation RPC based computer system using transparent callback and associated method
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
JPH0362257A (ja) * 1989-07-31 1991-03-18 Toshiba Corp ネットワークモニタリングシステム
AU6520090A (en) * 1989-09-11 1991-04-18 Poqet Computer Corporation Virtual network architecture and loader
US5404519A (en) * 1989-10-11 1995-04-04 Texas Instruments Incorporated System for extending software calls to functions on another processor by means of a communications buffer
JP2991242B2 (ja) * 1989-10-12 1999-12-20 テキサス インスツルメンツ インコーポレーテッド マルチプロセッサコンピュータシステム使用方法
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software
JPH05233570A (ja) * 1991-12-26 1993-09-10 Internatl Business Mach Corp <Ibm> 異オペレーティング・システム間分散データ処理システム
ES2154647T3 (es) * 1992-07-01 2001-04-16 Ericsson Telefon Ab L M Metodo y sistema de especificacion de interfaz independiente de la implementacion.
JP3197403B2 (ja) * 1993-09-07 2001-08-13 富士通株式会社 計算機システムのアプリケーションプログラム障害発生時の制御方法
US5717926A (en) * 1995-02-28 1998-02-10 International Business Machines Corporation Efficient forking of a process
US5729682A (en) * 1995-06-07 1998-03-17 International Business Machines Corporation System for prompting parameters required by a network application and using data structure to establish connections between local computer, application and resources required by application
US5666486A (en) * 1995-06-23 1997-09-09 Data General Corporation Multiprocessor cluster membership manager framework
US6263442B1 (en) * 1996-05-30 2001-07-17 Sun Microsystems, Inc. System and method for securing a program's execution in a network environment
TW504632B (en) * 1997-03-21 2002-10-01 Ibm Apparatus and method for optimizing the performance of computer tasks using intelligent agent with multiple program modules having varied degrees of domain knowledge
US6247041B1 (en) * 1997-08-29 2001-06-12 International Business Machines Corporation Multiprocessor computer system with user specifiable process placement
US6591290B1 (en) * 1999-08-24 2003-07-08 Lucent Technologies Inc. Distributed network application management system
EP1292109A1 (en) * 2001-08-27 2003-03-12 Ricoh Company, Ltd. Information processing system
US8296771B2 (en) * 2003-08-18 2012-10-23 Cray Inc. System and method for mapping between resource consumers and resource providers in a computing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
US4731736A (en) * 1983-04-18 1988-03-15 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a selected coprocessor
JPS6079461A (ja) * 1983-10-07 1985-05-07 Fujitsu Ltd 負荷分散方式
US4703420A (en) * 1985-02-28 1987-10-27 International Business Machines Corporation System for arbitrating use of I/O bus by co-processor and higher priority I/O units in which co-processor automatically request bus access in anticipation of need

Also Published As

Publication number Publication date
EP0272835A3 (en) 1988-09-14
BR8706963A (pt) 1988-07-26
EP0272835B1 (en) 1993-06-02
DE3786069T2 (de) 1993-11-25
EP0272835A2 (en) 1988-06-29
KR880008185A (ko) 1988-08-30
JPS63172347A (ja) 1988-07-16
KR970004090B1 (ko) 1997-03-25
DE3786069D1 (de) 1993-07-08
US4849877A (en) 1989-07-18
CA1296433C (en) 1992-02-25

Similar Documents

Publication Publication Date Title
JPH0668729B2 (ja) マルチプロセッサシステムの新規プログラムの実行を開始する方法
US5062040A (en) Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US4901231A (en) Extended process for a multiprocessor system
CA1321654C (en) Remote boot
US5465365A (en) Apparatus and methods for making a portion of a first name space available as a portion of a second name space
US6247041B1 (en) Multiprocessor computer system with user specifiable process placement
EP0370008B1 (en) Distributed file server architecture
US6654793B1 (en) System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
EP0588046A1 (en) IEEE standard 802.2 virtual device driver
JPS62119664A (ja) コンピユ−タ ネツトワ−ク内での遠隔プロセス実行法
US6708171B1 (en) Network proxy
JP2000020490A (ja) 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
JPH06202883A (ja) プロセス間通信装置及び通信方法
JPH04233654A (ja) コンピュータシステム
US6732360B1 (en) System and method for providing connection between client and heterogeneous database management systems
Rashid An inter-process communication facility for UNIX
US7827194B2 (en) Access to shared disk device on storage area network
JPH0433139A (ja) ファィルアクセス方式
JP2002505474A (ja) ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム
JP2003330833A (ja) 計算機システム
CA1287178C (en) Extended process for a multiprocessor system
JP2002505472A (ja) 分散システムにおいてリモート・オブジェクトの状態を判断するための方法および装置
JP3007340B1 (ja) 機能呼び出し方法、並列分散処理システムおよびコンピュータ
KR960006472B1 (ko) TICOM IOP 환경에서 FDDI펌웨어(firmware) 구동방법
JPS61143858A (ja) 複数のオペレ−テイングシステムの下におけるフアイルの共用方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees