JPH03126158A - スケジユーリング方法及び装置 - Google Patents
スケジユーリング方法及び装置Info
- Publication number
- JPH03126158A JPH03126158A JP2239184A JP23918490A JPH03126158A JP H03126158 A JPH03126158 A JP H03126158A JP 2239184 A JP2239184 A JP 2239184A JP 23918490 A JP23918490 A JP 23918490A JP H03126158 A JPH03126158 A JP H03126158A
- Authority
- JP
- Japan
- Prior art keywords
- queue
- data message
- scheduler
- empty
- scheduling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 157
- 230000008569 process Effects 0.000 claims abstract description 144
- 230000007246 mechanism Effects 0.000 claims abstract description 37
- 230000007704 transition Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000006854 communication Effects 0.000 abstract description 9
- 238000004891 communication Methods 0.000 abstract description 8
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 102100034339 Guanine nucleotide-binding protein G(olf) subunit alpha Human genes 0.000 description 1
- 101000997083 Homo sapiens Guanine nucleotide-binding protein G(olf) subunit alpha Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、共用知能記憶装置に接続されたフロント・エ
ンド・プロセッサなど疎に結合された多重プロセッサ環
境において共用オブジェクトのスケジューリングを行な
うための分散機構に関するものである。本発明は欧州特
許出願第88480102.8号明細書に記載されてい
るような、それを通じてユーザまたは多重プロセッサが
通信する、共用知能記憶装置を持つ通信制御装置で典型
的に使用されるが、それだけに限定されるものではなく
、記憶装置内での情報の物理的位置に対して最適レベル
の透過性(transparency)を提供する。
ンド・プロセッサなど疎に結合された多重プロセッサ環
境において共用オブジェクトのスケジューリングを行な
うための分散機構に関するものである。本発明は欧州特
許出願第88480102.8号明細書に記載されてい
るような、それを通じてユーザまたは多重プロセッサが
通信する、共用知能記憶装置を持つ通信制御装置で典型
的に使用されるが、それだけに限定されるものではなく
、記憶装置内での情報の物理的位置に対して最適レベル
の透過性(transparency)を提供する。
B、従来の技術及びその課題
本発明の背景は、メツセージを用いて通信するプロセス
から構成されたシステム構造である。プロセスとは、基
本タスク(システムにロートシ、システム内で実行する
ことのできる基本プログラム)の集合である。プロセス
は、最初に複数のプロセッサ内で生成され、これら異な
るプロセッサ内で実行され、各プロセッサが特をのデー
タを処理することができる。メツセージはプロセッサ間
の通信を可能にする。例えば、要求を出す側のプロセス
があるサーバ・プロセスに要求を出すため特定のメツセ
ージを送り、サーバ・プロセスはそれに応じて情報を提
供しまたは処理を行なう。
から構成されたシステム構造である。プロセスとは、基
本タスク(システムにロートシ、システム内で実行する
ことのできる基本プログラム)の集合である。プロセス
は、最初に複数のプロセッサ内で生成され、これら異な
るプロセッサ内で実行され、各プロセッサが特をのデー
タを処理することができる。メツセージはプロセッサ間
の通信を可能にする。例えば、要求を出す側のプロセス
があるサーバ・プロセスに要求を出すため特定のメツセ
ージを送り、サーバ・プロセスはそれに応じて情報を提
供しまたは処理を行なう。
たとえば欧州特許出願第88480102..8号明細
書に記載されている形式の共用知能記憶装置を含む通信
制御装置では、回線インタフェース・モジュール(LI
M)は共用記憶装置を介して通信するが、特定の各LI
Mでデータに対して行なわれる処理が、本発明でいうプ
ロセスの例である。
書に記載されている形式の共用知能記憶装置を含む通信
制御装置では、回線インタフェース・モジュール(LI
M)は共用記憶装置を介して通信するが、特定の各LI
Mでデータに対して行なわれる処理が、本発明でいうプ
ロセスの例である。
旧来のオペレーティング・システムまたは制御プログラ
ムは、メツセージが処理されるまでそれを保持する待ち
行列を生成するための1組の機能を提供する。この待ち
行列に対して行なわれる主な操作が2つある。すなわち
待ち行列へのメツセージの登録(エンキュー)と、待ち
行列からのメツセージの解除(デキュー)である。異な
るタスクが同一の待ち行列に作用することが可能である
。
ムは、メツセージが処理されるまでそれを保持する待ち
行列を生成するための1組の機能を提供する。この待ち
行列に対して行なわれる主な操作が2つある。すなわち
待ち行列へのメツセージの登録(エンキュー)と、待ち
行列からのメツセージの解除(デキュー)である。異な
るタスクが同一の待ち行列に作用することが可能である
。
同一のデータ・メッセージ待ち行列に作用する分散プロ
セスの集合を、プロセス・グループと呼ぶ。
セスの集合を、プロセス・グループと呼ぶ。
スケジューラは、異なるプロセスの要求を調整するもの
である。スケジューラは、分散構成と集中構成のどちら
を考えるかによって、1個のプロセッサ内またはプロセ
ッサのグループ内で仲裁機能を実行する。既知の中央ス
ケジューリング機構では、スケジューラがプロセス・グ
ループ内のタスクの発行するすべての要求を知っている
。したがって、複数のプロセッサに分散された多数のタ
スクの場合(1個のプロセッサ内のソフトウェア経路長
が長過ぎる時に起こる)、中央スケジューラがボトルネ
ックとなる。
である。スケジューラは、分散構成と集中構成のどちら
を考えるかによって、1個のプロセッサ内またはプロセ
ッサのグループ内で仲裁機能を実行する。既知の中央ス
ケジューリング機構では、スケジューラがプロセス・グ
ループ内のタスクの発行するすべての要求を知っている
。したがって、複数のプロセッサに分散された多数のタ
スクの場合(1個のプロセッサ内のソフトウェア経路長
が長過ぎる時に起こる)、中央スケジューラがボトルネ
ックとなる。
さらに、中央スケジューリング機構は、メツセージを要
求しまたメツセージを受け取るために、プロセッサ間通
信を用いることを暗黙の前提とする。
求しまたメツセージを受け取るために、プロセッサ間通
信を用いることを暗黙の前提とする。
このため、中央スケジューラを含むプロセッサが障害を
起こした場合、関係するプロセス・グループに含まれる
すべてのプロセスも障害に陥る。
起こした場合、関係するプロセス・グループに含まれる
すべてのプロセスも障害に陥る。
その結果、既知の中央スケジューリング機構は構成要素
の障害に対して、たとえそれがただ1つの構成要素の障
害であっても、耐性がない。
の障害に対して、たとえそれがただ1つの構成要素の障
害であっても、耐性がない。
中央スケジューリング機構の例として、ホスト・コンピ
ュータ内にある1個の中央スケジューラを開示する、欧
州特許第0230721号明細書が挙げられる。
ュータ内にある1個の中央スケジューラを開示する、欧
州特許第0230721号明細書が挙げられる。
これに対して分散スケジューリング機構では、プロセス
・グループ内のプロセッサと同数のスケジューラが含ま
れる。
・グループ内のプロセッサと同数のスケジューラが含ま
れる。
しかし、既知の分散スケジューリング機構では、分散ス
ケジューラは、分散プロセスと前記プロセスによって使
用される分散データの双方に依存する。このことは、複
数の疎に結合したプロセッサが使用可能な記憶空間を共
用する、共用記憶環境とは両立しない。
ケジューラは、分散プロセスと前記プロセスによって使
用される分散データの双方に依存する。このことは、複
数の疎に結合したプロセッサが使用可能な記憶空間を共
用する、共用記憶環境とは両立しない。
分散スケジューリング機構を用いた手法は、たとえば米
国特許第4387427号明細書、欧州特許第0183
817号明細書及び第0230721号明細書に記載さ
れている。
国特許第4387427号明細書、欧州特許第0183
817号明細書及び第0230721号明細書に記載さ
れている。
米国特許第4387427号明細書は、プロセスのメツ
セージとそのプロセス自体の両方を共ニ待ち行列に登録
することを含む、プロセス指名機構を開示している。上
記の他の2件の欧州特許は、目的プロセッサを確定的に
選択する時分割ソース・プロセッサを開示している。
セージとそのプロセス自体の両方を共ニ待ち行列に登録
することを含む、プロセス指名機構を開示している。上
記の他の2件の欧州特許は、目的プロセッサを確定的に
選択する時分割ソース・プロセッサを開示している。
要約すると、従来技術で教示されたスケジューリング機
構は、集中式でなければ分散式であるが、完全に共用さ
れたタスクや独立のスケジューラと共に働くことができ
ない。
構は、集中式でなければ分散式であるが、完全に共用さ
れたタスクや独立のスケジューラと共に働くことができ
ない。
本発明の目的は、異なる複数のプロセッサに分散された
、それぞれが同一の機能を実行するソフトウェア・タス
ク(基本プログラム)のスケジューリングを行なう高速
の機構及び装置を提供することである。したがって、こ
のスケジューリング機構の目的は、タスクのスケジュー
リング及び実行がプロセッサの障害に対して耐性をもつ
ようにすることである。
、それぞれが同一の機能を実行するソフトウェア・タス
ク(基本プログラム)のスケジューリングを行なう高速
の機構及び装置を提供することである。したがって、こ
のスケジューリング機構の目的は、タスクのスケジュー
リング及び実行がプロセッサの障害に対して耐性をもつ
ようにすることである。
さらに正確に述べると、本発明の目的は、所与のプロセ
ス・グループに属するどのプロセッサの障害に対しても
強いスケジューリング機構を提供することである。
ス・グループに属するどのプロセッサの障害に対しても
強いスケジューリング機構を提供することである。
本発明の他の目的は、共用記憶装置と各プロセッサの間
の信号の数に関して、また前述の欧州特許出願第884
80102.8号明細書で同じエンティティに使用され
ている呼び方によればパケット・メモリと呼ばれる、中
央共用システム記憶装置からデータ・メッセージを取り
出すために、プロセッサが必要とする待ち行列解除操作
の回数に関して、高速のスケジューリング機構を提供す
ることである。
の信号の数に関して、また前述の欧州特許出願第884
80102.8号明細書で同じエンティティに使用され
ている呼び方によればパケット・メモリと呼ばれる、中
央共用システム記憶装置からデータ・メッセージを取り
出すために、プロセッサが必要とする待ち行列解除操作
の回数に関して、高速のスケジューリング機構を提供す
ることである。
本発明の他の目的は、前記データ・メッセージの処理の
優先順位の様々なレベルに応じて、複数のデータ・メッ
セージ用待ち行列を使用することにより、タスクのスケ
ジューリングを行なうことである。
優先順位の様々なレベルに応じて、複数のデータ・メッ
セージ用待ち行列を使用することにより、タスクのスケ
ジューリングを行なうことである。
C0課題を解決するための手段
前記の諸口的は、請求項1に定義する分散スケジューリ
ング機構によって辻成される。
ング機構によって辻成される。
本発明によれば、複数のプロセッサ2が共用知能記憶装
置1に接続されている疎結合多重プロセッサ環境におい
て、前記共用知能記憶装置1に含まれるデータ・メッセ
ージ待ち行列3に接続された時に前記プロセッサ2によ
って実行するため、それぞれ前記記憶装置1内で待ち行
列に登録されるデータ・メッセージまたは待ち行列から
解除されるデータ・メッセージを使用する、ソース・プ
ロセス4またはサーバ・プロセス5の高速スケジューリ
ングを行なうための分散スケジューリング機構が提供さ
れる。このスケジューリング機構は、(a)前記共用記
憶装置内にあるプロセス・グループノ全プロセスに専用
のFIFO(先入れ先出し)データ・メッセージ待ち行
列を作成するステップと、 (b)前記FIFOデータ・メッセージ待ち行列に関し
て、前記待ち行列からデータ・メッセージを解除するこ
とを必要とするサーバ・プロセスの参照を含む信号発信
先プロセッサ・リストSPLを記憶し、各待ち行列解除
操作の後に前記信号発信先プロセッサ・リストを更新す
るステップと、(c)所与のソース・プロセスに関して
、前記FIFOデータ・メッセージ待ち行列にデータ・
メッセージを登録するステップと、 (d)前記FIFOデータ・メッセージ待ち行列の状況
を監視し、前記待ち行列が空の場合、新規データ・メッ
セージを待ち行列に登録する際に、E−NE (空から
非空への遷移)信号を発生するステップと、 (e)前記信号発信先プロセッサ・リスト5PL10に
記憶された、関連するサーバ・プロセスを実行中の全サ
ーバ・プロセッサに、前記E−NE信号を送るステップ
と、 (f)前記E−NE信号をサーバ・プロセスが受け取っ
た時、所与のサーバ・プロセスを専用のスケジューラに
よってスケジュール管現し、それにより前記所与のサー
バ・プロセスが使用するデータ・メッセージを、前記サ
ーバ・プロセスで使用されるデータ・メッセージ待ち行
列から解除するステップと、 (g)各スケジューラ専用のスケジューラ状態表中のF
IFOデータ・メッセージ待ち行列状態を更新するステ
ップとを含むことを特徴とする。
置1に接続されている疎結合多重プロセッサ環境におい
て、前記共用知能記憶装置1に含まれるデータ・メッセ
ージ待ち行列3に接続された時に前記プロセッサ2によ
って実行するため、それぞれ前記記憶装置1内で待ち行
列に登録されるデータ・メッセージまたは待ち行列から
解除されるデータ・メッセージを使用する、ソース・プ
ロセス4またはサーバ・プロセス5の高速スケジューリ
ングを行なうための分散スケジューリング機構が提供さ
れる。このスケジューリング機構は、(a)前記共用記
憶装置内にあるプロセス・グループノ全プロセスに専用
のFIFO(先入れ先出し)データ・メッセージ待ち行
列を作成するステップと、 (b)前記FIFOデータ・メッセージ待ち行列に関し
て、前記待ち行列からデータ・メッセージを解除するこ
とを必要とするサーバ・プロセスの参照を含む信号発信
先プロセッサ・リストSPLを記憶し、各待ち行列解除
操作の後に前記信号発信先プロセッサ・リストを更新す
るステップと、(c)所与のソース・プロセスに関して
、前記FIFOデータ・メッセージ待ち行列にデータ・
メッセージを登録するステップと、 (d)前記FIFOデータ・メッセージ待ち行列の状況
を監視し、前記待ち行列が空の場合、新規データ・メッ
セージを待ち行列に登録する際に、E−NE (空から
非空への遷移)信号を発生するステップと、 (e)前記信号発信先プロセッサ・リスト5PL10に
記憶された、関連するサーバ・プロセスを実行中の全サ
ーバ・プロセッサに、前記E−NE信号を送るステップ
と、 (f)前記E−NE信号をサーバ・プロセスが受け取っ
た時、所与のサーバ・プロセスを専用のスケジューラに
よってスケジュール管現し、それにより前記所与のサー
バ・プロセスが使用するデータ・メッセージを、前記サ
ーバ・プロセスで使用されるデータ・メッセージ待ち行
列から解除するステップと、 (g)各スケジューラ専用のスケジューラ状態表中のF
IFOデータ・メッセージ待ち行列状態を更新するステ
ップとを含むことを特徴とする。
D、実施例
前述したように本発明は、説明の都合上、欧州特許出願
第88480102.8号明細書に記載されているよう
なパケット・メモリの一般環境に関して説明するが、こ
れは本発明の範囲を限定するものではない。
第88480102.8号明細書に記載されているよう
なパケット・メモリの一般環境に関して説明するが、こ
れは本発明の範囲を限定するものではない。
本発明によるスケジューリング機構を理解し実施する上
で有用なパケット・メモリの主な特徴を以下に要約する
。
で有用なパケット・メモリの主な特徴を以下に要約する
。
パケット・メモリと呼ばれる共用記憶装置を介して相互
接続された1組のプロセッサから構成される分散システ
ムを考えてみる。すべてのプロセッサは、パケット・メ
モリ待ち行列(ハードウェア待ち行列)にアクセスする
ことができる。
接続された1組のプロセッサから構成される分散システ
ムを考えてみる。すべてのプロセッサは、パケット・メ
モリ待ち行列(ハードウェア待ち行列)にアクセスする
ことができる。
待ち行列の生成と、それに引き続くプロセッサ間でのメ
ツセージ転送は、高水準コマンド″CREATE” E
NQUEUE″ DEQUEUE’″ PUT”及びG
ET″に−よって行なわれる。これらのコマンドは前述
のパケット・メモリに関する特許出願明細書に説明され
ている。
ツセージ転送は、高水準コマンド″CREATE” E
NQUEUE″ DEQUEUE’″ PUT”及びG
ET″に−よって行なわれる。これらのコマンドは前述
のパケット・メモリに関する特許出願明細書に説明され
ている。
本発明の説明のため、追加のいくつかの定義ならびにパ
ケット・メモリの他の特徴を導入する。
ケット・メモリの他の特徴を導入する。
プロセス・グループは、理論上1個ないし複数のプロセ
ッサに関係することができるが、ここでは同一の待ち行
列に作用する最低2つのプロセッサに関係するものと仮
定する。というのは、本発明によって得られる利点の1
つである耐故障特性は、プロセス・グループに最低2つ
のプロセスが含まれ、かつ各プロセッサごとに1つのプ
ロセスがある場合にしか意味をなさないからである。
ッサに関係することができるが、ここでは同一の待ち行
列に作用する最低2つのプロセッサに関係するものと仮
定する。というのは、本発明によって得られる利点の1
つである耐故障特性は、プロセス・グループに最低2つ
のプロセスが含まれ、かつ各プロセッサごとに1つのプ
ロセスがある場合にしか意味をなさないからである。
話がわかりやすいように、以下の説明の全体を通じてこ
の仮定を用いるが、本発明は各プロセッサに3以上のプ
ロセスが割り当てられる場合にも適用できる。
の仮定を用いるが、本発明は各プロセッサに3以上のプ
ロセスが割り当てられる場合にも適用できる。
さらに、パケット・メモリは、その待ち行列の1つの状
況が修正されたことを相互接続された相異なるプロセッ
サに通知するために、同報通信信号を発信することがで
きる。したがって、パケット・メモリはメツセージ待ち
行列の状態を監視する際に内部で信号E−NEまたはN
E−Eを発生することができ、これによってEMPTY
″(空)状態からNON−EMPTY″(非空)状態へ
の遷移またはその逆の遷移が発生したことを所与のメツ
セージ待ち行列内でプロセッサに知らせることができる
。どちらも技術上重要であるが、以下に説明する理由に
より、「空から非空」への遷移だけを通知するのが最も
好都合である。
況が修正されたことを相互接続された相異なるプロセッ
サに通知するために、同報通信信号を発信することがで
きる。したがって、パケット・メモリはメツセージ待ち
行列の状態を監視する際に内部で信号E−NEまたはN
E−Eを発生することができ、これによってEMPTY
″(空)状態からNON−EMPTY″(非空)状態へ
の遷移またはその逆の遷移が発生したことを所与のメツ
セージ待ち行列内でプロセッサに知らせることができる
。どちらも技術上重要であるが、以下に説明する理由に
より、「空から非空」への遷移だけを通知するのが最も
好都合である。
複数のプロセスが競合して所与の共用待ち行列からデー
タ・メッセージを解除する場合、及び「非空から空」の
遷移が信号NE−Eによって全プロセスに同報通信され
る場合、空の待ち行列に対して待ち行列解除操作が行な
われる事態を回避することはほとんど不可能である。複
数のサーバ・プロセスに等しい負荷がかかっている場合
、これらのプロセスはほぼ同時に待ち行列解除操作を行
なう。最も負荷の軽いプロセスが待ち行列内のメツセー
ジを取る。他のプロセスは信号E−NEを受け取りその
処理を行なう前に、空の待ち行列に対して待ち行列解除
を行なおうとする。さらに、あるプロセスに高い負荷が
かかっている場合、信号E−NEを処理すべき時間にな
らないうちに次のメツセージが待ち行列に入ってくる可
能性がある。
タ・メッセージを解除する場合、及び「非空から空」の
遷移が信号NE−Eによって全プロセスに同報通信され
る場合、空の待ち行列に対して待ち行列解除操作が行な
われる事態を回避することはほとんど不可能である。複
数のサーバ・プロセスに等しい負荷がかかっている場合
、これらのプロセスはほぼ同時に待ち行列解除操作を行
なう。最も負荷の軽いプロセスが待ち行列内のメツセー
ジを取る。他のプロセスは信号E−NEを受け取りその
処理を行なう前に、空の待ち行列に対して待ち行列解除
を行なおうとする。さらに、あるプロセスに高い負荷が
かかっている場合、信号E−NEを処理すべき時間にな
らないうちに次のメツセージが待ち行列に入ってくる可
能性がある。
本発明によれば、空の待ち行列に対する待ち行列解除処
理は、信号NE−Eの処理と同じ経路長を持つ。このと
き、パケット・メモリは信号NE−Eを一切送出しない
ことが好ましい。
理は、信号NE−Eの処理と同じ経路長を持つ。このと
き、パケット・メモリは信号NE−Eを一切送出しない
ことが好ましい。
逆に、「空から非空」への遷移を信号E−NEによって
同報通信する場合は、同一の待ち行列に作用する全プロ
セス(すなわち同一のプロセス・グループに属する全プ
ロセス)が、次のメツセージを待ち行列から解除する権
利を争える状態になったとの通知を受ける。
同報通信する場合は、同一の待ち行列に作用する全プロ
セス(すなわち同一のプロセス・グループに属する全プ
ロセス)が、次のメツセージを待ち行列から解除する権
利を争える状態になったとの通知を受ける。
したがって、E−NE倍信号用いる実施様態だけについ
て詳しく説明する。上記のもう一方の手法は、非常に類
似した手段を含むが、効率は劣ることを理解されたい。
て詳しく説明する。上記のもう一方の手法は、非常に類
似した手段を含むが、効率は劣ることを理解されたい。
所与のプロセッサは、そのプロセスが待ち行列から解除
した最後のメツセージに含まれる状況によって、パケッ
ト・メモリ中の待ち行列が空であることを知る。
した最後のメツセージに含まれる状況によって、パケッ
ト・メモリ中の待ち行列が空であることを知る。
パケット・メモリは、各プロセッサに関係するプロセス
毎に1ピツトを持ち(第3B図)、これによって信号E
−NEを送出する。
毎に1ピツトを持ち(第3B図)、これによって信号E
−NEを送出する。
待ち行列解除は原子操作であり、すなわち、所与のプロ
セッサがパケット・メモリ中の待ち行列の解除を開始す
ると、待ち行列解除コマンドが完全に実行し終るまで割
り込みを受けない。これは高水準コマンドDEQUEU
Eの各ステップに対応するパケット・メモリ内蔵マイク
ロプログラムを適当に連鎖することにより容易に得られ
る。
セッサがパケット・メモリ中の待ち行列の解除を開始す
ると、待ち行列解除コマンドが完全に実行し終るまで割
り込みを受けない。これは高水準コマンドDEQUEU
Eの各ステップに対応するパケット・メモリ内蔵マイク
ロプログラムを適当に連鎖することにより容易に得られ
る。
パケット・メモリが発行するS I GNALコマンド
の形式を第6図に示す。これは、送られた情報が通知情
報であることをパケット・メモリが様々なプロセッサに
知らせるのに用いるコマンド・フィールドCMと、空状
態から非空状態に移ったメツセージ待ち行列のパケット
・メモリ内での識別子に対応する、論理レコード・アド
レスLRAフィールドとを含んでいる。
の形式を第6図に示す。これは、送られた情報が通知情
報であることをパケット・メモリが様々なプロセッサに
知らせるのに用いるコマンド・フィールドCMと、空状
態から非空状態に移ったメツセージ待ち行列のパケット
・メモリ内での識別子に対応する、論理レコード・アド
レスLRAフィールドとを含んでいる。
パケット・メモリ構造と共に使用する場合の旧来のスケ
ジューリング機構の説明。
ジューリング機構の説明。
第2図は、パケット・メモリ1の構造内で使用される従
来技術の集中スケジューリング機構の例を示す。1ない
し5の番号を付けたプロセッサ2はプロセスを実行する
が、これらのプロセスは、パケット・メモリのFIFO
待ち行列3にデータ・メッセージを登録する時はソース
・プロセスと呼び、またパケット・メモリの待ち行列か
らデータ・メッセージを解除する時はサーバ・プロセス
と呼ぶ。プロセッサ2と共用記憶装置1の間の接続はバ
ス・システム8を介して行なうが、このバス・システム
は本発明に含まれないので、詳しい説明は省略する。
来技術の集中スケジューリング機構の例を示す。1ない
し5の番号を付けたプロセッサ2はプロセスを実行する
が、これらのプロセスは、パケット・メモリのFIFO
待ち行列3にデータ・メッセージを登録する時はソース
・プロセスと呼び、またパケット・メモリの待ち行列か
らデータ・メッセージを解除する時はサーバ・プロセス
と呼ぶ。プロセッサ2と共用記憶装置1の間の接続はバ
ス・システム8を介して行なうが、このバス・システム
は本発明に含まれないので、詳しい説明は省略する。
この構成には、複数のソース・プロ、セス、複数のサー
バ(または目的)プロセス及び唯一のスケジューラが存
在できる。これは、共用オブジェクトすなわちデータ・
メッセージを含む待ち行列が、それぞれ異なるプロセッ
サ内で実行中の異なるサーバ・プロセスによって操作で
き、かつある待ち行列があるプロセッサ内のただ1つの
プロセス専用である時に使用される標準構成である。こ
れは最も単純な構成に相当するが、それにもかかわらず
、このような構造における中央スケジューリングの限界
を示すに充分なものである。第2図に示すように、各プ
ロセスが特定のプロセッサで走行する場合、ソース・プ
ロセスJはスケジューラの待ち行列ユにデータ・メッセ
ージを送り、サーバ・プロセス上は待ち行列又を解除し
てメツセージを受け取る準備ができている。
バ(または目的)プロセス及び唯一のスケジューラが存
在できる。これは、共用オブジェクトすなわちデータ・
メッセージを含む待ち行列が、それぞれ異なるプロセッ
サ内で実行中の異なるサーバ・プロセスによって操作で
き、かつある待ち行列があるプロセッサ内のただ1つの
プロセス専用である時に使用される標準構成である。こ
れは最も単純な構成に相当するが、それにもかかわらず
、このような構造における中央スケジューリングの限界
を示すに充分なものである。第2図に示すように、各プ
ロセスが特定のプロセッサで走行する場合、ソース・プ
ロセスJはスケジューラの待ち行列ユにデータ・メッセ
ージを送り、サーバ・プロセス上は待ち行列又を解除し
てメツセージを受け取る準備ができている。
所与のソース・プロセスは所与のサーバ・プロセス専用
の待ち行列の状態を知らず、またサーバ・プロセスがメ
ツセージを受け取る準備ができているかどうかも知らな
いため、サーバの待ち行列に直接データ・メッセージを
送ることができない。
の待ち行列の状態を知らず、またサーバ・プロセスがメ
ツセージを受け取る準備ができているかどうかも知らな
いため、サーバの待ち行列に直接データ・メッセージを
送ることができない。
したがって、プロセス・グループのただ1つのデータ・
メッセージ待ち行列(待ち行列1)の状態を知り、また
どのサーバ・プロセスがデータ・メッセージを受け取る
準備ができているかを知ることは、唯一のスケジューラ
の責任である。
メッセージ待ち行列(待ち行列1)の状態を知り、また
どのサーバ・プロセスがデータ・メッセージを受け取る
準備ができているかを知ることは、唯一のスケジューラ
の責任である。
したがって、メツセージと信号の流れは次のようになる
。
。
a)ソース・プロセス↓がパケット・メモリのデータ待
ち行列工にデータ・メッセージを送る。前記待ち行列は
中央スケジューラ6専用である。
ち行列工にデータ・メッセージを送る。前記待ち行列は
中央スケジューラ6専用である。
b)待ち行列↓が空であった場合、パケット・メモリは
スケジューラ6に信号E−NEを送る。
スケジューラ6に信号E−NEを送る。
C)サーバ・プロセス1が待ち行列)にデータ・メッセ
ージを要求する制御メツセージを送る。
ージを要求する制御メツセージを送る。
d)待ち行列又が空であった場合、パケット・メモリは
スケジューラに信号E−NEを送る。
スケジューラに信号E−NEを送る。
e)スケジューラが待ち行列−?工から要求メツセージ
を解除する。
を解除する。
f)スケジューラが待ち行列↓からデータ・メッセージ
を解除する。
を解除する。
g)スケジューラがサーバ・プロセス工専用の待ち行列
1にデータ・メッセージを送る。
1にデータ・メッセージを送る。
h)待ち行列ユが空であった場合、パケット・メモリは
スケジューラに信号E−NEを送る。
スケジューラに信号E−NEを送る。
i)サーバ・プロセス上が待ち行列盈からデータ・メッ
セージを解除する。
セージを解除する。
この結果、空の待ち行列がなかった場合には6つの操作
(alcs elflgz 1) が必要テアリ、また
最初に全ての待ち行列が空であった場合には9つの操作
(alblCldles fs gshst)が必要で
あることがわかる。さらに、スケジューラ専用のプロセ
ッサlが障害に陥った場合、システム全体が停止する。
(alcs elflgz 1) が必要テアリ、また
最初に全ての待ち行列が空であった場合には9つの操作
(alblCldles fs gshst)が必要で
あることがわかる。さらに、スケジューラ専用のプロセ
ッサlが障害に陥った場合、システム全体が停止する。
上述の欠点は、これから詳しく説明する本発明による分
散スケジューリング機構によって克服される。
散スケジューリング機構によって克服される。
分散スケジューラに関する例
本発明によるスケジューリング機構を第1図を参照して
説明する。
説明する。
この構成には、複数のソース・プロセス4、複数のサー
バ・プロセス5及びサーバ・プロセス毎に1個の割合で
各サーバ・プロセスに関連する複数のスケジューラ6が
存在しうる。この構成は待ち行列3を使用する。すなわ
ち、複数のサーバ・プロセス、実際には上に定義したあ
るプロセス・グループの全サーバ・プロセスが同時に通
知情報を受け取ることができ、またただ1つの待ち行列
3からデータ・メッセージを解除することができる。パ
ケット・メモリからサーバ・プロセスに送られる通知情
報は、空から非空への遷移を示す信号E−NEである。
バ・プロセス5及びサーバ・プロセス毎に1個の割合で
各サーバ・プロセスに関連する複数のスケジューラ6が
存在しうる。この構成は待ち行列3を使用する。すなわ
ち、複数のサーバ・プロセス、実際には上に定義したあ
るプロセス・グループの全サーバ・プロセスが同時に通
知情報を受け取ることができ、またただ1つの待ち行列
3からデータ・メッセージを解除することができる。パ
ケット・メモリからサーバ・プロセスに送られる通知情
報は、空から非空への遷移を示す信号E−NEである。
最も単純な場合、すなわち第1図に示すようにスケジュ
ール管理される各プロセスがそれぞれ異なるプロセッサ
内で走行する場合には、ソース・プロセス↓はデータ・
メッセージをそのプロセス・グループの唯一の待ち行列
である待ち行列3に送る。サーバ・プロセスエ及び−2
−はこのメツセージを待ち行列から解除する準備ができ
ている。
ール管理される各プロセスがそれぞれ異なるプロセッサ
内で走行する場合には、ソース・プロセス↓はデータ・
メッセージをそのプロセス・グループの唯一の待ち行列
である待ち行列3に送る。サーバ・プロセスエ及び−2
−はこのメツセージを待ち行列から解除する準備ができ
ている。
この例は、任意の数のソース・プロセス及びサーバ・プ
ロセスに容易に一般化できる。。
ロセスに容易に一般化できる。。
メツセージと信号の流れは次のようになる。
a)ソース・プロセス↓が待ち行列にデータ・メッセー
ジを送り、データ・メッセージはそこに登録される。
ジを送り、データ・メッセージはそこに登録される。
b)待ち行列が空であった場合、パケット・メモリはサ
ーバ・プロセス↓に信号E−NEを送る。
ーバ・プロセス↓に信号E−NEを送る。
C)同様に、待ち行列が空であった場合、パケット・メ
モリはサーバ・プロセス)に信号E−NEを送る。これ
は、サーバ・プロセス2がサーバ・プロセス↓と同じプ
ロセス・グループに属しているためである。
モリはサーバ・プロセス)に信号E−NEを送る。これ
は、サーバ・プロセス2がサーバ・プロセス↓と同じプ
ロセス・グループに属しているためである。
d)サーバ・プロセスJのスケジューラ6が待ち行列3
からデータ・メッセージを解除する。
からデータ・メッセージを解除する。
上記のステップから、この分散スケジューリング機構は
、サーバ・プロセス毎に1つずつ独立したスケジューラ
を含むことがわかる。このため、スケジューラの1つに
問題が発生した場合に、データ・メッセージを常に他の
スケジューラによって待ち行列から解除し、それに関連
するサーバ・プロセスで使用することができるので、こ
の分散スケジューリング機構に耐故障性が与えられる。
、サーバ・プロセス毎に1つずつ独立したスケジューラ
を含むことがわかる。このため、スケジューラの1つに
問題が発生した場合に、データ・メッセージを常に他の
スケジューラによって待ち行列から解除し、それに関連
するサーバ・プロセスで使用することができるので、こ
の分散スケジューリング機構に耐故障性が与えられる。
したがって、サーバ・プロセスが多重リンク伝送グルー
プを使用した通信制御装置の回線インタフェース・モジ
ュール(LIM)内で走行する通信プロセスである場合
、所与のLIMプロセスのスケジューラに障害が発生し
た場合に、伝送全体は影響を受けない。
プを使用した通信制御装置の回線インタフェース・モジ
ュール(LIM)内で走行する通信プロセスである場合
、所与のLIMプロセスのスケジューラに障害が発生し
た場合に、伝送全体は影響を受けない。
欧州特許出願第88480102.8号明細書に記載さ
れた知能パケット・メモリを持つハードウェアによって
支援される、新しいスケジューリング機構に伴うステッ
プのより詳細な説明を以下に示す。
れた知能パケット・メモリを持つハードウェアによって
支援される、新しいスケジューリング機構に伴うステッ
プのより詳細な説明を以下に示す。
1、パケット・メモリは、待ち行列が「空」状態から「
非空」状態に遷移する時に信号を受け取る必要があるプ
ロセッサ(すなわち、そのプロセス・グループに属する
プロセッサ)の番号リストを各待ち行列毎に記憶する。
非空」状態に遷移する時に信号を受け取る必要があるプ
ロセッサ(すなわち、そのプロセス・グループに属する
プロセッサ)の番号リストを各待ち行列毎に記憶する。
このプロセッサのリストは、信号発信先プロセッサ・リ
スト(SPL)と呼ぶ。第3A図に示すように、このリ
ストは待ち行列に付加された待ち行列制御ブロック(Q
CB)内にある。これは、そのプロセス・グループにプ
ロセッサが追加または削除されたときだけ修正される。
スト(SPL)と呼ぶ。第3A図に示すように、このリ
ストは待ち行列に付加された待ち行列制御ブロック(Q
CB)内にある。これは、そのプロセス・グループにプ
ロセッサが追加または削除されたときだけ修正される。
図中、EPは待ち行列登録(エンキュー)ポインタ、D
Pは待ち行列解除(デキュー)ポインタ、ESは要素サ
イズを表す。
Pは待ち行列解除(デキュー)ポインタ、ESは要素サ
イズを表す。
QCBのその他のフィールド(EP、DP、ES)につ
いて詳細が必要であれば、上に引用した特許出願明細書
を参照されたい。SPLフィールド(10)は第3B図
に詳細に示されている。図中”b″はプール値を表す。
いて詳細が必要であれば、上に引用した特許出願明細書
を参照されたい。SPLフィールド(10)は第3B図
に詳細に示されている。図中”b″はプール値を表す。
QCB中のSPLは16ピツト幅である。システム中の
使用可能な各プロセッサごとに1ビットが定義される。
使用可能な各プロセッサごとに1ビットが定義される。
ビットnがオンの時、プロセッサnが待ち行列に接続さ
れており、その待ち行列が空から非空に遷移するとき信
号E−NEを受け取る。プロセッサが16個ある場合、
SPLは16ビット幅となる。各ビットはそれぞれシス
テム内のただ1つのプロセッサを参照する。所与の待ち
行列が空状態から非空状態に遷移したことを知らせる信
号E−NEが、パケット・メモリから、SPLで当該ビ
ットが1(オン)にセットされたプロセッサに送られる
。
れており、その待ち行列が空から非空に遷移するとき信
号E−NEを受け取る。プロセッサが16個ある場合、
SPLは16ビット幅となる。各ビットはそれぞれシス
テム内のただ1つのプロセッサを参照する。所与の待ち
行列が空状態から非空状態に遷移したことを知らせる信
号E−NEが、パケット・メモリから、SPLで当該ビ
ットが1(オン)にセットされたプロセッサに送られる
。
2、各スケジューラは、そのプロセス・グループに属す
る待ち行列について、待ち行列の状態と待ち行列の識別
子(LRA)を記憶する。これはスケジューラ状態表(
11)(第7図)を用いて行なわれる。スケジューラ毎
に1つのスケジューラ状態表がある。この表は待ち行列
の論理レコード・アドレス(複数の待ち行列がある場合
)とその待ち行列に関連するスケジューラの待ち行列状
111(すなわち空または非空)のリストを含む。
る待ち行列について、待ち行列の状態と待ち行列の識別
子(LRA)を記憶する。これはスケジューラ状態表(
11)(第7図)を用いて行なわれる。スケジューラ毎
に1つのスケジューラ状態表がある。この表は待ち行列
の論理レコード・アドレス(複数の待ち行列がある場合
)とその待ち行列に関連するスケジューラの待ち行列状
111(すなわち空または非空)のリストを含む。
スケジューラ自体は既知であり、本発明の一部ではない
ため、スケジューラ自体についてはこれ以上の説明は省
略する。
ため、スケジューラ自体についてはこれ以上の説明は省
略する。
3、監視プロセスによってデータ・メッセージ待ち行列
が生成される時、パケット・メモリは待ち行列の識別子
を生成し、この待ち行列に関連するプロセッサの番号リ
ストを初期設定する。各スケジューラは表11中に待ち
行列識別子(LRA)を記憶し、待ち行列の状態を値「
空」に初期設定する。これは以下の手順で行なわれる。
が生成される時、パケット・メモリは待ち行列の識別子
を生成し、この待ち行列に関連するプロセッサの番号リ
ストを初期設定する。各スケジューラは表11中に待ち
行列識別子(LRA)を記憶し、待ち行列の状態を値「
空」に初期設定する。これは以下の手順で行なわれる。
(1)プロセッサ(LIM)の1つで走行する監視プロ
セスが、CREATEコマンドを用いて待ち行列を生成
し、次に、 (2)このプロセスが、プロセス・グループの各スケジ
ューラに待ち行列のLRAを送ることによって、スケジ
ューラに待ち行列が生成されたことを知らせ、次に、 (3)各スケジューラがパケット・メモリのデータ・メ
ッセージ待ち行列3に対してATTACHコマンドを実
行する。ATTACHコマンドノ形式は第4図に示す。
セスが、CREATEコマンドを用いて待ち行列を生成
し、次に、 (2)このプロセスが、プロセス・グループの各スケジ
ューラに待ち行列のLRAを送ることによって、スケジ
ューラに待ち行列が生成されたことを知らせ、次に、 (3)各スケジューラがパケット・メモリのデータ・メ
ッセージ待ち行列3に対してATTACHコマンドを実
行する。ATTACHコマンドノ形式は第4図に示す。
次に、
(4)パケット・メモリがQCB9の5PLIO,!=
ATTACHコマンドのプロセッサ・マップ・フィール
ドPMAP L 2との間でOR(論理和)をとってそ
のSPLを更新し、これによってQCBは信号E−NE
を受け取るべきプロセッサのリストを含むようになる。
ATTACHコマンドのプロセッサ・マップ・フィール
ドPMAP L 2との間でOR(論理和)をとってそ
のSPLを更新し、これによってQCBは信号E−NE
を受け取るべきプロセッサのリストを含むようになる。
最後に、
(5)各スケジューラがこの待ち行列に関係するそれ自
身のスケジューラ状態表に「空」の値をセットして、そ
の表を初期設定する。
身のスケジューラ状態表に「空」の値をセットして、そ
の表を初期設定する。
4、既存のプロセス・グループに追加のスケジューラと
それに関連するプロセスを生成する時、監視プロセスが
新しいスケジューラに待ち行列の識別子(LRA)を与
える。次にスケジューラはそれ自体をその待ち行列に付
加し、また待ち行列の状態を値「非空」に初期設定する
。これは以下の手順で行なわれる。
それに関連するプロセスを生成する時、監視プロセスが
新しいスケジューラに待ち行列の識別子(LRA)を与
える。次にスケジューラはそれ自体をその待ち行列に付
加し、また待ち行列の状態を値「非空」に初期設定する
。これは以下の手順で行なわれる。
(1)追加されたスケジューラ1が待ち行列のLRAを
受け取り、 (2)その待ち行列に対してATTACHコマンドを実
行し、 (3)スケジューラ状態表に「非空」に対応する値をセ
ットして、待ち行列を初期設定する。
受け取り、 (2)その待ち行列に対してATTACHコマンドを実
行し、 (3)スケジューラ状態表に「非空」に対応する値をセ
ットして、待ち行列を初期設定する。
この第3のステップは、待ち行列が空でなく、新しい待
ち行列解除操作が可能であるという省略時の前提に対応
する。したがって待ち行列が実際には空であった場合は
、分散スケジューラにその旨が通知される。
ち行列解除操作が可能であるという省略時の前提に対応
する。したがって待ち行列が実際には空であった場合は
、分散スケジューラにその旨が通知される。
5、最初に空であった待ち行列がソース・プロセスから
データ・メッセージを受け取った時、パケット・メモリ
は、そのプロセス・グループに属する全プロセッサに信
号E−NEを送る。この信号を受け取った時、各スケジ
ューラは対応する待ち行列状態を更新する。これは以下
の手順で行なわれる。
データ・メッセージを受け取った時、パケット・メモリ
は、そのプロセス・グループに属する全プロセッサに信
号E−NEを送る。この信号を受け取った時、各スケジ
ューラは対応する待ち行列状態を更新する。これは以下
の手順で行なわれる。
(1)パケット・メモリが信号E−NEを送るべきプロ
セッサを決定するため、5PL10の各ビットを走査し
、 (2)パケット・メモリがSPLで選択されたプロセッ
サに信号を送り、 (3)待ち行列がデータ・メッセージを受け取っり時、
各スケジューラはその待ち行列に関するスケジューラ状
態表11の項目に「非空」状態を入力する。
セッサを決定するため、5PL10の各ビットを走査し
、 (2)パケット・メモリがSPLで選択されたプロセッ
サに信号を送り、 (3)待ち行列がデータ・メッセージを受け取っり時、
各スケジューラはその待ち行列に関するスケジューラ状
態表11の項目に「非空」状態を入力する。
6、スケジューラは待ち行列3からメツセージを解除す
る時、パケット・メモリから待ち行列の新しい状態を示
す状況を受け取る。待ち行列が空である場合、スケジュ
ーラはスケジューラ状態表中の対応する待ち行列状態を
更新する。待ち行列の状況は各DEQUEUEコマンド
の戻りコード(RC)に含まれる。
る時、パケット・メモリから待ち行列の新しい状態を示
す状況を受け取る。待ち行列が空である場合、スケジュ
ーラはスケジューラ状態表中の対応する待ち行列状態を
更新する。待ち行列の状況は各DEQUEUEコマンド
の戻りコード(RC)に含まれる。
7、操作員または監視プロセスが、あるプロセス・グル
ープの1プロセスを非活動化することを決定した時、対
応するスケジューラは活動を停止し、そのプロセス・グ
ループから外れる。従って、それは以下のものを実行す
る。
ープの1プロセスを非活動化することを決定した時、対
応するスケジューラは活動を停止し、そのプロセス・グ
ループから外れる。従って、それは以下のものを実行す
る。
(1)DETACHコマンド。第5図にその形式を示す
。この形式はATTACHコマンドの形式に類似してい
るが、コマンド・コード(cM)が異なる。
。この形式はATTACHコマンドの形式に類似してい
るが、コマンド・コード(cM)が異なる。
所与のスケジューラを走らせているプロセッサによって
DETACHコマンドが実行された結果、パケット・メ
モリ中のデータ・メッセージ待ち行列から前記プロセッ
サが外される。次に、(2)パケット・メモリが5PL
IOとPMAP12の間でXOR(排他的論理和)コマ
ンドを実行する(SPLのビットとPMAPのビットが
共に1″の時、ビット″O″を取る)。次に、(3)ス
ケジューラとそれに関連するサーバ・プロセスが非活動
化される。
DETACHコマンドが実行された結果、パケット・メ
モリ中のデータ・メッセージ待ち行列から前記プロセッ
サが外される。次に、(2)パケット・メモリが5PL
IOとPMAP12の間でXOR(排他的論理和)コマ
ンドを実行する(SPLのビットとPMAPのビットが
共に1″の時、ビット″O″を取る)。次に、(3)ス
ケジューラとそれに関連するサーバ・プロセスが非活動
化される。
例 POとPlだけが最初に活動化されたプロセッサで
ある場合、QCBのSPLフィールドは1100000
0 00000000となる。
ある場合、QCBのSPLフィールドは1100000
0 00000000となる。
Plに対するDETACHコマンドに対応するPMAP
フィールドは、01000000 00ooooooと
なる。SPLとPMAPフィー/l/ドの間でXOR操
作を行なった結果、更新されたSPLの内容は1000
0000 00000000となり、Plが消滅して、
POがデータ・メッセージ待ち行列に依然として接続さ
れているただ1つのプロセッサになったことを意味する
。
フィールドは、01000000 00ooooooと
なる。SPLとPMAPフィー/l/ドの間でXOR操
作を行なった結果、更新されたSPLの内容は1000
0000 00000000となり、Plが消滅して、
POがデータ・メッセージ待ち行列に依然として接続さ
れているただ1つのプロセッサになったことを意味する
。
上に説明した共用プロセスのスケジューリング機構は、
パケット・メモリに接続されたプロセッサ内で走行する
プロセスの高速かつ耐故障性のあるスケジューリングを
可能にする。このスケジューリング機構の効率が高いこ
との証拠を以下に示す。
パケット・メモリに接続されたプロセッサ内で走行する
プロセスの高速かつ耐故障性のあるスケジューリングを
可能にする。このスケジューリング機構の効率が高いこ
との証拠を以下に示す。
まず、以下の表記法を用いる。
・Nは、プロセス・グループ内に含まれるスケジューラ
の数。
の数。
・iはある特定のスケジューラの番号、i=く1・・・
N〉 ・Mは、プロセスに対するデータ・メッセージの数。
N〉 ・Mは、プロセスに対するデータ・メッセージの数。
・Tliは、信号E−NEを実行するための、パケット
・メモリ内での処理時間+パケット・メモリとプロセッ
サiの間の転送時間。
・メモリ内での処理時間+パケット・メモリとプロセッ
サiの間の転送時間。
・T2iは「信号E−NEが活動化された」という事象
を処理し、また待ち行列状態を更新するためのスケジュ
ーラi内での処理時間。
を処理し、また待ち行列状態を更新するためのスケジュ
ーラi内での処理時間。
・T3iは状態の更新から待ち行列解除操作開始までの
プロセッサi内での遅延。
プロセッサi内での遅延。
・T4iは待ち行列解除コマンドを実行するための、パ
ケット・メモリ内での処理時間+パケット・メモリとプ
ロセッサiの間の転送時間。
ケット・メモリ内での処理時間+パケット・メモリとプ
ロセッサiの間の転送時間。
・T5iは「空の待ち行列に対して待ち行列解除を行な
った」という事象を処理し、また待ち行列状態を更新す
るためのスケジューラi内での処理時間である。
った」という事象を処理し、また待ち行列状態を更新す
るためのスケジューラi内での処理時間である。
次に、スケジューリング機構が適正であり(すなわち、
それに関する最終状態機械が絶対にデッドロックしない
)、プロセス・グループに属するどのプロセッサの障害
に対しても強く、また高速であることを証明する。
それに関する最終状態機械が絶対にデッドロックしない
)、プロセス・グループに属するどのプロセッサの障害
に対しても強く、また高速であることを証明する。
・適正さ
データ・メッセージ待ち行列において、実際の状態は「
空」または「非空」のいずれかであり得る。
空」または「非空」のいずれかであり得る。
スケジューラもまた2つの状態「空」と「非空」を定義
する。これはパケット・メモリから信号を受け取った時
にスケジューラ状態表11に記憶される。
する。これはパケット・メモリから信号を受け取った時
にスケジューラ状態表11に記憶される。
障害がない限り、T 111T 2 is T 311
T41及びT51はを限である。したがって、スケジュ
ーラの待ち行列状態が、を限の遅延の後に実際の待ち行
列の状態に等しくなることが証明できる。
T41及びT51はを限である。したがって、スケジュ
ーラの待ち行列状態が、を限の遅延の後に実際の待ち行
列の状態に等しくなることが証明できる。
このことは、2つ、の構成で、すなわち待ち行列識別子
(LRA)の初期設定時と初期設定後に起こる実際の待
ち行列の状態の変更時に成立する。
(LRA)の初期設定時と初期設定後に起こる実際の待
ち行列の状態の変更時に成立する。
工、初期設定後の適正さ
スケジューラ内の待ち行列識別子の初期設定時に待ち行
列の実際の状態は、「空」か不明かのいずれかであり得
る。スケジューラの接続後に待ち行列が生成される場合
は「空」であり、スケジューラの接続前に待ち行列が生
成される場合は不明である。
列の実際の状態は、「空」か不明かのいずれかであり得
る。スケジューラの接続後に待ち行列が生成される場合
は「空」であり、スケジューラの接続前に待ち行列が生
成される場合は不明である。
待ち行列の実際の状態が「空」である場合、スケジュー
ラの待ち行列状態は空であり、2つの状態は一致する。
ラの待ち行列状態は空であり、2つの状態は一致する。
待ち行列の実際の状態が不明である場合、スケジューラ
の初期状態は「卵生」にセットされる。
の初期状態は「卵生」にセットされる。
スケジューラはt+T3fの時点で待ち行列解除を実行
し、t+T3 i+T4 i+T5 iの時点でこの状
態を更新する。
し、t+T3 i+T4 i+T5 iの時点でこの状
態を更新する。
このように、スケジューラの待ち行列状態は初期設定時
間tまたはt+T3iの時点で実際の待ち行列の状態と
等しくなる。
間tまたはt+T3iの時点で実際の待ち行列の状態と
等しくなる。
2、初期設定後の実際の待ち行列状態の変化後の適正さ
初期設定の後に待ち行列の実際の、状態が変化した場合
、有限の遅延の後にスケジューラの状態が実際の待ち行
列の状態と等しくなる。
、有限の遅延の後にスケジューラの状態が実際の待ち行
列の状態と等しくなる。
待ち行列の実際の状態は、以下に示す場合にのみ変化し
得る。
得る。
a、メツセージが待ち行列に登録される時、及び待ち行
列が当初空であった時。スケジューラはt+T1iの時
点で事象″5ETNE”を受け取り、t+T1i+T2
iの時点でその状態を「卵生」に更新する。
列が当初空であった時。スケジューラはt+T1iの時
点で事象″5ETNE”を受け取り、t+T1i+T2
iの時点でその状態を「卵生」に更新する。
b、ローカル・スケジューラ(すなわち作業中のサーバ
・プロセスに関連するスケジューラ)が待ち行列からた
だ1つのメツセージを解除した時、スケジューラはt+
T4 i+T5 iの時点でその状態を「空」に更新す
る。
・プロセスに関連するスケジューラ)が待ち行列からた
だ1つのメツセージを解除した時、スケジューラはt+
T4 i+T5 iの時点でその状態を「空」に更新す
る。
C9待ち行列が「卵生」である場合、リモート・スケジ
ューラ(すなわちスケジュール管理操作を実行している
プロセスとは異なるプロセスに関連するスケジューラ)
がただ1つのメツセージを待ち行列から解除した時、ス
ケジューラはt+T1i+T2 iの時点でその状態を
「卵生」に更新する。
ューラ(すなわちスケジュール管理操作を実行している
プロセスとは異なるプロセスに関連するスケジューラ)
がただ1つのメツセージを待ち行列から解除した時、ス
ケジューラはt+T1i+T2 iの時点でその状態を
「卵生」に更新する。
リモート・スケジューラが待ち行列解除操作を実行し終
えている場合、ローカル・スケジューラはその待ち行列
が空であることを知らないが、t+T3iの時点で待ち
行列解除を実行し、t+T3i+T4 i +T5 i
の時点で待ち行列解除の状況を受け取った時その状態を
更新する。
えている場合、ローカル・スケジューラはその待ち行列
が空であることを知らないが、t+T3iの時点で待ち
行列解除を実行し、t+T3i+T4 i +T5 i
の時点で待ち行列解除の状況を受け取った時その状態を
更新する。
・障害に対する強さ
あるプロセス・グループの各スケジューラは複数のプロ
セッサに分数されており、相互に独立である。したがっ
て、スケジューラは他のスケジューラの存在を知らない
。スケジューラの数Nは定義により2以上であると考え
られる。このため、N−1個までのプロセッサまたはス
ケジューラ、あるいはプロセッサとパケット・メモリの
間の接続に障害が発生しても、残りのスケジューラには
影響がない。
セッサに分数されており、相互に独立である。したがっ
て、スケジューラは他のスケジューラの存在を知らない
。スケジューラの数Nは定義により2以上であると考え
られる。このため、N−1個までのプロセッサまたはス
ケジューラ、あるいはプロセッサとパケット・メモリの
間の接続に障害が発生しても、残りのスケジューラには
影響がない。
あるプロセッサに性能障害が発生しても、各スケジュー
ラがそれ自体のリズムで待ち行列解除操作を実行できる
ので、他のプロセッサは影響を受けない。
ラがそれ自体のリズムで待ち行列解除操作を実行できる
ので、他のプロセッサは影響を受けない。
・性能
スケジューリング機構の性能は、N個のスケジューラで
M個のメツセージを処理するために必要な、通知メツセ
ージの数S及び待ち行列解除操作の回数りで与えられる
。
M個のメツセージを処理するために必要な、通知メツセ
ージの数S及び待ち行列解除操作の回数りで与えられる
。
最悪の場合は、N個のスケジューラがそれぞれのメツセ
ージに対して待ち行列解除操作を実行する時、及びそれ
ぞれのデータ・メッセージに対して通知メツセージが送
られる時である。
ージに対して待ち行列解除操作を実行する時、及びそれ
ぞれのデータ・メッセージに対して通知メツセージが送
られる時である。
M個のメツセージを処理するためには、Smax=MX
Nであり、Dmaχ=MxNである。
Nであり、Dmaχ=MxNである。
最善の場合は、待ち行列が決して空にならない時である
。このとき、最初のメツセージを待ち行列に登録する際
に各スケジューラにただ1つの通知メツセージが送られ
、待ち行列解除はすべて成功する。
。このとき、最初のメツセージを待ち行列に登録する際
に各スケジューラにただ1つの通知メツセージが送られ
、待ち行列解除はすべて成功する。
M個のメツセージを処理するためには、Smi n=N
<MXNであり、Dmin=M<MXNである。
<MXNであり、Dmin=M<MXNである。
このように、待ち行列が空にならない時に最良の性能が
得られるという興味深い事実に留意されたい。処理時間
は待ち行列内のメツセージの数が多い時に最小となるが
、これはスケジューリング機構が大量のスケジューリン
グ処理量を処理する能力を持っていることに相当する。
得られるという興味深い事実に留意されたい。処理時間
は待ち行列内のメツセージの数が多い時に最小となるが
、これはスケジューリング機構が大量のスケジューリン
グ処理量を処理する能力を持っていることに相当する。
E5発明の詳細
な説明したように本発明によれば、プロセス間の通信に
必要なステップ数が減ぜられ、さらに可用性も向上する
という効果がある。
必要なステップ数が減ぜられ、さらに可用性も向上する
という効果がある。
第1図は、本発明のスケジューリング機構に従ってパケ
ット・メモリを使用するプロセッサ間の通信プロセスを
示すブロック図である。 第2図は、対応するソフトウェア・タスクが従来技術に
属する代表的な集中スケジューリング機構に従ってスケ
ジューリングされている、共用記憶装置を介して通信す
る1組のプロセッサのブロック図である。 第3A図は、パケット・メモリ内で待ち行列に登録され
た情報を管理するための待ち行列制御ブロック(QCB
)の形式を示す図である。 第3B図は、第3A図に示したQCBの1フイールドの
詳細図である。 第4図は、本発明のスケジューリング機構で使用するA
TTACHコマンドの形式を示す図である。 第5図は、本発明のスケジューリング機構で使用するD
ETACHコマンドの形式を示す図である。 第6図は、本発明のスケジューリング機構で使用するS
IGNALコマンドの形式を示す図である。 第7図は、第1図に示した各分散スケジューラに含まれ
るスケジューラ状態表の形式を示す図である。 1・・・・共用知能記憶装置、2・・・・プロセッサ、
3・・・・データ・メッセージ待ち行列、4・・・・ソ
ース・プロセス、5・・・・サーバ・プロセス、6・・
・・スケジューラ、10・・・・信号発信先プロセッサ
・リスト(SPL)、11・・・・スケジューラ状態表
、工2・・・・プロセッサ・マップ(PMAP)。
ット・メモリを使用するプロセッサ間の通信プロセスを
示すブロック図である。 第2図は、対応するソフトウェア・タスクが従来技術に
属する代表的な集中スケジューリング機構に従ってスケ
ジューリングされている、共用記憶装置を介して通信す
る1組のプロセッサのブロック図である。 第3A図は、パケット・メモリ内で待ち行列に登録され
た情報を管理するための待ち行列制御ブロック(QCB
)の形式を示す図である。 第3B図は、第3A図に示したQCBの1フイールドの
詳細図である。 第4図は、本発明のスケジューリング機構で使用するA
TTACHコマンドの形式を示す図である。 第5図は、本発明のスケジューリング機構で使用するD
ETACHコマンドの形式を示す図である。 第6図は、本発明のスケジューリング機構で使用するS
IGNALコマンドの形式を示す図である。 第7図は、第1図に示した各分散スケジューラに含まれ
るスケジューラ状態表の形式を示す図である。 1・・・・共用知能記憶装置、2・・・・プロセッサ、
3・・・・データ・メッセージ待ち行列、4・・・・ソ
ース・プロセス、5・・・・サーバ・プロセス、6・・
・・スケジューラ、10・・・・信号発信先プロセッサ
・リスト(SPL)、11・・・・スケジューラ状態表
、工2・・・・プロセッサ・マップ(PMAP)。
Claims (8)
- (1)複数のプロセッサが共用知能記憶装置に接続され
ている疎結合多重プロセッサ環境において、プロセッサ
が前記共用知能記憶装置に含まれるデータ・メッセージ
待ち行列に接続された時に前記プロセッサによって実行
される、ソース・プロセスまたはサーバ・プロセスの高
速のスケジューリングを行なうためのスケジューリング
方法であって、 (a)前記共用記憶装置内でプロセス・グループの全プ
ロセスに専用のFIFOデータ・メッセージ待ち行列を
生成するステップと、 (b)前記FIFOデータ・メッセージ待ち行列に関し
、前記待ち行列からデータ・メッセージを解除すること
を必要とするサーバ・プロセスの参照を含む信号発信先
プロセッサ・リストSPLを記憶するステップと、 (c)所与のソース・プロセスに関して、前記FIFO
データ・メッセージ待ち行列にデータ・メッセージを登
録するステップと、 (d)前記データ・メッセージ待ち行列を監視し、前記
待ち行列が空の場合、新規データ・メッセージを待ち行
列に登録する際に、E−NE(空から非空への遷移)信
号を発生するステップと、 (e)前記信号発信先プロセッサ・リストSPLに記憶
された、関連するサーバ・プロセスを実行中の全サーバ
・プロセッサに、前記E−NE信号を送るステップと、 (f)前記E−NE信号をサーバ・プロセスが受け取っ
たとき、所与のサーバ・プロセスを専用のスケジューラ
によってスケジュール管理し、それにより前記の所与の
サーバ・プロセスで使用されるデータ・メッセージを、
前記サーバ・プロセスで使用される前記データ・メッセ
ージ待ち行列から解除するステップと、 (g)各スケジューラ専用のスケジューラ状態表中のF
IFOデータ・メッセージ待ち行列状態を更新するステ
ップと を含むことを特徴とするスケジューリング方法。 - (2)請求項1に記載の分散スケジュール管理機構であ
って、前記のFIFOデータ・メッセージ待ち行列生成
ステップが、 (a)前記待ち行列を、前記信号発信先プロセッサ・リ
ストSPLを含む待ち行列制御ブロックQCBによって
制御するために、前記共用記憶装置内で前記待ち行列を
識別する論理レコード・アドレス(LRA)を生成する
ステップと、 (b)前記論理レコード・アドレス(LRA)をサーバ
・プロセス専用である各スケジューラのスケジューラ状
態表に記憶するステップと、 (c)前記待ち行列の状態を値「空」に初期設定するス
テップと を含むことを特徴とするスケジューリング方法。 - (3)請求項1に記載のスケジューリング方法であって
、前記の信号発信先プロセッサ・リストSPL記憶ステ
ップが (a)複数のプロセッサのうちでサーバとなり得る各プ
ロセッサごとに1ビットの論理ビットをSPL内で定義
するステップと、 (b)所与のサーバ・プロセスがFIFOデータ・メッ
セージ待ち行列に接続された時、対応する論理ビットを
オンにセットして、信号発信先プロセッサ・リストSP
Lを構成するステップと を含むことを特徴とするスケジューリング方法。 - (4)請求項1に記載のスケジューリング方法であって
、前記信号発信先プロセッサ・リストSPLの前記更新
が、SPLと待ち行列制御ブロックQCBに含まれるプ
ロセッサ・マップ・フィールドPMAPとのOR操作に
よって行なわれ、その際にデータ・メッセージが待ち行
列に登録される時に空から非空への遷移信号E−NEを
受け取るべきサーバ・プロセッサのリストをQCBが含
むことを特徴とするスケジューリング方法。 - (5)請求項1に記載のスケジューリング方法であって
、待ち行列からデータ・メッセージを解除するために使
用される前記の所与のサーバ・プロセス及び専用スケジ
ューラが、E−NE信号を受け取った後で最初に使用可
能になるサーバ・プロセスであることを特徴とするスケ
ジューリング方法。 - (6)請求項3に記載のスケジューリング方法であって
、所与のサーバ・プロセスのFIFOデータ・メッセー
ジ待ち行列への前記の接続が、各サーバ・プロセス専用
のスケジューラによって、前記待ち行列の論理レコード
・アドレス(LRA)とそれに接続された全てのサーバ
・プロセッサのプロセッサ・マップPMAPの両方を定
義するATTACH大域コマンドを用いて行なわれるこ
とを特徴とするスケジューリング方法。 - (7)複数のプロセッサが共用知能記憶装置に接続され
ている疎結合多重プロセッサ環境において、請求項1な
いし6に定義するスケジューリングを行なうための装置
であって、複数のソース・プロセスによってデータ・メ
ッセージが登録されるようなデータ・メッセージ待ち行
列に接続される各サーバ・プロセスごとに、 (a)前記データ・メッセージ待ち行列を監視するステ
ップと、 (b)共用記憶装置によって発生された、前記データ・
メッセージ待ち行列が待ち行列から解除すべきメッセー
ジを含んでいることを通知するためのE−NE信号を受
け取った時、前記データ・メッセージを順に待ち行列か
ら解除して、前記メッセージが前記サーバ・プロセスに
よって使用されるようにするステップと を実行する分散スケジューリング手段を含むことを特徴
とするスケジューリング装置。 - (8)請求項7に記載の装置であって、共用記憶装置内
のデータ・メッセージ待ち行列の論理レコード・アドレ
スと、前記待ち行列の現在の空または非空の状態とを記
憶した、スケジューラ状態表を各分散スケジューリング
手段が含むことを特徴とするスケジューリング装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP89480156.2 | 1989-10-10 | ||
EP89480156A EP0422310A1 (en) | 1989-10-10 | 1989-10-10 | Distributed mechanism for the fast scheduling of shared objects |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03126158A true JPH03126158A (ja) | 1991-05-29 |
JPH07101407B2 JPH07101407B2 (ja) | 1995-11-01 |
Family
ID=8203073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2239184A Expired - Lifetime JPH07101407B2 (ja) | 1989-10-10 | 1990-09-11 | スケジユーリング方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5428781A (ja) |
EP (1) | EP0422310A1 (ja) |
JP (1) | JPH07101407B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730342B2 (en) | 2006-03-16 | 2010-06-01 | Fujitsu Limited | Server system |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574862A (en) * | 1993-04-14 | 1996-11-12 | Radius Inc. | Multiprocessing system with distributed input/output management |
US5828879A (en) * | 1994-12-22 | 1998-10-27 | Fore Systems, Inc. | Method and a scheduler for controlling when a server provides service to an entity |
US5797005A (en) * | 1994-12-30 | 1998-08-18 | International Business Machines Corporation | Shared queue structure for data integrity |
JP3657665B2 (ja) * | 1995-02-14 | 2005-06-08 | 富士通株式会社 | 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法 |
US5832262A (en) * | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
AU1424697A (en) * | 1995-12-29 | 1997-07-28 | Powertv, Inc. | Event filtering feature for a computer operating system in home communications terminal |
US5906658A (en) * | 1996-03-19 | 1999-05-25 | Emc Corporation | Message queuing on a data storage system utilizing message queuing in intended recipient's queue |
US5867657A (en) * | 1996-06-06 | 1999-02-02 | Microsoft Corporation | Distributed scheduling in a multiple data server system |
US6535929B1 (en) * | 1996-07-02 | 2003-03-18 | Sun Microsystems, Inc. | Universal communication mechanism for applications running in a multitasking environment |
EP0825506B1 (en) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
US6178448B1 (en) | 1997-06-18 | 2001-01-23 | International Business Machines Corporation | Optimal link scheduling for multiple links by obtaining and utilizing link quality information |
US5960178A (en) * | 1997-08-08 | 1999-09-28 | Bell Communications Research, Inc. | Queue system and method for point-to-point message passing having a separate table for storing message state and identifier of processor assigned to process the message |
US6418517B1 (en) * | 1997-08-29 | 2002-07-09 | International Business Machines Corporation | Optimized function execution for a multiprocessor computer system |
US6360279B1 (en) * | 1997-10-14 | 2002-03-19 | Bea Systems, Inc. | True parallel client server system and method |
US6230183B1 (en) | 1998-03-11 | 2001-05-08 | International Business Machines Corporation | Method and apparatus for controlling the number of servers in a multisystem cluster |
US6691183B1 (en) | 1998-05-20 | 2004-02-10 | Invensys Systems, Inc. | Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation |
US6636883B1 (en) * | 1999-02-22 | 2003-10-21 | International Business Machines Corporation | Mechanism for passing information between queuing and de-queuing processes |
US6782530B1 (en) * | 1999-04-05 | 2004-08-24 | Microsoft Corporation | Method of ranking messages generated in a computer system |
AU5273100A (en) | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
US6754885B1 (en) | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
US7043728B1 (en) | 1999-06-08 | 2006-05-09 | Invensys Systems, Inc. | Methods and apparatus for fault-detecting and fault-tolerant process control |
US6788980B1 (en) | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
US6614900B1 (en) * | 1999-07-22 | 2003-09-02 | Alcatel Networks Corporation Societe Par Actens De Regime Federal De Respaux Alcatel | Method and apparatus for processing call signaling messages |
US6510352B1 (en) | 1999-07-29 | 2003-01-21 | The Foxboro Company | Methods and apparatus for object-based process control |
US6738840B1 (en) * | 1999-08-31 | 2004-05-18 | Koninklijke Philips Electronics N.V. | Arrangement with a plurality of processors having an interface for a collective memory |
FR2799020A1 (fr) * | 1999-09-28 | 2001-03-30 | Koninkl Philips Electronics Nv | Dispositif a plusieurs processeurs ayant une interface pour une memoire collective |
US7152231B1 (en) * | 1999-11-01 | 2006-12-19 | Harris-Exigent, Inc. | High speed interprocess communication |
US6473660B1 (en) | 1999-12-03 | 2002-10-29 | The Foxboro Company | Process control system and method with automatic fault avoidance |
US6779128B1 (en) | 2000-02-18 | 2004-08-17 | Invensys Systems, Inc. | Fault-tolerant data transfer |
US7577834B1 (en) * | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
US20030110232A1 (en) * | 2001-12-11 | 2003-06-12 | International Business Machines Corporation | Distributing messages between local queues representative of a common shared queue |
EP1502218A4 (en) | 2002-04-15 | 2005-08-17 | Invensys Sys Inc | METHOD AND DEVICES FOR A PROCESS-, FACTORY-, ENVIRONMENT-, ENVIRONMENT- AND COMPUTER AIDED MANUFACTURING-BASED OR OTHERWISE CONTROL SYSTEM WITH REAL-TIME DATA DISTRIBUTION |
US9088474B2 (en) * | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
US8176298B2 (en) * | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US8478811B2 (en) * | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US8015567B2 (en) | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US7346757B2 (en) | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US20050033889A1 (en) * | 2002-10-08 | 2005-02-10 | Hass David T. | Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip |
US7924828B2 (en) * | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US7984268B2 (en) * | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US7961723B2 (en) | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US7293270B1 (en) * | 2002-11-19 | 2007-11-06 | International Business Machines Corporation | System and method for scheduling and coordinating tasks across application processes using shared memory |
US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
US7523157B2 (en) * | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
US7389508B2 (en) * | 2003-09-25 | 2008-06-17 | International Business Machines Corporation | System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment |
US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
US7478390B2 (en) * | 2003-09-25 | 2009-01-13 | International Business Machines Corporation | Task queue management of virtual devices using a plurality of processors |
US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
US8407718B2 (en) * | 2003-12-23 | 2013-03-26 | Corizon Limited | Method and apparatus for composite user interface generation |
US7761923B2 (en) | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
US7844969B2 (en) | 2004-06-17 | 2010-11-30 | Platform Computing Corporation | Goal-oriented predictive scheduling in a grid environment |
US7340654B2 (en) | 2004-06-17 | 2008-03-04 | Platform Computing Corporation | Autonomic monitoring in a grid environment |
US7861246B2 (en) * | 2004-06-17 | 2010-12-28 | Platform Computing Corporation | Job-centric scheduling in a grid environment |
US7240182B2 (en) * | 2004-09-16 | 2007-07-03 | International Business Machines Corporation | System and method for providing a persistent function server |
US8607235B2 (en) * | 2004-12-30 | 2013-12-10 | Intel Corporation | Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention |
WO2007010333A1 (en) * | 2005-07-20 | 2007-01-25 | Hani Girgis | Host security module using a collection of smartcards |
US20070033592A1 (en) * | 2005-08-04 | 2007-02-08 | International Business Machines Corporation | Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors |
US8108863B2 (en) | 2005-12-30 | 2012-01-31 | Intel Corporation | Load balancing for multi-threaded applications via asymmetric power throttling |
US7860857B2 (en) * | 2006-03-30 | 2010-12-28 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
US7773510B2 (en) * | 2007-05-25 | 2010-08-10 | Zeugma Systems Inc. | Application routing in a distributed compute environment |
US20080298230A1 (en) * | 2007-05-30 | 2008-12-04 | Luft Siegfried J | Scheduling of workloads in a distributed compute environment |
US7706291B2 (en) * | 2007-08-01 | 2010-04-27 | Zeugma Systems Inc. | Monitoring quality of experience on a per subscriber, per session basis |
US7794506B2 (en) * | 2007-09-18 | 2010-09-14 | Freedom Innovations, Llc | Multi-axial prosthetic ankle |
US8374102B2 (en) * | 2007-10-02 | 2013-02-12 | Tellabs Communications Canada, Ltd. | Intelligent collection and management of flow statistics |
US9596324B2 (en) * | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
US9720729B2 (en) * | 2008-06-02 | 2017-08-01 | Microsoft Technology Licensing, Llc | Scheduler finalization |
WO2009155483A1 (en) | 2008-06-20 | 2009-12-23 | Invensys Systems, Inc. | Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control |
US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
EP2282264A1 (en) * | 2009-07-24 | 2011-02-09 | ProximusDA GmbH | Scheduling and communication in computing systems |
WO2014113055A1 (en) * | 2013-01-17 | 2014-07-24 | Xockets IP, LLC | Offload processor modules for connection to system memory |
US11226852B2 (en) | 2016-11-25 | 2022-01-18 | Genetec Inc. | System for inter-process communication |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3483520A (en) * | 1966-04-20 | 1969-12-09 | Gen Electric | Apparatus providing inter-processor communication in a multicomputer system |
GB1195899A (en) * | 1967-11-21 | 1970-06-24 | Mini Of Technology | Improvements in or relating to Synchronising Arrangements in Digital Communications Systems. |
US3611306A (en) * | 1969-02-05 | 1971-10-05 | Burroughs Corp | Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system |
US3614745A (en) * | 1969-09-15 | 1971-10-19 | Ibm | Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof |
NL7202503A (ja) * | 1972-02-25 | 1973-08-28 | ||
US3753234A (en) * | 1972-02-25 | 1973-08-14 | Reliance Electric Co | Multicomputer system with simultaneous data interchange between computers |
JPS547252A (en) * | 1977-06-20 | 1979-01-19 | Hitachi Ltd | Program control system |
US4204251A (en) * | 1977-12-28 | 1980-05-20 | Finn Brudevold | Interconnection unit for multiple data processing systems |
US4402046A (en) * | 1978-12-21 | 1983-08-30 | Intel Corporation | Interprocessor communication system |
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
JPS55127745A (en) * | 1979-03-26 | 1980-10-02 | Hitachi Denshi Ltd | Bit buffer system |
US4333144A (en) * | 1980-02-05 | 1982-06-01 | The Bendix Corporation | Task communicator for multiple computer system |
JPS61114363A (ja) * | 1984-11-07 | 1986-06-02 | Hitachi Ltd | 計算機システム間ジヨブ転送方式 |
CA1244555A (en) * | 1985-06-17 | 1988-11-08 | Walter H. Schwane | Process transparent multi storage mode data transfer and buffer control |
JPH07104841B2 (ja) * | 1986-07-24 | 1995-11-13 | 株式会社日立製作所 | 多重処理システムの割込み制御方法 |
US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
-
1989
- 1989-10-10 EP EP89480156A patent/EP0422310A1/en not_active Withdrawn
-
1990
- 1990-09-11 JP JP2239184A patent/JPH07101407B2/ja not_active Expired - Lifetime
-
1993
- 1993-12-16 US US08/170,432 patent/US5428781A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730342B2 (en) | 2006-03-16 | 2010-06-01 | Fujitsu Limited | Server system |
Also Published As
Publication number | Publication date |
---|---|
JPH07101407B2 (ja) | 1995-11-01 |
US5428781A (en) | 1995-06-27 |
EP0422310A1 (en) | 1991-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03126158A (ja) | スケジユーリング方法及び装置 | |
US5434975A (en) | System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications | |
US5390328A (en) | Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage | |
US5339427A (en) | Method and apparatus for distributed locking of shared data, employing a central coupling facility | |
US5652885A (en) | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control | |
US8112559B2 (en) | Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment | |
US6640245B1 (en) | Real-time channel-based reflective memory based upon timeliness requirements | |
US5513328A (en) | Apparatus for inter-process/device communication for multiple systems of asynchronous devices | |
US5887135A (en) | System and method for management of object transitions in an external storage facility accessed by one or more processors | |
US9703603B1 (en) | System and method for executing accelerator call | |
US7640549B2 (en) | System and method for efficiently exchanging data among processes | |
TW200411403A (en) | System and method for transferring data between virtual machines or other computer entities | |
US10140020B2 (en) | Data queue having an unlimited depth | |
CN107391279B (zh) | 一种消息队列容器创建方法、装置及消息队列容器 | |
US20210311782A1 (en) | Thread scheduling for multithreaded data processing environments | |
EP1493081B1 (en) | Data transfer mechanism | |
US8631086B2 (en) | Preventing messaging queue deadlocks in a DMA environment | |
CN112491426A (zh) | 面向多核dsp的服务组件通信架构及任务调度、数据交互方法 | |
CN116243995A (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
CN101189579B (zh) | 用于多线程处理的使用信号量的方法和装置 | |
US10713188B2 (en) | Inter-process signaling system and method | |
JP3713977B2 (ja) | リアルタイム分散システム | |
WO2021179222A1 (zh) | 一种调度装置、调度方法、加速系统及无人机 | |
EP0201065A2 (en) | Virtual single machine with logical ring and with message-like hardware interrupts and processor exceptions | |
WO1992003779A1 (en) | Method of efficient communication between coprocessors |