JPH0795317B2 - マルチプロセッサ・システムのジョブの割当方法 - Google Patents

マルチプロセッサ・システムのジョブの割当方法

Info

Publication number
JPH0795317B2
JPH0795317B2 JP2044295A JP4429590A JPH0795317B2 JP H0795317 B2 JPH0795317 B2 JP H0795317B2 JP 2044295 A JP2044295 A JP 2044295A JP 4429590 A JP4429590 A JP 4429590A JP H0795317 B2 JPH0795317 B2 JP H0795317B2
Authority
JP
Japan
Prior art keywords
processor
time
execution
master
queue
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 - Fee Related
Application number
JP2044295A
Other languages
English (en)
Other versions
JPH02249055A (ja
Inventor
エドワード ベンケーサー ドナルド
バーナード サイア ジョセフ
ゴードン グリーンバーグ アルバート
エマーソン ライト ポール
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.)
AT&T Corp
Original Assignee
AT&T 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 AT&T Corp filed Critical AT&T Corp
Publication of JPH02249055A publication Critical patent/JPH02249055A/ja
Publication of JPH0795317B2 publication Critical patent/JPH0795317B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はマルチプロセッサーシステムに関し、特にマル
チプロセッサーシステムのプロセッサー間に作業を割り
当てる構成に関する。
[従来の技術] 良く知られているマルチプロセッサーシステムの構成
は、入力/出力装置との連絡、またディスクやテープの
ような大容量メモリへのアクセスなどのシステムレベル
機能を扱う1つのマスタ・プロセッサを有し、一方他の
プロセッシング要素は他の計算機能を行い、システムレ
ベル機能に遭遇したときは割当てられた作業をマスタ・
プロセッサへ返す。あるソフトウエアシステムでは、実
行時間の約半分がその様なシステムレベルの機能に費や
される。したがって、その様なシステムでは2つのプロ
セッサ、すなわちマスタ/スレーブ構成は1つのプロセ
ッサのほぼ2倍のプロセッシング能力を有するものと見
られている。しかし、ある条件下では、1つのスレーブ
・プロセッサを追加しても、全プロセッサ能力は100%
よりはるかに低く、時には50%よりも低い割合でしか増
加しない。この理由の1つは、スレーブ・プロセッサの
利用率に関係している。マルチプロセッサシステムによ
るユーザトランザクションのプロセッシングは、作業を
実行するのに必要なプログラム・インストラクションと
データのマスタ・プロセッサによる選択を含んでいる。
これはプロセスの新設に関するものである。マスタは新
設されたプロセスを実行するためスレーブ・プロセッサ
に送る。スレーブ・プロセッサは、そのプロセスを実行
し、それが扱うことができないようなシステムレベル機
能に遭遇した時点で、マスタへそのプロセスを送り返
す。マスタは適切なシステムレベル機能を実行し、その
プロセスを続いて、実行させるためにスレーブ・プロセ
ッサへ送り返す。
コンテクスト切替え、即ちプロセッサ間のプロセスの転
送、および関係するスタートアップアクティビティの実
行に要する時間の総計は、プロセス実行のための有効な
時間をかなり減らしている。このことは、頻繁にマスタ
プロセッサの相互作用を必要とする作業におて、問題と
なっている。
この様に、従来技術の問題点はマルチプロセッサシステ
ムの機器のプロセッシング能力の効率化、低コストであ
る。ある1つの従来技術においては、マスタ・プロセッ
サは多くのスレーブ・プロセッサと共に個別の待ち行列
を経て連絡され、ロードバランシングは最短の待ち行列
にタスクを配置することにより達成される。しかし、こ
れは頻繁なコンテクスト切替えから生ずる障害を解消す
るものではない。
他の従来技術のマルチプロセッサの構成においては、複
数の同じマスタを用いて、各々に一定の種類の入力/出
力装置と連絡するなどの個々に割り当てられたマスクを
持たせ、障害の防止とプロセッサの利用率の向上を計っ
ている。しかし、その様なシステムは固有の複雑性を持
ち、数個のプロセッサの各々が入力/出力容量を持たね
ばならないので、マスタ/スレーブマルチプロセッサの
長所を減少させている。
[発明の概要] プロセッサ間のプロセスを切替えずに、プロセスが実行
されると期待される時間を基礎にして、マルチプロセッ
サシステムのプロセッサ間に作業を割り当てる為に、各
プロセスの実行特性を使用するという本発明の原理に従
うことにより、従来技術の前記の問題点は解決され、技
術進歩が計られる。
本発明の1実施例によれば、切替えまで比較的長い時間
の実行が期待される実行特性をもつプログラム・プロセ
スは、マルチプロセッシング・システムのある種類のス
レーブプロセッサに割り当てられ、切替えまで比較的短
い時間が期待される実行特性をもつプログラム・プロセ
スは、マルチプロセッシング・システムの別の種類のマ
スタプロセッサに割り当てられる。
単にマスタが一定のシステムレベル機能のみを行う例示
的なマスタ/スレーブマルチプロセッサ・システムにお
いては、その様なシステムレベル機能間の時間間隔が比
較的長く予想されるプロセスは、スレーブ・プロセッサ
に割り当てられ、一方、システムレベル機能間の時間間
隔が比較的短く予想されるプロセスはマスタに割り当て
られる。この構成は、コンテクスト切替えを減らし、ス
レーブ・プロセッサの利用を改善する。その結果、所定
数のスレーブ・プロセッサは、より優れたシステムプロ
セッシング能力を提供する。
本発明の1実施例によれば、マスタ・プロセッサに割り
当てられたシステムレベル機能を含まないプロセスの1
セグメントの実行に費やされた時間は、同じプロセスの
次ぎのセグメントに予想される実行時間として使われ
る。プロセスのセグメントが実行される各時間、セグメ
ント保持時間すなわちセグメントの実行に費やされた時
間の表示は、関連プロセスの識別と共に記録される。こ
の保持時間は、次のそのようなセグメントが実行される
までそのプロセスに関連づけて残され、プロセスの次の
割り当ての基準になる。あるプロセスの最も新しい数個
の実行セグメントの平均保持時間又は最長保持時間のど
ちらかが、同じプロセスの次のセグメントの予想保持時
間として使われる。
本発明の特別な実施例によれば、マスタ・プロセッサ
は、保持時間が準下降順(厳密な意味で下降順ではない
という意味、即ち、同じ時間のものは並置する)となる
待ち行列にプロセスを入れる。スレーブ・プロセッサ
は、待ち行列の1つの端から長く記録された保持時間を
もつプロセスを実行し、マスタ・プロセッサは、待ち行
列の他の端から短く記録された保持時間をもつプロセス
を実行する。スレーブプロセッサはマスタに割り当てら
れた機能の1つが要求されるまでプロセスを実行する。
スレーブ・プロセッサは、プロセスの一部であるセグメ
ントの実行を完了すると、その実行されたセグメントの
実行(保持)時間の表示と共に、部分的に実行されたプ
ロセスを待ち行列内に入れる。マスタ・プロセッサは、
マスタ・プロセス待ち行列からプロセスを取り出し、要
求された機能を実行し、この実行したプロセスを、待ち
行列内の、スレーブ・プロセッサによって待ち行列に記
録された保持時間とほぼ等しい場所に入れる。本発明の
構成は、数個のスレーブ・プロセッサまたは数個のマス
タ・プロセッサのシステムに等しく適用される。
本発明を別の観点から見れば、スレーブプロセッサによ
って実行された長時間プロセスのセグメントは、周期的
に中断され、保持時間値は、プロセスのセグメントを実
行するに費やした複数の保持時間を集めて計算される。
好都合にも、その様な周期的中断は短い保持時間プロセ
スを不適当な遅れから守るために用いられる。
[実施例の説明] 第1図は本発明を利用した例示的なプロセッシングコン
ピュータ100を表すブロックダイヤグラムである。この
システムは、マスタ・プロセッサ101と複数のプロセッ
シング要素、及びスレーブ・プロセッサ110からなる。
周辺バス121によって、マスタ・プロセッサ101は、入力
/出力端子を含む入力/出力システム120、ディスクや
テープの大容量記録装置を含む大容量記憶システム122
からなる周辺システムとアクセスする。
システムのユーザは、入力/出力システム120の端子を
介してコンピュータ100と連絡する。ユーザと結ばれた
すべての端子のトランザクションは、マスタープロセッ
サ101で処理され、それは良く知られたAT&T・UNIX
(登録商標)のようなオペレーティングシステムの制御
のもとで機能する。マスタ・プロセッサは入力/出力ト
ランザクションを含むすべてのオペレーティングシステ
ムレベルの機能、およびメモリ130と大容量記憶システ
ム122の間の情報の転送を実行する。一方、スレーブ・
プロセッサ110はプロセスの実行についてのある種のオ
ペレーティングシステムレベル機能を実行できるが、周
辺バス121にアクセスを必要とする機能は実行しない。
その様の機能は、もっぱらマスタにより実行される。マ
スタ・プロセッサ101とスレーブ・プロセッサ110は、そ
れぞれメモリアクセスバス131を介して共用のメモリ130
へのアクセスを有する。メモリ130は、システムのオペ
レーティングシステム、システム待ち行列およびユーザ
のプロセスを記憶する。プロセッサ101とスレーブ・プ
ロセッサ要素110は、市販のAT&T3B2プロセッサのよう
な良く知られたデータプロセッサを使用可能であり、適
切な市販のメモリ・システムと周辺機器に接続すること
ができる。マスタプロセッサ101とスレーブ・プロセッ
サ110は、各々バス131にアクセスするためのメモリバス
アクセス回路103、命令を実行のための実行ユニット10
6、保持時間値を計算するために使われるタイマ回路115
を含む。加えて、マスタ・プロセッサ101は、バス121に
アクセスするための周辺バスアクセス回路105、周期的
な(例えば、10msごと)プログラム割り込みに使われる
間隔割り込みソース118を含んでいる。
第2図は、メモリ130の記号的なメモリ配置である。メ
モリは、オペレーティングシステム命令を記憶する領域
201、オペレーティングシステムのデータ構造を記憶す
る領域210、ユーザプロセスを記憶する領域220の3つの
基礎的な領域に分けられる。マスタ・プロセッサ101の
機能は、ユーザ・プロセス225の創作を含んでおり、こ
れらはユーザ・プロセス領域220に記憶され、マスタ・
プロセッサ101或いはプロセッシング要素110のどちらか
によって実行される。データ構造領域210は、PEプロセ
ス待ち行列212を記憶するために使われ、そこにマスタ
・プロセッサ101が、実行されるべきプロセスの識別を
入れる。マスタ・プロセッサ101による実行が要求され
るプロセスはマスタ・プロセス待ち行列211に入れられ
る。これらの待ち行列へのエントリーは、相当するユー
ザプロセスについての情報を含むプロセス表215の領域
を、プロセスが記憶されるユーザプロセス領域220中の
場所も含めて指示する。第2図はメモリ130の中の個別
の記憶領域としての待ち行列を表しているが、待ち行列
に入れる(queuing)機能は、待ち行列リンク機構によ
りプロセス表215の中の待ち行列を統合することによっ
ても達成される。
入力/出力システム120の入力端子を経て、ユーザから
のコマンドを受け取ると、マスタプロセッサ101は領域2
01に記憶されていたオペレーティングシステムの命令を
実行することによりユーザプロセスを作る。これは記憶
システム122のテープまたはディスクからデータや命令
シーケンスをユーザプロセス225の形でユーザプロセス
領域220へ転送することも含んでいる。エントリは、プ
ロセス表215の中に作られ、新しく創出されたプロセス
を定義し、関連するユーザプロセスが記憶されていたメ
モリの場所を識別する。マスタ・プロセッサ101また
は、PEプロセス待ち行列212にエントリを作り、プロセ
ス情報が記憶されていたプロセス表215に位置を示す。
マスタ・プロセッサ101とスレーブ・プロセッサ110の双
方は、この待ち行列からプロセスを実行する。前述のご
とく、第1図のマルチ・プロセッシング・システムにお
いて、スレーブ・プロセッサ110は周辺バス121へアクセ
スしないので、周辺システム機能、すなわち入力/出力
システム120または大容量記憶システム122へのアクセス
を必要とする機能は実行することができない。したがっ
てその様な機能を実行すべき状態にならないかぎり、ス
レーブ・プロセッサはプロセスを実行し続けることがで
きる。PEプロセス待ち行列212から得られたプロセスを
実行しているスレーブ・プロセッサが、その様な機能に
遭遇した時は、そのプロセスはスレーブ・プロセッサに
よってマスタ・プロセス待ち行列211に入れられる。マ
スタ・プロセッサ101は、マスタ待ち行列211からプロセ
スを取り出して必要な機能を実行し、PEプロセス待ち行
列へそのプロセスを返す。この交換はプロセスが完了す
るまで継続する。スレーブプロセッサ110が、マスタ・
プロセッサによる動作要求なしに比較的長時間これらの
プロセスを実行するような作業の配分を達成するため、
マスタ・プロセッサ101は、予想実行時間を基礎にしてP
Eプロセス待ち行列212の中のプロセスを分離する。詳し
くいえば、プロセスは保持時間値の準下降順序の待ち行
列に入れられる。したがって長く記録された保持時間を
有するプロセスは待ち行列の一端、短記録保持時間のも
のは待ち行列の他端に存在する。スレーブ・プロセッサ
110は長い保持時間を有する待ち行列の端からプロセス
を取り出し、一方マスタ・プロセッサ101は短い保持時
間を有するプロセスを取る。これらのアプローチが、ス
レーブ・プロセッサの利用率および所定数のスレーブ・
プロセッサを持つコンピュータのプロセッシング能力を
効果的に増大させることは実証されている。
プロセスのセグメントは常にスレーブ・プロセッサによ
って実行され、実行時間を表す保持時間値が計算され、
セグメントの完了に際して、プロセスを識別する情報と
共に、マスタ・プロセッサ待ち行列211に入れられる。
マスタプロセッサ101によるシステムレベルの作業が完
結した後、プロセスがPEプロセス待ち行列に再び入れら
れる時、前に計算された保持時間値が、次のセグメント
の予想保持時間としてみなされ、待ち行列にプロセスを
挿入する際に、用いられる。あるいはまた、マルチプロ
セッサはプロセスの数個の実行セグメントの計算保持時
間を記録し、例えば、最も新しい3個の実行セグメント
の最大値または平均値を、同じプロセスの次のセグメン
トの予想保持時間とする。その様な平均値または最大値
を計算するアルゴリズムは容易に入手可能である。
部分的に実行されたプロセスがスレーブプロセッサによ
ってマスタ・プロセス待ち行列に入れられる時、部分的
に実行されたプロセスは、高い優先度を持ってマスタに
よりこの待ち行列から取り出される。例えばマスタ・プ
ロセッサ101は新しく入れられたプロセスについての必
要なシステムレベル機能を実行するために、スレーブ・
プロセッサ110の1つによって処理可能な作業を先取り
する。この構成は長いマスタ・プロセス待ち行列の結
果、起るかもしれない障害を減らすために用いられる。
PEプロセス待ち行列212をロードするための1つのアル
ゴリズムは、プロセッサのどれかについて実行可能な作
業が始められるや否や、マスタ・プロセッサのために、
PEプロセス待ち行列にプロセスを入れる。また、マスタ
・プロセッサが、プロセスの実行を始めた後、それが他
のプロセスによって先取りされると、その時点において
前のプロセスはPEプロセス待ち行列に入れられる。これ
らの構成のうちのいずれかの構成が使われるという選択
は、マスタ・プロセッサの作業負荷に依る。新しく作ら
れたプロセスがPEプロセス待ち行列の第1に置かれた
時、新しいプロセスがマスタによって第1に扱われるよ
う保持時間はゼロにセットされる。保持時間としては他
の初期値もまた使用可能である。マスタプロセッサ101
はクロック115を含んでおり、かつ各スレーブ・プロセ
ッサ110もクロック115を含んでいる。これは、例えば、
アドレス可能なカウンタレジスタのソフトウェアを持つ
市販のハードウェアタイマ回路である。タイマ回路は、
周期的基準(例えば10msごとに一度)に基づき、ハード
ウェアによって1ずつ増やされる。PEプロセス待ち行列
212でのプロセスの1つの実行開始にあたり、実行プロ
セッサはハードウェアのタイマカウンタレジスタをリセ
ットする。プロセスが先のシステムレベルプロセッシン
グのために、マスタ・プロセス待ち行列211に返された
時、カウンタレジスタの値には保持時間が反映されてい
る。
第3図はマスタ・プロセス待ち行列とPEプロセス待ち行
列の中のエントリ301を図示したものである。それはプ
ロセス識別に使われる領域310以外に、ユーザプロセス
領域220中の相当するユーザプロセスの位置を識別する
領域311を含んでいる。更にそのエントリは保持時間値
を記録する領域315も含んでいる。保持時間領域315の内
容は、マスタ・プロセッサによって、プロセスを保持時
間値の準下降順序のPEプロセス待ち行列212を並べるの
に使われる。領域316は、後述のごとく、タイムスライ
シングに関連して用いられる保持時間値の中間計算を記
録するために使われる。
本発明の1実施例には、タイム・スライシングとして知
られている構成が用いられている。その構成によれば、
スレーブプロセッサ110は、もし実行時間が固定時間、
例えば10msを超えた場合には、PEプロセス待ち行列212
の短保持時間端にプロセスを返す。ここで述べるタイム
・スライシングは、短保持時間を持つあるプロセスの遅
延(starvation)を防ぐために行われる。この目的を達
成する他の構成としては、“エージング”が知られてお
り、良く使われている。ここで説明しているシステムで
は、マスタ・プロセッサ101は10ms毎に割り込みを発生
させる間隔割り込みソース118を持っている。割り込み
信号はメモリバス131の導線により、スレーブ・プロセ
ッサ110へ送られる。もし長い間隔が望ましい場合に
は、10msの割り込み信号は、セグメントの実行が中断さ
れる前、指定数の10msが過ぎるまで累算される。好まし
い時間間隔は、作業の実行特性に関連して選択される。
もし選択された間隔が短かすぎる場合には、タイムスラ
イす割り込みの数が過度となる。もし選択された間隔が
長すぎる場合には、幾つかの短い保持時間を有するプロ
セスは無視される。プロセスのセグメントが部分的に実
行され、タイムスライシングのために中断された最初の
時間は、通常は、実行セグメントの計算保持時間であ
り、第3図のプロセス表エントリ301の積算(累積)保
持時間領域316に入れられる。累積保持時間領域316は、
セグメント実行がタイムスライシングによって中断され
たとき、セグメントの実行に費やされた時間を累積する
ために使われる。この領域の値は、セグメントが中断さ
れるごとに増加する。セグメントが完全に実行されたと
き、累積保持時間領域の内容には、保持時間の最後の計
算値が加えられ、プロセスがスレーブ・プロセッサによ
ってマスタ・プロセス待ち行列211に入れられる前に、
その合計は第3図に示す保持時間領域315に入れられ
る。マスタプロセッサは保持時間領域の内容を、必要な
システムレベル機能が完結した後、PEプロセス待ち行列
へプロセスを返すときに、用いる。ゼロまたは前もって
選ばれた保持時間値は、タイムスライス割り込みの結果
として、スレーブ・プロセッサがPEプロセス待ち行列21
2へプロセスを返す時、保持時間領域315に入れられる
が、それによって、他のプロセスは待ち行列の高い端部
に向かって動き、かつ実行される。PEプロセス待ち行列
212にプロセスを再入する他の構成としては、プロセス
の優先度を段階的に減らすために、累積保持時間の値を
考慮する構成が可能である。
第4図は、PEプロセス待ち行列212からのプロセスのセ
グメントを実行する際に、プロセッサの1つによって実
行される機能を表したフローチャートである。ブロック
401はPEプロセス待ち行列からのプロセス取り出しを示
している。前述のごとく、PEプロセス待ち行列は二重端
の待ち行列であり、その中ではプロセスは保持時間値の
準下降順序で入れられている。スレーブ・プロセッサ11
0は、高い保持時間値を有するプロセスを実行するため
に、待ち行列の高い端からプロセスを取り出す。マスタ
・プロセッサ101は、それはユーザプロセスを実行する
ことが可能な時間を有する時、低い保持時間値を有する
プロセスを実行するために、待ち行列の低い端かたプロ
セスを取り出す。ブロック402は、待ち行列情報によっ
て識別されたエントリにおける、第2図に示すプロセス
表215の読取りを示している。第4図のブロック403は、
第1図のハードウェアタイマ115のリセットを示す。前
述のごとく、タイマカウンタは10msごとに1ずつ増加
し、プロセスのセグメントの実行が終った時に読み取ら
れる。ブロック40は、概して前述したように、マスタ・
プロセッサの利用が必要になるシステムレベル機能に遭
遇するか、またはタイムスライシングによりプロセスの
実行が中断するまで、ユーザプロセスの実行を示す。判
断ブロック410においては、タイムスライシングによる
中断か否かの決定が成される。もし、タイムスライシン
グによる中断でなければ、ブロック403においてリセッ
トされたタイマの値は、相当するプロセス表エントリ
(第3図)の累積保持時間領域316の内容に加えられ、
その結果はブロック412に示すように、そのエントリの
保持時間領域315に入れられる。その後、そのプロセス
はブロック414に示すように、マスタ・プロセス待ち行
列211に入れられる。もしユーザプロセスの実行が、タ
イムスライシングのプロセスによって導入された中断の
ために終わっていれば、ブロック403においてリセット
されたタイマの値は、相当するプロセス表エントリ(第
3図)の累積保持時間領域316に加えられ、ブロック415
に示すように、そのエントリの保持時間領域315にゼロ
が入れられる。ユーザプロセスの実行がタイムスライス
割り込みによって終わる時は、次のユーザプロセスの実
行が要求される。その後そのプロセスはブロック416に
示すようにPEプロセス待ち行列212に入れられる。保持
時間値はゼロなので、それは低い保持時間値に相当する
待ち行列の端に入れられる。その後、タイムスライシン
グによって中断させられたスレーブ・プロセッサは、PE
プロセス待ち行列212の他端から他のプロセスを取り出
し、実行可能となる。
上述した構成は単に本発明の原理の応用を説明するもの
であり、従って当業者は上述した本発明の技術思想及び
範囲から逸脱することなく多くの他の構成を案出でき
る。従ってその様な変更や修正は請求の範囲に包含され
る。
【図面の簡単な説明】
第1図は本発明の説明具体例に使われたマルチプロセッ
サ・システムを表したブロックダイヤグラム、 第2図は、第1図のマルチプロセッサ・システムのメモ
リの記号的メモリ配置図、 第3図は、第2図のメモリの中の説明表エントリを表し
た図、 第4図は、プロセッサの1つによるプロセス実行を表す
フローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アルバート ゴードン グリーンバーグ アメリカ合衆国,07041 ニュージャージ ィ ミルバーン,チェストナッツ ストリ ート 76 (72)発明者 ポール エマーソン ライト アメリカ合衆国,07920 ニュージャージ ィ バスキンリッジ,ウッドワード レー ン 118 (56)参考文献 特開 平1−316830(JP,A) 特開 昭54−15627(JP,A)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】マルチプロセッサ装置を構成するマスタ・
    プロセッサとスレーブ・プロセッサとの間でジョブを割
    り当てる方法において、 (A)ジョブセグメントの予測処理時間を、実行される
    べきプログラムプロセスへ割り当てるステップと、 前記プログラムプロセスは、マスタ・プロセッサまたは
    スレーブ・プロセッサの何れでも実行可能であり、 (B)前記プログラム・プロセスを、二重端の待ち行列
    に、予想処理時間の準下降順に、整列させるステップ
    と、 (C)前記待ち行列の予測処理時間の最長方向の端部か
    ら、前記スレーブ・プロセッサの実行用に、プログラム
    ・プロセスを選択するステップと、 (D)前記待ち行列の予測処理時間の最短方向の端部か
    ら、前記マスタ・プロセッサの実行用に、プログラム・
    プロセスを選択するステップとからなることを特徴とす
    るマルチプロセッサ・システムのジョブの割当方法。
  2. 【請求項2】マスタ・プロセッサとスレーブ・プロセッ
    サとを含むマルチ・プロセッサ・システムにおいて、少
    なくとも1つのセグメントを有するプログラムプロセス
    の実行をスケジュールする方法において、 (E)実行されるべき複数のプログラムプロセスを識別
    する識別子を待ち行列に記録するステップと、 前記プログラムプロセスは、マスタ・プロセッサまたは
    スレーブ・プロセッサの何れでも実行可能であり、 (F)セグメントの予想実行時間の指示を、識別された
    プログラムプロセスと関連して記録するステップと、 (G)他のプログラムプロセスより長い予想実行時間の
    指示を有するプロセスを、前記スレーブ・プロセッサの
    実行用に、選択するステップと、 (H)他のプログラムプロセスより短い予想実行時間の
    指示を有するプロセスを、前記マスタ・プロセッサの実
    行用に、選択するステップとからなることを特徴とする
    プログラム・プロセスの実行スケジューリング方法。
  3. 【請求項3】前記(F)ステップは、 関連プロセスのセグメントを実行する毎に、関連プロセ
    スの実行時間を計算し、 前記関連プロセスの実行時間を、関連プロセスの後続の
    セグメントの予測実行時間として定義する ことを特徴とする請求項2の方法。
  4. 【請求項4】前記(F)ステップは、 関連プロセスのセグメントを実行する毎に、関連プロセ
    スの実行時間を計算し、 関連プロセスの複数の実行時間から、関連プロセスの後
    続のセグメントの予測実行時間を推測する ことを特徴とする請求項2の方法。
JP2044295A 1989-02-24 1990-02-23 マルチプロセッサ・システムのジョブの割当方法 Expired - Fee Related JPH0795317B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31500689A 1989-02-24 1989-02-24
US315006 1989-02-24

Publications (2)

Publication Number Publication Date
JPH02249055A JPH02249055A (ja) 1990-10-04
JPH0795317B2 true JPH0795317B2 (ja) 1995-10-11

Family

ID=23222457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2044295A Expired - Fee Related JPH0795317B2 (ja) 1989-02-24 1990-02-23 マルチプロセッサ・システムのジョブの割当方法

Country Status (5)

Country Link
US (1) US5361362A (ja)
EP (1) EP0384635B1 (ja)
JP (1) JPH0795317B2 (ja)
DE (1) DE69031233T2 (ja)
ES (1) ES2104580T3 (ja)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215168A (ja) * 1990-12-13 1992-08-05 Nec Corp コンピュータシステム
JPH05181688A (ja) * 1991-05-24 1993-07-23 Internatl Business Mach Corp <Ibm> タスクの進行を予測する方法、プログラム製品及びワークステーシヨン
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
US5765146A (en) * 1993-11-04 1998-06-09 International Business Machines Corporation Method of performing a parallel relational database query in a multiprocessor environment
US5511220A (en) * 1994-09-01 1996-04-23 Perlman; Noah Multi-user computer system with a clock driven batch dispatching mechanism
US5907485A (en) * 1995-03-31 1999-05-25 Sun Microsystems, Inc. Method and apparatus for flow control in packet-switched computer system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5715457A (en) * 1995-10-06 1998-02-03 Matsushita Electtic Industrial Multiprocessor system for determining assignment of task in view of access time to storage resource
KR100384213B1 (ko) * 1995-10-06 2003-08-19 어드밴스트 마이크로 디바이시즈 인코퍼레이티드 순차리스트내의선택된타입의제1또는제2대상을인식하는처리시스템,선택회로및방법
US6167428A (en) 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US7634529B2 (en) * 1996-11-29 2009-12-15 Ellis Iii Frampton E Personal and server computers having microchips with multiple processing units and internal firewalls
US7926097B2 (en) 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US6725250B1 (en) 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
US6732141B2 (en) 1996-11-29 2004-05-04 Frampton Erroll Ellis Commercial distributed processing by personal computers over the internet
US8312529B2 (en) 1996-11-29 2012-11-13 Ellis Frampton E Global network computers
US7024449B1 (en) * 1996-11-29 2006-04-04 Ellis Iii Frampton E Global network computers
US7805756B2 (en) 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US7506020B2 (en) * 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US20050180095A1 (en) * 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
US7035906B1 (en) 1996-11-29 2006-04-25 Ellis Iii Frampton E Global network computers
JPH10328163A (ja) * 1997-05-28 1998-12-15 Siemens Ag 核スピン断層撮影装置のためのパルスシーケンスの制御方法及び装置
JP3247330B2 (ja) * 1997-12-25 2002-01-15 株式会社神戸製鋼所 複数プロセッサシステム
US6421702B1 (en) 1998-06-09 2002-07-16 Advanced Micro Devices, Inc. Interrupt driven isochronous task scheduler system
US6704763B1 (en) 1998-06-09 2004-03-09 Advanced Micro Devices, Inc. Hardware enforcement mechanism for an isochronous task scheduler
US6418459B1 (en) 1998-06-09 2002-07-09 Advanced Micro Devices, Inc. Isochronous task scheduling structure for a non-real-time operating system
US6502123B1 (en) 1998-06-09 2002-12-31 Advanced Micro Devices, Inc. Isochronous system using certified drivers to ensure system stability
US6952825B1 (en) * 1999-01-14 2005-10-04 Interuniversitaire Micro-Elektronica Centrum (Imec) Concurrent timed digital system design method and environment
US6618742B1 (en) 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for job impact learning
US6618820B1 (en) 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for configuring an application server system
WO2000070448A2 (en) * 1999-05-17 2000-11-23 Ellis Frampton E Iii Multiprocessor with optical connection to a network
US6910133B1 (en) * 2000-04-11 2005-06-21 Cisco Technology, Inc. Reflected interrupt for hardware-based encryption
JP2002024194A (ja) * 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ジョブ分散処理方法および分散処理システム
US6934936B2 (en) * 2001-02-01 2005-08-23 International Business Machines Corporation Apparatus and method for adaptive address-based historical utilization recording
US7489779B2 (en) 2001-03-22 2009-02-10 Qstholdings, Llc Hardware implementation of the secure hash standard
US8843928B2 (en) 2010-01-21 2014-09-23 Qst Holdings, Llc Method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
US20040133745A1 (en) 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US20020184291A1 (en) * 2001-05-31 2002-12-05 Hogenauer Eugene B. Method and system for scheduling in an adaptable computing engine
JP2003029989A (ja) * 2001-07-16 2003-01-31 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7051218B1 (en) 2001-07-18 2006-05-23 Advanced Micro Devices, Inc. Message based power management
US7174467B1 (en) * 2001-07-18 2007-02-06 Advanced Micro Devices, Inc. Message based power management in a multi-processor system
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7310803B2 (en) * 2001-10-19 2007-12-18 419638 Canada Inc. Method and system for executing multiple tasks in a task set
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
KR100459417B1 (ko) * 2001-12-19 2004-12-03 엘지전자 주식회사 다중 프로세서 시스템의 작업 함수 처리 방법
US7403981B2 (en) * 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
JP2003256222A (ja) * 2002-03-04 2003-09-10 Matsushita Electric Ind Co Ltd 分散処理システム、ジョブ分散処理方法およびプログラム
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US6948009B2 (en) * 2002-06-04 2005-09-20 International Business Machines Corporation Method, system, and article of manufacture for increasing processor utilization
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7478031B2 (en) 2002-11-07 2009-01-13 Qst Holdings, Llc Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
US20050177830A1 (en) * 2002-11-18 2005-08-11 Troy Richard M.Iii Computational processing
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
JP4062441B2 (ja) 2003-07-18 2008-03-19 日本電気株式会社 並列処理システム及び並列処理プログラム
US7793291B2 (en) * 2004-12-22 2010-09-07 International Business Machines Corporation Thermal management of a multi-processor computer system
US20060161923A1 (en) * 2005-01-20 2006-07-20 International Business Machines (Ibm) Corporation Task management in a data processing environment having multiple hardware entities
US7898679B2 (en) 2005-05-27 2011-03-01 Computer Associates Think, Inc. Method and system for scheduling jobs in a computer system
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
US7856618B2 (en) 2005-08-04 2010-12-21 International Business Machines Corporation Adaptively generating code for a computer program
US7590774B2 (en) * 2005-12-01 2009-09-15 Kabushiki Kaisha Toshiba Method and system for efficient context swapping
US8316439B2 (en) * 2006-05-19 2012-11-20 Iyuko Services L.L.C. Anti-virus and firewall system
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
US8006003B2 (en) * 2008-02-29 2011-08-23 International Business Machines Corporation Apparatus, system, and method for enqueue prioritization
TWI486048B (zh) * 2008-09-12 2015-05-21 Chi Mei Comm Systems Inc 手機圖片轉換系統及方法
FR2937439B1 (fr) * 2008-10-17 2012-04-20 Commissariat Energie Atomique Procede d'execution deterministe et de synchronisation d'un systeme de traitement de l'information comportant plusieurs coeurs de traitement executant des taches systemes.
US20100262966A1 (en) * 2009-04-14 2010-10-14 International Business Machines Corporation Multiprocessor computing device
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
US20120079486A1 (en) 2010-09-23 2012-03-29 International Business Machines Corporation Integration of dissimilar job types into an earliest deadline first (edf) schedule
FR2993070B1 (fr) * 2012-07-09 2014-07-18 Commissariat Energie Atomique Procede d'execution, au sein d'un systeme embarque multitaches, d'une application cadencee par plusieurs domaines de temps differents incluant une gestion d'interruptions
CN103226495B (zh) * 2013-04-28 2016-06-08 杭州华三通信技术有限公司 一种可倒换进程分配方法及设备
KR101737777B1 (ko) 2013-05-06 2017-05-29 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 컴퓨팅 장치 성능 모니터
US10261837B2 (en) 2017-06-30 2019-04-16 Sas Institute Inc. Two-part job scheduling with capacity constraints and preferences
CN109656690A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 调度系统、方法和存储介质
US10310896B1 (en) 2018-03-15 2019-06-04 Sas Institute Inc. Techniques for job flow processing
KR20220077484A (ko) 2020-12-02 2022-06-09 삼성전자주식회사 능동적 스케줄링 방법과 컴퓨팅 장치
US11922161B2 (en) 2022-03-07 2024-03-05 Bank Of America Corporation Scheduling a pausable automated process in a computer network
US12026501B2 (en) 2022-03-07 2024-07-02 Bank Of America Corporation Automated process and system update scheduling in a computer network
US11792135B2 (en) 2022-03-07 2023-10-17 Bank Of America Corporation Automated process scheduling in a computer network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648253A (en) * 1969-12-10 1972-03-07 Ibm Program scheduler for processing systems
US4333144A (en) * 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
JPS61114363A (ja) * 1984-11-07 1986-06-02 Hitachi Ltd 計算機システム間ジヨブ転送方式
US4989133A (en) * 1984-11-30 1991-01-29 Inmos Limited System for executing, scheduling, and selectively linking time dependent processes based upon scheduling time thereof
US4736318A (en) * 1985-03-01 1988-04-05 Wang Laboratories, Inc. Data processing system having tunable operating system means
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
JPH0778785B2 (ja) * 1986-03-29 1995-08-23 株式会社東芝 プロセッサ選択方法
JP2533495B2 (ja) * 1986-07-25 1996-09-11 株式会社日立製作所 ワ−クスケジユ−リング方法及び装置
US5109329A (en) * 1987-02-06 1992-04-28 At&T Bell Laboratories Multiprocessing method and arrangement
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
DE69031233D1 (de) 1997-09-18
US5361362A (en) 1994-11-01
EP0384635A2 (en) 1990-08-29
DE69031233T2 (de) 1997-12-04
JPH02249055A (ja) 1990-10-04
ES2104580T3 (es) 1997-10-16
EP0384635B1 (en) 1997-08-13
EP0384635A3 (en) 1992-05-06

Similar Documents

Publication Publication Date Title
JPH0795317B2 (ja) マルチプロセッサ・システムのジョブの割当方法
US5903757A (en) Monitoring and handling of exception conditions in computer system
US5875343A (en) Employing request queues and completion queues between main processors and I/O processors wherein a main processor is interrupted when a certain number of completion messages are present in its completion queue
US5010482A (en) Multi-event mechanism for queuing happened events for a large data processing system
TW490638B (en) Computer for executing plural operating systems
US6353844B1 (en) Guaranteeing completion times for batch jobs without static partitioning
US20180060120A1 (en) Resource migration negotiation
US9852008B2 (en) Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system
US8307053B1 (en) Partitioned packet processing in a multiprocessor environment
US5526521A (en) Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different
JP4430716B2 (ja) 仮想マシン環境において仮想化アルゴリズムを選択するための適応アルゴリズム
US4855899A (en) Multiple I/O bus virtual broadcast of programmed I/O instructions
Cornhill et al. Priority inversion in Ada
US7225443B2 (en) Stack usage in computer-related operating systems
EP0243402A1 (en) SPECIALIZED PROCESSOR FOR UNLOADING MANY FUNCTIONS OF AN OPERATING SYSTEM IN A LARGE DATA PROCESSING SYSTEM.
JP3862293B2 (ja) 情報処理方法とその装置
EP0544822B1 (en) Dual level scheduling of processes
RU2239228C2 (ru) Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами
Sprunt et al. Priority-driven, preemptive I/O controllers for real-time systems
JPH0612395A (ja) マルチプロセサシステムにおけるタスク割り付け方法
JPH05324569A (ja) 割り込み制御方式
JPS6152761A (ja) 演算装置
Jensen The influence of microprocessors on computer architecture: Distributed processing
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JPS6223895B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees