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
Application number
JP2239184A
Other languages
English (en)
Other versions
JPH07101407B2 (ja
Inventor
Maurice Duault
モーリス・デユオル
Pierre Pignal
ピエール・ピナル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03126158A publication Critical patent/JPH03126158A/ja
Publication of JPH07101407B2 publication Critical patent/JPH07101407B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor 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)を提供する。
B、従来の技術及びその課題 本発明の背景は、メツセージを用いて通信するプロセス
から構成されたシステム構造である。プロセスとは、基
本タスク(システムにロートシ、システム内で実行する
ことのできる基本プログラム)の集合である。プロセス
は、最初に複数のプロセッサ内で生成され、これら異な
るプロセッサ内で実行され、各プロセッサが特をのデー
タを処理することができる。メツセージはプロセッサ間
の通信を可能にする。例えば、要求を出す側のプロセス
があるサーバ・プロセスに要求を出すため特定のメツセ
ージを送り、サーバ・プロセスはそれに応じて情報を提
供しまたは処理を行なう。
たとえば欧州特許出願第88480102..8号明細
書に記載されている形式の共用知能記憶装置を含む通信
制御装置では、回線インタフェース・モジュール(LI
M)は共用記憶装置を介して通信するが、特定の各LI
Mでデータに対して行なわれる処理が、本発明でいうプ
ロセスの例である。
旧来のオペレーティング・システムまたは制御プログラ
ムは、メツセージが処理されるまでそれを保持する待ち
行列を生成するための1組の機能を提供する。この待ち
行列に対して行なわれる主な操作が2つある。すなわち
待ち行列へのメツセージの登録(エンキュー)と、待ち
行列からのメツセージの解除(デキュー)である。異な
るタスクが同一の待ち行列に作用することが可能である
同一のデータ・メッセージ待ち行列に作用する分散プロ
セスの集合を、プロセス・グループと呼ぶ。
スケジューラは、異なるプロセスの要求を調整するもの
である。スケジューラは、分散構成と集中構成のどちら
を考えるかによって、1個のプロセッサ内またはプロセ
ッサのグループ内で仲裁機能を実行する。既知の中央ス
ケジューリング機構では、スケジューラがプロセス・グ
ループ内のタスクの発行するすべての要求を知っている
。したがって、複数のプロセッサに分散された多数のタ
スクの場合(1個のプロセッサ内のソフトウェア経路長
が長過ぎる時に起こる)、中央スケジューラがボトルネ
ックとなる。
さらに、中央スケジューリング機構は、メツセージを要
求しまたメツセージを受け取るために、プロセッサ間通
信を用いることを暗黙の前提とする。
このため、中央スケジューラを含むプロセッサが障害を
起こした場合、関係するプロセス・グループに含まれる
すべてのプロセスも障害に陥る。
その結果、既知の中央スケジューリング機構は構成要素
の障害に対して、たとえそれがただ1つの構成要素の障
害であっても、耐性がない。
中央スケジューリング機構の例として、ホスト・コンピ
ュータ内にある1個の中央スケジューラを開示する、欧
州特許第0230721号明細書が挙げられる。
これに対して分散スケジューリング機構では、プロセス
・グループ内のプロセッサと同数のスケジューラが含ま
れる。
しかし、既知の分散スケジューリング機構では、分散ス
ケジューラは、分散プロセスと前記プロセスによって使
用される分散データの双方に依存する。このことは、複
数の疎に結合したプロセッサが使用可能な記憶空間を共
用する、共用記憶環境とは両立しない。
分散スケジューリング機構を用いた手法は、たとえば米
国特許第4387427号明細書、欧州特許第0183
817号明細書及び第0230721号明細書に記載さ
れている。
米国特許第4387427号明細書は、プロセスのメツ
セージとそのプロセス自体の両方を共ニ待ち行列に登録
することを含む、プロセス指名機構を開示している。上
記の他の2件の欧州特許は、目的プロセッサを確定的に
選択する時分割ソース・プロセッサを開示している。
要約すると、従来技術で教示されたスケジューリング機
構は、集中式でなければ分散式であるが、完全に共用さ
れたタスクや独立のスケジューラと共に働くことができ
ない。
本発明の目的は、異なる複数のプロセッサに分散された
、それぞれが同一の機能を実行するソフトウェア・タス
ク(基本プログラム)のスケジューリングを行なう高速
の機構及び装置を提供することである。したがって、こ
のスケジューリング機構の目的は、タスクのスケジュー
リング及び実行がプロセッサの障害に対して耐性をもつ
ようにすることである。
さらに正確に述べると、本発明の目的は、所与のプロセ
ス・グループに属するどのプロセッサの障害に対しても
強いスケジューリング機構を提供することである。
本発明の他の目的は、共用記憶装置と各プロセッサの間
の信号の数に関して、また前述の欧州特許出願第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データ・メッセージ待ち行列状態を更新するステ
ップとを含むことを特徴とする。
D、実施例 前述したように本発明は、説明の都合上、欧州特許出願
第88480102.8号明細書に記載されているよう
なパケット・メモリの一般環境に関して説明するが、こ
れは本発明の範囲を限定するものではない。
本発明によるスケジューリング機構を理解し実施する上
で有用なパケット・メモリの主な特徴を以下に要約する
パケット・メモリと呼ばれる共用記憶装置を介して相互
接続された1組のプロセッサから構成される分散システ
ムを考えてみる。すべてのプロセッサは、パケット・メ
モリ待ち行列(ハードウェア待ち行列)にアクセスする
ことができる。
待ち行列の生成と、それに引き続くプロセッサ間でのメ
ツセージ転送は、高水準コマンド″CREATE” E
NQUEUE″ DEQUEUE’″ PUT”及びG
ET″に−よって行なわれる。これらのコマンドは前述
のパケット・メモリに関する特許出願明細書に説明され
ている。
本発明の説明のため、追加のいくつかの定義ならびにパ
ケット・メモリの他の特徴を導入する。
プロセス・グループは、理論上1個ないし複数のプロセ
ッサに関係することができるが、ここでは同一の待ち行
列に作用する最低2つのプロセッサに関係するものと仮
定する。というのは、本発明によって得られる利点の1
つである耐故障特性は、プロセス・グループに最低2つ
のプロセスが含まれ、かつ各プロセッサごとに1つのプ
ロセスがある場合にしか意味をなさないからである。
話がわかりやすいように、以下の説明の全体を通じてこ
の仮定を用いるが、本発明は各プロセッサに3以上のプ
ロセスが割り当てられる場合にも適用できる。
さらに、パケット・メモリは、その待ち行列の1つの状
況が修正されたことを相互接続された相異なるプロセッ
サに通知するために、同報通信信号を発信することがで
きる。したがって、パケット・メモリはメツセージ待ち
行列の状態を監視する際に内部で信号E−NEまたはN
E−Eを発生することができ、これによってEMPTY
″(空)状態からNON−EMPTY″(非空)状態へ
の遷移またはその逆の遷移が発生したことを所与のメツ
セージ待ち行列内でプロセッサに知らせることができる
。どちらも技術上重要であるが、以下に説明する理由に
より、「空から非空」への遷移だけを通知するのが最も
好都合である。
複数のプロセスが競合して所与の共用待ち行列からデー
タ・メッセージを解除する場合、及び「非空から空」の
遷移が信号NE−Eによって全プロセスに同報通信され
る場合、空の待ち行列に対して待ち行列解除操作が行な
われる事態を回避することはほとんど不可能である。複
数のサーバ・プロセスに等しい負荷がかかっている場合
、これらのプロセスはほぼ同時に待ち行列解除操作を行
なう。最も負荷の軽いプロセスが待ち行列内のメツセー
ジを取る。他のプロセスは信号E−NEを受け取りその
処理を行なう前に、空の待ち行列に対して待ち行列解除
を行なおうとする。さらに、あるプロセスに高い負荷が
かかっている場合、信号E−NEを処理すべき時間にな
らないうちに次のメツセージが待ち行列に入ってくる可
能性がある。
本発明によれば、空の待ち行列に対する待ち行列解除処
理は、信号NE−Eの処理と同じ経路長を持つ。このと
き、パケット・メモリは信号NE−Eを一切送出しない
ことが好ましい。
逆に、「空から非空」への遷移を信号E−NEによって
同報通信する場合は、同一の待ち行列に作用する全プロ
セス(すなわち同一のプロセス・グループに属する全プ
ロセス)が、次のメツセージを待ち行列から解除する権
利を争える状態になったとの通知を受ける。
したがって、E−NE倍信号用いる実施様態だけについ
て詳しく説明する。上記のもう一方の手法は、非常に類
似した手段を含むが、効率は劣ることを理解されたい。
所与のプロセッサは、そのプロセスが待ち行列から解除
した最後のメツセージに含まれる状況によって、パケッ
ト・メモリ中の待ち行列が空であることを知る。
パケット・メモリは、各プロセッサに関係するプロセス
毎に1ピツトを持ち(第3B図)、これによって信号E
−NEを送出する。
待ち行列解除は原子操作であり、すなわち、所与のプロ
セッサがパケット・メモリ中の待ち行列の解除を開始す
ると、待ち行列解除コマンドが完全に実行し終るまで割
り込みを受けない。これは高水準コマンドDEQUEU
Eの各ステップに対応するパケット・メモリ内蔵マイク
ロプログラムを適当に連鎖することにより容易に得られ
る。
パケット・メモリが発行するS I GNALコマンド
の形式を第6図に示す。これは、送られた情報が通知情
報であることをパケット・メモリが様々なプロセッサに
知らせるのに用いるコマンド・フィールドCMと、空状
態から非空状態に移ったメツセージ待ち行列のパケット
・メモリ内での識別子に対応する、論理レコード・アド
レスLRAフィールドとを含んでいる。
パケット・メモリ構造と共に使用する場合の旧来のスケ
ジューリング機構の説明。
第2図は、パケット・メモリ1の構造内で使用される従
来技術の集中スケジューリング機構の例を示す。1ない
し5の番号を付けたプロセッサ2はプロセスを実行する
が、これらのプロセスは、パケット・メモリのFIFO
待ち行列3にデータ・メッセージを登録する時はソース
・プロセスと呼び、またパケット・メモリの待ち行列か
らデータ・メッセージを解除する時はサーバ・プロセス
と呼ぶ。プロセッサ2と共用記憶装置1の間の接続はバ
ス・システム8を介して行なうが、このバス・システム
は本発明に含まれないので、詳しい説明は省略する。
この構成には、複数のソース・プロ、セス、複数のサー
バ(または目的)プロセス及び唯一のスケジューラが存
在できる。これは、共用オブジェクトすなわちデータ・
メッセージを含む待ち行列が、それぞれ異なるプロセッ
サ内で実行中の異なるサーバ・プロセスによって操作で
き、かつある待ち行列があるプロセッサ内のただ1つの
プロセス専用である時に使用される標準構成である。こ
れは最も単純な構成に相当するが、それにもかかわらず
、このような構造における中央スケジューリングの限界
を示すに充分なものである。第2図に示すように、各プ
ロセスが特定のプロセッサで走行する場合、ソース・プ
ロセスJはスケジューラの待ち行列ユにデータ・メッセ
ージを送り、サーバ・プロセス上は待ち行列又を解除し
てメツセージを受け取る準備ができている。
所与のソース・プロセスは所与のサーバ・プロセス専用
の待ち行列の状態を知らず、またサーバ・プロセスがメ
ツセージを受け取る準備ができているかどうかも知らな
いため、サーバの待ち行列に直接データ・メッセージを
送ることができない。
したがって、プロセス・グループのただ1つのデータ・
メッセージ待ち行列(待ち行列1)の状態を知り、また
どのサーバ・プロセスがデータ・メッセージを受け取る
準備ができているかを知ることは、唯一のスケジューラ
の責任である。
したがって、メツセージと信号の流れは次のようになる
a)ソース・プロセス↓がパケット・メモリのデータ待
ち行列工にデータ・メッセージを送る。前記待ち行列は
中央スケジューラ6専用である。
b)待ち行列↓が空であった場合、パケット・メモリは
スケジューラ6に信号E−NEを送る。
C)サーバ・プロセス1が待ち行列)にデータ・メッセ
ージを要求する制御メツセージを送る。
d)待ち行列又が空であった場合、パケット・メモリは
スケジューラに信号E−NEを送る。
e)スケジューラが待ち行列−?工から要求メツセージ
を解除する。
f)スケジューラが待ち行列↓からデータ・メッセージ
を解除する。
g)スケジューラがサーバ・プロセス工専用の待ち行列
1にデータ・メッセージを送る。
h)待ち行列ユが空であった場合、パケット・メモリは
スケジューラに信号E−NEを送る。
i)サーバ・プロセス上が待ち行列盈からデータ・メッ
セージを解除する。
この結果、空の待ち行列がなかった場合には6つの操作
(alcs elflgz 1) が必要テアリ、また
最初に全ての待ち行列が空であった場合には9つの操作
(alblCldles fs gshst)が必要で
あることがわかる。さらに、スケジューラ専用のプロセ
ッサlが障害に陥った場合、システム全体が停止する。
上述の欠点は、これから詳しく説明する本発明による分
散スケジューリング機構によって克服される。
分散スケジューラに関する例 本発明によるスケジューリング機構を第1図を参照して
説明する。
この構成には、複数のソース・プロセス4、複数のサー
バ・プロセス5及びサーバ・プロセス毎に1個の割合で
各サーバ・プロセスに関連する複数のスケジューラ6が
存在しうる。この構成は待ち行列3を使用する。すなわ
ち、複数のサーバ・プロセス、実際には上に定義したあ
るプロセス・グループの全サーバ・プロセスが同時に通
知情報を受け取ることができ、またただ1つの待ち行列
3からデータ・メッセージを解除することができる。パ
ケット・メモリからサーバ・プロセスに送られる通知情
報は、空から非空への遷移を示す信号E−NEである。
最も単純な場合、すなわち第1図に示すようにスケジュ
ール管理される各プロセスがそれぞれ異なるプロセッサ
内で走行する場合には、ソース・プロセス↓はデータ・
メッセージをそのプロセス・グループの唯一の待ち行列
である待ち行列3に送る。サーバ・プロセスエ及び−2
−はこのメツセージを待ち行列から解除する準備ができ
ている。
この例は、任意の数のソース・プロセス及びサーバ・プ
ロセスに容易に一般化できる。。
メツセージと信号の流れは次のようになる。
a)ソース・プロセス↓が待ち行列にデータ・メッセー
ジを送り、データ・メッセージはそこに登録される。
b)待ち行列が空であった場合、パケット・メモリはサ
ーバ・プロセス↓に信号E−NEを送る。
C)同様に、待ち行列が空であった場合、パケット・メ
モリはサーバ・プロセス)に信号E−NEを送る。これ
は、サーバ・プロセス2がサーバ・プロセス↓と同じプ
ロセス・グループに属しているためである。
d)サーバ・プロセスJのスケジューラ6が待ち行列3
からデータ・メッセージを解除する。
上記のステップから、この分散スケジューリング機構は
、サーバ・プロセス毎に1つずつ独立したスケジューラ
を含むことがわかる。このため、スケジューラの1つに
問題が発生した場合に、データ・メッセージを常に他の
スケジューラによって待ち行列から解除し、それに関連
するサーバ・プロセスで使用することができるので、こ
の分散スケジューリング機構に耐故障性が与えられる。
したがって、サーバ・プロセスが多重リンク伝送グルー
プを使用した通信制御装置の回線インタフェース・モジ
ュール(LIM)内で走行する通信プロセスである場合
、所与のLIMプロセスのスケジューラに障害が発生し
た場合に、伝送全体は影響を受けない。
欧州特許出願第88480102.8号明細書に記載さ
れた知能パケット・メモリを持つハードウェアによって
支援される、新しいスケジューリング機構に伴うステッ
プのより詳細な説明を以下に示す。
1、パケット・メモリは、待ち行列が「空」状態から「
非空」状態に遷移する時に信号を受け取る必要があるプ
ロセッサ(すなわち、そのプロセス・グループに属する
プロセッサ)の番号リストを各待ち行列毎に記憶する。
このプロセッサのリストは、信号発信先プロセッサ・リ
スト(SPL)と呼ぶ。第3A図に示すように、このリ
ストは待ち行列に付加された待ち行列制御ブロック(Q
CB)内にある。これは、そのプロセス・グループにプ
ロセッサが追加または削除されたときだけ修正される。
図中、EPは待ち行列登録(エンキュー)ポインタ、D
Pは待ち行列解除(デキュー)ポインタ、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(オン)にセットされたプロセッサに送られる
2、各スケジューラは、そのプロセス・グループに属す
る待ち行列について、待ち行列の状態と待ち行列の識別
子(LRA)を記憶する。これはスケジューラ状態表(
11)(第7図)を用いて行なわれる。スケジューラ毎
に1つのスケジューラ状態表がある。この表は待ち行列
の論理レコード・アドレス(複数の待ち行列がある場合
)とその待ち行列に関連するスケジューラの待ち行列状
111(すなわち空または非空)のリストを含む。
スケジューラ自体は既知であり、本発明の一部ではない
ため、スケジューラ自体についてはこれ以上の説明は省
略する。
3、監視プロセスによってデータ・メッセージ待ち行列
が生成される時、パケット・メモリは待ち行列の識別子
を生成し、この待ち行列に関連するプロセッサの番号リ
ストを初期設定する。各スケジューラは表11中に待ち
行列識別子(LRA)を記憶し、待ち行列の状態を値「
空」に初期設定する。これは以下の手順で行なわれる。
(1)プロセッサ(LIM)の1つで走行する監視プロ
セスが、CREATEコマンドを用いて待ち行列を生成
し、次に、 (2)このプロセスが、プロセス・グループの各スケジ
ューラに待ち行列のLRAを送ることによって、スケジ
ューラに待ち行列が生成されたことを知らせ、次に、 (3)各スケジューラがパケット・メモリのデータ・メ
ッセージ待ち行列3に対してATTACHコマンドを実
行する。ATTACHコマンドノ形式は第4図に示す。
次に、 (4)パケット・メモリがQCB9の5PLIO,!=
ATTACHコマンドのプロセッサ・マップ・フィール
ドPMAP L 2との間でOR(論理和)をとってそ
のSPLを更新し、これによってQCBは信号E−NE
を受け取るべきプロセッサのリストを含むようになる。
最後に、 (5)各スケジューラがこの待ち行列に関係するそれ自
身のスケジューラ状態表に「空」の値をセットして、そ
の表を初期設定する。
4、既存のプロセス・グループに追加のスケジューラと
それに関連するプロセスを生成する時、監視プロセスが
新しいスケジューラに待ち行列の識別子(LRA)を与
える。次にスケジューラはそれ自体をその待ち行列に付
加し、また待ち行列の状態を値「非空」に初期設定する
。これは以下の手順で行なわれる。
(1)追加されたスケジューラ1が待ち行列のLRAを
受け取り、 (2)その待ち行列に対してATTACHコマンドを実
行し、 (3)スケジューラ状態表に「非空」に対応する値をセ
ットして、待ち行列を初期設定する。
この第3のステップは、待ち行列が空でなく、新しい待
ち行列解除操作が可能であるという省略時の前提に対応
する。したがって待ち行列が実際には空であった場合は
、分散スケジューラにその旨が通知される。
5、最初に空であった待ち行列がソース・プロセスから
データ・メッセージを受け取った時、パケット・メモリ
は、そのプロセス・グループに属する全プロセッサに信
号E−NEを送る。この信号を受け取った時、各スケジ
ューラは対応する待ち行列状態を更新する。これは以下
の手順で行なわれる。
(1)パケット・メモリが信号E−NEを送るべきプロ
セッサを決定するため、5PL10の各ビットを走査し
、 (2)パケット・メモリがSPLで選択されたプロセッ
サに信号を送り、 (3)待ち行列がデータ・メッセージを受け取っり時、
各スケジューラはその待ち行列に関するスケジューラ状
態表11の項目に「非空」状態を入力する。
6、スケジューラは待ち行列3からメツセージを解除す
る時、パケット・メモリから待ち行列の新しい状態を示
す状況を受け取る。待ち行列が空である場合、スケジュ
ーラはスケジューラ状態表中の対応する待ち行列状態を
更新する。待ち行列の状況は各DEQUEUEコマンド
の戻りコード(RC)に含まれる。
7、操作員または監視プロセスが、あるプロセス・グル
ープの1プロセスを非活動化することを決定した時、対
応するスケジューラは活動を停止し、そのプロセス・グ
ループから外れる。従って、それは以下のものを実行す
る。
(1)DETACHコマンド。第5図にその形式を示す
。この形式はATTACHコマンドの形式に類似してい
るが、コマンド・コード(cM)が異なる。
所与のスケジューラを走らせているプロセッサによって
DETACHコマンドが実行された結果、パケット・メ
モリ中のデータ・メッセージ待ち行列から前記プロセッ
サが外される。次に、(2)パケット・メモリが5PL
IOとPMAP12の間でXOR(排他的論理和)コマ
ンドを実行する(SPLのビットとPMAPのビットが
共に1″の時、ビット″O″を取る)。次に、(3)ス
ケジューラとそれに関連するサーバ・プロセスが非活動
化される。
例 POとPlだけが最初に活動化されたプロセッサで
ある場合、QCBのSPLフィールドは1100000
0 00000000となる。
Plに対するDETACHコマンドに対応するPMAP
フィールドは、01000000 00ooooooと
なる。SPLとPMAPフィー/l/ドの間でXOR操
作を行なった結果、更新されたSPLの内容は1000
0000 00000000となり、Plが消滅して、
POがデータ・メッセージ待ち行列に依然として接続さ
れているただ1つのプロセッサになったことを意味する
上に説明した共用プロセスのスケジューリング機構は、
パケット・メモリに接続されたプロセッサ内で走行する
プロセスの高速かつ耐故障性のあるスケジューリングを
可能にする。このスケジューリング機構の効率が高いこ
との証拠を以下に示す。
まず、以下の表記法を用いる。
・Nは、プロセス・グループ内に含まれるスケジューラ
の数。
・iはある特定のスケジューラの番号、i=く1・・・
N〉 ・Mは、プロセスに対するデータ・メッセージの数。
・Tliは、信号E−NEを実行するための、パケット
・メモリ内での処理時間+パケット・メモリとプロセッ
サiの間の転送時間。
・T2iは「信号E−NEが活動化された」という事象
を処理し、また待ち行列状態を更新するためのスケジュ
ーラi内での処理時間。
・T3iは状態の更新から待ち行列解除操作開始までの
プロセッサi内での遅延。
・T4iは待ち行列解除コマンドを実行するための、パ
ケット・メモリ内での処理時間+パケット・メモリとプ
ロセッサiの間の転送時間。
・T5iは「空の待ち行列に対して待ち行列解除を行な
った」という事象を処理し、また待ち行列状態を更新す
るためのスケジューラi内での処理時間である。
次に、スケジューリング機構が適正であり(すなわち、
それに関する最終状態機械が絶対にデッドロックしない
)、プロセス・グループに属するどのプロセッサの障害
に対しても強く、また高速であることを証明する。
・適正さ データ・メッセージ待ち行列において、実際の状態は「
空」または「非空」のいずれかであり得る。
スケジューラもまた2つの状態「空」と「非空」を定義
する。これはパケット・メモリから信号を受け取った時
にスケジューラ状態表11に記憶される。
障害がない限り、T 111T 2 is T 311
T41及びT51はを限である。したがって、スケジュ
ーラの待ち行列状態が、を限の遅延の後に実際の待ち行
列の状態に等しくなることが証明できる。
このことは、2つ、の構成で、すなわち待ち行列識別子
(LRA)の初期設定時と初期設定後に起こる実際の待
ち行列の状態の変更時に成立する。
工、初期設定後の適正さ スケジューラ内の待ち行列識別子の初期設定時に待ち行
列の実際の状態は、「空」か不明かのいずれかであり得
る。スケジューラの接続後に待ち行列が生成される場合
は「空」であり、スケジューラの接続前に待ち行列が生
成される場合は不明である。
待ち行列の実際の状態が「空」である場合、スケジュー
ラの待ち行列状態は空であり、2つの状態は一致する。
待ち行列の実際の状態が不明である場合、スケジューラ
の初期状態は「卵生」にセットされる。
スケジューラはt+T3fの時点で待ち行列解除を実行
し、t+T3 i+T4 i+T5 iの時点でこの状
態を更新する。
このように、スケジューラの待ち行列状態は初期設定時
間tまたはt+T3iの時点で実際の待ち行列の状態と
等しくなる。
2、初期設定後の実際の待ち行列状態の変化後の適正さ 初期設定の後に待ち行列の実際の、状態が変化した場合
、有限の遅延の後にスケジューラの状態が実際の待ち行
列の状態と等しくなる。
待ち行列の実際の状態は、以下に示す場合にのみ変化し
得る。
a、メツセージが待ち行列に登録される時、及び待ち行
列が当初空であった時。スケジューラはt+T1iの時
点で事象″5ETNE”を受け取り、t+T1i+T2
iの時点でその状態を「卵生」に更新する。
b、ローカル・スケジューラ(すなわち作業中のサーバ
・プロセスに関連するスケジューラ)が待ち行列からた
だ1つのメツセージを解除した時、スケジューラはt+
T4 i+T5 iの時点でその状態を「空」に更新す
る。
C9待ち行列が「卵生」である場合、リモート・スケジ
ューラ(すなわちスケジュール管理操作を実行している
プロセスとは異なるプロセスに関連するスケジューラ)
がただ1つのメツセージを待ち行列から解除した時、ス
ケジューラはt+T1i+T2 iの時点でその状態を
「卵生」に更新する。
リモート・スケジューラが待ち行列解除操作を実行し終
えている場合、ローカル・スケジューラはその待ち行列
が空であることを知らないが、t+T3iの時点で待ち
行列解除を実行し、t+T3i+T4 i +T5 i
の時点で待ち行列解除の状況を受け取った時その状態を
更新する。
・障害に対する強さ あるプロセス・グループの各スケジューラは複数のプロ
セッサに分数されており、相互に独立である。したがっ
て、スケジューラは他のスケジューラの存在を知らない
。スケジューラの数Nは定義により2以上であると考え
られる。このため、N−1個までのプロセッサまたはス
ケジューラ、あるいはプロセッサとパケット・メモリの
間の接続に障害が発生しても、残りのスケジューラには
影響がない。
あるプロセッサに性能障害が発生しても、各スケジュー
ラがそれ自体のリズムで待ち行列解除操作を実行できる
ので、他のプロセッサは影響を受けない。
・性能 スケジューリング機構の性能は、N個のスケジューラで
M個のメツセージを処理するために必要な、通知メツセ
ージの数S及び待ち行列解除操作の回数りで与えられる
最悪の場合は、N個のスケジューラがそれぞれのメツセ
ージに対して待ち行列解除操作を実行する時、及びそれ
ぞれのデータ・メッセージに対して通知メツセージが送
られる時である。
M個のメツセージを処理するためには、Smax=MX
Nであり、Dmaχ=MxNである。
最善の場合は、待ち行列が決して空にならない時である
。このとき、最初のメツセージを待ち行列に登録する際
に各スケジューラにただ1つの通知メツセージが送られ
、待ち行列解除はすべて成功する。
M個のメツセージを処理するためには、Smi n=N
<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)。

Claims (8)

    【特許請求の範囲】
  1. (1)複数のプロセッサが共用知能記憶装置に接続され
    ている疎結合多重プロセッサ環境において、プロセッサ
    が前記共用知能記憶装置に含まれるデータ・メッセージ
    待ち行列に接続された時に前記プロセッサによって実行
    される、ソース・プロセスまたはサーバ・プロセスの高
    速のスケジューリングを行なうためのスケジューリング
    方法であって、 (a)前記共用記憶装置内でプロセス・グループの全プ
    ロセスに専用のFIFOデータ・メッセージ待ち行列を
    生成するステップと、 (b)前記FIFOデータ・メッセージ待ち行列に関し
    、前記待ち行列からデータ・メッセージを解除すること
    を必要とするサーバ・プロセスの参照を含む信号発信先
    プロセッサ・リストSPLを記憶するステップと、 (c)所与のソース・プロセスに関して、前記FIFO
    データ・メッセージ待ち行列にデータ・メッセージを登
    録するステップと、 (d)前記データ・メッセージ待ち行列を監視し、前記
    待ち行列が空の場合、新規データ・メッセージを待ち行
    列に登録する際に、E−NE(空から非空への遷移)信
    号を発生するステップと、 (e)前記信号発信先プロセッサ・リストSPLに記憶
    された、関連するサーバ・プロセスを実行中の全サーバ
    ・プロセッサに、前記E−NE信号を送るステップと、 (f)前記E−NE信号をサーバ・プロセスが受け取っ
    たとき、所与のサーバ・プロセスを専用のスケジューラ
    によってスケジュール管理し、それにより前記の所与の
    サーバ・プロセスで使用されるデータ・メッセージを、
    前記サーバ・プロセスで使用される前記データ・メッセ
    ージ待ち行列から解除するステップと、 (g)各スケジューラ専用のスケジューラ状態表中のF
    IFOデータ・メッセージ待ち行列状態を更新するステ
    ップと を含むことを特徴とするスケジューリング方法。
  2. (2)請求項1に記載の分散スケジュール管理機構であ
    って、前記のFIFOデータ・メッセージ待ち行列生成
    ステップが、 (a)前記待ち行列を、前記信号発信先プロセッサ・リ
    ストSPLを含む待ち行列制御ブロックQCBによって
    制御するために、前記共用記憶装置内で前記待ち行列を
    識別する論理レコード・アドレス(LRA)を生成する
    ステップと、 (b)前記論理レコード・アドレス(LRA)をサーバ
    ・プロセス専用である各スケジューラのスケジューラ状
    態表に記憶するステップと、 (c)前記待ち行列の状態を値「空」に初期設定するス
    テップと を含むことを特徴とするスケジューリング方法。
  3. (3)請求項1に記載のスケジューリング方法であって
    、前記の信号発信先プロセッサ・リストSPL記憶ステ
    ップが (a)複数のプロセッサのうちでサーバとなり得る各プ
    ロセッサごとに1ビットの論理ビットをSPL内で定義
    するステップと、 (b)所与のサーバ・プロセスがFIFOデータ・メッ
    セージ待ち行列に接続された時、対応する論理ビットを
    オンにセットして、信号発信先プロセッサ・リストSP
    Lを構成するステップと を含むことを特徴とするスケジューリング方法。
  4. (4)請求項1に記載のスケジューリング方法であって
    、前記信号発信先プロセッサ・リストSPLの前記更新
    が、SPLと待ち行列制御ブロックQCBに含まれるプ
    ロセッサ・マップ・フィールドPMAPとのOR操作に
    よって行なわれ、その際にデータ・メッセージが待ち行
    列に登録される時に空から非空への遷移信号E−NEを
    受け取るべきサーバ・プロセッサのリストをQCBが含
    むことを特徴とするスケジューリング方法。
  5. (5)請求項1に記載のスケジューリング方法であって
    、待ち行列からデータ・メッセージを解除するために使
    用される前記の所与のサーバ・プロセス及び専用スケジ
    ューラが、E−NE信号を受け取った後で最初に使用可
    能になるサーバ・プロセスであることを特徴とするスケ
    ジューリング方法。
  6. (6)請求項3に記載のスケジューリング方法であって
    、所与のサーバ・プロセスのFIFOデータ・メッセー
    ジ待ち行列への前記の接続が、各サーバ・プロセス専用
    のスケジューラによって、前記待ち行列の論理レコード
    ・アドレス(LRA)とそれに接続された全てのサーバ
    ・プロセッサのプロセッサ・マップPMAPの両方を定
    義するATTACH大域コマンドを用いて行なわれるこ
    とを特徴とするスケジューリング方法。
  7. (7)複数のプロセッサが共用知能記憶装置に接続され
    ている疎結合多重プロセッサ環境において、請求項1な
    いし6に定義するスケジューリングを行なうための装置
    であって、複数のソース・プロセスによってデータ・メ
    ッセージが登録されるようなデータ・メッセージ待ち行
    列に接続される各サーバ・プロセスごとに、 (a)前記データ・メッセージ待ち行列を監視するステ
    ップと、 (b)共用記憶装置によって発生された、前記データ・
    メッセージ待ち行列が待ち行列から解除すべきメッセー
    ジを含んでいることを通知するためのE−NE信号を受
    け取った時、前記データ・メッセージを順に待ち行列か
    ら解除して、前記メッセージが前記サーバ・プロセスに
    よって使用されるようにするステップと を実行する分散スケジューリング手段を含むことを特徴
    とするスケジューリング装置。
  8. (8)請求項7に記載の装置であって、共用記憶装置内
    のデータ・メッセージ待ち行列の論理レコード・アドレ
    スと、前記待ち行列の現在の空または非空の状態とを記
    憶した、スケジューラ状態表を各分散スケジューリング
    手段が含むことを特徴とするスケジューリング装置。
JP2239184A 1989-10-10 1990-09-11 スケジユーリング方法及び装置 Expired - Lifetime JPH07101407B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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