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

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

Info

Publication number
JPS63172347A
JPS63172347A JP62325166A JP32516687A JPS63172347A JP S63172347 A JPS63172347 A JP S63172347A JP 62325166 A JP62325166 A JP 62325166A JP 32516687 A JP32516687 A JP 32516687A JP S63172347 A JPS63172347 A JP S63172347A
Authority
JP
Japan
Prior art keywords
processor
file
new program
packet
executing
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
JP62325166A
Other languages
English (en)
Other versions
JPH0668729B2 (ja
Inventor
トマス パトリック ビッショプ
ロバート ウェイン フィッシュ
ジェイムズ ステュアート ピターソン
ウォルター ユージン トゥヴェル ジュニア
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 (発明の背景) C発明の属する技術分野] 本発明はコンピュータのオペレイティングシステム、お
よび同時に複数のプロセッサ上でアクティブである拡張
プロセスによるマルチプロセッサシステム上の初期プロ
グラムの実行方法及びその装置に関する。
[問題点] オペレイティングシステム実行中に、このオペレイティ
ングシステムによって単一のコンピュータまたはプロセ
ッサ上のプログラムの実行および入出力装置とメモリと
いったシステム資源の利用を制御するオペレイティング
システムの使用は、既知の技術である。このようなオペ
レイティングシステムの1つにユニックス(UNIX)
オペレイティングシステムがあるが、このオペレイティ
ングシステムは、ケイ、トンプソン([、Thoips
on)の「ユニックスの実施(υNIX l5plca
+entatlon) Jベルシステム技術ジャーナル
、1978年7月−8月、57巻B号の論説に記載され
ている。この論説に記載されているユニックスオペレイ
ティングシステムは、単一プロセッサの資源を制御する
ことを目的とする。新規プログラムの実行は、この論説
の1933頁に記載されており、標準「フォークJ (
f’ork)および「エグゼック」又はエフセフ(ex
ec)システムコールについて説明しである。プロセジ
ャではフォークシステムコールを実行して、実行プロセ
スを子プロセスおよび親プロセスへ繰り返す。
このプロセスでは同じプログラムを共有しているが、デ
ータの記憶は異なっている。ひき続き子プロセスがエグ
ゼックシステムコールを実行する。
このエグゼックシステムコールの実行は、実行された新
規プログラムに起因する。ユニックスオペレイティング
システムに関する詳細は、エム、ジエイ、バッチ(M、
J、Bach)著の「ユニックスオペレイティングシス
テム設計(The Design Of’ The 0
nix Operating 5ysteIIJ 、ニ
ュージャーシイ、イーグルウッド クリフス、プレンテ
ィス−ホール1986年版に説明されている。外の既知
のオペレイティングシステムも同様のシステムコールが
ある。
トムソンの論説で説明されているユニックスオペレイテ
ィングシステムのエグゼックシステムコールは、新規プ
ログラムの実行にとくに効果的な機構であるため、エグ
ゼックシステムコールが、1つのプロセッサ上で実行す
るが、依然として2番目、あるいは不特定のプロセッサ
上で、新規プログラムを始動させるマルチプロセッサの
環境ではオペレイトをすることは不可能である。マルチ
プロセッサの環境で、他のプロセッサ上の特定のプロセ
ジャおよびサブルーチンを実行させるオペレイティング
システムは、知られているものである。しかし、このシ
ステムには他のプロセッサ上に、プロセジャおよびプロ
グラムが既存していなければならない。同様なシステム
の1つが、ジェイ、ダヴルユ、ジョンソン(J、ν、J
ohnson)その他の合衆国特許4530051号に
記述されている。この特許はマルチプロセッサシステム
を説明しており、このマルチプロセッサシステムで1つ
のプロセッサが、時にはサブルーチンと呼ばれているプ
ロセジャを実行させることができる。問題はこの手続き
が、実行する前に他のプロセッサ上に既存している必要
がある点である。同様のシステムが、ピー、ジャクリン
の「ユニックスの変形によるマルチプロセッサシステム
管理の開路(υNIX Variant 0pens 
a Parh to Managing Multip
rocessor 5ystess) Jが、1983
年7月28日付けのエレクトロニクスに記載されている
。この論説には、1つのプロセッサ上で実行するプログ
ラムがプロセッサを作動させることにより、ディスクド
ライブといった入出力装置へのアクセスを得て、ディス
クドライヴを制御する他のプロセッサ上で稼動できるシ
ステムが記述されている。情報がディスクドライブから
得られると、他のプロセッサがこの情報を要求プロセッ
サに転送する。この論説では、リモートシステム上に存
在するように前もって指定されたプログラム抜きで、プ
ログラムがディスクから回収され、リモートシステム上
で自動的に実行3行させる一般的機能が説明されていな
い。
最初のプロセッサから2番目のプロセッサ内の実行プロ
グラムのほかの方法は、サン マイクロシステムズ社(
Sun Microsystems、Inc、 、94
043カリフオルニア、マウンテン ヴユー、ガルシア
アヴエニュ 2250)の部品番号800−1177−
01のマニュアル「リモートプロセジャコールプロトコ
ル仕様」に詳細に記述されている。このマニュアルは、
サン マイクロシステムズ社によって実施されたように
、リモートプロセジャコールについて詳しく説明しであ
る。このリモートプロセジャコール は、手続きが最初
のプロセッサから2番目のプロセッサ上で実行されるこ
とが可能である。
先行技術にはマルチプロセッサシステムの新規プログラ
ムを実行させる一般的な方法を欠いているという問題が
あるため、マルチプロセッサシステム内の種々のプロセ
ッサのローディング、メモリあるいはファイルシステム
内にプログラムが物理的に位置しているのかどうか、プ
ログラムの実行がこの機能を作動することでシステムコ
ールを要求して、マルチプロセッサシステム内に幾らか
のプロセッサを進出させる場合、必要な信号路を設置す
るといった処理を新規プログラムを実行するシステムコ
ールが考慮しなくても済む。
[解決策] 本発明はこの問題およびほかの問題、また先行技術の欠
点を解決するよう指向されている。本発明によるとマル
チプロセッサシステムは、拡張プロセスをこのようにし
て形成する新規プログラムを実行する要求に自動的に応
じ、この拡張プロセスが、新規プログラムの実行を要求
する資源を個々に有する複数のプロセッサに及ぶ。最初
に拡張プロセスは、新規プログラムの実行を要求してい
る主プロセスを構成する。都合のいいことに、補助プロ
セスは新規プログラムオブジェクトコードファイルへの
アクセスの獲得、新規プログラムを実行するプロセッサ
の割り当て、および新規プログラムの実行用に割り当て
られたプロセッサの初期化を要求したとき、拡張プロセ
スの1部分として生成される。
また都合のいいことに、マルチプロセッサシステム内の
新規プログラムの実行を開始する方法は、新規プログラ
ムのオブジェクトコードファイルと関連するプロセッサ
を決定するステップ、開始プロセッサとは異なるよう決
定されたファイルプロセッサに決定されたファイルプロ
セッサ上に最初の補助プロセスを生成するステップ、新
規のオブジェクトコードファイルを実行する他のプロセ
ッサを割り当てるステップ、開始プロセッサまたはファ
イルプロセッサとは異なった実行プロセッサに割り当て
られた実行プロセッサ上にプロセッサを生成するステッ
プ、開始プロセス上の主プロセスから第2の補助プロセ
スにプロセス情報を転送するステップ、主プロセスに第
2補助プロセスを変換するステップ、第1補助プロセス
に関連する主プロセスによりオブジェクトコードファイ
ルを実行するステップから成る。
さらに有利なことに、割り当てるステップは開始プロセ
ッサからファイルプロセッサに第1のパケットを通信す
るステップ、第1の補助プロセスがオブジェクトコード
ファイルの一部分を読み、第1のプロセスによりオブジ
ェクトコードファイルの要求された部分を読むステップ
、ファイルプロセッサから開始プロセッサに読み出し部
分を含む第2のパケットを通信するステップから成る。
さらにこのシステムは、プロセス管理機能を実行する指
示されたホストプロセッサを有し、このプロセス管理機
能はプロセッサの割り当てを行い、また割り当てるステ
ップは第3のパケットをホストプロセスへの通信、ある
いは新規プログラム作成に対するプロセッサ割り当てを
要求するための通信ステップ、プロセス管理機能を稼動
するホストプロセッサにより新規プログラムを実行する
ための実行プロセッサを割り当てるステップ、開始プロ
セッサに第4パケツト経由で割り当て情報を通信するス
テップをさらに構成する。
またオブジェクトコードファイルの1部分は、プロセッ
サ割り当てパラメータの第1のセットを含み、開始プロ
セッサは第2の補助プロセスの部分集合に格納されてい
るプロセッサ割り当てパラメータの第2のセットを有し
、第3のパケットはプロセッサ割り当てパラメータの第
1および第2のセットを含み、割り当てステップは第3
のパケットからプロセッサ割り当てパラメータのセット
を読み取るステップおよびプロセッサ割り当そパラメー
タのセットに応じてプロセッサ割り当てに対する実行プ
ロセッサを指定するステップからさらに構成されている
加えて第1の主プロセスに関連するプロセス情報は、拡
張プロセスの主プロセスとして第1の主プロセスが機能
することを可能にし、また転送ステップは開始プロセッ
サによりプロセス情報を読み取るステップ、開始プロセ
スによりプロセス情報を第5のパケットに形成するステ
ップ、開始プロセッサから実行プロセッサへ第5のパケ
ットを転送するステップを構成している。
都合のいいことに転送するステップは、第5のパケット
からプロセス情報を読み取るステップ、プロセス情報を
第2の補助プロセスに格納するステップ、第2の補助プ
ロセスを第1の補助プロセスに変換するステップを構成
している。また変換するステップは、元の第1のプロセ
スを第3の補助プロセスに変える。さらに変換するステ
ッフハ、第6と第7のパケットをそれぞれ第1と第3の
補助プロセスに送って後者のプロセスに伝え、またこの
後者のプロセスは、第2の補助プロセスが主プロセスに
なり、前者の主プロセスが第3の補助プロセスである。
この利点と他の利点および本発明の特徴は、図面と合わ
せて本発明の実施例で以下のように明白に説明されてい
る。
(実施例の説明) 第1図にバス107により相互に連結されている複数の
コンピュータ101から106を有するマルチプロセッ
サシステムが示されている。第1図に示されたあるコン
ピュータは特定の機能を有している。例えばコンピュー
タ101はホストコンピュータと見なされ、コンピュー
タ105から106は計算サーバー(server)ま
たはファイルサーバーとして見なされている。各コンピ
ュータはオペレイティングシステムカーネル(Kern
el)によって制御されており、このオペレイティング
システムのカーネルは例えば、トンプソンの論説で説明
されているユニックスオペレイティングシステムのバー
ジョンである。トンプソンによって説明されているオペ
レイティングシステムカーネルは単一コンピュータのみ
に限定されているため、第1図のカーネルは複数のコン
ピュータ上盛こプロセスを拡張することが可能である。
この拡張プロセスは分離したコンピュータ上を作動する
個々の特定のプロセスの集合であり、以下でさらに詳し
く説明されている。この特別のプロセスは、主プロセス
即ちユーザープロセス、そして補助プロセス即ちスタッ
ブ(stub子)プロセスと言及されている。拡張プロ
セスに関する各カーネルは、別個のプロセスを有して、
拡張プロセスが対応カーネルにより制御されているコン
ピュータ上で機能することが可能である。コンピュータ
はそれぞれ対応メモリと入出力装置を存しているが、あ
るコンピュータは、テレコミュニケーションデータイン
ターフェイスまたは大容量記憶装置といった特別の入出
力装置に連結されうる。
第1図のシステム内の新規プログラムの開始は、プログ
ラムが自動的に不特定のコンピュータに割り当てられこ
とに起因する。それは、この特定のコンビニ:りが余分
の処理能力を有していたり、またはこのプログラムによ
り要求される特別の入出力資源を有するからである。こ
の不特定のコンピュータは、要求を実行する同一コンピ
ュータであることもあれば、他の異なるコンピュータで
あることもある。プログラムの実行はいくつがのコンピ
ュータに分散され、処理する能力を有する1つのコンピ
ュータを利用する場合、それでもなお必要なファイルま
たは入出力能力を有するコンピュータを使用する場合も
ある。プログラム実行が分散されると、拡張プロセスが
生成される。プログラムの実行が、複数のコンピュータ
で行われるようにし、そしてなお利用しているプログラ
マに意識されないように、このオペレイジョンを作成す
る事に本発明の課題がある。
資源の割り当ておよび動的負荷バランスはコンピュータ
lotで実行されているプロセス管理(PM)機能10
8により行われており、またこのコンピュータ101は
、第1図のシステムのホストコンピュータとして示され
ている。新規プログラムの実行の開始はエグゼックシス
テムコールにより実行され、このエグゼックシステムコ
ールは本発明によって変更されたマルチプロセッサシス
テムの操作を可能とする。以下の例を考慮して、エグゼ
ツクシステムコールの実行を例証する。コンピュータ1
02上のオールドユーザプロセス109は、エグゼック
システムコールを実行する。最終結果は新規プログラム
が、コンピュータ104上のニューユーザプロセスUt
により実行されることである。
最初に新規プログラムを含んでいるファイルは、コンピ
ュータ103のファイルシステム内にあり、ニー、アウ
ト(a、out)プロセス101によりアクセスされる
。コンピュータ105および106はニュ−ユーザプロ
セス111により利用される資源を有することになる。
前述のトンプソンの論説によれば、プロセスはソフトウ
ェア装置であり、このソフトウェア装置はメモリのテキ
スト、データおよびビーニスニス(bss)領域を要求
し、プロセス制御ブロックによりオペレイティングシス
テムに対し識別される。
トンプソンにより説明されているオペレイティングシス
テムは、オペレイティングシステムが単一プロセッサ(
uniprocessor)システム上で実行されてい
るため、プロセス制御ブロックはメモリの1領域に含ま
れる。第1図に例示されているシステムでは、プロセス
制御ブロックは拡張プロセスと関連しているコンピュー
タ全部に分散されている。
拡張プロセスはプロセス112,110.111を有し
、エグゼックシステムコールが完了した後は、コンピュ
ータ105と108内に位置するプロセスを有する。
拡張プロセスは、ユーザプロセスおよび複数のスタブプ
ロセスからなる。ユーザプロセスはプロセス制御ブロッ
クのほかに、テキストメモリ、データメモリ、ビーニス
ニスメモリ領域を有する。スタブプロセスはオペレイテ
ィングシステム機能に関するプロセス制御ブロックの一
部分のみを含んでおり、このオペレイティングシステム
機能は、要求される時には、拡張プロセスに関連するあ
の特定のコンピュータのオペレーションに属している。
オールドユーザプロセス109がエグゼックシステムコ
ールを実行すると、コンピュータ102のカーネルはコ
ンピュータ103にパケットを転送して、このプログラ
ムを実行するのに要求される資源のタイプを決定するた
めに、ニー、アウトプロセス110により、ニー、アウ
トファイルのヘッダ部分を得る。そして、コンピュータ
102のカーネルは、ニューユーザプロセス111の実
行に対する資源の割り当てを要求するコンピュータ10
1のカーネルへパケットを転送する。この要求に答えて
コンピュータ102のカーネルは、プロセス管理機能1
08を実行する。本実施例では、コンピュータ102の
カーネルは、プロセス管理機能108を実行後、コンピ
ュータ104がニューユーザプロセスUtを実行するよ
うに指示しているメツセージを転送して返す。プロセス
管理機能10gのオペレーションに関する詳しい情報は
、ビショップ等の本願と同日に出願された特許願(2)
の明細書及び図面に詳細に説明されているされている。
続いてコンピュータ102のカーネルはプロセス管理情
報をコンピュータ104のカーネルに転送し1、コンピ
ュータ104のカーネルが拡張プロセスの将来の実行に
対し、ニューユーザプロセス10およびコンピュータ1
02と105内のスタッブプロセスを設置する。
この初期化が行われると、コンピュータ102のカーネ
ルがエグゼックシステムコールの実行をコンピュータ1
04のカーネルに転送する。コンピュータ104のカー
ネルはコンピュータ103からニーアウトファイルを得
る。コンピュータ104のカーネルは外のコンピュータ
のカーネルにメツセージも転送し、初めはオールドユー
ザプロセス109であったユーザプロセスがコンピュー
タ104に移行されて、ニューユーザプロセスillに
なることを伝える。オールドユーザプロセス109は、
スタッブプロセスになる。他のコンピュータのカーネル
は、ニューユーザプロセス111にオールドユーザプロ
セス109に対する信号を転送する。さらにコンピュー
タ104のカーネルはコンピュータ102のカーネルに
メツセージを転送して、コンピュータ102に達したオ
ールドユーザプロセス109に転送される信号をすべて
回復した後、他のコンピュータは拡張プロセスをコンピ
ュータ104に移動したことを伝えられる。二ニーユー
ザプロセスIllが設置され実行を開始すると、二ニー
ユーザプロセスillは、これらのコンピュータ内で生
成されたスタッブプロセスによって要求される他のコン
ピュータの資源を利用できる。プログラムの実行中、拡
張プロセスの1部分として最初に指定されていなかった
コンピュータをアクセスする必要がある場合、その時コ
ンピュータ104のオペレイティングシステムは、プロ
グラムの実行を続行する必要があるこの指定されていな
いコンピュータ上にスタッププロセスの生成を要求する
第2図は、本実施例用のエグゼックシステムコールの実
行および拡張プロセスの生成をさらに詳しく示している
。オールドユーザプロセス109によるエグゼックシス
テムコールの実行に対しては、判断ブロック202が行
われる。エグゼックシステムコールは、プロセッサ割り
当てに影響するパラメータを指定しうる。判断ブロック
202は、ニーアウトファイルを含むファイルがコンピ
ュタ102に対してローカルであるのか即ち、リモート
コンピュータ上にあるのがどうかを決定する。本実施例
では、ファイルはコンピュータ103上にあることから
リモートであり、スタブプロセスが本拡張プロセスに対
して、コンピュータ103上にすでに存在しない場合、
パケットは送られて、コンピュータ103上にスタップ
プロセスを生成する。このパケットに応じて、コンピュ
ータ103のカーネルはニーアウトファイルにアクセス
を可能にするニーアウトプロセス110を生成する。す
るとニーアウトプロセス110は、拡張プロセスの1部
分になる。ブロック20Bはニーアウトプロセス110
によりコンピュータ103上に位置するニーアウトファ
イルをアクセスする。ヘッダ情報はニーアウトファイル
から読み出され、ニーアウトプロセス110のプロセス
制御ブロックに格納される。続いてコンピュータ103
のカーネルは、ヘッダのサブセットをコンピュータ10
2のカーネルに転送し、このコンピュータ102のカー
ネルはコンピュータ102内のオールドユーザプロセス
109のプロセス制御ブロック内にサブセットを格納す
る。この時点で、ニーアウトファイルから得た情報は、
ニーアウトファイルのサイズを指定し、プロセッサ割り
当て決定に影響するパラメータを指定しうる。ニーアウ
トファイルから情報を得た後、コンピュータ102のカ
ーネルはコンピュータ101のカーネルにパケットを転
送し、カーネルが、プロセス管理機能108を実行して
、ニューユーザプロセス111を搭載しているコンピュ
ータを選択することを要求する。(ブロック208)こ
のパケットはブロック206でニーアウトファイルから
得た情報及び、エグゼックシステムフール内のプロセッ
サ割り当てに関連するパラメータ全部を含む。ニューユ
ーザプロセス111に対するプロセッサ割り当てをする
ために、ピー壬ム(PM)プロセス管理機能108はこ
のパケットに応じて、第1図に示されているマルチプロ
セッサシステムに対し動的負荷バランスをとるか、ニー
アウトまたはエグゼックシステムコール情報に存在して
いる割り当てを実行する。
本実施例では、ユーザプロセス111はコンピュータ1
04に割り当てられる。
次にコンピュータ102のカーネルが、ブロック210
を実行する。ブロック210の実行は、読まれたエグゼ
ックシステムコールのアーギュメントになる。コンピュ
ータ102のカーネルは、このアーギュメントおよびオ
ールドユーザプロセス109のアドレススペースからの
環境変数すべてに応じて、ニューユーザプロセスIll
に対する開始スタックにこの情報の形式を会わせて、シ
ステムワーク領域にこの情報を転送する。次にブロック
212が実行され、そこで、オールドユーザプロセス1
09の資源をコンピュータ102のオペレイティングシ
ステムに返して開放する。特にオールドユーザプロセス
109のアドレススペースが開放される。
上述の実行は、エグゼックシステムコールの実行前段階
を提示している。ニューユーザプロセスがオールドユー
ザプロセスとは異なったコンピュータ上にある場合、そ
のときブロック220から238を実行後、ブロック2
40から250を実行する。
本実施例では、コンピュータ102のカーネルはブロッ
ク220から228を実行し、コンピュタ104のカー
ネルはブロック230から238を実行する。しかしオ
ールドユーザおよび二ニーユーザプロセスが同一コンピ
ュータ上にある場合、第2図に示されているブロック2
40から250は、この時点で実行される。判断ブロッ
ク214はニューユーザおよびオールドユーザプロセス
が異なったコンピュータ上にあるかどうか決定する。本
実施例では、オールドユーザプロセス109がコンピュ
ータ102上にあり、二ニーユーザプロセスillがコ
ンピュータ104上にある。スタッグプロセッサがコン
ビュ−夕104上にすてに存在していない場合、コンピ
ュータ102のカー−ネルはブロック220を実行し、
このブロック220はコンピュータ104のカーネルに
パケットは転送される。このパケットはサブプロセスが
生成され、コンピュータ104上でニューユーザプロセ
ス111になることを要求する。カーネルはこの要求に
応じて、プロトタイプスタッププロセス上にカーネルフ
ォーク機能を実行することによりスケルトンスタッププ
ロセスを生成する〇第1図の各カーネルは、スタッププ
ロセスを生成する目的で、プロトタイププロセスのコピ
ーを保有する。それからコンピュータ102のカーネル
がブロック222を実行する。このブロックはコンピュ
ータ102からコンピュータ104への移行パケットの
転送する。パケットは二ニーユーザプロセスillに対
する開始プロセス制御情報を含む。この情報はブロック
210でフォーマットされたものである。移行パケット
はコンピュータ104上のニューユーザプロセス111
に対するスタップを拡張プロセスの実行可能なユーザプ
ロセスに変形する必要性のある情報を含む。本件での実
行可能はニューユーザプロセスが要求された場合、巧み
に抜は出たりまた終了するために必要な情報をすべて有
することを意味する。巧みに抜は出ることは、拡張プロ
セスを終了させることが必要な場合、拡張プロセスの部
分全部が第1図のコンピュータすべてから取り去られる
ことができる1つである。
移行パケットに含まれているプリンシパル情報は、スタ
ッププロセスおよび拡張プロセスのオーブンファイルを
定義する情報に対し、再接続するデータである。このデ
ータはスタッププロセスおよび二ニーユーザプロセス1
11、オールドユーザプロセス109に取り付けられる
ファイルに再び取り付ける目的で使用される。再度取り
付けることは、仮想チャネルをアレンジし直して行われ
ており、第3図に説明されている。プロセスグループ識
別カード(ID)、親プロセス識別カード、フラッグワ
ード、ユーザ識別カード、グループ識別カード、カレン
トディレクトリ、プライベイトルートディレクトリイ、
ニューアーギュメントポインタ、種々の計時フィールド
を定義するプロセス制御ブロックからある一定の困難な
データも移行パケットにより伝達される。コンピュータ
104のカーネルは、オールドユーザプロセス109か
ら移行パケットに応じ、ニューユーザプロセス111の
制御ブロック内のこのパケットに含まれているデータを
保持し、他のコンピュータ内のスタッププロセス全部に
再接続メツセージを出す。ブロック232および234
が行われた後、ニューユーザプロセス111は実行可能
と見なされる。
他のコンピュータにブロック234によって転送された
再接続メツセージは、これらの他のコンピュータのカー
ネルが拡張プロセスのプロセス制御ブロックのこれらの
コンピュータの部分を変形して、コンピュータ102内
のオールドユーザプロセス109よりコンピュ−タ10
2内の二ニーユーザプロセス111を現時点で指示して
いる。この再接続は他のコンピュータのスタッププロセ
スにより、拡張プロセスに対し発生させられる信号はす
べてオールドユーザプロセス109によりニューユーザ
プロセス111に現時点で転送されていることを意味す
る。
コンピュータ102のオペレイティングシステムは、現
時点でブロック224を実行し、これはコンピュータ1
02のカーネルからの一連のパラケトにより、コンピュ
ータ104のカーネルにより、ニューユーザプロセス1
11ヘエグゼツクアーギユメントおよび他の情報を転送
する。続いてニューユーザプロセスillは、コンピュ
ータ104のカーネルによりコンピュータ104上のニ
ューユーザプロセス111アドレススペースに、これら
のパケットを保持することで設置されている。これは二
ニーユーザプロセスillを拡張プロセスのさらに完成
したユーザプロセスに変形する。
続いてコンピュータ104のカーネルがブロック236
を実行し、このブロック236はブロック226を実行
させるコンピュータ102ヘメツセージを送り、このブ
ロック226はスタッププロセスに代えられたオールド
ユーザプロセス109に起因する。
それからコンピュータ104のカーネルは、コンビエー
タ102内のオールドユーザスタッププロセス109に
対して格納されている可能性のある拡張プロセスのユー
ザプロセスに対して指定されているすべての信号に対し
コンピュータ102のカーネルへブロック238での要
求を転送する。コンピュータ102のカーネルは、これ
らの信号をブロック238に転送するブロック228を
実行することにより、このメツセージに応じる。
コンピュータ104のカーネルは、第2図のブロック2
40から250を実行する。このブロック250は、オ
ールドユーザプロセスおよびニューユーザプロセスが同
一のコンピュータ上にあるかどうかに関係なく同じ方法
で実行される。最初にカーネルは、ニーアウトプロセス
110により、コンピュータ103上に位置しているニ
ーアウトファイルをアクセスして、ブロック240の実
行によりニーアウトヘッダを得る。ヘッダ情報を利用し
てコンピュータ104のカーネルは、ニーアウトファイ
ルから種々のセクションをローディングすることにより
、テキスト、データ、およびbssのスペースを含むニ
ューユーザプロセスIllのアドレススペースをブロッ
ク242の実行によりコンピュータ103からコンピュ
ータ104に設置する。
この機能を行った後、ブロック244を実行して、オー
ルドユーザプロセス109と関連するが、ニューユーザ
プロセスillに関連しないファイルをすべて閉じる。
閉じられるファイルは、アブリケーショーンプログラマ
によって決められる。このプログラマはファイルに目印
を付けて、fcntl システムコールを使用する標準
ユニックス方法で閉じてから、エグゼックシステムコー
ルを実行する。この情報はオールドユーザプロセス10
9のプロセス制御ブロックに格納され、後でニューユー
ザプロセス111に転送される。目印の付けであるファ
イルを全部門じた後、信号受取とされる動作を定義する
エントリを含む信号ハンドラのアレイをふたたび初期化
する目的で、コンピュータ104のカーネルはブロック
24Bを実行する。各エントリはこの特定の信号を提供
する機能を識別するデフォルト値、イブノア値、および
ポインタのいづれか1つを指定できる。信号はブロック
228で、コンピュータ102からのコンピュータ10
4へ転送され、ブロック238で信号エントリ423と
結合される。ブロック24Gで、デフォルト値への機能
を指示している信号アレイ内にエントリをすべてセット
するが、イブノア値を含むエントリはすべて修正されな
い。
信号がプロセスから受は取られると、カーネルはそのプ
ロセスに対しプロセス制御ブロックをアクセスして、第
4図のエントリ423のごと(sigエントリ内に信号
を格納する。信号がカーネルによって取り扱われると、
信号番号はインデックスとして使用され、信号アレイを
アクセスする。デフォルト値がアクセスされる場合、プ
ロセスは通常終了する。アクセスされたエントリがイブ
ノア値を含んでいる場合、処理は行われない。アクセス
されたエントリがポインタを含んでいる場合、その時に
はポインタにより識別される機能が実行される。アプリ
ケーションが動作すると、信号システムコールが使用さ
れ、そのプログラムの必要条件に合わせてアレイを形成
する。信号の取扱に関するさらに詳しい情報は、バッハ
(Bach)の前述の本に記載されである。次にコンピ
ュータ104のカーネルはブロック248を実行し、こ
のブロック248がニューユーザプロセス111のニュ
ーアドレススペースに必要なメモリ管理情報を再び初期
化して他のここまごました処理を完了する。最終的には
、プログラムが現時点において、ブロック250で実行
できるようにする目的で、制御はニューユーザプロセス
111に渡される。
第3図はさらに詳細に、エグゼックシステムコールの実
行した結果の拡張プロセスの1部分を示している。ニュ
ープロセスIllは拡張プロセスのユーザプロセスであ
り、プロセス112および110は拡張プロセスのスタ
ッププロセスである。拡張プロセスのプロセスはすべて
共通pid番号を共有する。仮想チャネルはスタッププ
ロセスのユーザプロセスとスタッププロセスの間にスタ
ッグプロセスが確立されたときに、設置される。これら
のチャネルはユーザプロセスとスタッブプロセス間のパ
ケットの通信用に利用される。拡張プロセスのスタップ
プロセスは、直接を目互に通信はしない。
さらに第1図に示されているシステム内の他のプロセス
からの通信は、すべて拡張プロセスのユーザプロセスへ
と通じている。第1図に示されている各コンピュータは
、第3図の301から303のようなprOeポインタ
表を保をする。pid番号はカーネルにより利用され、
301から303の表のようなprocポインタ表に入
り、304から306のポインタを得て指定されたプロ
セスを見つける。例えば、コンピュータ104のpid
番号は、パス312を経由してproc表309に通じ
るprocポインタ表308からのエントリ306をア
クセスする目的で使用される。
同様に、pid番号はproeポインタ表301のエン
トリ304をアクセスする目的で利用し、proc表3
07に通じるバス310を得る。
仮想チャネル313および314はプロセスに直接関連
している。このチャネルの認識は個々のプロセスのpr
oc表内にある。拡張プロセスのユーザプロセスは、ス
タッププロセスのそれぞれに通じる仮想チャネルを有す
る。しかし、ホストプロセス112といった拡張プロセ
スの各スタッププロセスは、仮想チャネルを1つ有する
のみであり、またこのチャネルはニューユーザプロセス
111といった拡張プロセスに通じる。
第4図はホストプロセス112およびニューユーザプロ
セス111により利用されるメモリを詳しく説明してお
り、ユーザと拡張プロセスのスタッブプロセス間の差異
を示している。後者のプロセスのそれぞれに対し、pr
oe表およびUブロックの部分が示されている。さらに
ポート表および3chanリストが示されている。これ
ら後者の表はプロセス間の仮想チャネルを確認するもの
である。ニューユーザプロセスLitに対し示されてい
ないのは、実行中にこのプロセスにより利用されるテス
ト、データおよびスタック領である。同様に、メモリの
スタック領域は、拡張プロセスのスタッグプロセスであ
るホストプロセス112に対しては示されていない。二
ニーユーザプロセスIllは拡張プロセスのユーザプロ
セスである。
proeの表307と309のエントリを今から詳しく
考察する。表307および309に対して示されている
エントリは、この2つの表内に存在するエントリの1部
分のみである。n1ceエントリ401または421は
プロセスの優先順位のスケジュールを定義する。n1c
eエントリ401は、スタッブプロセス金離に対して真
であるシステムアトミニストレータにより、システムワ
イドを基準にして固定される。
n1ceエントリ421はユーザプロセスに対するもの
であるため、ユーザが特定のシステムコールを実行し、
優先度のレベルを下げることを可能にし、あるいは優先
度のレベルを上げたり下げたりできるシステムのアトミ
ニストレータまたはスーパーユーザにより調節される。
pIdのエントリ402および422はこの2つのエン
トリに対して同じプロセス認識番号を定義する。pid
番号は拡張プロセス基準にしであるため、ユーザプロセ
スおよび拡張プロセスのスタッププロセスは同じpid
番号を有する。
5tatusエントリ40Bおよび426と連結してい
る81gエントリ403および423はプロセス間の信
号を扱う目的で使用される。さらにp roe表5ta
tusワードは、従来のユニツクスジステムタイプの情
報も含む。スタップ上では、5tatusワード内に含
まれている信号フラッグは信号がユーザプロセスから受
は取られたかどうかを示している。(このユーザプロセ
スは本実施例では、ニューユーザプロセス111である
。)ホストプロセス112は信号の受取りに応じており
、この信号の受取りはエントリ403に格納され、本オ
ペレーションを中断できるのかどうかによって、異なっ
たオペレーションを行う。ニューユーザプロセス111
は、5tatsuエントリ42B内の信号フラッグ刃、
信号がホストプロセス112に転送されたかどうかを示
す目的で使用される。さらにエントリ42B内の信号フ
ラッグはメツセージがホストプロセス112ようなスタ
ッププロセスに送られたかどうかを記憶している。
この後者の表示は適当な時に、後者のポイントで違った
タイプのオペレーションのクリーンアップを促進する目
的で使用される。受は取られた信号のタイプは、s1g
エントリ423丙にニューユーザプロセッサ111によ
り格納される。
親ptd(ppid)エントリ404および424につ
いては、これらのエントリは拡張プロセスの親プロセス
の同一性を記憶する目的で使用される。これは従来のユ
ニツクスジステムタイプの分野である。
しかし拡張プロセスでは、ppidエントリは拡張プロ
セスのプロセス上でのみ有効であり、またこの拡張プロ
セスのプロセスは、本実施例のホストプロセス112で
あるホストコンピュータ101により実行される。都合
がいいことに、これは拡張プロセスの種々のスタップと
ユーザプロセス間のパケット通信量を削減する。拡張プ
ロセスのユーザプロセスがホストコンピュータ上に存在
していない場合、拡張プロセスのユーザプロセスは、有
効なpptc+エントリを有さない。
bicid変数は次の方法で、特定のプロセスが拡張プ
ロセスのスタップまたはユーザプロセスであるかどうか
を決定する。第1図に示されているマルチプロセッサシ
ステムの各プロセッサは、プロセッサの認識番号を含む
変数MYLOCにプロセッサの認識番号を格納している
。プロセッサがスタップまたはユーザプロセスであるか
どうかに関係なく 、btcid変数は常に拡張プロセ
スのユーザプロセスを実行しているプロセッサの認識番
号を含む。
本実施例では、これはコンピュータ104である。
エントリ425はコンピュータ104のカーネルにより
保持されているMYLOC変数の内容と同じである。
エントリ405はコンピュータ104のMYLOCi数
の内容も含んでおり、そのためコンピュータ101のM
YLOC変数と適合していない。特定のコンピュータの
カーネルは、カーネルがMYLOC変数を有するカーネ
ルのb1cid変数と比較することにより、ユーザまた
はスタッププロセスを実行しているかどうかを決定する
。適合している場合、その時カーネルは拡張、プロセス
のユーザプロセスを実行している。
Uブロックページエントリ407および427は仮想ア
ドレスを設置するためのアドレス情報を含み、第4図の
Uブロック418および438として示されているUブ
ロックへのアクセスを得る。後者のUブロックは、Uブ
ロックがホストプロセス112といった拡張プロセスの
スタッププロセスあるいはニューユーザプロセス111
といった拡張プロセスのユーザプロセスであるかどうか
によって異なる情報を含む。好都合にも、これらUブロ
ックのエントリの多くは、トンプソンの前述の論説で説
明されているユニツクスジステムに対するUブロック用
のエントリと同様である。拡張プロセスのスタップ、プ
ロセスがテキスト、スタック、およびデータメモリ領域
を有していないため、エントリ408.409および4
10はホストプロセス112に対し0(ゼロ)を含む。
カーネルがスタッププロセスに関連する機能を実行して
いる場合、このカーネルはスタッププロセスのUブロッ
ク内に、そのスタッププロをスに対し独特のカーネルス
タックを保有している。これはプロセスがカーネルモー
ドで実行している時に、カーネルスタックが単一プロセ
ッサユニックスシステム内で使用されている方法と同様
である。エントリ428.429および430が必要な
情報を含んでいるため、拡張プロセスのユーザプロセス
と二ニーユーザプロセス111は前述して、いるように
a、アウトファイルから得られたプログラムの実行に対
し、テキスト領域、データ領域およびスタック領域を有
する。
拡張プロセスのユーザプロセスでは、変数1ock1p
およびexecipのエントリ431および432がそ
れぞれ旧ニーアウトファイルと新ニーアウトファイルを
識別する目的で使用される。本実施例では、コンピュー
タ103は新ニーアウトファイルを格納し、コンビエー
タ103は1日ニーアウトファイルを格納している。エ
ントリ431は旧ニーアウトファイルを指し示しており
、エントリ432はエグゼックシステムコールの結果と
して実行される新ニーアウトファイルを指し示している
。このファイルが両方とも拡張プロセスのユーザプロセ
スを実行するプロセッサに対してローカルである場合、
その時これらのエントリはローカルファイルを識別する
ため、標準ユニツクスジステムの方法でローカルプロセ
ッサのカーネルにより保有されている1node表を指
し示すポインタである。ニーアウトファイルがプロセス
により直接使用されるのではなくむしろカーネルにより
使用されるため、システムファイルの表は使用されない
。しかし、このファイルがリモート、例えば他のプロセ
ッサと関連する場合、エントリはポート表440といっ
たユーザプロセスポート表内にエントリの識別を含む。
例えばボート表440内のこのエントリは、仮想チャネ
ル、その時411または412といったおよびリモート
エントリが拡張プロセスのスタッブプロセス内で識別さ
れている。例えばエントリ431がリモートファイルを
示している場合、その時このエントリは、リモートファ
イルに対しローカルであるプロセッサに関連しているス
タッフプロセス内に対応するエントリ411を指示する
。これらのエントリについてさらに詳しい情報は、第6
図に関して記述されている。
概して拡張プロセスのスタッブプロセスのUブロックは
、ユーザプロセスのUブロックに関する3つのタイプの
エントリを含む。第1のタイプのエントリ408は、ス
タッブプロセスでは使用されないで、ユーザプロセスで
通常の方法で使用される。スタッブプロセスのりブロッ
ク内の第2のタイプのエントリは常に用いられるもので
あり、このタイプのエントリの例はacptrエントリ
414であり、後で詳しく説明する。スタッブプロセス
のUブロック内の第3のタイプはエントリであり、この
エントリは特定の機能を実行する要求パケットがユーザ
プロセスからスタッブプロセスへ転送される時に、拡張
プロセスのユーザプロセスから転送される必要な情報と
共に要求されるものとしてのみ存在する。この1例がd
irpエントリ413で、他の例がエントリ411およ
び412である。エントリ413はバス名を指し示すポ
インタである。拡張プロセスのユーザプロセスでは、こ
のエントリは常にユーザアドレススペースを指し示して
パス名を指定する。しかしスタッブプロセスでは、バス
名に関する情報はユーザプロセスから受は取られ、次に
適切な位置にカーネルにより格納される。この時点で、
カーネルはdirpエントリを設置してバス名を指し示
す。バス名が転送されるときの例は、オープンシステム
コールの最中である。オープンシステムコールは拡張プ
ロセスのユーザプロセスを実行するプロセッサ上で実行
されるため、バス名の情報はスタッブプロセス上で得る
ことは不可能である。 aept rエントリ414お
よび434はachanリスト419および439をそ
れぞれ指し示す。
ユーザプロセスのaehanリストは、スタッブプロセ
スへの仮想チャネルをそれぞれ定義する多くの構造を有
しうる。本実施例では、新ユーザプロセス111のac
hanリスト439は、拡張プロセスのスタッブプロセ
スに仮想チャネルをそれぞれ定義するいくつがの構造を
有する。各構造は仮想回路用に、リンク、ポート、ポイ
ンタ、その他の情報を含む。この構造はリンクリスト内
でリンクポインタ442および435により共にリンク
される。リストは最後のリンクポインタの内容が0(ゼ
ロ)で終了する。仮想チャネルはポートポインタにより
識別される。ポートポインタ431および43Bはポー
ト表440を指し示す。新ユーザプロセス111はac
ptrエントリ434を利用することにより、関連する
仮想チャネルを識別して、achanリスト439で新
ユーザプロセスillと関連するリンクリストを指し示
す。次にポートポインタはポート表440をアクセスす
る目的で利用される。同様にホストプロセス112はa
cptrエントリ414を有し、このエントリはach
an リスト419のポインタ415および416を含
んでいる構造を指し示す。拡張プロセスのスタッブプロ
セスは複数の仮想チャネルを冑することが不可能である
ため、リンクポインタ415は、ポインタ415の内容
が0(ゼロ)であることによりリンクリストを終了する
。ポート番号417は二ニーユーザプロセスillへの
仮想チャネル314を定義する。仮想チャネルに関する
さらに詳しい情報は、前掲の特許願(3)を参照された
い。
第2図のブロック234および23Gの観点から、仮想
チャネルを考察する。再接続情報は最初にブロック23
4により転送されると、拡張プロセスのスタッブプロセ
スがオールドユーザプロセス109と設置される仮想チ
ャネルを有し、このプロセスはこの時点のこの位置では
、第4図に示されているように同様の方法のユーザプロ
セスである。再接続情報を受取りに際し、受は取る側の
各カーネルは、オールドユーザプロセス109に接続さ
れているより、むしろ二ニーユーザプロセスIllに接
続されているスタッブプロセスの仮想チャネルに起因す
るポートおよび他のチャネル情報を更新する。ブロック
236により実行されるオペレーション部分は、ach
an表439表土39−トを第4図に示されている表へ
転送するものである。ブロック22Gは第4図のホスト
プロセス112に対し示されている表と同様な表にオー
ルドユーザプロセス109の表を変える。第5図は、拡
張プロセスのファイルが拡張プロセスのユーザプロセス
により識別される方法を示している。ファイルがコンピ
ュータ104およびニューユーザプロセスillといっ
た拡張プロセスのユーザプロセスを実行するプロセッサ
に対しローカルである場合、その時標準ユニツクスジス
テムファイル制御構造が利用される。
例えば、ローカルファイル507はファイル表501の
エントリ504を経由して識別される。後者の表はプロ
セス111のUブロックの部分でu−o1’ile構造
として言及されている。エントリ504の内容はシステ
ムファイル表502のエントリ505を識別する。シス
テムファイル表502は、それから1node表503
およびエントリ506を支持する目的で利用される。エ
ントリ50−4は通常のユニツクスジステムの方法で、
ファイル507と関連するファイルディスクリブタ番号
を使用することにより表501を識別する。続いてエン
トリ50Bが通常のユニツクスジステムの方法で、ロー
カルファイル507を識別する。リモートファイル51
7はコンピュータ105に対しローカルであると仮定さ
れているが、ファイルがリモートファイル517といっ
たリモートの場合、その時エントリ520は、このファ
イルがリモートで、システムファイル表502を指し示
すよりむしろポート表440を指し示すことを識別する
。ファイル517に対するファイルディスクリブタ番号
はエントリ520をアクセスする目的で使用される。エ
ントリ508は仮想チャネル509を識別するポート表
440のエントリ520により表440で識別される。
仮想チャネル509は前述で説明されているように、拡
張プロセスのスタッグプロセスであるファイルプロセス
510と相互に連結されている。ファイル517に対す
るファイルディスクリブタ番号を含むパケットは、コン
ピュータ105のカーネルに転送される。このカーネル
はファイルディスクリブタ番号を使用してファイルプロ
セス510のUブロック内のファイル表511のエント
リ514を識別する。するとファイル制御構造がそれぞ
れ表512および513内のエントリ515および51
6を経由して通常のユニックスの方法でリモートファイ
ル517を識別する。
第6図は、拡張プロセスのユーザプロセス内のIock
ipとexecip変数および拡張プロセスのスタッブ
プロセス内のrcmlockipとrcmexccip
変数を詳細に示している。第6図は、第2図のブロック
224の実行を行う前に、第1図に示されているマルチ
プロセッサシステムの状態を示す。このとき拡張プロセ
スのユーザプロセスは、コンピュータ102により実行
されているオールドユーザプロセス109である。第6
図は、エグゼックシステムコールを実行する目的で使用
されたもとのニーアウトファイルが、コンピュータ10
2に対しローカルであると仮定している。本実施例では
、もとのニーアウトファイルは旧ニーアウトファイル6
07である。ニュープログラムは新ニーアウトファイル
から得られるが、この新ニーアウトファイルは、リモー
トファイルでコンピュータ103と関連している。この
ファイルがa、アウトファイル617と表示しである。
コンピュータ10a上で実行されている拡張プロセスの
スタッブプロセスは、ニーアウトプロセス110である
。オールドユーザプロセス109に対し示されているも
のは、そのUブロック601およびポート表62である
。ニーアウトプロセス110に対し示されているものは
、そのUブロック611である。オールドユーザプロセ
ス109のUブロック601のエンドル604は、Uブ
ロック601のエントリ604および1node表60
3のエントリ606を利用する標準ユニツクスジステム
の方法で、旧ニーアウトファイル607を識別する。1
ockip変数がローカルファイルを識別するため、拡
張プロセスに関する全てのスタッブプロセス内で使用さ
れたreilockll)に対応する変数はない。
しかし新ニーアウトファイルは、コンピュータ102上
にはない。むしろ1nodeの表603を示しているU
ブロック60■のエントリ620は、ポート表622内
のエントリ621を指し示す。エントリ621はニーア
ウトプロセス110のU、ブロック610に接続されて
いる仮想チャネル509を識別する。するとUブロック
610のエントリ1314は、ニーアウトファイル61
7へ1node表613のエントリ616を示す。旧ニ
ーアウトファイルはコンピュータ102に対しローカル
であるため、rem+ockip変数のエントリ623
は、Uブロック611内で使用されない。
前述の例は本発明の原理を単に示したものであり、他の
組み合わせは本発明の精神および特許請求の範囲内に含
まれる。
【図面の簡単な説明】
第1図は本発明の一実施例のマルチプロセッサシステム
のブロック図; 第2図筒布1図のマルチプロセッサにより′τエグゼッ
クシステムコールの実行中に動作する機能の流れ図; 第3図は第1図のプロセッサのサブセットに対する拡張
プロセスの相互連結のブロック図;第4図は第3図のソ
フトウェア相互連結の詳細:図; 第5図は第1図のプロセッサ上で実行している拡張プロ
セスに対するファイル制御のブロック図;第6図は第1
図のプロセッサ上で実行している拡張プロセスに対する
ニーアウトファイルとアクセス中のファイル制御構造の
ブロック図である。 出 願 人:アメリカン テレフォン アンドテレグラ
フ カムパニー

Claims (12)

    【特許請求の範囲】
  1. (1)複数のプロセッサを有するマルチプロセッサシス
    テム中の新規プログラムを実行する方法において、 新規プログラムのオブジェクトコードファイルに関連す
    るプロセッサの内のファイルプロセッサを、このプロセ
    ッサの1つを開始することにより、実行される第1の主
    プロセスによって、決定するステップ、 前記プロセッサの内のファイルプロセッサ上の第1の補
    助プロセスを、プロセッサの開始から独立するように決
    定されるファイルプロセッサ上に生成するステップ、 新規プログラムのオブジェクトコードファイルを実行す
    るために、プロセッサの内の実行プロセッサを割り当て
    るステップ、 前記プロセッサの内の実行プロセッサ上の第2の補助プ
    ロセスを、プロセッサの開始から独立するように決定さ
    れる実行プロセッサ上に生成するステップ、 プロセス情報を第1の主プロセスから、第2の補助プロ
    セスに転送するステップ、 第2の補助プロセスを第2の主プロセスに変換するステ
    ップ、および オブジェクトコードファイルを、第1の補助プロセスに
    関連して、第2の主プロセスにより実行するステップと
    からなることを特徴とするマルチプロセッサシステムの
    新規プログラムを実行する方法。
  2. (2)割り当てるステップは、 第1のパケットを、第1の補助プロセスがオブジェクト
    コードファイルの部分を読み込むことを要求するために
    、開始プロセッサから、ファイルプロセッサに伝送する
    ステップ、 オブジェクトコードファイルの部分を、第1の補助プロ
    セスにより、読み込むステップ、 読み込まれた部分を含む第2のパケットを、ファイルプ
    ロセッサから、開始プロセッサに伝送するステップとか
    らなることを特徴とする特許請求の範囲第1項記載のマ
    ルチプロセッサシステムの新規プログラムを実行する方
    法。
  3. (3)プロセッサの1つが管理プロセッサ割り当ての機
    能を実行するホストプロセッサであり、割り当てステッ
    プは、 新規プログラムの実行をするプロセッサの割り当てを要
    求するために、第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の主プロセスに変換するステ
    ップとからなることを特徴とする特許請求の範囲第2項
    記載のマルチプロセッサシステムの新規プログラムを実
    行する方法。
  7. (7)複数のプロセッサを有するマルチプロセッサシス
    テム中の新規プログラムを実行する装置において、 新規プログラムのオブジェクトコードファイルに関連す
    るプロセッサの内のファイルプロセッサを、このプロセ
    ッサの1つを開始することにより、実行される第1の主
    プロセスによって、決定する手段、 前記プロセッサの内のファイルプロセッサ上の第1の補
    助プロセスを、プロセッサの開始から独立するように決
    定されるファイルプロセッサ上に生成する手段、 新規プログラムのオブジェクトコードファイルを実行す
    るために、プロセッサの内の実行プロセッサを割り当て
    る手段、 前記プロセッサの内の実行プロセッサ上の第2の補助プ
    ロセスを、プロセッサの開始から独立するように決定さ
    れる実行プロセッサ上に生成する手段、 プロセス情報を第1の主プロセスから、第2の補助プロ
    セスに転送する手段、 第2の補助プロセスを第2の主プロセスに変換する手段
    、および オブジェクトコードファイルを、第1の補助プロセスに
    関連して、第2の主プロセスにより実行する手段 とからなることを特徴とするマルチプロセッサシステム
    の新規プログラムを実行する装置。
  8. (8)割り当てる手段は、 第1のパケットを、第1の補助プロセスがオブジェクト
    コードファイルの部分を読み込むことを要求するために
    、開始プロセッサから、ファイルプロセッサに伝送する
    手段、 オブジェクトコードファイルの部分を、第1の補助プロ
    セスにより、読み込む手段、 読み込まれた部分を含む第2のパケットを、ファイルプ
    ロセッサから、開始プロセッサに伝送する手段とからな
    ることを特徴とする特許請求の範囲第7項記載のマルチ
    プロセッサシステムの新規プログラムを実行する装置。
  9. (9)プロセッサの1つが管理プロセッサ割り当ての機
    能を実行するホストプロセッサであり、割り当て手段は
    、 新規プログラムの実行をするプロセッサの割り当てを要
    求するために、第3のパケットをホストプロセッサに伝
    送する手段、 新規プログラムの実行をするプロセッサを、管理機能に
    よって、割り当てる手段、 第4のパケットを解して、割り当てをホストプロセッサ
    から開始プロセッサに伝送する手段からなることを特徴
    とする特許請求の範囲第8項記載のマルチプロセッサシ
    ステムの新規プログラムを実行する装置。
  10. (10)オブジェクトコードファイルの部分はプロセッ
    サ割り当てパラメータの第1のセットを含み、 開始プロセッサは、第1の主プロセスのプロセス情報の
    部分に格納されているプロセッサ割り当てパラメータの
    第2のセットを有し、 第3のパケットはプロセッサ割り当てパラメータの第1
    および第2のセットを含み、 割り当て手段は、 プロセッサ割り当てパラメータを第3のパケットから読
    み出す手段と、 プロセッサ割り当てパラメータのセットに応じて、プロ
    セッサの割り当ての為に、実行プロセッサを指定する手
    段とからなることを特徴とする特許請求の範囲第9項記
    載のマルチプロセッサシステムの新規プログラムを実行
    する装置。
  11. (11)プロセス情報は第1の主プロセスを主プロセス
    として、機能するように、変換し、 転送する手段は、 プロセス情報を開始プロセッサによって、読み出す手段
    と、 プロセス情報を開始プロセッサによって、第5のパケッ
    トに構成する手段、 第5のパケットを開始プロセッサから、実行プロセッサ
    ぅする手段からことを特徴とする特許請求の範囲第9項
    記載のマルチプロセッサシステムの新規プログラムを実
    行する装置。
  12. (12)変換する手段は、 プロセス情報を第5のパケットから読み出す手段、 プロセス情報を第2の補助プロセスに格納する手段、 第2の補助プロセスを第2の主プロセスに変換する手段
    とからなることを特徴とする特許請求の範囲第11項記
    載のマルチプロセッサシステムの新規プログラムを実行
    する装置。
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 true JPS63172347A (ja) 1988-07-16
JPH0668729B2 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 ネットワークモニタリングシステム
WO1991004537A1 (en) * 1989-09-11 1991-04-04 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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6079461A (ja) * 1983-10-07 1985-05-07 Fujitsu Ltd 負荷分散方式

Family Cites Families (5)

* 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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6079461A (ja) * 1983-10-07 1985-05-07 Fujitsu Ltd 負荷分散方式

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS63172347A (ja) マルチプロセッサシステムの新規プログラムの実行を開始する方法
US4901231A (en) Extended process for a multiprocessor system
US7415709B2 (en) Virtual resource ID mapping
US6917963B1 (en) Snapshot image for the application state of unshareable and shareable data
US7210147B1 (en) IP virtualization
US5465365A (en) Apparatus and methods for making a portion of a first name space available as a portion of a second name space
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
US5530905A (en) Temporary state preservation for a distributed file service which purges virtual circuit control information after expiration of time limit of inactivity
US5721876A (en) Sockets application program mechanism for proprietary based application programs running in an emulation environment
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
US6247041B1 (en) Multiprocessor computer system with user specifiable process placement
EP0205945A2 (en) Process transparent multi storage mode data transfer and buffer control
EP0733971A2 (en) Method and apparatus for managing connections for communication among objects in a distributed object system
US20110004687A1 (en) Information processing apparatus, information processing system, setting program transmission method and server setting program
JPH04233654A (ja) コンピュータシステム
JPH0544693B2 (ja)
JPH0433139A (ja) ファィルアクセス方式
US7827194B2 (en) Access to shared disk device on storage area network
CN111669358B (zh) 一种批量处理vrouter网络隔离空间的方法和装置
EP0260458B1 (en) Networking processors
CA1287178C (en) Extended process for a multiprocessor system
Whitcroft et al. The CBIC: Architectural support for message passing
JPH04213126A (ja) ソフトウェアテスト方式
JPH11237996A (ja) 計算機間のデータ連携方法
JPS61194948A (ja) ワ−キングデイレクトリ設定方式

Legal Events

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