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
Application number
JP2239184A
Other languages
English (en)
Other versions
JPH03126158A (ja
Inventor
モーリス・デユオル
ピエール・ピナル
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、共用知能記憶装置に接続されたフロント・エ
ンド・プロセッサなど疎に結合された多重プロセッサ環
境において共用オブジェクトのスケジューリングを行な
うための分散機構に関するものである。本発明は欧州特
許出願第88480102.8号明細書に記載されているような、
それを通じてユーザまたは多重プロセッサが通信する、
共用知能記憶装置を持つ通信制御装置で典型的に使用さ
れるが、それだけに限定されるものでなく、記憶装置内
での情報の物理的位置に対して最適レベルの透過性(tr
ansparency)を提供する。
B.従来の技術およびその課題 本発明の背景は、メッセージを用いて通信するプロセス
から構成されたシステム構造である。プロセスとは、基
本タスク(システムにロードし、システム内で実行する
ことのできる基本プログラム)集合である。プロセス
は、最初に複数のプロセッサ内で生成され、これら異な
るプロセッサ内で実行され、各プロセッサが特有のデー
タを処理することがきる。メッセージはプロセッサ間の
通信を可能にする。例えば、要求を出す側のプロセスが
あるサーバ・プロセスに要求を出すため特定のメッセー
ジを送り、サーバ・プロセスはそれに応じて情報を提供
しまたは処理を行なう。
たとえば欧州特許出願88480102.8号明細書に記載されて
いる形式の共用知能記憶装置を含む通信制御装置では、
回線インターフェース・モジュール(LIM)は共用記憶
装置を介して通信するが、特定の各LIMでデータに対し
て行なわれる処理が、本発明でいうプロセスの例であ
る。
旧来のオペレーティング・システムまたは制御プログラ
ムは、メッセージが処理されるまでそれを保持する待ち
行列を生成するための1組の機能を提供する。この待ち
行列に対して行なわれる主な操作が2つある。すなわち
待ち行列へのメッセージの登録(エンキュー)と、待ち
行列からのメッセージの解除(デキュー)である。異な
るタスクが同一の待ち行列に作用することが可能であ
る。同一のデータ・メッセージ待ち行列に作用する分散
プロセスの集合を、プロセス・グループと呼ぶ。
スケジューラは、異なるプロセスの要求を調整するもの
である。スケジューラは、分散構成と集中構成のどちら
かを考えるかによって、1個のプロセッサ内またはプロ
セッサのグループ内で仲裁機能を実行する。既知の中央
スケジューリング機構では、スケジューラがプロセス・
グループ内のタスクの発行するすべての要求を知ってい
る。したがって、複数のプロセッサに分散された多数の
タスクの場合(1個のプロセッサ内のソフトウェア経路
長が長過ぎる時に起こる)、中央スケジューラがボトル
ネックとなる。
さらに、中央スケジューリング機構は、メッセージを要
求しまたメッセージを受け取るために、プロセッサ間通
信を用いることを暗黙の前提とする。このため、中央ス
ケジューラを含むプロセッサが障害を起こした場合、関
係するプロセス・グループに含まれるすべてのプロセス
も障害に陥る。
その結果、既知の中央スケジューリング機構は構成要素
の障害に対して、たとえそれがただ1つの構成要素の障
害であっても、耐性がない。
中央スケジューリング機構の例として、ホスト・コンピ
ュータ内にある1個の中央スケジューラを開示する、欧
州特許第0230721号明細書が挙げられる。
これに対して分散スケジューリング機構では、プロセス
・グループ内のプロセッサと同数のスケジューラが含ま
れる。
しかし、既知の分散スケジューリング機構では、分散ス
ケジューラは、分散プロセスと前記プロセスによって使
用される分散データの双方に依存する。このことは、複
数の疎に結合したプロセッサが使用可能な記憶空間を共
用する、共用記憶環境とは両立しない。
分散スケジューリング機構を用いた手法は、たとえば米
国特許第4387427号明細書、欧州特許第0183817号明細書
及び第0230721号明細書に記載されている。
米国特許第4387427号明細書は、プロセスのメッセージ
とそのプロセス自体の両方を共に待ち行列に登録するこ
とを含む、プロセス指名機構を開示している。上記の他
の2件の欧州特許は、目的プロセッサを確定的に選択す
る時分割ソース・プロセッサを開示している。
要約すると、従来技術で教示されたスケジューリング機
構は、集中式でなければ分散式であるが、完全に共用さ
れたタスクや独立のスケジューラと共に働くことができ
ない。
本発明の目的は、異なる複数のプロセッサに分散され
た、それぞれが同一の機能を実行するソフトウェア・タ
スク(基本的プログラム)のスケジューリングを行なう
高速の機構及び装置を提供することである。したがっ
て、このスケジューリング機構の目的は、タスクのスケ
ジューリング及び実行がプロセッサの障害に対して耐性
をもつようにすることである。
さらに正確に述べると、本発明の目的は、所与のプロセ
ス・グレープに属するどのプロセッサの障害に対しても
強いスケジューリング機構を提供することである。
本発明の他の目的は、共用記憶装置と各プロセッサの間
の信号の数に関して、また前述の欧州特許出願第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信号の受信および前記
解除処理に関連して該スケジューラ状態表の情報内容を
更新するステップと を含むことを特徴とする。
D.実施例 前述したように本発明は、説明の都合上、欧州特許出願
第88480102.8号明細書に記載されているようなパケット
・メモリの一般環境に関して説明するが、これは本発明
の範囲を限定するものではない。
本発明によるスケジューリング機構を理解し実施する上
で有用なパケット・メモリの主な特徴を以下に要約す
る。
パケット・メモリと呼ばれる共用記憶装置を介して相互
接続された1組のプロセッサから構成される分散システ
ムを考えてみる。すべてのプロセッサは、パケット・メ
モリ待ち行列(ハードウェア待ち行列)にアクセスする
ことができる。
待ち行列の生成と、それに引き続くプロセッサ間でのメ
ッセージ転送は、高水準コマンド“CREATE"、“ENQUEU
E"、“DEQUEUE"、“PUT"及び“GET"によって行なわれ
る。これらのコマンドは前述のパケット・メモリに関す
る特許出願明細書に説明されている。
本発明の説明のため、追加のいくつかの定義ならびにパ
ケット・メモリの他の特徴を導入する。
プロセス・グループは、理論上1個ないし複数のプロセ
ッサに関係することができるが、ここでは同一の待ち行
列に作用する最低2つのプロセッサに関係するものと仮
定する。というのは、本発明によって得られる利点の1
つである耐故障特性は、プロセス・グループに最低2つ
のプロセスが含まれ、かつ各プロセッサごとに1つのプ
ロセスがある場合にしか意味をなさないからである。
話がわかりやすいように、以下の説明の全体を通じてこ
の仮定を用いるが、本発明はプロセッサに3以上のプロ
セスが割り当てられる場合にも適用できる。
さらに、パケット・メモリは、その待ち行列の1つの状
況が修正されたことを相互接続された相異なるプロセッ
サに通知するために、同報通信号を発信することができ
る。したがって、パケット・メモリはメッセージ待ち行
列の状態を監視する際に内部で信号E−NEまたはNE−E
を発生することができ、これによって“EMPTY"(空)状
態から“NON−EMPTY"(非空)状態への遷移またはその
逆の遷移が発生したことを所与のメッセージ待ち行列内
でプロセッサに知らせることができる。どちらも技術上
重要であるが、以下に説明する理由により、「空から非
空」への遷移だけを通知するのが最も好都合である。
複数のプロセスが競合して所与の共用待ち行列からデー
タ・メッセージを解除する場合、及「非空から空」の遷
移が信号NE−Eによって全プロセスに同報通信される場
合、空の待ち行列に対して待ち行列解除操作が行なわれ
る事態を回避することはほとんど不可能である。複数の
サーバ・プロセスに等しい負荷がかかっている場合、こ
れらのプロセスはほぼ同時に待ち行列解除操作を行な
う。最も負荷の軽いプロセスが待ち行列内のメッセージ
を取る。他のプロセス信号はE−NEを受け取りその処理
を行なう前に、空の待ち行列に対して待ち行列解除を行
なおうとする。さらに、あるプロセスに高い負荷がかか
っている場合、信号E−NEを処理すべき時間にならない
うちに次のメッセージが待ち行列に入ってくる可能性が
ある。本発明によれば、空の待ち行列に対する待ち行列
解除処理は、信号NE−Eの処理と同じ経路長を持つ。こ
のとき、パケット・メモリは信号NE−Eを一切送出しな
いことが好ましい。
逆に、「空から非空」への遷移を信号E−NEによって同
報通信する場合は、同一の待ち行列に作用する全プロセ
ス(すなわち同一のプロセス・グループに属する全プロ
セス)が、次のメッセージを待ち行列から解除する権利
を争える状態になったとの通知を受ける。
したがって、E−NE信号を用いる実施態様だけについて
は詳しく説明する。上記のもう一方の手法は、非常に類
似した手段を含むが、効率は劣ることを理解されたい。
所与のプロセッサは、そのプロセスが待ち行列から解除
した最後のメッセージに含まれる状況によって、パケッ
ト・メモリ中の待ち行列が空であることを知る。
パケット・メモリは、各プロセッサに関係するプロセス
毎に1ビットを持ち(第3B図)、これによって信号E−
NEを送出する。
待ち行列解除は原子操作であり、すなわち、所世のプロ
セッサがパケット・メモリ中の待ち行列の解除を開始す
ると、待ち行列解除コマンドが完全に実行し終るまで割
り込みを受けない。これは高水準コマンドDEQUEUEの各
ステップに対応するパケット・メモリ内蔵マイクロプロ
グラムを適当に連鎖することにより容易に得られる。
パケット・メモリが発行するSIGNALコマンドの形式を第
6図に示す。これは、送られた情報が通知情報であるこ
とをパケット・メモリが様々なプロセッサに知らせるの
に用いるコマンド・フィールドCMと、空状態から非空状
態に移ったメッセージ待ち行列のパケット・メモリ内で
の識別子に対応する、論理レコード・アドレスLRAフィ
ールドとを含んでいる。
パケット・メモリ構造と共に使用する場合の旧来のスケ
ジューリング機構の説明。
第2図は、パケット・メモリ1の構造内で 使用される従来技術の集中スケジューリング機構の例を
示す。1ないし5の番号を付けたプロセッサ2はプロセ
スを実行するが、これらのプロセスは、パケット・メモ
リのFIFO待ち行列3にデータ・メッセージを登録する時
はソース・プロセスと呼び、またパケット・メモリの待
ち行列からデータ・メッセージを解除する時はサーバ・
プロセスと呼ぶ。プロセッサ2と共用記憶装置1の間の
接続はバス・システム8を介して行なうが、このバス・
システムは本発明に含まれないので、詳しい説明は省略
する。
この構成には、複数のソース・プロセス、複数のサーバ
(または目的)プロセス唯一のスケジューラが存在でき
る。これは、共用オブジェクトすなわちデータ・メッセ
ージを含む待ち行列が、それぞれ異なるプロセッサ内で
実行中の異なるサーバ・プロセスによって操作でき、か
つある待ち行列があるプロセッサ内のただ1つのプロセ
ス専用である時に使用される標準構成である。これは最
も単純な構成に相当するが、それにもかかわらず、この
ような構造における中央スケジューリングの限界を示す
に充分なものである。第2図に示すように、各プロセス
が特定のプロセッサで走行する場合、ソース・プロセス
はスケジューラの待ち行列にデータ・メッセージを
送り、サーバ・プロセス1は待ち行列2を解除してメッ
セージを受け取る準備ができている。
所与のソース・プロセスは所与のサーバ・プロセス専用
の待ち行列の状態を知らず、またサーバ・プロセスがメ
ッセージを受け取り準備ができているかどうかも知らな
いため、サーバの待ち行列に直接データ・メッセージを
送ることができない。したがって、プロセス・グループ
のただ1つのデータ・メッセージ待ち行列(待ち行列
)の状態を知り、またどのサーバ・プロセスがデータ
・メッセージを受け取る準備ができているかを知ること
は、唯一のスケジューラの責任である。
したがって、メッセージと信号の流れは次のようにな
る。
a)ソース・プロセスがパケット・メモリのデータ待
ち行列にデータ・メッセージを送る。前記待ち行列は
中央スケジューラ6専用である。
b)待ち行列が空であった場合、パケット・メモリは
スケジューラー6に信号E−NEを送る。
c)サーバ・プロセスが待ち行列にデータ・メッセ
ージを要求する制御メッセージを送る。
d)待ち行列がが空であった場合、パケット・メモリ
はスケジューラに信号E−NEを送る。
e)スケジューラが待ち行列から要求メッセージを解
除する。
f)スケジューラが待ち業待ち行列からデータ・メッ
セージを解除する。
g)スケジューラがサーバ・プロセス専用の待ち行列
専用の待ち行列にデータ・メッセージを送る。
h)待ち行列が空であった場合、パケットメモリはス
ケジューラに信号E−NEを送る。
i)サーバ・プロセスが待ち行列からデータ・メッ
セージを解除する。この結果、空の待ち行列がなかった
場合には6つの操作(a、c、e、f、g、i)が必要
であり、また最初に全ての待ち行列が空であった場合に
は9つの操作(a、b、c、d、e、f、g、h、i)
が必要であることがわかる。さらに、スケジューラ専用
のプロセッサが障害に陥った場合、システム全体が停
止する。
上述の欠点は、これから詳しく説明する本発明による分
散スケジューリング機構によって克服される。
分散スケジューラに関する例 本発明によるスケジューリング機構を第1図を参照して
説明する。
この構成には、複数のソース・プロセス4、複数のサー
バ・プロセス5及びサーバ・プロセス毎に1個の割合で
各サーバ・プロセスに関連する複数のスケジューラ6が
存在しうる。この構成は待ち行列3を使用する。すなわ
ち、複数のサーバ・プロセス、実際には上に定義したあ
るプロセス・グループの全サーバ・プロセスが同時に通
知情報を受け取ることができ、またただ1つの待ち行列
3からデータ・メッセージを解除することができる。パ
ケット・メモリからサーバ・プロセスに送られる通知情
報は、空から非空への遷移を示す信号E−NEである。最
も単純な場合、すなわち第1図に示すようにスケジュー
ル管理される各プロセスがそれぞれ異なるプロセッサ内
で走行する場合には、ソース・プロセスはデータ・メ
ッセージをそのプロセス・グループの唯一の待ち行列で
ある待ち行列に送る。サーバ・プロセス及びはこの
メッセージを待ち行列から解除する準備ができている。
この例は、任意の数のソース・プロセス及びサーバ・プ
ロセスに容易に一般化できる。
メッセージと信号の流れは次のようになる。
a)ソース・プロセスが待ち行列にデータ・メッセー
ジを送り、データ・メッセージはそこに登録される。
b)待ち行列が空であった場合、パケット・メモリはサ
ーバ・プロセスに信号E−NEを送る。
c)同様に、待ち行列が空であった場合、パケット・メ
モリはサーバ・プロセスに信号E−NEを送る。これ
は、サーバ・プロセスがサーバ・プロセス1と同じプ
ロセス・グループに属しているためである。
d)サーバ・プロセスのスケジューラ6が待ち行列3
からデータ・メッセージを解除する。
上記のステップから、この分散スケジューリング機構
は、サーバ・プロセス毎に1つずつ独立したスケジュー
ラを含むことがわかる。このため、スケジューラの1つ
に問題が発生した場合に、データ・メッセージを常に他
のスケジューラによって待ち行列から解除し、それに関
連するサーバ・プロセスで使用することができるので、
この分散スケジューリング機構に耐故障性が与えられ
る。したがって、サーバ・プロセスが多重リング伝送グ
ループを使用した通信制御装置の回線インターフェース
・モジュール(LIM)内で走行する通信プロセスである
場合、所与のLIMプロセスのスケジューラに障害が発生
した場合に、伝送全体は影響を受けない。
欧州特許出願第88480102.8号明細書に記載された知能パ
ケット・メモリを持つハードウェアによって支援され
る、新しいスケジューリング機構に伴うステップのより
詳細な説明を以下に示す。
1.パケット・メモリは、待ち行列が「空」状態から「非
空」状態に遷移する時に信号を受け取る必要があるプロ
セッサ(すなわち、そのプロセス・グループに属するプ
ロセッサ)の番号リストを各待ち行列毎に記憶する。こ
のプロセッサのリストは、信号発生先プロセッサ・リス
ト(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(オン)にセットされたプロ
セッサに送られる。
2.各スケジューラは、そのプロセス・グループに属する
待ち行列について、待ち行列の状態と待ち行列の識別子
(LRA)を記憶する。これはスケジューラ状態表(11)
(第7図)を用いて行なわれる。スケジューラ毎に1つ
のスケジューラ状態表がある。この表は待ち行列の論理
レコード・アドレス(複数の待ち行列がある場合)とそ
の待ち行列に関連するスケジューラの待ち行列状態(す
なわち空または非空)のリストを含む。
スケジューラ自体は既知であり、本発明の一部ではない
ため、スケジューラ自体についてはこれ以上の説明は省
略する。
3.監視プロセスによってデータ・メッセージ待ち行列が
生成される時、パケットメモリは待ち行列の識別子を生
成し、この待ち行列に関連するプロセッサの番号リスト
を初期設定する。各スケジューラは表11中に待ち行列識
別子(LRA)を記憶し、待ち行列の状態を値「空」に初
期設定する。これは以下の手順で行なわれる。
(1)プロセッサ(LIM)の1つで走行する監視プロセ
スが、CREATEコマンドを用いて待ち行列を生成し、次
に、 (2)このプロセスが、プロセス・グループの各スケジ
ューラに待ち行列のLRAを送ることによって、スケジュ
ーラに待ち行列が生成されたことを知らせ、次に、 (3)各スケジューラがパケット・メモリのデータ・メ
ッセージ待ち行列3に対してATTACHコマンドを実行す
る。ATTACHコマンドの形式は第4図に示す。次に、 (4)パケット・メモリがQCB9のSPL10とATTACHコマン
ドのプロセッサ・マップ・フィールドPMAP12との間でOR
(論理和)をとってそのSPLを更新し、これによってQCB
は信号E−NEを受け取るべきプロセッサのリストを含む
ようになる。最後に、 (5)各スケジューラがこの待ち行列に関係するそれ自
身のスケジューラ状態表に「空」の値をセットして、そ
の表を初期設定する。
4.既存のプロセス・グループに追加のスケジューラとそ
れに関連するプロセスを生成する時、監視プロセスが新
しいスケジューラに待ち行列の識別子(LRA)を与え
る。次にスケジューラはそれ自体をその待ち行列に付加
し、また待ち行列の状態を値「非空」に初期設定する。
これは以下の手順で行なわれる。
(1)追加されたスケジューラ1が待ち行列のLRAを受
け取り、 (2)その待ち行列に対してATTACHコマンドを実行し、 (3)スケジューラ状態表に「非空」に対応する値をセ
ットして、待ち行列を初期設定する。
この第3のステップは、待ち行列が空でなく、新しい待
ち行列解除操作が可能であるという省略時の前提に対応
する。したがって待ち行列が実際には空であった場合
は、分散スケジューラにその旨が通知される。
5.最初に空であった待ち行列がソース・プロセスからデ
ータ・メッセージを受け取った時、パケット・メモリ
は、そのプロセス・グループに属する全プロセッサに信
号E−NEを送る。この信号を受け取った時、各スケジュ
ーラは対応する待ち行列状態を更新する。これは以下の
手順で行なわれる。
(1)パケット・メモリが信号E−NEを送るべきプロセ
ッサを決定するため、SPL10の各ピットを走査し、 (2)パケット・メモリがSPLで選択されたプロセッサ
に信号を送り、 (3)待ち行列がデータ・メッセージを受け取った時、
各スケジューラはその待ち行列に関するスケジューラ状
態表11の項目に「非空」状態を入力する。
6.スケジューラは待ち行列3からメッセージを解除する
時、パケット・メモリから待ち行列の新しい状態を示す
状況を受け取る。待ち行列が空である場合、スケジュー
ラはスケジューラ状態表中の対応する待ち行列状態を更
新する。待ち行列の状況はDEQUEUEコマンドの戻りコー
ド(RC)に含まれる。
7.操作員または監視プロセスが、あるプロセス・グルー
プの1プロセスを非活動化することを決定した時、対応
するスケジューラは活動を停止し、そのプロセス・グル
ープから外れる。従って、それは以下のものを実行す
る。
(1)DETACHコマンド。第5図にその形式を示す。この
形式はATTACHコマンドの形式に類似しているが、コマン
ド・コード(CM)が異なる。
所与のスケジューラを走らせているプロセッサによって
DETACHコマンドが実行された結果、パケット・メモリ中
のデータ・メッセージ待ち行列から前記プロセッサが外
される。次に、 (2)パケット・メモリがSPL10とPMAP12の間でXOR(排
他的論理割)コマンドを実行する(SPLのビットとPMAP
のビットが共に“1"の時、ビット“0"を取る)。次に、 (3)スケジューラとそれに関連するサーバ・プロセス
が非活動化される。
例 P0とP1だけが最初に活動化されたプロセッサである
当倍、QCBのSPLフィールドは11000000 00000000とな
る。
P1に対するDETACHコマンドに対応するPMAPフィールド
は、01000000 00000000となる。SPLとPMAPフィールド
の間でXOR操作を行なった結果、更新されたSPLの内容は
10000000 00000000となり、P1が消失して、P0がデータ
・メッセージ待ち行列に依然として接続されているただ
1つのプロセッサになったことを意味する。
上に説明した共用プロセスのスケジューリング機構は、
パケット・メモリに接続されたプロセッサ内で走行する
プロセスの高速かつ耐故障性のあるスケジューリングを
可能にする。このスケジューリング機構の効率が高いこ
との証拠を以下に示す。
まず、以下の表記法を用いる。
・Nは、プロセス・グループ内に含まれるスケジューラ
の数。
・iはある特定のスケジューラの番号、 i=<1…N> ・Mは、プロセスに対するデータ・メッセージの数。
・T1iは、信号E−NEを実行するための、パケット・メ
モリ内での処理時間+パケット・メモリとプロセッサi
の間の転送時間。
・T2iは「信号E−NEが活動化された」という事象を処
理し、また待ち行列状態を更新するためのスケジューラ
i内での処理時間。
・T3iは状態の更新から待ち行列解除操作開始までのプ
ロセッサi内での遅延。
・T4iは待ち行列解除コマンドを実行するための、パケ
ット・メモリ内での処理時間+パケット・メモリとプロ
セッサiとの間の転送時間。
・T5iは「空の待ち行列に対して待ち行列解除を行なっ
た」という事象を処理し、また待ち行列状態を更新する
ためのスケジューラi内での処理時間である。化 次に、スケジューリング機構が適正であり(すなわち、
それに関する最終状態機械が絶対にデッドロックしな
い)、プロセス・グループに属するどのプロセッサの障
害に対しても強く、また高速であることを証明する。
・適正さ データ・メッセージ待ち行列において、実際の状態は
「空」または「非空」のいずれかであり得る。
スケジューラもまた2つの状態「空」と「非空」を定義
する。パケット・メモリから信号を受け取った時にスケ
ジューラ状態表11に記憶される。
障害がない限り、T1i、T2i、T3i、T4i及びT5iは有限で
ある。したがって、スケジューラの待ち行列状態が、有
限の遅延の後に実際の待ち行列の状態に等しくなること
が証明できる。
このことは、2つの構成で、すなわち待ち行列識別子
(LRA)の初期設定時と初期設定後に起こる実際の待ち
行列の状態の変更時に成立する。
1.初期設定後の適正さ スケジューラ内の待ち行列識別子の初期設定時に待ち行
列の実際の状態は、「空」か不明かのいずれかであり得
る。スケジューラの接続後に待ち行列が生成される場合
は「空」であり、スケジューラの接続前に待ち行列が生
成される場合は不明である。
待ち行列の実際の状態が「空」である場合、スケジュー
ラの待ち行列状態は空であり、2つの状態は一致する。
待ち行列の実際の状態が不明である場合、スケジューラ
の初期状態は「非空」にセットされる。スケジューラは
t+T3iの時点で待ち行列解除を実行し、t+T3i+T4i
+T5iの時点でこの状態を更新する。
このように、スケジューラの待ち行列状態は初期設定時
間tまたはt+T3iの時点で実際の持ち行列の状態と等
しくなる。
2.初期設定後の実際の待ち行列状態の変化後の適正さ 初期設定の後に待ち行列の実際の状態が変化した場合、
有限の遅延の後にスケジューラの状態が実際の待ち行列
の状態と等しくなる、 待ち行列の実際の状態は、以下に示す場合にのみ変化し
得る。
a.メッセージが待ち行列に登録される時、及び待ち行列
が当初空であった時。スケジューラはt+T1iの時点で
事象“SETNE"を受け取り、t+T1i+T2iの時点でその状
態を「非空」に更新する。
b.ローカル・スケジューラ(すなわち作業中のサーバ・
プロセスに関連するスケジューラ)が待ち行列からただ
1つのメッセージを解除した時、スケジューラはt+T4
i+T5iの時点のその状態を「空」に更新する。
c.待ち行列が「非空」である場合、リモート・スケジュ
ーラ(すなわちスケジュール管理操作を実行しているプ
ロセスとは異なるプロセスに関連するスケジューラ)が
ただ1つのメッセージを待ち行列から解除した時、スケ
ジューラはt+T1i+T2iの時点でその状態を「非空」に
更新する。リモートスケジューラが待ち行列解除操作を
実行し終えている場合、ローカル・スケジューラはその
待ち行列が空であることを知らないが、t+T3iの時点
で待ち行列解除を実行し、t+T3i+T4i+T5iの時点で
待ち行列解除の状況を受け取った時その状態を更新す
る。
・障害に対する強さ あるプロセス・グループの各スケジューラは複数のプロ
セッサに分散されており、相互に独立である。したがっ
て、スケジューラは他のスケジューラの存在を知らな
い。スケジューラの数Nは定義により2以上であると考
えられる。このため、N−1個までのプロセッサまたは
スケジューラ、あるいはプロセッサとパケット・メモリ
の間の接続に障害が発生しても、残りのスケジューラに
は影響がない。
あるプロセッサに性能障害が発生しても、各スケジュー
ラがそれ自体のリズムで待ち行列解除操作を実行できる
ので、他のプロセッサは影響を受けない。
・性能 スケジューリング機構の性能は、N個のスケジューラで
M個のメッセージを処理するために必要な、通知メッセ
ージの数S及び待ち行列解除操作の回数Dで与えられ
る。
最悪の場合は、N個のスケジューラがそれぞれのメッセ
ージに対して待ち行列解除操作を実行する時、及びそれ
ぞれのデータ・メッセージに対して通知メッセージが送
られる時である。
M個のメッセージを処理するためには、 Smax=M×Nであり、Dmax=M×Nである。
最善の場合は、待ち行列が決して空にならない時であ
る。このとき、最初のメッセージを待ち行列に登録する
際に各スケジューラにただ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)。

Claims (8)

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

* 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
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
AU5025600A (en) 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
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
WO2001009690A1 (en) 1999-07-29 2001-02-08 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
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
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
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7924828B2 (en) * 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
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
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
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
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
US8015567B2 (en) * 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
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
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
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
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
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
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
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
WO2005062175A2 (en) * 2003-12-23 2005-07-07 Corizon Limited Method and apparatus for composite user interface creation
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7861246B2 (en) * 2004-06-17 2010-12-28 Platform Computing Corporation Job-centric scheduling in a grid environment
US7340654B2 (en) 2004-06-17 2008-03-04 Platform Computing Corporation Autonomic monitoring 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 富士通株式会社 サーバシステム
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
EP2304536A4 (en) 2008-06-20 2012-08-15 Invensys Sys Inc SYSTEMS AND METHOD FOR IMMERSIBLE INTERACTION WITH ACTUAL AND / OR SIMULATED DEVICES FOR PROCESS, ENVIRONMENTAL AND INDUSTRIAL CONTROL
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
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
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
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 株式会社日立製作所 多重処理システムの割込み制御方法
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

Also Published As

Publication number Publication date
EP0422310A1 (en) 1991-04-17
US5428781A (en) 1995-06-27
JPH03126158A (ja) 1991-05-29

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
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
US5606703A (en) Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures
US7089340B2 (en) Hardware management of java threads utilizing a thread processor to manage a plurality of active threads with synchronization primitives
JP3762846B2 (ja) サーバのグループに関する作業負荷管理を行うデータ処理装置および方法
US5887135A (en) System and method for management of object transitions in an external storage facility accessed by one or more processors
EP0536073A2 (en) Method and process for interprocess communication using named pipes
JPH06309252A (ja) 相互接続インタフェース
US7640549B2 (en) System and method for efficiently exchanging data among processes
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
CN102622271A (zh) 用于多线程处理的使用信号量的方法和设备
US20070079077A1 (en) System, method, and computer program product for shared memory queue