(57)【特許請求の範囲】
【請求項１】
中央プロセッサユニット又はコンピュータと、独立のオペレーティング・システムと、ユニット間通信を行うための通信ドライバとをそれぞれ有する少なくとも２つの相互接続されたユニットであって、第１のユニットは第１の実際のプロセスを実行し、第２のユニットは第２の実際のプロセスを実行する、ユニットと、
前記第１のユニットと前記第２のユニットとで実行されるバーチャル・リンク・ハンドラであって、前記第１のユニットでは前記第２の実際のプロセスを示す第１のシャドウ・プロセスが実行され、前記第２のユニットでは前記第１の実際のプロセスを示す第２のシャドウ・プロセスが実行される、バーチャル・リンク・ハンドラと、
前記第１及び第２のユニットに提供される、シャドウ・プロセス間信号通信を提供するドライバ・アダプタと
を備え、
前記第１及び第２のシャドウ・プロセスの各々は、対応する実際のプロセスの重要で本質的な機能性を提供することができないダミープロセスであり、
個別のユニットにより実行される各プロセスにはローカルに固有のプロセス識別子が割り当てられており、
前記第１のユニットにより実行される前記第１のシャドウ・プロセスは、前記第１のユニットにおいて、前記第２のユニットにより実行される前記第２の実際のプロセスの第２の実際のプロセス識別子と同じ第１のシャドウ・プロセス識別子により識別され、
前記第２のユニットにより実行される前記第２のシャドウ・プロセスは、前記第２のユニットにおいて、前記第１のユニットにより実行される前記第１の実際のプロセスの第１の実際のプロセス識別子と同じ第２のシャドウ・プロセス識別子により識別される
ことを特徴とする分散データ処理システム。
【請求項２】
前記ドライバ・アダプタは、個別の前記ユニットと、個別の通信ドライバ又は個別のオペレーティング・システムとの間における、シャドウ・プロセス間信号通信を提供することを特徴とする請求項１に記載の分散データ処理システム。
【請求項３】
前記少なくとも２つのユニットの少なくとも１つは、前記少なくとも２つのユニットのうちのそれぞれ異なるユニットにおいて実行される実際のプロセスをそれぞれ示す、複数のシャドウ・プロセスを実行することを特徴とする請求項１に記載の分散データ処理システム。
【請求項４】
前記シャドウ・プロセス識別子は、前記分散データ処理システムにわたって、個別のシャドウ・プロセスに固有に割り当てられるプロセス識別子であることを特徴とする請求項３に記載のデータ処理システム。
【請求項５】
前記シャドウ・プロセス識別子と実行しているユニットのシステムアドレスとを連結したものは、前記分散データ処理システムにわたって、個別のシャドウ・プロセスの固有のシステム識別子であることを特徴とする請求項４に記載のデータ処理システム。
【請求項６】
前記実際のプロセスの各々は、分散データ処理を提供する前記少なくとも２つのユニットの特定の１つに、静的に関連づけられるか、又は、静的に存在することを特徴とする請求項１に記載のデータ処理システム。
【請求項７】
前記バーチャル・リンク・ハンドラは、実際のプロセス及びシャドウ・プロセスと、分散データ処理を提供する個別の実行しているユニットとの関連付けを示す参照リストを維持する手段を備えることを特徴とする請求項１に記載のデータ処理システム。
【請求項８】
前記バーチャル・リンク・ハンドラは通信中のユニットの各々においてアドレス・テーブルを維持する手段を備え、
前記アドレス・テーブルは、前記参照リストから取得され、シャドウ・プロセスと当該シャドウ・プロセスを実行するユニットのシステムアドレスと関係を示す
ことを特徴とする請求項７に記載のデータ処理システム。
【請求項９】
前記バーチャル・リンク・ハンドラは、前記少なくとも２つのユニットの１つが実行する実際のプロセスから前記少なくとも２つのユニットの異なる１つが実行する異なる実際のプロセスへ向けて通信される信号を、少なくとも、前記２つのユニットの該異なる１つが実行する実際のプロセスに対応するシャドウ・プロセスのシャドウ・プロセス識別子を該信号に含めることで、一時的に修正する手段を備えることを特徴とする請求項１に記載のデータ処理システム。
【請求項１０】
前記バーチャル・リンク・ハンドラは、前記少なくとも２つのユニットの関連づけられた１つが実行するシャドウ・プロセスから前記少なくとも２つのユニットの異なる１つが実行する異なるシャドウ・プロセスへ向けて通信される信号を、少なくとも、前記少なくとも２つのユニットの該関連づけられた１つが実行する実際のプロセスのプロセス識別子を該信号に含めることで、修正する手段を備えることを特徴とする請求項９に記載のデータ処理システム。
【請求項１１】
前記少なくとも２つのユニットの個別のユニットの前記ドライバ・アダプタは、該少なくとも２つのユニットの該個別のユニットが実行するシャドウ・プロセスと直接通信するためのインタフェースが設けられることを特徴とする請求項１に記載のデータ処理システム。
【請求項１２】
前記少なくとも２つのユニットの個別のユニットの前記ドライバ・アダプタは、該少なくとも２つのユニットの該個別のユニットが実行するシャドウ・プロセスと、併置されたオペレーティング・システムを用いて、間接的に通信するためのインタフェースが設けられることを特徴とする請求項１に記載のデータ処理システム。
【請求項１３】
前記少なくとも２つのユニットの個別のユニットの前記ドライバ・アダプタは、該少なくとも２つのユニットの該個別のユニットが実行する通信ドライバと直接通信するためのインタフェースが設けられることを特徴とする請求項１に記載のデータ処理システム。
【請求項１４】
前記少なくとも２つのユニットの個別のユニットの前記ドライバ・アダプタは、該少なくとも２つのユニットの該個別のユニットが実行する通信ドライバと、併置されたオペレーティング・システムを用いて、間接的に通信するためのインタフェースが設けられることを特徴とする請求項１に記載のデータ処理システム。
【請求項１５】
中央プロセッサユニット又はコンピュータと、独立のオペレーティング・システムと、ユニット間通信を行うための通信ドライバとをそれぞれ有する少なくとも２つのユニットを備えたシステムにおいてユニット間通信を行う方法であって、
前記少なくとも２つのユニットの第１のユニットにおいて第１の実際のプロセスを実行する工程と、
前記少なくとも２つのユニットの第２のユニットにおいて第２の実際のプロセスを実行する工程と、
前記第１のユニット及び前記第２のユニットにおいてバーチャル・リンク・ハンドラを提供することによって、前記第１のユニットにおいて、前記第２の実際のプロセスを示す第１のシャドウ・プロセスを実行する工程と、
前記第２のユニットにおいて、前記第１の実際のプロセスを示す第２のシャドウ・プロセスを実行する工程と、
前記第１のユニット及び前記第２のユニットに対してシャドウ・プロセス間信号通信を提供するドライバ・アダプタを提供する工程と、
を有し、
前記第１及び第２のシャドウ・プロセスの各々は、対応する実際のプロセスの重要で本質的な機能性を提供することができないダミープロセスであり、
個別のユニットにより実行される各プロセスにはローカルに固有のプロセス識別子が割り当てられており、
前記第１のユニットにより実行される前記第１のシャドウ・プロセスは、前記第１のユニットにおいて、前記第２のユニットにより実行される前記第２の実際のプロセスの第２の実際のプロセス識別子と同じ第１のシャドウ・プロセス識別子により識別され、
前記第２のユニットにより実行される前記第２のシャドウ・プロセスは、前記第２のユニットにおいて、前記第１のユニットにより実行される前記第１の実際のプロセスの第１の実際のプロセス識別子と同じ第２のシャドウ・プロセス識別子により識別される
ことを特徴とする方法。
【請求項１６】
前記ドライバ・アダプタを提供する工程においては、個別の前記第１及び第２のシャドウ・プロセスが存在する個別の前記ユニットと、個別の通信ドライバ又は個別のオペレーティング・システムとの間における、シャドウ・プロセス間信号通信を提供するドライバ・アダプタを提供することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記バーチャル・リンク・ハンドラを用いて、前記第１の実際のプロセスから前記第２の実際のプロセスへ送信される信号を通信するために、該第１の実際のプロセスから送信される信号を、宛先の識別子としての該第２の実際のプロセス識別子とともに、ディスパッチする工程と、
前記第２のシャドウ・プロセスにおいて前記ディスパッチされた信号を受信する工程と、
前記第１のシャドウ・プロセスを次の宛先として識別するために、前記信号の宛先識別子を改変することにより、第１の改変された信号を前記第２のシャドウ・プロセスにより生成する工程と、
前記ドライバ・アダプタを使用して、前記第１のユニットから前記第２のユニットへ前記第１の改変された信号を転送する工程と、
前記ドライバ・アダプタを使用して、前記第１のシャドウ・プロセスにより前記第１の改変された信号を受信する工程と、
前記第１のシャドウ・プロセスにおいて、前記第２の実際のプロセスを次の宛先として識別するために、前記第１の改変された信号の宛先識別子を前記第２の実際のプロセス識別子に改変して、前記信号を復元する工程と、
前記第１のシャドウ・プロセスからの前記復元された信号を、次の宛先の識別子としての前記第２の実際のプロセスの識別子とともに、ディスパッチする工程と
を有することを特徴とする請求項１５に記載の方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、２つ以上の処理ユニット（ＣＰＵ）を備えるコンピュータ・システムに関するものであり、特に、静的な手法で異なるプロセスを異なるＣＰＵに割り当てることによって、作業分担が達成されるようなシステムにおける相互プロセス通信であって、それらＣＰＵは自律的に、かつ、そのシステムを通してそのような相互プロセス通信のための周知の伝統的なネットワーキング能力を含まないオペレーティング・システム（ＯＳ）で作動する相互プロセス通信に関するものである。
【０００２】
（課題の領域）
コンピュータ・システムにおいて、典型的なコンピュータ・システムの物理的に単一のＣＰＵは、一度に単一のインストラクションしか実行することができないので、効率とスピードの要件を満たすことが問題となり得る。この問題を解決するのに通常使用されるのは、物理的に２つ以上のＣＰＵ（またはコンピュータ）を含んでコンピュータ・システムの能力を向上させることである。そのようなシステムには、２つ以上のＣＰＵが備えられ、典型的には、各々、特有の記号のプロセス識別子（ＰＩＤ）を割り当てられるプロセスとして言及され、ＣＰＵによって作動されるコンピュータ・プログラムを本質的に備える様々なタスクがＣＰＵ間に分配されて、作業を分担し、また２つ以上の命令を同時に実行できるようにすることができる。典型的には、大抵のシステムにおいて、様々なプロセスが、情報交換や信号受信および送信といった異なる目的で通信する必要があり、異なるプロセスが異なるＣＰＵに常駐するとき、そのようなシステムにはまた、相互プロセス通信を同じＣＰＵの割り当てを持つプロセスに限定することなく、その異なるプロセスが相互に通信することを可能とする手段が含まれていなければならない。そのようなシステムにおいては、ＯＳまたはどのような割り込みルーチンもまた信号を送るが、プロセスのみが信号を受けることができるものとされていることに注意すべきである。そのようなシステムのＣＰＵまたはコンピュータが自律的に作動し、それらのＯＳに、そのシステムを通しての「透過的な」相互プロセス信号通信のためのネットワーキング能力が含まれていないとき、異なるＣＰＵまたはコンピュータのプロセス間の相互プロセス通信を達成する他の手段を備える必要がある。
【０００３】
（周知の解決法とその問題点）
上述した種類のマルチプロセッサまたはマルチコンピュータ・システムにおける相互プロセス通信を容易にするためのいくつかの解決法が周知である。解決法の中には、そのような通信のための共有メモリを用いることを示唆するものや、そのシステムにおけるプロセッサ間に他の種類の結合を加えることを示唆するものがある。
【０００４】
米国特許第５，０６２，０４０号には、確実に、信号が失われず、かつ重複する信号が処理されないようにする多重処理装置および現存するプログラムに対して透過的なマルチプロセッサ・システムが開示されている。信号取り扱いコードの断片は、拡張されたプロセスのユーザ部分にローカルなプロセッサで常に実行される。ユーザのカーネルは、現在の信号の結果（すなわち、無視されていない信号が受け取られているかどうか）を、何らかのスタブ・パケットでスタブ・プロセスに送らなければならず、また、無視されていない信号が、スタブ・プロセスが応答する前にユーザのプロセスによって続けて受信されるならば、更新された信号結果はいずれも、能動スタブ・プロセスに送られなければならない。これは、擬似信号状態として定義される。各カーネルは、転送されて送られる信号を有する表エントリのリンクされたリスト、およびそのリストから信号を取り除きそれらを各プロセッサへの通信チャンネルを介して正しい送り先に転送する、ベース・レベルで実行するシステム・プロセスを保持するように配置される。
【０００５】
（発明の目的）
したがって、本発明の目的は、プロセッサおよびＯＳの自律性が維持されかつＯＳの共通の制御要素または情報が必要とされない、分散処理を備えるマルチプロセッサ・システムにおける相互プロセス通信用装置を提供することである。
【０００６】
（発明の概要）
本発明の目的は、システムにわたって通信する実際のプロセス用シャドウ・プロセス（ＳＰ）およびＣＰＵと通信するためのドライバ・アダプタ（ＤＡ）を備える新規なバーチャル・リンク・ハンドラ（ＶＬＨ）を提供することで達成される。本発明による装置において、システムの他のＣＰＵまたはコンピュータの他の常駐プロセスとの通信を必要とするＣＰＵまたはコンピュータの常駐の実際のプロセスの記号ＰＩＤもまた、それぞれそのような他の通信するＣＰＵまたはコンピュータで定義される。したがって、ＣＰＵまたはコンピュータの常駐ＳＰの記号ＰＩＤは、別のＣＰＵまたはコンピュータの実際の常駐プロセスの記号ＰＩＤと同じである。この故に、特定のＣＰＵの常駐プロセスは、そのＰＩＤで識別され、また信号を別のＰＩＤをもつ別の「遠隔の」ＣＰＵの別の「遠隔の」常駐ターゲット・プロセスに通信するよう望んでおり、それが常駐するＣＰＵで、「遠隔の」ターゲット・プロセスの記号ＰＩＤとして同じ記号ＰＩＤで「ローカルの」ＳＰを見出す。信号をやり取りするために、ローカルなＳＰのローカルな実際の通信プロセスへのインタフェースは、実際の「遠隔の」ターゲット・プロセスへのインタフェースと同一に見える。しかしながら、ローカルな「ＳＰ」は、実際には信号に基づいて決定するものではなく、「遠隔の」ターゲット・プロセスが割り当てられていて作動している他のＣＰＵに受信信号を転送する機能を果たす。受信ＣＰＵにおいて、同様のＳＰによって信号メッセージが受信され、それは続いて信号を実際のターゲット・プロセスに転送する。したがって、本発明によるシステムのＣＰＵまたはコンピュータ間の信号の通信は、実際のプロセスがＶＬＨの存在のことを知る必要性なしに新規なＶＬＨによって容易にされる。上記からわかるように、ＳＰは、別のＣＰＵまたはコンピュータに転送する信号をプロセスから受信し、また別のＣＰＵまたはコンピュータから転送された信号をプロセスへと配るように働く。ＣＰＵ間で信号を通信するためには、各ＣＰＵでのシャドウ・プロセスが、ドライバ・アダプタへのインタフェースを有しており、ドライバ・アダプタは、更にメッセージをＣＰＵまたはコンピュータから別のＣＰＵまたはコンピュータに伝えるのに用いられるシステムのチャンネルを提供する送信手段のためのドライバへのインタフェースを有する。
【０００７】
（実施例の詳細な説明）
以下で、例としてかつ添付した図面を参照して本発明をより詳細に説明する。
【０００８】
図１には、２つのプロセッサを有するシステムの典型的な問題のシナリオの一例が示されており、プロセッサＡおよびＢのそれぞれに常駐して作動するプロセスＰ１およびＰ２を備え、ここではこれらのプロセス間で通信しようとしている。各プロセッサのオペレーティング・システム（ＯＳ）は、同じプロセッサに常駐して作動するプロセス間の通信を可能とするが、異なるプロセッサに常駐して作動するプロセスとの通信を提供しない。したがって、図１に示される典型的な状態において、２つのプロセッサには、信号を転送するための物理的な相互接続が備えられるけれども、プロセスＰ１およびＰ２は、信号をお互いに通信することができない。
【０００９】
図２には、図１に示されるのと同様なシナリオの概略図が示されているが、ここでは２つの新しいプロセスＰ１’およびＰ２’それぞれと、プロセス間での信号通信を可能とする本発明による２つのドライバ・アダプタとが備えられている。本発明が実現され、異なる種類のプロセッサが使用されるシステムにおいて、システムの設計者はバイト順序やパディングのような様々なプロセッサのフォーマットを用いることを考慮しなければならない。
【００１０】
図３を参照するに、本発明によるＤＡプロセスを実現した例の記号表記が示されている。開始および初期化の後、信号のイベントが生じるまでプロセスはアイドル状態におかれる。信号のイベント発生時、信号がドライバから来るならば、プロセスの進路は以下で（１）とマークされた分枝によって指示されたようになり、もしくは、信号がドライバに送られるならば、プロセスの進路は（２）とマークされた分枝によって指示されるようなものとなる。
【００１１】
図４を参照するに、本発明によるＤＡの実現における手順の例を記号表記したものが示されている。その手順は、信号をＤＡに転送するのに用いられる。
【００１２】
図５を参照するに、本発明によるＤＡの実現における手順の例を記号表記したものが示されている。その手順は、信号の創出プロセスに対応して信号をＤＡからＳＰへと転送するのに用いられる。そのプロセスのシャドウＰＩＤ（ＳＰＩＤ）が、パラメータｐｒｍ．ｓｅｎｄｅｒから抽出され、そしてＧｅｔＰＩＤ（）関数を用いてローカルのＰＩＤに変換される。ＳＨＡＤＯＷ＿ＳＩＧＮＡＬは、ＤＡからいずれかのＳＰへと送られるだけの固有の信号ＩＤである。
【００１３】
図６を参照するに、本発明による（総括的に）ＳＰの実現を記号表記したものが示されている。開始および初期化の後、プロセスは信号のイベントが生じるまでアイドルの状態に置かれる。信号のイベント発生時、信号がＤＡから来るならば、プロセスの進路は以下で（１）と記された段落において記述されるようになり、その他全ての信号については、プロセスの進路は以下で（２）と記された段落で記述されるようになる。
【００１４】
（１）シャドウ・プロセスがＳＨＡＤＯＷ ＳＩＧＮＡＬを受信するとき、信号ＩＤと元の信号とはその受信された信号から抽出される。そして、所望の受け手ＳＰＩＤがその信号から抽出され、ＧｅｔＰＩＤ（）関数を用いてローカルＰＩＤへと変換され、そしてその信号は所望のプロセスへと送られる。続いて、ＳＰは、ＩＤＬＥ状態へと戻る。
【００１５】
（２）何か他の信号が受信されるとき、信号は変更される。ＳＰは、受け手のＳＰＩＤと送り手のＳＰＩＤとを信号に加える。信号の受け手のプロセッサ・アドレスがまた見出されて、どのプロセッサに信号が送られるべきかが分かる。そして信号は、ドライバ・アダプタへと送られる。ＳＰは、ＩＤＬＥ状態へと戻る。
【００１６】
先に２つの段落で記述されるプロセスについて以下のことが当てはまる。
ＧｅｔＰＩＤ（）関数は、ＳＰＩＤに基づいてローカル・プロセッサでＰＩＤを検索する。
ＧｅｔＰＩＤ（）関数は、ローカル・プロセッサでＰＩＤに基づいてＳＰＩＤを検索する。
ＧｅｔＰＩＤ（）関数は、ＳＰＩＤに基づいてプロセッサ・アドレスを検索する。プロセッサ・アドレスは、異なるプロセッサを識別する。
【００１７】
不明瞭さまたは不確かさを避けるため、本発明の好ましい実施例では、ＳＰＩＤはシステム全体を通して固有に保たれる。代わりの解決法は、プロセスの特有の識別子としてＣＰＵまたはコンピュータのアドレスと一緒にＳＰＩＤを用いることである。
【００１８】
Ｒｅｃｅｉｖｅｒ（）関数およびＳｅｎｄｅｒ（）関数は、ＯＳ関数であり、受け手および送り手のＰＩＤをそれぞれ戻す。
【００１９】
別のシステム例が図７に示されている。その例の要求される性能は、もはや利用できる単一のプロセッサを備えるシステムによっては満たすことができないようなシステム要件が設けられているとする。したがって、システムを利用できるスペースおよび処理力に適合させるために、合計７つの実際のプロセスを備える示されたシステム例において、実際のプロセスは２つのグループ（各プロセッサにつき１つ）に分けられている。プロセスＰ１，Ｐ２およびＰ３を備える第１のグループとプロセスＰ４，Ｐ５，Ｐ６およびＰ７を備える第２のグループがプロセッサＡおよびＢにそれぞれ常駐して作動する。
【００２０】
それら２つのグループは、２つの異なるプロセッサで分けられているので、かつてプロセス間に存在していた通信を再確立する必要がある。図８に示されるように、これは、なくなっている「実際の」プロセスの各々のために、プロセッサの各々に「シャドウ・プロセス」を導入して配置することによって行われる。シャドウ・プロセスは、システムにわたるプロセス信号の通信を容易にする新規なＶＬＨの構成要素である。この例に示されるように、第１グループのプロセスＰ１，Ｐ２，Ｐ３と第２グループのプロセスＰ４，Ｐ５，Ｐ６との間にそれぞれ通信が要求される。しかしながら、第２グループのＰ７は、第１グループのいずれのプロセスとも信号の通信が必要でない。したがって、Ｐ７には、シャドウ・プロセスの必要がない。
【００２１】
シャドウ・プロセスを導入した後、対応するシステムがプロセッサ上で確立される。この構成では、第１グループの実際のプロセスは、第２グループの実際のプロセスに対応するシャドウ・プロセスによって信号通信のアドレスを見出すことができ、そしてその反対もできる。
【００２２】
異なるＣＰＵ間でのメッセージ通信を可能にするには、２つのプロセッサ間での通信手段が必要である。そのような通信手段は、ドライバおよび関連する物理的接続から構成できる。シャドウ・プロセスがそのような通信手段を利用できるために、ドライバへのアダプタもまた必要である。これらの構成もまた図７に示されている。
【００２３】
最後に、プロセッサ間のプロセスを識別する方法が必要とされる。示されているシステムにおいては、プロセッサが共通のメモリを有さないものとされている。本発明によると、プロセッサを識別する方法が、図７のシステム例に対応して、図８の参照表例によって示されている。
【００２４】
図８を参照するに、プロセスＰ７は、プロセッサＡに常駐するいずれのプロセスとも信号通信を必要としないので、本例のプロセスＰ７は、プロセッサＡについてのシャドウＰＩＤまたは対応するＰＩＤを有さないということが分かる。
【００２５】
表（テーブル）の展開が図９ａから図９ｃに説明されている。システムは共通のメモリを有しておらず、図８の参照表は、図９に示されるように、２つの表に分けられ、そしてそれぞれのプロセッサに配置されているものとする。図９ｂから、プロセッサＡのプロセスとプロセスＰ７との間には通信がないので、プロセスＰ７は表から除かれているということが分かる。ここで、どのプロセスから信号が送られ、またどのプロセスへと信号が送られるかを知ることが可能となる参照表がある。
【００２６】
図７のシステム例は、ＣＰＵまたはコンピュータを２つだけ備えるシステムである。したがって、ＣＰＵまたはコンピュータを２つだけ備える、本発明によるそのようなシステムにおいて、アドレス・フィールドを省略することができ、また表をこの例について図９ｃに示される表までさらに展開する。この理由は、実際のプロセスからＳＰへと送られる信号は、常に他方の「遠隔の」ＣＰＵまたはコンピュータへと転送され、そしてＤＡからＳＰへと送られる信号は、常に実際の「ローカルの」プロセスへと転送されるからである。
【００２７】
図１０を参照するに、プロセッサＡのプロセスからプロセッサＢのプロセスへと通信した信号の例が示されている。信号Ｓ１が実際のプロセスＰ１から実際のプロセスＰ５へと送られるとする。シャドウ・プロセスＰ５’は、実際のプロセスＰ５と同じ記号のＰＩＤを有するので、信号の最初の受け手は、Ｐ５に対応するシャドウ・プロセス、すなわち、Ｐ５’である。Ｐ５’は、送り手ローカルＰＩＤを検索し、そして必要ならば、それ自身のＰＩＤも検索する。シャドウ・プロセスは、これらのデータを用いて、シャドウＰＩＤと呼ばれる、対応するプロセッサの独立したＰＩＤを検索する。これらのデータは全て、ドライバ・アダプタやドライバのような低レベルを通って送られる。ドライバ・レベルでは、それは、ＩＤでマークされた他方のプロセッサへと送信され、そのＩＤで、これが「シャドウ・プロセス」信号であると、他方のプロセッサにおけるドライバに知らせる。データ送信については、本発明による解決法とは独立して、再送信および／またはフレームの番号付けが用いられる。信号が他方のプロセッサとドライバ・アダプタに到達するとき、表において検索が行われ、どのシャドウ・プロセスが信号の送り手に対応するかを見出す。そして信号Ｓ３（送り手および受け手情報をなおも運んでいる）がそのプロセスへと送られる。そのプロセスは、この場合、Ｐ１’である。信号がＰ１’に到達するとき、送り手および受け手情報が取り除かれ、元の信号が所望の受け手であるプロセッサＰ５に送られる。
【００２８】
Ｐ１からＰ５へと送られる信号が上記で説明されている。図１１に示されるように、本例のプロセスＰ５は、プロセスＰ１の信号に応答する、または新しい信号がＰ５からＰ１へと送られる。双方の場合とも手順は先の段落において説明された手順に類似するが、本例における信号は反対方向に流れる。
【００２９】
信号Ｓ２およびＳ５はまた、ＤＡへの機能呼び出しでもあるが、情報の流れを示す信号とみなすということに注意すべきである。
【００３０】
また、上述のように、送られる信号への応答は、本発明による解決法において必須ではないということに注意すべきである。したがって、前述された２つの信号のシーケンス（Ｐ１からＰ５へおよびＰ５からＰ１へ）は、２つの別々の信号シーケンスであると分かる。
【００３１】
（利点）
プロセスによって、他のプロセスに何かを知らせるために信号（メッセージと呼ばれることもある）が用いられる。ＯＳまたは何らかの割り込みルーチン（説明されていない）もまた信号を送るが、プロセスのみがそれらを受信できる。これを達成することができるのは、マルチプロセッサ、分散システムにおいてであり、ここで、各プロセッサのＯＳは、静的な手法で異なるプロセッサに常駐して作動する異なるプロセス間の通信を提供するものではない。
【００３２】
作業負荷の分担は、異なるプロセスを、静的な手法で異なる複数のＣＰＵに配置することで達成される。これらのＣＰＵは自律的にオペレーティング・システム（ＯＳ）で動作し、このＯＳは従来のネットワーク能力やこれに関連したオーバーヘッドを有さない。
【００３３】
本発明のＶＬＨによって、プロセッサ専用のオペレーティング・システムを変更することなく、またシステムにオーバーヘッドや複雑さを加えることなく、異なるプロセッサに常駐して作動するプロセス間で信号を交換することが可能となる。
【００３４】
また、同一のシャドウ・プロセスを介して本発明を実現することによって、簡潔さが維持される。しかしながら、シャドウ・プロセスの識別情報は異なる。
【図面の簡単な説明】
【図１】  各々が他方と通信する必要のある常駐の異なるプロセスを備える２つのＣＰＵまたはコンピュータのシステムで問題となるシナリオの一例を示す概略図である。
【図２】  図１に示される問題を解決する本発明によるＶＬＨ解決法の一例を示す概略図である。
【図３】  本発明によるＤＡプロセスの実施例の一例の概略的な表示である。
【図４】  本発明によるドライバ・アダプタの手順の実施例の一例の概略的な表示である。
【図５】  本発明によるドライバ・アダプタの別の手順の実施例の一例の概略的な表示である。
【図６】  本発明によるシャドウ・プロセスの実施例の一例の概略的な表示である。
【図７】  本発明によるＶＬＨ解決法を備えるシステム例を示す概略図である。
【図８】  図７のシステム例について、それぞれのプロセッサとそれらの実際のプロセスのＰＩＤ、シャドウ・プロセスのＰＩＤ間の関係をそれぞれ概略的に示す。
【図９ａ】  図７のシステム例についてルックアップテーブルの展開を概略的に示す。
【図９ｂ】  図７のシステム例についてルックアップテーブルの展開を概略的に示す。
【図９ｃ】  図７のシステム例についてルックアップテーブルの展開を概略的に示す。
【図１０】  図７のシステム例における信号の一方向への転送を示す。
【図１１】  図７のシステム例における信号の別の方向への転送を示す。
【図１】
0004689917.tif 000002
【図２】
0004689917.tif 000003
【図３】
0004689917.tif 000004
【図４】
0004689917.tif 000005
【図５】
0004689917.tif 000006
【図６】
0004689917.tif 000007
【図７】
0004689917.tif 000008
【図８】
0004689917.tif 000009
【図９ａ】
0004689917.tif 000010
【図９ｂ】
0004689917.tif 000011
【図９ｃ】
0004689917.tif 000012
【図１０】
0004689917.tif 000013
【図１１】
0004689917.tif 000014