JPH07101407B2 - スケジユーリング方法及び装置 - Google Patents
スケジユーリング方法及び装置Info
- Publication number
- JPH07101407B2 JPH07101407B2 JP2239184A JP23918490A JPH07101407B2 JP H07101407 B2 JPH07101407 B2 JP H07101407B2 JP 2239184 A JP2239184 A JP 2239184A JP 23918490 A JP23918490 A JP 23918490A JP H07101407 B2 JPH07101407 B2 JP H07101407B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- data message
- scheduler
- empty
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は、共用知能記憶装置に接続されたフロント・エ
ンド・プロセッサなど疎に結合された多重プロセッサ環
境において共用オブジェクトのスケジューリングを行な
うための分散機構に関するものである。本発明は欧州特
許出願第88480102.8号明細書に記載されているような、
それを通じてユーザまたは多重プロセッサが通信する、
共用知能記憶装置を持つ通信制御装置で典型的に使用さ
れるが、それだけに限定されるものでなく、記憶装置内
での情報の物理的位置に対して最適レベルの透過性(tr
ansparency)を提供する。
ンド・プロセッサなど疎に結合された多重プロセッサ環
境において共用オブジェクトのスケジューリングを行な
うための分散機構に関するものである。本発明は欧州特
許出願第88480102.8号明細書に記載されているような、
それを通じてユーザまたは多重プロセッサが通信する、
共用知能記憶装置を持つ通信制御装置で典型的に使用さ
れるが、それだけに限定されるものでなく、記憶装置内
での情報の物理的位置に対して最適レベルの透過性(tr
ansparency)を提供する。
B.従来の技術およびその課題 本発明の背景は、メッセージを用いて通信するプロセス
から構成されたシステム構造である。プロセスとは、基
本タスク(システムにロードし、システム内で実行する
ことのできる基本プログラム)集合である。プロセス
は、最初に複数のプロセッサ内で生成され、これら異な
るプロセッサ内で実行され、各プロセッサが特有のデー
タを処理することがきる。メッセージはプロセッサ間の
通信を可能にする。例えば、要求を出す側のプロセスが
あるサーバ・プロセスに要求を出すため特定のメッセー
ジを送り、サーバ・プロセスはそれに応じて情報を提供
しまたは処理を行なう。
から構成されたシステム構造である。プロセスとは、基
本タスク(システムにロードし、システム内で実行する
ことのできる基本プログラム)集合である。プロセス
は、最初に複数のプロセッサ内で生成され、これら異な
るプロセッサ内で実行され、各プロセッサが特有のデー
タを処理することがきる。メッセージはプロセッサ間の
通信を可能にする。例えば、要求を出す側のプロセスが
あるサーバ・プロセスに要求を出すため特定のメッセー
ジを送り、サーバ・プロセスはそれに応じて情報を提供
しまたは処理を行なう。
たとえば欧州特許出願88480102.8号明細書に記載されて
いる形式の共用知能記憶装置を含む通信制御装置では、
回線インターフェース・モジュール(LIM)は共用記憶
装置を介して通信するが、特定の各LIMでデータに対し
て行なわれる処理が、本発明でいうプロセスの例であ
る。
いる形式の共用知能記憶装置を含む通信制御装置では、
回線インターフェース・モジュール(LIM)は共用記憶
装置を介して通信するが、特定の各LIMでデータに対し
て行なわれる処理が、本発明でいうプロセスの例であ
る。
旧来のオペレーティング・システムまたは制御プログラ
ムは、メッセージが処理されるまでそれを保持する待ち
行列を生成するための1組の機能を提供する。この待ち
行列に対して行なわれる主な操作が2つある。すなわち
待ち行列へのメッセージの登録(エンキュー)と、待ち
行列からのメッセージの解除(デキュー)である。異な
るタスクが同一の待ち行列に作用することが可能であ
る。同一のデータ・メッセージ待ち行列に作用する分散
プロセスの集合を、プロセス・グループと呼ぶ。
ムは、メッセージが処理されるまでそれを保持する待ち
行列を生成するための1組の機能を提供する。この待ち
行列に対して行なわれる主な操作が2つある。すなわち
待ち行列へのメッセージの登録(エンキュー)と、待ち
行列からのメッセージの解除(デキュー)である。異な
るタスクが同一の待ち行列に作用することが可能であ
る。同一のデータ・メッセージ待ち行列に作用する分散
プロセスの集合を、プロセス・グループと呼ぶ。
スケジューラは、異なるプロセスの要求を調整するもの
である。スケジューラは、分散構成と集中構成のどちら
かを考えるかによって、1個のプロセッサ内またはプロ
セッサのグループ内で仲裁機能を実行する。既知の中央
スケジューリング機構では、スケジューラがプロセス・
グループ内のタスクの発行するすべての要求を知ってい
る。したがって、複数のプロセッサに分散された多数の
タスクの場合(1個のプロセッサ内のソフトウェア経路
長が長過ぎる時に起こる)、中央スケジューラがボトル
ネックとなる。
である。スケジューラは、分散構成と集中構成のどちら
かを考えるかによって、1個のプロセッサ内またはプロ
セッサのグループ内で仲裁機能を実行する。既知の中央
スケジューリング機構では、スケジューラがプロセス・
グループ内のタスクの発行するすべての要求を知ってい
る。したがって、複数のプロセッサに分散された多数の
タスクの場合(1個のプロセッサ内のソフトウェア経路
長が長過ぎる時に起こる)、中央スケジューラがボトル
ネックとなる。
さらに、中央スケジューリング機構は、メッセージを要
求しまたメッセージを受け取るために、プロセッサ間通
信を用いることを暗黙の前提とする。このため、中央ス
ケジューラを含むプロセッサが障害を起こした場合、関
係するプロセス・グループに含まれるすべてのプロセス
も障害に陥る。
求しまたメッセージを受け取るために、プロセッサ間通
信を用いることを暗黙の前提とする。このため、中央ス
ケジューラを含むプロセッサが障害を起こした場合、関
係するプロセス・グループに含まれるすべてのプロセス
も障害に陥る。
その結果、既知の中央スケジューリング機構は構成要素
の障害に対して、たとえそれがただ1つの構成要素の障
害であっても、耐性がない。
の障害に対して、たとえそれがただ1つの構成要素の障
害であっても、耐性がない。
中央スケジューリング機構の例として、ホスト・コンピ
ュータ内にある1個の中央スケジューラを開示する、欧
州特許第0230721号明細書が挙げられる。
ュータ内にある1個の中央スケジューラを開示する、欧
州特許第0230721号明細書が挙げられる。
これに対して分散スケジューリング機構では、プロセス
・グループ内のプロセッサと同数のスケジューラが含ま
れる。
・グループ内のプロセッサと同数のスケジューラが含ま
れる。
しかし、既知の分散スケジューリング機構では、分散ス
ケジューラは、分散プロセスと前記プロセスによって使
用される分散データの双方に依存する。このことは、複
数の疎に結合したプロセッサが使用可能な記憶空間を共
用する、共用記憶環境とは両立しない。
ケジューラは、分散プロセスと前記プロセスによって使
用される分散データの双方に依存する。このことは、複
数の疎に結合したプロセッサが使用可能な記憶空間を共
用する、共用記憶環境とは両立しない。
分散スケジューリング機構を用いた手法は、たとえば米
国特許第4387427号明細書、欧州特許第0183817号明細書
及び第0230721号明細書に記載されている。
国特許第4387427号明細書、欧州特許第0183817号明細書
及び第0230721号明細書に記載されている。
米国特許第4387427号明細書は、プロセスのメッセージ
とそのプロセス自体の両方を共に待ち行列に登録するこ
とを含む、プロセス指名機構を開示している。上記の他
の2件の欧州特許は、目的プロセッサを確定的に選択す
る時分割ソース・プロセッサを開示している。
とそのプロセス自体の両方を共に待ち行列に登録するこ
とを含む、プロセス指名機構を開示している。上記の他
の2件の欧州特許は、目的プロセッサを確定的に選択す
る時分割ソース・プロセッサを開示している。
要約すると、従来技術で教示されたスケジューリング機
構は、集中式でなければ分散式であるが、完全に共用さ
れたタスクや独立のスケジューラと共に働くことができ
ない。
構は、集中式でなければ分散式であるが、完全に共用さ
れたタスクや独立のスケジューラと共に働くことができ
ない。
本発明の目的は、異なる複数のプロセッサに分散され
た、それぞれが同一の機能を実行するソフトウェア・タ
スク(基本的プログラム)のスケジューリングを行なう
高速の機構及び装置を提供することである。したがっ
て、このスケジューリング機構の目的は、タスクのスケ
ジューリング及び実行がプロセッサの障害に対して耐性
をもつようにすることである。
た、それぞれが同一の機能を実行するソフトウェア・タ
スク(基本的プログラム)のスケジューリングを行なう
高速の機構及び装置を提供することである。したがっ
て、このスケジューリング機構の目的は、タスクのスケ
ジューリング及び実行がプロセッサの障害に対して耐性
をもつようにすることである。
さらに正確に述べると、本発明の目的は、所与のプロセ
ス・グレープに属するどのプロセッサの障害に対しても
強いスケジューリング機構を提供することである。
ス・グレープに属するどのプロセッサの障害に対しても
強いスケジューリング機構を提供することである。
本発明の他の目的は、共用記憶装置と各プロセッサの間
の信号の数に関して、また前述の欧州特許出願第884801
02.8号明細書で同じエンティティに使用されている呼び
方によればパケット・メモリと呼ばれる、中央共用シス
テム記憶装置からデータ・メッセージを取り出すため
に、プロセッサが必要とする待ち行列解除操作の回数に
関して、高速のスケジューリング機構を提供することで
ある。
の信号の数に関して、また前述の欧州特許出願第884801
02.8号明細書で同じエンティティに使用されている呼び
方によればパケット・メモリと呼ばれる、中央共用シス
テム記憶装置からデータ・メッセージを取り出すため
に、プロセッサが必要とする待ち行列解除操作の回数に
関して、高速のスケジューリング機構を提供することで
ある。
本発明の他の目的は、前記データ・メッセージの処理の
優先順位の様々なレベルに応じて、複数のデータ・メッ
セージ用待ち行列を使用することにより、タスクのスケ
ジューリングを行なうことである。
優先順位の様々なレベルに応じて、複数のデータ・メッ
セージ用待ち行列を使用することにより、タスクのスケ
ジューリングを行なうことである。
C.問題点を解決するための手段 前記の諸目的は、請求項1に定義される分散スケジュー
リング機構によって達成される。
リング機構によって達成される。
本発明によれば、1つのプロセスグループを複数のプロ
セスで構成し、当該複数のプロセスを実行するために複
数のプロセッサが共用記憶装置に接続する疎結合多重プ
ロセッサ環境において、前記プロセッサがデータメッセ
ージの登録または解消のために前記共用記憶装置に含ま
れるデータ・メッセージ待ち行列に接続された時に前記
プロセッサによって実行される、前記プロセスグループ
の中のソース・プロセスまたはサーバ・プロセスの高速
のスケジューリングを行なうためのスケジューリング方
法であって、 (a)前記プロセスグループの全プロセスに専用のFIFO
データ・メッセージ待ち行列を前記共用記憶装置内に生
成するステップと、 (b)前記FIFOデータ・メッセージ待ち行列に関し、前
記待ち行列からデータ・メッセージを解除することを必
要とする前記プロセッサの参照を含む信号発信先ウロセ
ッサ・リストSPLを記憶するステップと、 (c)前記プロセスグループの中の所与のソース・プロ
セスに関して、前記FIFOデータ・メッセージ待ち行列に
データ・メッセージを登録するステップと、 (d)前記データ・メッセージ待ち行列を監視し、前記
待ち行列が空の場合、新規データ・メッセージ待ち行列
を登録する際に、E−NE(空から非空への偏移)信号を
発生するステップと、 (e)前記信号発信先プロセッサ・リストSPLに記憶さ
れた参照と関連するプロセッサであってサーバ・プロセ
スを実行中の全てのプロセッサに、前記E−NE信号を送
るステップと、 (f)所与のサーバ・プロセスのスケジュール管理を行
う専用のスケジューラを当該サーバ・プロセスを実行す
るプロセッサ内に設けておき、前記E−NE信号をサーバ
・プロセスが受け取ったとき、前記所与のサーバ・プロ
セスで使用されるデータ・メッセージを、前記スケジュ
ーラにより前記データ・メッセージ待ち行列から解除す
るステップと、 (g)前記FIFOデータメッセージが空か非空かを示す情
報を記憶しておくためのスケジューラ状態表を前記スケ
ジューラ内に設けておき、E−NE信号の受信および前記
解除処理に関連して該スケジューラ状態表の情報内容を
更新するステップと を含むことを特徴とする。
セスで構成し、当該複数のプロセスを実行するために複
数のプロセッサが共用記憶装置に接続する疎結合多重プ
ロセッサ環境において、前記プロセッサがデータメッセ
ージの登録または解消のために前記共用記憶装置に含ま
れるデータ・メッセージ待ち行列に接続された時に前記
プロセッサによって実行される、前記プロセスグループ
の中のソース・プロセスまたはサーバ・プロセスの高速
のスケジューリングを行なうためのスケジューリング方
法であって、 (a)前記プロセスグループの全プロセスに専用のFIFO
データ・メッセージ待ち行列を前記共用記憶装置内に生
成するステップと、 (b)前記FIFOデータ・メッセージ待ち行列に関し、前
記待ち行列からデータ・メッセージを解除することを必
要とする前記プロセッサの参照を含む信号発信先ウロセ
ッサ・リストSPLを記憶するステップと、 (c)前記プロセスグループの中の所与のソース・プロ
セスに関して、前記FIFOデータ・メッセージ待ち行列に
データ・メッセージを登録するステップと、 (d)前記データ・メッセージ待ち行列を監視し、前記
待ち行列が空の場合、新規データ・メッセージ待ち行列
を登録する際に、E−NE(空から非空への偏移)信号を
発生するステップと、 (e)前記信号発信先プロセッサ・リストSPLに記憶さ
れた参照と関連するプロセッサであってサーバ・プロセ
スを実行中の全てのプロセッサに、前記E−NE信号を送
るステップと、 (f)所与のサーバ・プロセスのスケジュール管理を行
う専用のスケジューラを当該サーバ・プロセスを実行す
るプロセッサ内に設けておき、前記E−NE信号をサーバ
・プロセスが受け取ったとき、前記所与のサーバ・プロ
セスで使用されるデータ・メッセージを、前記スケジュ
ーラにより前記データ・メッセージ待ち行列から解除す
るステップと、 (g)前記FIFOデータメッセージが空か非空かを示す情
報を記憶しておくためのスケジューラ状態表を前記スケ
ジューラ内に設けておき、E−NE信号の受信および前記
解除処理に関連して該スケジューラ状態表の情報内容を
更新するステップと を含むことを特徴とする。
D.実施例 前述したように本発明は、説明の都合上、欧州特許出願
第88480102.8号明細書に記載されているようなパケット
・メモリの一般環境に関して説明するが、これは本発明
の範囲を限定するものではない。
第88480102.8号明細書に記載されているようなパケット
・メモリの一般環境に関して説明するが、これは本発明
の範囲を限定するものではない。
本発明によるスケジューリング機構を理解し実施する上
で有用なパケット・メモリの主な特徴を以下に要約す
る。
で有用なパケット・メモリの主な特徴を以下に要約す
る。
パケット・メモリと呼ばれる共用記憶装置を介して相互
接続された1組のプロセッサから構成される分散システ
ムを考えてみる。すべてのプロセッサは、パケット・メ
モリ待ち行列(ハードウェア待ち行列)にアクセスする
ことができる。
接続された1組のプロセッサから構成される分散システ
ムを考えてみる。すべてのプロセッサは、パケット・メ
モリ待ち行列(ハードウェア待ち行列)にアクセスする
ことができる。
待ち行列の生成と、それに引き続くプロセッサ間でのメ
ッセージ転送は、高水準コマンド“CREATE"、“ENQUEU
E"、“DEQUEUE"、“PUT"及び“GET"によって行なわれ
る。これらのコマンドは前述のパケット・メモリに関す
る特許出願明細書に説明されている。
ッセージ転送は、高水準コマンド“CREATE"、“ENQUEU
E"、“DEQUEUE"、“PUT"及び“GET"によって行なわれ
る。これらのコマンドは前述のパケット・メモリに関す
る特許出願明細書に説明されている。
本発明の説明のため、追加のいくつかの定義ならびにパ
ケット・メモリの他の特徴を導入する。
ケット・メモリの他の特徴を導入する。
プロセス・グループは、理論上1個ないし複数のプロセ
ッサに関係することができるが、ここでは同一の待ち行
列に作用する最低2つのプロセッサに関係するものと仮
定する。というのは、本発明によって得られる利点の1
つである耐故障特性は、プロセス・グループに最低2つ
のプロセスが含まれ、かつ各プロセッサごとに1つのプ
ロセスがある場合にしか意味をなさないからである。
ッサに関係することができるが、ここでは同一の待ち行
列に作用する最低2つのプロセッサに関係するものと仮
定する。というのは、本発明によって得られる利点の1
つである耐故障特性は、プロセス・グループに最低2つ
のプロセスが含まれ、かつ各プロセッサごとに1つのプ
ロセスがある場合にしか意味をなさないからである。
話がわかりやすいように、以下の説明の全体を通じてこ
の仮定を用いるが、本発明はプロセッサに3以上のプロ
セスが割り当てられる場合にも適用できる。
の仮定を用いるが、本発明はプロセッサに3以上のプロ
セスが割り当てられる場合にも適用できる。
さらに、パケット・メモリは、その待ち行列の1つの状
況が修正されたことを相互接続された相異なるプロセッ
サに通知するために、同報通信号を発信することができ
る。したがって、パケット・メモリはメッセージ待ち行
列の状態を監視する際に内部で信号E−NEまたはNE−E
を発生することができ、これによって“EMPTY"(空)状
態から“NON−EMPTY"(非空)状態への遷移またはその
逆の遷移が発生したことを所与のメッセージ待ち行列内
でプロセッサに知らせることができる。どちらも技術上
重要であるが、以下に説明する理由により、「空から非
空」への遷移だけを通知するのが最も好都合である。
況が修正されたことを相互接続された相異なるプロセッ
サに通知するために、同報通信号を発信することができ
る。したがって、パケット・メモリはメッセージ待ち行
列の状態を監視する際に内部で信号E−NEまたはNE−E
を発生することができ、これによって“EMPTY"(空)状
態から“NON−EMPTY"(非空)状態への遷移またはその
逆の遷移が発生したことを所与のメッセージ待ち行列内
でプロセッサに知らせることができる。どちらも技術上
重要であるが、以下に説明する理由により、「空から非
空」への遷移だけを通知するのが最も好都合である。
複数のプロセスが競合して所与の共用待ち行列からデー
タ・メッセージを解除する場合、及「非空から空」の遷
移が信号NE−Eによって全プロセスに同報通信される場
合、空の待ち行列に対して待ち行列解除操作が行なわれ
る事態を回避することはほとんど不可能である。複数の
サーバ・プロセスに等しい負荷がかかっている場合、こ
れらのプロセスはほぼ同時に待ち行列解除操作を行な
う。最も負荷の軽いプロセスが待ち行列内のメッセージ
を取る。他のプロセス信号はE−NEを受け取りその処理
を行なう前に、空の待ち行列に対して待ち行列解除を行
なおうとする。さらに、あるプロセスに高い負荷がかか
っている場合、信号E−NEを処理すべき時間にならない
うちに次のメッセージが待ち行列に入ってくる可能性が
ある。本発明によれば、空の待ち行列に対する待ち行列
解除処理は、信号NE−Eの処理と同じ経路長を持つ。こ
のとき、パケット・メモリは信号NE−Eを一切送出しな
いことが好ましい。
タ・メッセージを解除する場合、及「非空から空」の遷
移が信号NE−Eによって全プロセスに同報通信される場
合、空の待ち行列に対して待ち行列解除操作が行なわれ
る事態を回避することはほとんど不可能である。複数の
サーバ・プロセスに等しい負荷がかかっている場合、こ
れらのプロセスはほぼ同時に待ち行列解除操作を行な
う。最も負荷の軽いプロセスが待ち行列内のメッセージ
を取る。他のプロセス信号はE−NEを受け取りその処理
を行なう前に、空の待ち行列に対して待ち行列解除を行
なおうとする。さらに、あるプロセスに高い負荷がかか
っている場合、信号E−NEを処理すべき時間にならない
うちに次のメッセージが待ち行列に入ってくる可能性が
ある。本発明によれば、空の待ち行列に対する待ち行列
解除処理は、信号NE−Eの処理と同じ経路長を持つ。こ
のとき、パケット・メモリは信号NE−Eを一切送出しな
いことが好ましい。
逆に、「空から非空」への遷移を信号E−NEによって同
報通信する場合は、同一の待ち行列に作用する全プロセ
ス(すなわち同一のプロセス・グループに属する全プロ
セス)が、次のメッセージを待ち行列から解除する権利
を争える状態になったとの通知を受ける。
報通信する場合は、同一の待ち行列に作用する全プロセ
ス(すなわち同一のプロセス・グループに属する全プロ
セス)が、次のメッセージを待ち行列から解除する権利
を争える状態になったとの通知を受ける。
したがって、E−NE信号を用いる実施態様だけについて
は詳しく説明する。上記のもう一方の手法は、非常に類
似した手段を含むが、効率は劣ることを理解されたい。
所与のプロセッサは、そのプロセスが待ち行列から解除
した最後のメッセージに含まれる状況によって、パケッ
ト・メモリ中の待ち行列が空であることを知る。
は詳しく説明する。上記のもう一方の手法は、非常に類
似した手段を含むが、効率は劣ることを理解されたい。
所与のプロセッサは、そのプロセスが待ち行列から解除
した最後のメッセージに含まれる状況によって、パケッ
ト・メモリ中の待ち行列が空であることを知る。
パケット・メモリは、各プロセッサに関係するプロセス
毎に1ビットを持ち(第3B図)、これによって信号E−
NEを送出する。
毎に1ビットを持ち(第3B図)、これによって信号E−
NEを送出する。
待ち行列解除は原子操作であり、すなわち、所世のプロ
セッサがパケット・メモリ中の待ち行列の解除を開始す
ると、待ち行列解除コマンドが完全に実行し終るまで割
り込みを受けない。これは高水準コマンドDEQUEUEの各
ステップに対応するパケット・メモリ内蔵マイクロプロ
グラムを適当に連鎖することにより容易に得られる。
セッサがパケット・メモリ中の待ち行列の解除を開始す
ると、待ち行列解除コマンドが完全に実行し終るまで割
り込みを受けない。これは高水準コマンドDEQUEUEの各
ステップに対応するパケット・メモリ内蔵マイクロプロ
グラムを適当に連鎖することにより容易に得られる。
パケット・メモリが発行するSIGNALコマンドの形式を第
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図に示すように、各プロセス
が特定のプロセッサで走行する場合、ソース・プロセス
1はスケジューラの待ち行列1にデータ・メッセージを
送り、サーバ・プロセス1は待ち行列2を解除してメッ
セージを受け取る準備ができている。
(または目的)プロセス唯一のスケジューラが存在でき
る。これは、共用オブジェクトすなわちデータ・メッセ
ージを含む待ち行列が、それぞれ異なるプロセッサ内で
実行中の異なるサーバ・プロセスによって操作でき、か
つある待ち行列があるプロセッサ内のただ1つのプロセ
ス専用である時に使用される標準構成である。これは最
も単純な構成に相当するが、それにもかかわらず、この
ような構造における中央スケジューリングの限界を示す
に充分なものである。第2図に示すように、各プロセス
が特定のプロセッサで走行する場合、ソース・プロセス
1はスケジューラの待ち行列1にデータ・メッセージを
送り、サーバ・プロセス1は待ち行列2を解除してメッ
セージを受け取る準備ができている。
所与のソース・プロセスは所与のサーバ・プロセス専用
の待ち行列の状態を知らず、またサーバ・プロセスがメ
ッセージを受け取り準備ができているかどうかも知らな
いため、サーバの待ち行列に直接データ・メッセージを
送ることができない。したがって、プロセス・グループ
のただ1つのデータ・メッセージ待ち行列(待ち行列
1)の状態を知り、またどのサーバ・プロセスがデータ
・メッセージを受け取る準備ができているかを知ること
は、唯一のスケジューラの責任である。
の待ち行列の状態を知らず、またサーバ・プロセスがメ
ッセージを受け取り準備ができているかどうかも知らな
いため、サーバの待ち行列に直接データ・メッセージを
送ることができない。したがって、プロセス・グループ
のただ1つのデータ・メッセージ待ち行列(待ち行列
1)の状態を知り、またどのサーバ・プロセスがデータ
・メッセージを受け取る準備ができているかを知ること
は、唯一のスケジューラの責任である。
したがって、メッセージと信号の流れは次のようにな
る。
る。
a)ソース・プロセス1がパケット・メモリのデータ待
ち行列1にデータ・メッセージを送る。前記待ち行列は
中央スケジューラ6専用である。
ち行列1にデータ・メッセージを送る。前記待ち行列は
中央スケジューラ6専用である。
b)待ち行列1が空であった場合、パケット・メモリは
スケジューラー6に信号E−NEを送る。
スケジューラー6に信号E−NEを送る。
c)サーバ・プロセス1が待ち行列2にデータ・メッセ
ージを要求する制御メッセージを送る。
ージを要求する制御メッセージを送る。
d)待ち行列が2が空であった場合、パケット・メモリ
はスケジューラに信号E−NEを送る。
はスケジューラに信号E−NEを送る。
e)スケジューラが待ち行列2から要求メッセージを解
除する。
除する。
f)スケジューラが待ち業待ち行列1からデータ・メッ
セージを解除する。
セージを解除する。
g)スケジューラがサーバ・プロセス1専用の待ち行列
1専用の待ち行列3にデータ・メッセージを送る。
1専用の待ち行列3にデータ・メッセージを送る。
h)待ち行列3が空であった場合、パケットメモリはス
ケジューラに信号E−NEを送る。
ケジューラに信号E−NEを送る。
i)サーバ・プロセス1が待ち行列3からデータ・メッ
セージを解除する。この結果、空の待ち行列がなかった
場合には6つの操作(a、c、e、f、g、i)が必要
であり、また最初に全ての待ち行列が空であった場合に
は9つの操作(a、b、c、d、e、f、g、h、i)
が必要であることがわかる。さらに、スケジューラ専用
のプロセッサ3が障害に陥った場合、システム全体が停
止する。
セージを解除する。この結果、空の待ち行列がなかった
場合には6つの操作(a、c、e、f、g、i)が必要
であり、また最初に全ての待ち行列が空であった場合に
は9つの操作(a、b、c、d、e、f、g、h、i)
が必要であることがわかる。さらに、スケジューラ専用
のプロセッサ3が障害に陥った場合、システム全体が停
止する。
上述の欠点は、これから詳しく説明する本発明による分
散スケジューリング機構によって克服される。
散スケジューリング機構によって克服される。
分散スケジューラに関する例 本発明によるスケジューリング機構を第1図を参照して
説明する。
説明する。
この構成には、複数のソース・プロセス4、複数のサー
バ・プロセス5及びサーバ・プロセス毎に1個の割合で
各サーバ・プロセスに関連する複数のスケジューラ6が
存在しうる。この構成は待ち行列3を使用する。すなわ
ち、複数のサーバ・プロセス、実際には上に定義したあ
るプロセス・グループの全サーバ・プロセスが同時に通
知情報を受け取ることができ、またただ1つの待ち行列
3からデータ・メッセージを解除することができる。パ
ケット・メモリからサーバ・プロセスに送られる通知情
報は、空から非空への遷移を示す信号E−NEである。最
も単純な場合、すなわち第1図に示すようにスケジュー
ル管理される各プロセスがそれぞれ異なるプロセッサ内
で走行する場合には、ソース・プロセス1はデータ・メ
ッセージをそのプロセス・グループの唯一の待ち行列で
ある待ち行列に送る。サーバ・プロセス1及び2はこの
メッセージを待ち行列から解除する準備ができている。
バ・プロセス5及びサーバ・プロセス毎に1個の割合で
各サーバ・プロセスに関連する複数のスケジューラ6が
存在しうる。この構成は待ち行列3を使用する。すなわ
ち、複数のサーバ・プロセス、実際には上に定義したあ
るプロセス・グループの全サーバ・プロセスが同時に通
知情報を受け取ることができ、またただ1つの待ち行列
3からデータ・メッセージを解除することができる。パ
ケット・メモリからサーバ・プロセスに送られる通知情
報は、空から非空への遷移を示す信号E−NEである。最
も単純な場合、すなわち第1図に示すようにスケジュー
ル管理される各プロセスがそれぞれ異なるプロセッサ内
で走行する場合には、ソース・プロセス1はデータ・メ
ッセージをそのプロセス・グループの唯一の待ち行列で
ある待ち行列に送る。サーバ・プロセス1及び2はこの
メッセージを待ち行列から解除する準備ができている。
この例は、任意の数のソース・プロセス及びサーバ・プ
ロセスに容易に一般化できる。
ロセスに容易に一般化できる。
メッセージと信号の流れは次のようになる。
a)ソース・プロセス1が待ち行列にデータ・メッセー
ジを送り、データ・メッセージはそこに登録される。
ジを送り、データ・メッセージはそこに登録される。
b)待ち行列が空であった場合、パケット・メモリはサ
ーバ・プロセス1に信号E−NEを送る。
ーバ・プロセス1に信号E−NEを送る。
c)同様に、待ち行列が空であった場合、パケット・メ
モリはサーバ・プロセス2に信号E−NEを送る。これ
は、サーバ・プロセス2がサーバ・プロセス1と同じプ
ロセス・グループに属しているためである。
モリはサーバ・プロセス2に信号E−NEを送る。これ
は、サーバ・プロセス2がサーバ・プロセス1と同じプ
ロセス・グループに属しているためである。
d)サーバ・プロセス1のスケジューラ6が待ち行列3
からデータ・メッセージを解除する。
からデータ・メッセージを解除する。
上記のステップから、この分散スケジューリング機構
は、サーバ・プロセス毎に1つずつ独立したスケジュー
ラを含むことがわかる。このため、スケジューラの1つ
に問題が発生した場合に、データ・メッセージを常に他
のスケジューラによって待ち行列から解除し、それに関
連するサーバ・プロセスで使用することができるので、
この分散スケジューリング機構に耐故障性が与えられ
る。したがって、サーバ・プロセスが多重リング伝送グ
ループを使用した通信制御装置の回線インターフェース
・モジュール(LIM)内で走行する通信プロセスである
場合、所与のLIMプロセスのスケジューラに障害が発生
した場合に、伝送全体は影響を受けない。
は、サーバ・プロセス毎に1つずつ独立したスケジュー
ラを含むことがわかる。このため、スケジューラの1つ
に問題が発生した場合に、データ・メッセージを常に他
のスケジューラによって待ち行列から解除し、それに関
連するサーバ・プロセスで使用することができるので、
この分散スケジューリング機構に耐故障性が与えられ
る。したがって、サーバ・プロセスが多重リング伝送グ
ループを使用した通信制御装置の回線インターフェース
・モジュール(LIM)内で走行する通信プロセスである
場合、所与のLIMプロセスのスケジューラに障害が発生
した場合に、伝送全体は影響を受けない。
欧州特許出願第88480102.8号明細書に記載された知能パ
ケット・メモリを持つハードウェアによって支援され
る、新しいスケジューリング機構に伴うステップのより
詳細な説明を以下に示す。
ケット・メモリを持つハードウェアによって支援され
る、新しいスケジューリング機構に伴うステップのより
詳細な説明を以下に示す。
1.パケット・メモリは、待ち行列が「空」状態から「非
空」状態に遷移する時に信号を受け取る必要があるプロ
セッサ(すなわち、そのプロセス・グループに属するプ
ロセッサ)の番号リストを各待ち行列毎に記憶する。こ
のプロセッサのリストは、信号発生先プロセッサ・リス
ト(SPL)と呼ぶ。第3A図に示すように、このリストは
待ち行列に付加された待ち行列制御ブロック(QCB)内
にある。これは、そのプロセス・グループにプロセッサ
が追加または削除されたときだけ修正される。図中、EP
は待ち行列登録(エンキュー)ポインタ、DPは待ち行列
解除(デキュー)ポインタ、ESは要素サイズを表す。
空」状態に遷移する時に信号を受け取る必要があるプロ
セッサ(すなわち、そのプロセス・グループに属するプ
ロセッサ)の番号リストを各待ち行列毎に記憶する。こ
のプロセッサのリストは、信号発生先プロセッサ・リス
ト(SPL)と呼ぶ。第3A図に示すように、このリストは
待ち行列に付加された待ち行列制御ブロック(QCB)内
にある。これは、そのプロセス・グループにプロセッサ
が追加または削除されたときだけ修正される。図中、EP
は待ち行列登録(エンキュー)ポインタ、DPは待ち行列
解除(デキュー)ポインタ、ESは要素サイズを表す。
QCBのその他のフィールド(EP、DP、ES)について詳細
が必要であれば、上に引用した特許出願明細書を参照さ
れたい。SPLフィールド(10)は第3B図に詳細に示され
ている。図中“b"はブール値を表す。QCB中のSPLは16ビ
ット幅である。システム中の使用可能な各プロセッサご
とに1ビットが定義される。ビットnがオンの時、プロ
セッサnが待ち行列に接続されており、その待ち行列が
空から非空に遷移するとき信号E−NEを受け取る。プロ
セッサが16個ある場合、SPLは16ビット幅となる。各ビ
ットはそれぞれシステム内のただ1つのプロセッサを参
照する。所与の待ち行列が空状態から非空状態に遷移し
たことを知らせる信号E−NEが、パケット・メモリか
ら、SPLで当該ビットが1(オン)にセットされたプロ
セッサに送られる。
が必要であれば、上に引用した特許出願明細書を参照さ
れたい。SPLフィールド(10)は第3B図に詳細に示され
ている。図中“b"はブール値を表す。QCB中のSPLは16ビ
ット幅である。システム中の使用可能な各プロセッサご
とに1ビットが定義される。ビットnがオンの時、プロ
セッサnが待ち行列に接続されており、その待ち行列が
空から非空に遷移するとき信号E−NEを受け取る。プロ
セッサが16個ある場合、SPLは16ビット幅となる。各ビ
ットはそれぞれシステム内のただ1つのプロセッサを参
照する。所与の待ち行列が空状態から非空状態に遷移し
たことを知らせる信号E−NEが、パケット・メモリか
ら、SPLで当該ビットが1(オン)にセットされたプロ
セッサに送られる。
2.各スケジューラは、そのプロセス・グループに属する
待ち行列について、待ち行列の状態と待ち行列の識別子
(LRA)を記憶する。これはスケジューラ状態表(11)
(第7図)を用いて行なわれる。スケジューラ毎に1つ
のスケジューラ状態表がある。この表は待ち行列の論理
レコード・アドレス(複数の待ち行列がある場合)とそ
の待ち行列に関連するスケジューラの待ち行列状態(す
なわち空または非空)のリストを含む。
待ち行列について、待ち行列の状態と待ち行列の識別子
(LRA)を記憶する。これはスケジューラ状態表(11)
(第7図)を用いて行なわれる。スケジューラ毎に1つ
のスケジューラ状態表がある。この表は待ち行列の論理
レコード・アドレス(複数の待ち行列がある場合)とそ
の待ち行列に関連するスケジューラの待ち行列状態(す
なわち空または非空)のリストを含む。
スケジューラ自体は既知であり、本発明の一部ではない
ため、スケジューラ自体についてはこれ以上の説明は省
略する。
ため、スケジューラ自体についてはこれ以上の説明は省
略する。
3.監視プロセスによってデータ・メッセージ待ち行列が
生成される時、パケットメモリは待ち行列の識別子を生
成し、この待ち行列に関連するプロセッサの番号リスト
を初期設定する。各スケジューラは表11中に待ち行列識
別子(LRA)を記憶し、待ち行列の状態を値「空」に初
期設定する。これは以下の手順で行なわれる。
生成される時、パケットメモリは待ち行列の識別子を生
成し、この待ち行列に関連するプロセッサの番号リスト
を初期設定する。各スケジューラは表11中に待ち行列識
別子(LRA)を記憶し、待ち行列の状態を値「空」に初
期設定する。これは以下の手順で行なわれる。
(1)プロセッサ(LIM)の1つで走行する監視プロセ
スが、CREATEコマンドを用いて待ち行列を生成し、次
に、 (2)このプロセスが、プロセス・グループの各スケジ
ューラに待ち行列のLRAを送ることによって、スケジュ
ーラに待ち行列が生成されたことを知らせ、次に、 (3)各スケジューラがパケット・メモリのデータ・メ
ッセージ待ち行列3に対してATTACHコマンドを実行す
る。ATTACHコマンドの形式は第4図に示す。次に、 (4)パケット・メモリがQCB9のSPL10とATTACHコマン
ドのプロセッサ・マップ・フィールドPMAP12との間でOR
(論理和)をとってそのSPLを更新し、これによってQCB
は信号E−NEを受け取るべきプロセッサのリストを含む
ようになる。最後に、 (5)各スケジューラがこの待ち行列に関係するそれ自
身のスケジューラ状態表に「空」の値をセットして、そ
の表を初期設定する。
スが、CREATEコマンドを用いて待ち行列を生成し、次
に、 (2)このプロセスが、プロセス・グループの各スケジ
ューラに待ち行列のLRAを送ることによって、スケジュ
ーラに待ち行列が生成されたことを知らせ、次に、 (3)各スケジューラがパケット・メモリのデータ・メ
ッセージ待ち行列3に対してATTACHコマンドを実行す
る。ATTACHコマンドの形式は第4図に示す。次に、 (4)パケット・メモリがQCB9のSPL10とATTACHコマン
ドのプロセッサ・マップ・フィールドPMAP12との間で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を送るべきプロセ
ッサを決定するため、SPL10の各ピットを走査し、 (2)パケット・メモリがSPLで選択されたプロセッサ
に信号を送り、 (3)待ち行列がデータ・メッセージを受け取った時、
各スケジューラはその待ち行列に関するスケジューラ状
態表11の項目に「非空」状態を入力する。
ッサを決定するため、SPL10の各ピットを走査し、 (2)パケット・メモリがSPLで選択されたプロセッサ
に信号を送り、 (3)待ち行列がデータ・メッセージを受け取った時、
各スケジューラはその待ち行列に関するスケジューラ状
態表11の項目に「非空」状態を入力する。
6.スケジューラは待ち行列3からメッセージを解除する
時、パケット・メモリから待ち行列の新しい状態を示す
状況を受け取る。待ち行列が空である場合、スケジュー
ラはスケジューラ状態表中の対応する待ち行列状態を更
新する。待ち行列の状況はDEQUEUEコマンドの戻りコー
ド(RC)に含まれる。
時、パケット・メモリから待ち行列の新しい状態を示す
状況を受け取る。待ち行列が空である場合、スケジュー
ラはスケジューラ状態表中の対応する待ち行列状態を更
新する。待ち行列の状況はDEQUEUEコマンドの戻りコー
ド(RC)に含まれる。
7.操作員または監視プロセスが、あるプロセス・グルー
プの1プロセスを非活動化することを決定した時、対応
するスケジューラは活動を停止し、そのプロセス・グル
ープから外れる。従って、それは以下のものを実行す
る。
プの1プロセスを非活動化することを決定した時、対応
するスケジューラは活動を停止し、そのプロセス・グル
ープから外れる。従って、それは以下のものを実行す
る。
(1)DETACHコマンド。第5図にその形式を示す。この
形式はATTACHコマンドの形式に類似しているが、コマン
ド・コード(CM)が異なる。
形式はATTACHコマンドの形式に類似しているが、コマン
ド・コード(CM)が異なる。
所与のスケジューラを走らせているプロセッサによって
DETACHコマンドが実行された結果、パケット・メモリ中
のデータ・メッセージ待ち行列から前記プロセッサが外
される。次に、 (2)パケット・メモリがSPL10とPMAP12の間でXOR(排
他的論理割)コマンドを実行する(SPLのビットとPMAP
のビットが共に“1"の時、ビット“0"を取る)。次に、 (3)スケジューラとそれに関連するサーバ・プロセス
が非活動化される。
DETACHコマンドが実行された結果、パケット・メモリ中
のデータ・メッセージ待ち行列から前記プロセッサが外
される。次に、 (2)パケット・メモリがSPL10とPMAP12の間でXOR(排
他的論理割)コマンドを実行する(SPLのビットとPMAP
のビットが共に“1"の時、ビット“0"を取る)。次に、 (3)スケジューラとそれに関連するサーバ・プロセス
が非活動化される。
例 P0とP1だけが最初に活動化されたプロセッサである
当倍、QCBのSPLフィールドは11000000 00000000とな
る。
当倍、QCBのSPLフィールドは11000000 00000000とな
る。
P1に対するDETACHコマンドに対応するPMAPフィールド
は、01000000 00000000となる。SPLとPMAPフィールド
の間でXOR操作を行なった結果、更新されたSPLの内容は
10000000 00000000となり、P1が消失して、P0がデータ
・メッセージ待ち行列に依然として接続されているただ
1つのプロセッサになったことを意味する。
は、01000000 00000000となる。SPLとPMAPフィールド
の間でXOR操作を行なった結果、更新されたSPLの内容は
10000000 00000000となり、P1が消失して、P0がデータ
・メッセージ待ち行列に依然として接続されているただ
1つのプロセッサになったことを意味する。
上に説明した共用プロセスのスケジューリング機構は、
パケット・メモリに接続されたプロセッサ内で走行する
プロセスの高速かつ耐故障性のあるスケジューリングを
可能にする。このスケジューリング機構の効率が高いこ
との証拠を以下に示す。
パケット・メモリに接続されたプロセッサ内で走行する
プロセスの高速かつ耐故障性のあるスケジューリングを
可能にする。このスケジューリング機構の効率が高いこ
との証拠を以下に示す。
まず、以下の表記法を用いる。
・Nは、プロセス・グループ内に含まれるスケジューラ
の数。
の数。
・iはある特定のスケジューラの番号、 i=<1…N> ・Mは、プロセスに対するデータ・メッセージの数。
・T1iは、信号E−NEを実行するための、パケット・メ
モリ内での処理時間+パケット・メモリとプロセッサi
の間の転送時間。
モリ内での処理時間+パケット・メモリとプロセッサi
の間の転送時間。
・T2iは「信号E−NEが活動化された」という事象を処
理し、また待ち行列状態を更新するためのスケジューラ
i内での処理時間。
理し、また待ち行列状態を更新するためのスケジューラ
i内での処理時間。
・T3iは状態の更新から待ち行列解除操作開始までのプ
ロセッサi内での遅延。
ロセッサi内での遅延。
・T4iは待ち行列解除コマンドを実行するための、パケ
ット・メモリ内での処理時間+パケット・メモリとプロ
セッサiとの間の転送時間。
ット・メモリ内での処理時間+パケット・メモリとプロ
セッサiとの間の転送時間。
・T5iは「空の待ち行列に対して待ち行列解除を行なっ
た」という事象を処理し、また待ち行列状態を更新する
ためのスケジューラi内での処理時間である。化 次に、スケジューリング機構が適正であり(すなわち、
それに関する最終状態機械が絶対にデッドロックしな
い)、プロセス・グループに属するどのプロセッサの障
害に対しても強く、また高速であることを証明する。
た」という事象を処理し、また待ち行列状態を更新する
ためのスケジューラi内での処理時間である。化 次に、スケジューリング機構が適正であり(すなわち、
それに関する最終状態機械が絶対にデッドロックしな
い)、プロセス・グループに属するどのプロセッサの障
害に対しても強く、また高速であることを証明する。
・適正さ データ・メッセージ待ち行列において、実際の状態は
「空」または「非空」のいずれかであり得る。
「空」または「非空」のいずれかであり得る。
スケジューラもまた2つの状態「空」と「非空」を定義
する。パケット・メモリから信号を受け取った時にスケ
ジューラ状態表11に記憶される。
する。パケット・メモリから信号を受け取った時にスケ
ジューラ状態表11に記憶される。
障害がない限り、T1i、T2i、T3i、T4i及びT5iは有限で
ある。したがって、スケジューラの待ち行列状態が、有
限の遅延の後に実際の待ち行列の状態に等しくなること
が証明できる。
ある。したがって、スケジューラの待ち行列状態が、有
限の遅延の後に実際の待ち行列の状態に等しくなること
が証明できる。
このことは、2つの構成で、すなわち待ち行列識別子
(LRA)の初期設定時と初期設定後に起こる実際の待ち
行列の状態の変更時に成立する。
(LRA)の初期設定時と初期設定後に起こる実際の待ち
行列の状態の変更時に成立する。
1.初期設定後の適正さ スケジューラ内の待ち行列識別子の初期設定時に待ち行
列の実際の状態は、「空」か不明かのいずれかであり得
る。スケジューラの接続後に待ち行列が生成される場合
は「空」であり、スケジューラの接続前に待ち行列が生
成される場合は不明である。
列の実際の状態は、「空」か不明かのいずれかであり得
る。スケジューラの接続後に待ち行列が生成される場合
は「空」であり、スケジューラの接続前に待ち行列が生
成される場合は不明である。
待ち行列の実際の状態が「空」である場合、スケジュー
ラの待ち行列状態は空であり、2つの状態は一致する。
ラの待ち行列状態は空であり、2つの状態は一致する。
待ち行列の実際の状態が不明である場合、スケジューラ
の初期状態は「非空」にセットされる。スケジューラは
t+T3iの時点で待ち行列解除を実行し、t+T3i+T4i
+T5iの時点でこの状態を更新する。
の初期状態は「非空」にセットされる。スケジューラは
t+T3iの時点で待ち行列解除を実行し、t+T3i+T4i
+T5iの時点でこの状態を更新する。
このように、スケジューラの待ち行列状態は初期設定時
間tまたはt+T3iの時点で実際の持ち行列の状態と等
しくなる。
間tまたはt+T3iの時点で実際の持ち行列の状態と等
しくなる。
2.初期設定後の実際の待ち行列状態の変化後の適正さ 初期設定の後に待ち行列の実際の状態が変化した場合、
有限の遅延の後にスケジューラの状態が実際の待ち行列
の状態と等しくなる、 待ち行列の実際の状態は、以下に示す場合にのみ変化し
得る。
有限の遅延の後にスケジューラの状態が実際の待ち行列
の状態と等しくなる、 待ち行列の実際の状態は、以下に示す場合にのみ変化し
得る。
a.メッセージが待ち行列に登録される時、及び待ち行列
が当初空であった時。スケジューラはt+T1iの時点で
事象“SETNE"を受け取り、t+T1i+T2iの時点でその状
態を「非空」に更新する。
が当初空であった時。スケジューラはt+T1iの時点で
事象“SETNE"を受け取り、t+T1i+T2iの時点でその状
態を「非空」に更新する。
b.ローカル・スケジューラ(すなわち作業中のサーバ・
プロセスに関連するスケジューラ)が待ち行列からただ
1つのメッセージを解除した時、スケジューラはt+T4
i+T5iの時点のその状態を「空」に更新する。
プロセスに関連するスケジューラ)が待ち行列からただ
1つのメッセージを解除した時、スケジューラはt+T4
i+T5iの時点のその状態を「空」に更新する。
c.待ち行列が「非空」である場合、リモート・スケジュ
ーラ(すなわちスケジュール管理操作を実行しているプ
ロセスとは異なるプロセスに関連するスケジューラ)が
ただ1つのメッセージを待ち行列から解除した時、スケ
ジューラはt+T1i+T2iの時点でその状態を「非空」に
更新する。リモートスケジューラが待ち行列解除操作を
実行し終えている場合、ローカル・スケジューラはその
待ち行列が空であることを知らないが、t+T3iの時点
で待ち行列解除を実行し、t+T3i+T4i+T5iの時点で
待ち行列解除の状況を受け取った時その状態を更新す
る。
ーラ(すなわちスケジュール管理操作を実行しているプ
ロセスとは異なるプロセスに関連するスケジューラ)が
ただ1つのメッセージを待ち行列から解除した時、スケ
ジューラはt+T1i+T2iの時点でその状態を「非空」に
更新する。リモートスケジューラが待ち行列解除操作を
実行し終えている場合、ローカル・スケジューラはその
待ち行列が空であることを知らないが、t+T3iの時点
で待ち行列解除を実行し、t+T3i+T4i+T5iの時点で
待ち行列解除の状況を受け取った時その状態を更新す
る。
・障害に対する強さ あるプロセス・グループの各スケジューラは複数のプロ
セッサに分散されており、相互に独立である。したがっ
て、スケジューラは他のスケジューラの存在を知らな
い。スケジューラの数Nは定義により2以上であると考
えられる。このため、N−1個までのプロセッサまたは
スケジューラ、あるいはプロセッサとパケット・メモリ
の間の接続に障害が発生しても、残りのスケジューラに
は影響がない。
セッサに分散されており、相互に独立である。したがっ
て、スケジューラは他のスケジューラの存在を知らな
い。スケジューラの数Nは定義により2以上であると考
えられる。このため、N−1個までのプロセッサまたは
スケジューラ、あるいはプロセッサとパケット・メモリ
の間の接続に障害が発生しても、残りのスケジューラに
は影響がない。
あるプロセッサに性能障害が発生しても、各スケジュー
ラがそれ自体のリズムで待ち行列解除操作を実行できる
ので、他のプロセッサは影響を受けない。
ラがそれ自体のリズムで待ち行列解除操作を実行できる
ので、他のプロセッサは影響を受けない。
・性能 スケジューリング機構の性能は、N個のスケジューラで
M個のメッセージを処理するために必要な、通知メッセ
ージの数S及び待ち行列解除操作の回数Dで与えられ
る。
M個のメッセージを処理するために必要な、通知メッセ
ージの数S及び待ち行列解除操作の回数Dで与えられ
る。
最悪の場合は、N個のスケジューラがそれぞれのメッセ
ージに対して待ち行列解除操作を実行する時、及びそれ
ぞれのデータ・メッセージに対して通知メッセージが送
られる時である。
ージに対して待ち行列解除操作を実行する時、及びそれ
ぞれのデータ・メッセージに対して通知メッセージが送
られる時である。
M個のメッセージを処理するためには、 Smax=M×Nであり、Dmax=M×Nである。
最善の場合は、待ち行列が決して空にならない時であ
る。このとき、最初のメッセージを待ち行列に登録する
際に各スケジューラにただ1つの通知メッセージが送ら
れ、待ち行列解除はすべて成功する。
る。このとき、最初のメッセージを待ち行列に登録する
際に各スケジューラにただ1つの通知メッセージが送ら
れ、待ち行列解除はすべて成功する。
M個のメッセージを処理するためには、 Smin=N<M×Nであり、Dmin=M<M×Nである。
このように、待ち行列が空にならない時に最良の性能が
得られるという興味深い事実に留意されたい。処理時間
は待ち行列内のメッセージの数が多い時に最小となる
が、これはスケジューリング機構が大量のスケジューリ
ング処理量を処理する能力を持っていることに相当す
る。
得られるという興味深い事実に留意されたい。処理時間
は待ち行列内のメッセージの数が多い時に最小となる
が、これはスケジューリング機構が大量のスケジューリ
ング処理量を処理する能力を持っていることに相当す
る。
E.発明の効果 以上説明したように本発明によれば、プロセス間の通信
に必要なステップ数が減ぜられ、さらに可用性も向上す
るという効果がある。
に必要なステップ数が減ぜられ、さらに可用性も向上す
るという効果がある。
第1図は、本発明のスケジューリング機構に従ってパケ
ット・メモリを使用するプロセッサ間の通信プロセッサ
を示すブロック図である。 第2図は、対応するソフトウェア・タスクが従来技術に
属する代表的な集中スケジューリング機構に従ってスケ
ジューリングされている、共用記憶装置を介して通信す
る1組のプロセッサのロック図である。 第3A図は、パケット・メモリ内で待ち行列に登録された
情報を管理するための待ち行列制御ブロック(QCB)の
形式を示す図である。 第3B図は、第3A図に示したQCBの1フィールドの詳細図
である。 第4図は、本発明のスケジューリング機構で使用するAT
TACHコマンドの形式を示す図である。 第5図は、本発明のスケジューリング機構で使用するDE
TACHコマンドの形式を示す図である。 第6図は、本発明のスケジューリング機構で使用するSI
GNALコマンドの形式を示す図である。 第7図は、第1図に示した各分散スケジューラに含まれ
るスケジューラ状態表の形式を示す図である。 1……共用知能記憶装置、2……プロセッサ、3……デ
ータ・メッセージ待ち行列、4……ソース・プロセス、
5……サーバ・プロセス、6……スケジューラ、10……
信号発信先プロセッサ・リスト(SPL)、11……スケジ
ューラ状態表、12……プロセッサ・マップ(PMAP)。
ット・メモリを使用するプロセッサ間の通信プロセッサ
を示すブロック図である。 第2図は、対応するソフトウェア・タスクが従来技術に
属する代表的な集中スケジューリング機構に従ってスケ
ジューリングされている、共用記憶装置を介して通信す
る1組のプロセッサのロック図である。 第3A図は、パケット・メモリ内で待ち行列に登録された
情報を管理するための待ち行列制御ブロック(QCB)の
形式を示す図である。 第3B図は、第3A図に示したQCBの1フィールドの詳細図
である。 第4図は、本発明のスケジューリング機構で使用するAT
TACHコマンドの形式を示す図である。 第5図は、本発明のスケジューリング機構で使用するDE
TACHコマンドの形式を示す図である。 第6図は、本発明のスケジューリング機構で使用するSI
GNALコマンドの形式を示す図である。 第7図は、第1図に示した各分散スケジューラに含まれ
るスケジューラ状態表の形式を示す図である。 1……共用知能記憶装置、2……プロセッサ、3……デ
ータ・メッセージ待ち行列、4……ソース・プロセス、
5……サーバ・プロセス、6……スケジューラ、10……
信号発信先プロセッサ・リスト(SPL)、11……スケジ
ューラ状態表、12……プロセッサ・マップ(PMAP)。
Claims (8)
- 【請求項1】1つのプロセスグループを複数のプロセス
で構成し、当該複数のプロセスを実行するために複数の
プロセッサが共用記憶装置に接続する疎結合多重プロセ
ッサ環境において、前記プロセッサがデータメッセージ
の登録または解消のために前記共用記憶装置に含まれる
データ・メッセージ待ち行列に接続された特に前記プロ
セッサによって実行される、前記プロセスグループ中の
ソース・プロセスまたはサーバ・プロセスの高速のスケ
ジューリングを行なうためのスケジューリング方法であ
って、 (a)前記プロセスグループの全プロセスに専用のFIFO
データ・メッセージ待ち行列を前記共用記憶装置内に生
成するステップと、 (b)前記FIFOデータメッセージ待ち行列に関し、前記
待ち行列からデータ・メッセージを解除することを必要
とする前記プロセッサの参照を含む信号発信先プロセッ
サ・リストSPLを記憶するステップと、 (c)前記プロセスグループの中の所与のソース・プロ
セスに関して、前記FIFOデータ・メッセージ待ち行列に
データ・メッセージを登録するステップと、 (d)前記データ・メッセージ待ち行列を監視し、前記
待ち行列が空の場合、新規データ・メッセージ待ち行列
を登録する際に、E−NE(空から非空への偏移)信号を
発生するステップと、 (e)前記信号発信先プロセッサ・リストSPLに記憶さ
れた参照と関連するプロセッサであってサーバ・プロセ
スを実行中の全てのプロセッサに、前記E−NE信号を送
るステップと、 (f)所与のサーバ・プロセスのスケジュール管理を行
う専用のスケジューラを当該サーバ・プロセスを実行す
るプロセッサ内に設けておき、前記E−NE信号をサーバ
・プロセスが受け取ったとき、前記所与のサーバ・プロ
セスで使用されるデータ・メッセージを、前記スケジュ
ーラにより前記データ・メッセージ待ち行列から解除す
るステップと、 (g)前記FIFOデータメッセージが空か非空かを示す情
報を記憶しておくためのスケジューラ状態表を前記スケ
ジューラ内に設けておき、E−NE信号の受信および前記
解除処理に関連して該スケジューラ状態表の情報内容を
更新するステップと を含むことを特徴とするスケジューリング方法。 - 【請求項2】請求項1に記載のスケジューリング方法に
おいて、 前記FIFOデータ・メッセージ待ち行列は複数のFIFOデー
タ・メッセージ待ち行列の中の一つであって、 前記待ち行列生成ステップが、 (a)前記FIFOデータ・メッセージ待ち行列を、前記信
号発信先プロセッサ・リストSPLを含む待ち行列制御ブ
ロックQCBによって制御するために、前記共用記憶装置
内で前記FIFOデータ・メッセージ待ち行列を前記複数の
FIFOデータ・メッセージ待ち行列の中から識別するため
の論理レコード・アドレス(LRA)を生成するステップ
と、 (b)前記論理レコード・アドレス(LRA)を前記スケ
ジューラーのスケジューラ状態表に記憶するステップ
と、 (c)前記FIFOデータ・メッセージ待ち行列の状態を
「空」を示す値に初期設定するステップと を含むことを特徴とするスケジューリング方法。 - 【請求項3】請求項に記載のスケジューリング方法であ
って、前記信号発信先プロセッサ・リストSPL記憶ステ
ップが (a)複数のプロセッサのうちでサーバとなり得るプロ
セッサを1ビットの論理ビットでSPL内で定義するステ
ップと、 (b)所与のサーバ・プロセスが前記FIFOデータ・メッ
セージ待ち行列に接続された時、当該サーバ・プロセス
に対応する論理ビットをオンにセットして、信号発信先
プロセッサ・リストSPLを構成するステップと を含むことを特徴とするスケジューリング方法。 - 【請求項4】請求項1に記載のスケージューリング方法
であって、前記信号発信先プロセッサ・リストSPLの前
記更新が、当該信号発信先プロセッサ・リストSPLと待
ち行列制御ブロックQCBに含まれるプロセッサ・マップ
・フィールドPMAPとのOR操作によって行なわれ、その際
に前記信号発信先プロセッサ・リストSPLを待ち行列制
御ブロックQCBが含むことを特徴とするスケジューリン
グ方法。 - 【請求項5】請求項1に記載のスケジューリング方法で
あって、待ち行列からデータ・メッセージを解除するた
めに使用される前記の所与のサーバ・プロセス及びスケ
ジューラが、前記E−NE信号を受け取った後で最初に使
用可能になるサーバ・プロセスであることを特徴とする
スケジューリング方法。 - 【請求項6】請求項3に記載のスケジューリング方法で
あって、前記所与のサーバ・プロセスの前記FIFOのデー
タ・メッセージ待ち行列への前記の接続が、各サーバ・
プロセスのスケジューラによって、前記FIFOデータ・メ
ッセージ待ち行列の論理レコード・アドレス(LRA)と
それに接続された全てのサーバ・プロセッサのプロセッ
サ・マップPMAPの両方を定義するATTACH帯域コマンドを
用いて行なわれることを特徴とするスケジューリング方
法。 - 【請求項7】複数のプロセッサが共用記憶装置に接続さ
れている疎結合多重プロセッサ環境において、請求項1
ないし6に定義するスケジューリングを行なうためのス
ケジューリング装置であって、複数のソース・プロセス
によってデータ・メッセージが登録されるような前記FI
FOデータ・メッセージ待ち行列に接続される各サーバ・
プロセスごとに、 (a)前記FIFOデータ・メッセージ待ち行列を監視する
ステップと、 (b)前記共用記憶装置によって発生された、前記FIFO
データ・メッセージ待ち行列が当該FIFOデータ・メッセ
ージ待ち行列から解除すべきメッセージを含んでいるこ
とを通知するためのE−NE信号を受け取った時、前記デ
ータ・メッシージを順に待ち行列から解除して、前記メ
ッセージが前記サーバ・プロセスによって使用されるよ
うにするステップと を実行する分散スケジューリング手段を含むことを特徴
とするスケジューリング装置。 - 【請求項8】請求項7に記載のスケジューリング装置で
あって、前記共用記憶装置内のFIFOデータ・メッセージ
待ち行列の論理レコード・アドレスと、前記待ち行列の
現在の空または非空の状態とを記録した、スケジューラ
状態表を各分散スケジューリング手段が含むことを特徴
とするスケジューリング装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP89480156A EP0422310A1 (en) | 1989-10-10 | 1989-10-10 | Distributed mechanism for the fast scheduling of shared objects |
| EP89480156.2 | 1989-10-10 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03126158A JPH03126158A (ja) | 1991-05-29 |
| JPH07101407B2 true 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) |
Families Citing this family (83)
| 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 |
| WO1997024671A1 (en) * | 1995-12-29 | 1997-07-10 | Powertv, Inc. | Event filtering feature for a computer operating system in a 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 |
| WO2000070531A2 (en) * | 1999-05-17 | 2000-11-23 | The Foxboro Company | Methods and apparatus for control configuration |
| US7096465B1 (en) | 1999-05-17 | 2006-08-22 | Invensys Systems, Inc. | Process control configuration system with parameterized objects |
| US7272815B1 (en) | 1999-05-17 | 2007-09-18 | Invensys Systems, Inc. | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
| US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
| US6754885B1 (en) | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
| US7043728B1 (en) | 1999-06-08 | 2006-05-09 | Invensys Systems, Inc. | Methods and apparatus for fault-detecting and fault-tolerant process control |
| US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
| 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 |
| 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 |
| WO2001009690A1 (en) | 1999-07-29 | 2001-02-08 | The Foxboro Company | Methods and apparatus for object-based process control |
| FR2799020A1 (fr) * | 1999-09-28 | 2001-03-30 | Koninkl Philips Electronics Nv | Dispositif a plusieurs processeurs ayant une interface pour une memoire collective |
| 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 |
| 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 |
| US6975914B2 (en) | 2002-04-15 | 2005-12-13 | Invensys Systems, Inc. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with unified messaging interface |
| US7984268B2 (en) * | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
| 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 |
| 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 |
| US8015567B2 (en) | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
| US9088474B2 (en) * | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
| 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 |
| US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
| US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
| US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
| 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 |
| US7924828B2 (en) * | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
| US7346757B2 (en) | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
| 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 |
| 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 |
| US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
| 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 |
| US7478390B2 (en) * | 2003-09-25 | 2009-01-13 | International Business Machines Corporation | Task queue management of virtual devices using a plurality of processors |
| US7523157B2 (en) * | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
| US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
| US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
| US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across 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 |
| 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 |
| US7844969B2 (en) | 2004-06-17 | 2010-11-30 | Platform Computing Corporation | Goal-oriented predictive 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 |
| JP4532423B2 (ja) | 2006-03-16 | 2010-08-25 | 富士通株式会社 | サーバシステム |
| WO2007123753A2 (en) * | 2006-03-30 | 2007-11-01 | 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 |
| RU2495476C2 (ru) | 2008-06-20 | 2013-10-10 | Инвенсис Системз, Инк. | Системы и способы для иммерсивного взаимодействия с действительными и/или имитируемыми техническими средствами для управления технологическим процессом, контроля состояния окружающей среды и производственного контроля |
| 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 |
| US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
| US4402046A (en) * | 1978-12-21 | 1983-08-30 | Intel Corporation | Interprocessor communication 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 | 株式会社日立製作所 | 多重処理システムの割込み制御方法 |
| US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
| US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
-
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
Also Published As
| Publication number | Publication date |
|---|---|
| JPH03126158A (ja) | 1991-05-29 |
| EP0422310A1 (en) | 1991-04-17 |
| US5428781A (en) | 1995-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH07101407B2 (ja) | スケジユーリング方法及び装置 | |
| US5434975A (en) | System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications | |
| US6330604B1 (en) | Exclusive control method with each node controlling issue of an exclusive use request to a shared resource, a computer system therefor and a computer system with a circuit for detecting writing of an event flag into a shared main storage | |
| US5390328A (en) | Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage | |
| US5675796A (en) | Concurrency management component for use by a computer program during the transfer of a message | |
| US5606703A (en) | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures | |
| US5940612A (en) | System and method for queuing of tasks in a multiprocessing system | |
| US6697876B1 (en) | Distributed kernel operating system | |
| US7246167B2 (en) | Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections | |
| US5109486A (en) | Distributed computer system with network and resource status monitoring | |
| JP3762846B2 (ja) | サーバのグループに関する作業負荷管理を行うデータ処理装置および方法 | |
| EP0769172B1 (en) | Method and apparatus for handling i/o requests | |
| US5887135A (en) | System and method for management of object transitions in an external storage facility accessed by one or more processors | |
| US20050080962A1 (en) | Hardware management of JAVA threads | |
| EP0536073A2 (en) | Method and process for interprocess communication using named pipes | |
| US7640549B2 (en) | System and method for efficiently exchanging data among processes | |
| JPH06309252A (ja) | 相互接続インタフェース | |
| US6108689A (en) | Method and system for processing messages in a distributed computing environment | |
| US5448708A (en) | System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory | |
| AU603876B2 (en) | Multiple i/o bus virtual broadcast of programmed i/o instructions | |
| US6052729A (en) | Event-reaction communication protocol in an object oriented processor array | |
| JPH065524B2 (ja) | 記憶装置管理方法 | |
| EP0201063A2 (en) | Method of locating processes in a distributed data processing system | |
| EP0614139A2 (en) | External procedure call for distributed processing environment | |
| CA1244142A (en) | Distributed data management mechanism |