JP2559993B2 - 非対称型結合プロセッサ相互間の作業の動的再割当て装置及び方法 - Google Patents
非対称型結合プロセッサ相互間の作業の動的再割当て装置及び方法Info
- Publication number
- JP2559993B2 JP2559993B2 JP5262364A JP26236493A JP2559993B2 JP 2559993 B2 JP2559993 B2 JP 2559993B2 JP 5262364 A JP5262364 A JP 5262364A JP 26236493 A JP26236493 A JP 26236493A JP 2559993 B2 JP2559993 B2 JP 2559993B2
- Authority
- JP
- Japan
- Prior art keywords
- work
- processor
- processors
- unit
- indirect
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
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
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサ・
コンピュータ・システムの分野に関し、特にプロセッサ
の特性/能力が非対称である(同種ではない)、マイク
ロプロセッサ・コンピューティング・システムにおける
作業単位(タスク)の割当てに関する。
コンピュータ・システムの分野に関し、特にプロセッサ
の特性/能力が非対称である(同種ではない)、マイク
ロプロセッサ・コンピューティング・システムにおける
作業単位(タスク)の割当てに関する。
【0002】
【従来の技術】従来の技術には、作業をマルチプロセッ
サ・コンピュータ・システムのプロセッサに割当てる機
構が数多くある。その目標は、プロセッサを最大限に活
用することである。各プロセッサの特性が同一な状況で
は、作業を割当てるというこの問題はむしろ、作業(優
先度)がうまく実行されることの重要性だけを基準にし
た直接的で単純な機構になる。また、この対称型マルチ
プロセッサ環境では、分散割当て(各プロセッサがその
作業の割当てを担当する)の機構がうまく機能する。し
かし、非対称型マルチプロセッサでは、作業の割当ては
かなり複雑になる。この複雑さは与えられた作業単位
に、与えられたプロセッサにはない特性が必要なので、
そのプロセッサがその作業単位を実行できないことがあ
るという事実による。この状況は作業単位によって動的
に要求される特性が実行時に変化する時、或いはプロセ
ッサがその特性の可用性を動作時に変更することがある
場合、または、プロセッサの構成が動作時に変化した場
合でも更に強まる。従来技術には、作業単位をスケジュ
ーリングする時に非対称型マイクロプロセッサを考慮し
た機構があるが、これでは、マイクロプロセッサがその
機構を直接割当てにしか適用しない傾向がある。すなわ
ち、あるプロセッサが作業に利用できるようになった
時、このような機構は、利用可能なプロセッサ上で実行
できる状態の作業しか選ばない。利用可能なプロセッサ
上で実行できる始動/使用可能な作業がない場合は、た
とえ利用可能なプロセッサに移動でき(リダイレクトさ
れる)、始動可能な作業に置き換えられる作業が実行中
であっても、利用可能なプロセッサは停止したままであ
る。この他(例えばRoy L.Hoffmanらによる1983年
7月19日付け米国特許出願第4394727号、Mult
iprocessor Task DispatchingApparatus )、作業が移
動される例があるが、これは、それに代わる作業の優先
度が高い場合だけであり、停止中のプロセッサにかなり
の時間が残る。非対称型割当てに伴う従来技術の問題点
は、あまりにも複雑すぎて効率よく解決できないか、ま
たは、性能面で適当な効果があり、プロセッサ相互間の
作業の移動を処理するオーバヘッドが保証されると考え
られていた。
サ・コンピュータ・システムのプロセッサに割当てる機
構が数多くある。その目標は、プロセッサを最大限に活
用することである。各プロセッサの特性が同一な状況で
は、作業を割当てるというこの問題はむしろ、作業(優
先度)がうまく実行されることの重要性だけを基準にし
た直接的で単純な機構になる。また、この対称型マルチ
プロセッサ環境では、分散割当て(各プロセッサがその
作業の割当てを担当する)の機構がうまく機能する。し
かし、非対称型マルチプロセッサでは、作業の割当ては
かなり複雑になる。この複雑さは与えられた作業単位
に、与えられたプロセッサにはない特性が必要なので、
そのプロセッサがその作業単位を実行できないことがあ
るという事実による。この状況は作業単位によって動的
に要求される特性が実行時に変化する時、或いはプロセ
ッサがその特性の可用性を動作時に変更することがある
場合、または、プロセッサの構成が動作時に変化した場
合でも更に強まる。従来技術には、作業単位をスケジュ
ーリングする時に非対称型マイクロプロセッサを考慮し
た機構があるが、これでは、マイクロプロセッサがその
機構を直接割当てにしか適用しない傾向がある。すなわ
ち、あるプロセッサが作業に利用できるようになった
時、このような機構は、利用可能なプロセッサ上で実行
できる状態の作業しか選ばない。利用可能なプロセッサ
上で実行できる始動/使用可能な作業がない場合は、た
とえ利用可能なプロセッサに移動でき(リダイレクトさ
れる)、始動可能な作業に置き換えられる作業が実行中
であっても、利用可能なプロセッサは停止したままであ
る。この他(例えばRoy L.Hoffmanらによる1983年
7月19日付け米国特許出願第4394727号、Mult
iprocessor Task DispatchingApparatus )、作業が移
動される例があるが、これは、それに代わる作業の優先
度が高い場合だけであり、停止中のプロセッサにかなり
の時間が残る。非対称型割当てに伴う従来技術の問題点
は、あまりにも複雑すぎて効率よく解決できないか、ま
たは、性能面で適当な効果があり、プロセッサ相互間の
作業の移動を処理するオーバヘッドが保証されると考え
られていた。
【0003】
【発明が解決しようとする課題】本発明の目的は、停止
中のプロセッサには不適当な作業単位の割当てができる
ように、アクティブな作業単位をプロセッサ相互間に再
度割当てる機能を提供することである。
中のプロセッサには不適当な作業単位の割当てができる
ように、アクティブな作業単位をプロセッサ相互間に再
度割当てる機能を提供することである。
【0004】本発明の他の目的は、作業単位の再割当て
が必要な時に、再割当ての最小回数を決定して再割当て
を実行することである。
が必要な時に、再割当ての最小回数を決定して再割当て
を実行することである。
【0005】本発明の他の目的は、プロセッサ・リソー
スを適切に利用するために、置き換えられた作業単位
が、結果的に割当てられる作業単位よりも優先度が低い
作業単位にとって代わることを認識して、割当てられる
作業単位よりも優先度の高い作業単位を置き換えること
である。
スを適切に利用するために、置き換えられた作業単位
が、結果的に割当てられる作業単位よりも優先度が低い
作業単位にとって代わることを認識して、割当てられる
作業単位よりも優先度の高い作業単位を置き換えること
である。
【0006】本発明の他の目的は、プロセッサ相互間の
作業単位の移動を最小限度にしながら、適切なプロセッ
サに作業単位を割当てるために、プロセッサについての
情報及び作業単位のステータスと特性を用いる割当て手
段を提供することである。
作業単位の移動を最小限度にしながら、適切なプロセッ
サに作業単位を割当てるために、プロセッサについての
情報及び作業単位のステータスと特性を用いる割当て手
段を提供することである。
【0007】本発明の他の目的は、プロセッサ相互間の
作業単位の過剰な再割当て(コンピューティング・シス
テム全体の性能の低下)を避けるために、割当てられる
作業単位と、優先度が最低の置換可能な作業単位の優先
度の差を利用するしきい値メカニズムを提供することで
ある。
作業単位の過剰な再割当て(コンピューティング・シス
テム全体の性能の低下)を避けるために、割当てられる
作業単位と、優先度が最低の置換可能な作業単位の優先
度の差を利用するしきい値メカニズムを提供することで
ある。
【0008】本発明の他の目的は、競争する作業単位が
一貫したプロセッサ時間を受取る傾向を示すように、上
記の作業単位の優先度(重要度指標)を、用いられたプ
ロセッサ時間と与えられたプロセッサ時間をもとに調整
することである。
一貫したプロセッサ時間を受取る傾向を示すように、上
記の作業単位の優先度(重要度指標)を、用いられたプ
ロセッサ時間と与えられたプロセッサ時間をもとに調整
することである。
【0009】
【課題を解決するための手段】ここに述べる発明は、非
対称的特性を有するマイクロプロセッサ・コンピューテ
ィング・システムのプロセッサ相互間で、個々の作業単
位を一部のプロセッサ上でのみ実行できる時に、優先度
が最高のタスクを実行しながらプロセッサの使用を適切
に最適化するために、作業単位を割当てて再び割当てる
集中管理装置とその方法を提供する。非対称型プロセッ
サのうち1つ以上のプロセッサで実行できる使用可能な
作業単位の1つ以上の集合のうち1つが、作業選択メカ
ニズムによって選択される。プロセッサ群識別機能によ
って、作業の再割当てにおいてホストとして参加でき
る"間接停止"プロセッサ群が識別されて、停止していた
プロセッサが利用され、作業の再割当てにおいてホスト
として参加できる"間接置換"プロセッサ群が識別され
て、実行されていた優先度が最低の作業単位が置き換え
られる。作業の再割当ては割当て手段によって開始さ
れ、1つのプロセッサ群相互間で作業を再度割当てるた
めの最適回数の作業再割当てステップから成り、関連す
る割当て目標(停止していたプロセッサを利用するか、
または優先度が最低の作業単位を置き換える)が達成さ
れる。
対称的特性を有するマイクロプロセッサ・コンピューテ
ィング・システムのプロセッサ相互間で、個々の作業単
位を一部のプロセッサ上でのみ実行できる時に、優先度
が最高のタスクを実行しながらプロセッサの使用を適切
に最適化するために、作業単位を割当てて再び割当てる
集中管理装置とその方法を提供する。非対称型プロセッ
サのうち1つ以上のプロセッサで実行できる使用可能な
作業単位の1つ以上の集合のうち1つが、作業選択メカ
ニズムによって選択される。プロセッサ群識別機能によ
って、作業の再割当てにおいてホストとして参加でき
る"間接停止"プロセッサ群が識別されて、停止していた
プロセッサが利用され、作業の再割当てにおいてホスト
として参加できる"間接置換"プロセッサ群が識別され
て、実行されていた優先度が最低の作業単位が置き換え
られる。作業の再割当ては割当て手段によって開始さ
れ、1つのプロセッサ群相互間で作業を再度割当てるた
めの最適回数の作業再割当てステップから成り、関連す
る割当て目標(停止していたプロセッサを利用するか、
または優先度が最低の作業単位を置き換える)が達成さ
れる。
【0010】
【実施例】以下に、実施例の説明に用いる用語の定義を
示す。 割当てられた−作業単位は、割当て手段によって与えら
れたプロセッサ上で実行されることが指定された時に割
当てられる。 割当て解除された−作業単位は、割当てられた状態にな
い時に割当て解除される。これは作業単位が割当てられ
る前か、または作業単位がプロセッサから削除された時
である。 選択−作業単位は、作業単位を実行するよう指定された
プロセッサが、その作業単位を実行するためにCPUを
起動(レジスタをロードするなど)した時に選択され
る。この作業単位は"実行中"と呼ばれる。 選択解除−作業単位は、作業を実行していたプロセッサ
がCPUにその作業単位の実行を止めさせた時に選択解
除される。その作業単位はプロセッサから削除される。 使用可能−作業単位は、作業単位が実行されるには、完
了しなければならないイベントがない時に使用可能であ
る。その作業単位は実行可能である。プロセッサ上で実
行されている作業単位は使用可能である。使用可能キュ
ー上の作業単位は、プロセッサで実行されていなくても
使用可能である。 保留−作業単位は、あるイベントの発生を待たなければ
ならない時など、実行に使用できなくなった時に保留さ
れる。保留された作業単位は使用可能キューにはない。 ディスパッチ−作業単位は、選択されてプロセッサ上で
実行されている時にディスパッチされている。 実行可能−作業単位は、実行が可能な時すなわち使用可
能な時に実行可能である。 停止中−プロセッサは、作業単位が割当てられていない
時に停止中である。これは作業単位が、まだ選択解除さ
れていないかどうかとは無関係に、割当て解除された時
を含む。 間接停止群(サブセット)−停止中のプロセッサへの作
業のリダイレクトに参加できる、候補の作業単位の候補
マスク内のプロセッサ群 間接置換群(サブセット)−優先度が最低の作業単位を
置き換えるために作業のリダイレクトに参加できる、候
補の作業単位の候補マスク内のプロセッサ群。
示す。 割当てられた−作業単位は、割当て手段によって与えら
れたプロセッサ上で実行されることが指定された時に割
当てられる。 割当て解除された−作業単位は、割当てられた状態にな
い時に割当て解除される。これは作業単位が割当てられ
る前か、または作業単位がプロセッサから削除された時
である。 選択−作業単位は、作業単位を実行するよう指定された
プロセッサが、その作業単位を実行するためにCPUを
起動(レジスタをロードするなど)した時に選択され
る。この作業単位は"実行中"と呼ばれる。 選択解除−作業単位は、作業を実行していたプロセッサ
がCPUにその作業単位の実行を止めさせた時に選択解
除される。その作業単位はプロセッサから削除される。 使用可能−作業単位は、作業単位が実行されるには、完
了しなければならないイベントがない時に使用可能であ
る。その作業単位は実行可能である。プロセッサ上で実
行されている作業単位は使用可能である。使用可能キュ
ー上の作業単位は、プロセッサで実行されていなくても
使用可能である。 保留−作業単位は、あるイベントの発生を待たなければ
ならない時など、実行に使用できなくなった時に保留さ
れる。保留された作業単位は使用可能キューにはない。 ディスパッチ−作業単位は、選択されてプロセッサ上で
実行されている時にディスパッチされている。 実行可能−作業単位は、実行が可能な時すなわち使用可
能な時に実行可能である。 停止中−プロセッサは、作業単位が割当てられていない
時に停止中である。これは作業単位が、まだ選択解除さ
れていないかどうかとは無関係に、割当て解除された時
を含む。 間接停止群(サブセット)−停止中のプロセッサへの作
業のリダイレクトに参加できる、候補の作業単位の候補
マスク内のプロセッサ群 間接置換群(サブセット)−優先度が最低の作業単位を
置き換えるために作業のリダイレクトに参加できる、候
補の作業単位の候補マスク内のプロセッサ群。
【0011】図1は、本発明が用いられるシステム環境
を示す。図1の密結合マイクロプロセッサ・システム
は、共通メモリ130を共有する4つのプロセッサ(C
PU)、プロセッサW100、プロセッサX101、プ
ロセッサY102、プロセッサZ103から成る。プロ
セッサ100乃至103はそれぞれ、特性110、11
1、112、113を含む。プロセッサW101は特性
C、E(110)、プロセッサX101は特性A、D
(111)、プロセッサY102は特性B、C、D(1
12)、プロセッサZ103は特性A、B(113)を
含む。各プロセッサが現在、作業単位を実行している。
作業単位は、プロセッサW100上のWU4120、プ
ロセッサX101上のWU3 121、プロセッサY1
02上のWU1 122、プロセッサZ103上のWU
2 123である。共通メモリ130内に示しているの
は、プロセッサ131、132、133に作業単位を割
当てるためのキー・データである。これらのデータは、
作業単位テーブル131、使用可能キュー132、及び
プロセッサ特性テーブル133である。好適な実施例の
場合、図のようなマイクロプロセッサ・コンピューティ
ング・システムは、IBMのプロセッサ・リソース/シ
ステム・マネージャ、PR/SM、機構(論理分割、L
PAR、モード)などのハイパバイザ140で実行され
る。割当て手段141と促進メカニズム142は、好適
な実施例ではハイパバイザ内のプログラムである。この
例で割当てられている作業単位は、実際には相互に独立
したオペレーティング・システムである。本発明は変形
例として、IBMのMVS/ESAなどのオペレーティ
ング・システム下で実行されるマイクロプロセッサ・コ
ンピューティング・システム環境でも等しく機能する。
その場合、割当て手段と促進メカニズムはオペレーティ
ング・システム内にあり、作業単位はタスク、アドレス
空間、またはジョブである。プロセッサは相互のシグナ
ル通知に従来の通信路を使用する。
を示す。図1の密結合マイクロプロセッサ・システム
は、共通メモリ130を共有する4つのプロセッサ(C
PU)、プロセッサW100、プロセッサX101、プ
ロセッサY102、プロセッサZ103から成る。プロ
セッサ100乃至103はそれぞれ、特性110、11
1、112、113を含む。プロセッサW101は特性
C、E(110)、プロセッサX101は特性A、D
(111)、プロセッサY102は特性B、C、D(1
12)、プロセッサZ103は特性A、B(113)を
含む。各プロセッサが現在、作業単位を実行している。
作業単位は、プロセッサW100上のWU4120、プ
ロセッサX101上のWU3 121、プロセッサY1
02上のWU1 122、プロセッサZ103上のWU
2 123である。共通メモリ130内に示しているの
は、プロセッサ131、132、133に作業単位を割
当てるためのキー・データである。これらのデータは、
作業単位テーブル131、使用可能キュー132、及び
プロセッサ特性テーブル133である。好適な実施例の
場合、図のようなマイクロプロセッサ・コンピューティ
ング・システムは、IBMのプロセッサ・リソース/シ
ステム・マネージャ、PR/SM、機構(論理分割、L
PAR、モード)などのハイパバイザ140で実行され
る。割当て手段141と促進メカニズム142は、好適
な実施例ではハイパバイザ内のプログラムである。この
例で割当てられている作業単位は、実際には相互に独立
したオペレーティング・システムである。本発明は変形
例として、IBMのMVS/ESAなどのオペレーティ
ング・システム下で実行されるマイクロプロセッサ・コ
ンピューティング・システム環境でも等しく機能する。
その場合、割当て手段と促進メカニズムはオペレーティ
ング・システム内にあり、作業単位はタスク、アドレス
空間、またはジョブである。プロセッサは相互のシグナ
ル通知に従来の通信路を使用する。
【0012】図2は作業単位テーブルと呼ばれる装置
で、図1のブロック131である。作業単位テーブル
は、必要なプロセッサの特性204、作業単位の重要度
(優先度)、及び作業単位を実行できるプロセッサのビ
ット・マスクを記述する、コンピューティング・システ
ム内の全ての作業単位のエントリを含む。テーブルのフ
ィールドは次の通りである。 作業単位ID201−作業単位の一意の識別子 優先度202−その作業単位の重要度(優先度)の指標 候補マスク203−その作業単位を実行するのに必要な
特性をもつプロセッサを示すビット・マスク。1ビット
は、プロセッサが必要な特性をもつことを示し、0ビッ
トは必要な特性をもたないことを示す。 所要特性204−その作業単位の実行に必要なプロセッ
サ特性のリスト。 チェーン・フィールド205−次の作業単位テーブル・
エントリのアドレスを含む。
で、図1のブロック131である。作業単位テーブル
は、必要なプロセッサの特性204、作業単位の重要度
(優先度)、及び作業単位を実行できるプロセッサのビ
ット・マスクを記述する、コンピューティング・システ
ム内の全ての作業単位のエントリを含む。テーブルのフ
ィールドは次の通りである。 作業単位ID201−作業単位の一意の識別子 優先度202−その作業単位の重要度(優先度)の指標 候補マスク203−その作業単位を実行するのに必要な
特性をもつプロセッサを示すビット・マスク。1ビット
は、プロセッサが必要な特性をもつことを示し、0ビッ
トは必要な特性をもたないことを示す。 所要特性204−その作業単位の実行に必要なプロセッ
サ特性のリスト。 チェーン・フィールド205−次の作業単位テーブル・
エントリのアドレスを含む。
【0013】作業単位テーブル131は、PR/SMハ
イパバイザ140によって構成され維持される。
イパバイザ140によって構成され維持される。
【0014】図3は、図1のブロック132の使用可能
キューの詳細図である。使用可能キュー132は、図2
の作業単位テーブルのエントリの順編成リストであり、
システム内で実行できる状態にあるが、現在はプロセッ
サ上で実行されていない。エントリ301乃至304は
優先度順である。使用可能キューは、PR/SMハイパ
バイザによって構成され維持される。
キューの詳細図である。使用可能キュー132は、図2
の作業単位テーブルのエントリの順編成リストであり、
システム内で実行できる状態にあるが、現在はプロセッ
サ上で実行されていない。エントリ301乃至304は
優先度順である。使用可能キューは、PR/SMハイパ
バイザによって構成され維持される。
【0015】図4は割当て手段の流れ図で、マイクロプ
ロセッサ・システムのプロセッサ相互間で作業を割当て
る時に用いられるロジックの全体を示す。作業単位は、
現在ディスパッチされている作業単位がプロセッサから
選択解除された時にプロセッサに割当てるか、または再
度割当てる必要がある。作業単位は、保留、時間枠の終
了、作業単位の特性類似性の変化、物理プロセッサ上で
使用可能な特性の変化、または、その物理プロセッサへ
の別の作業単位のディスパッチ中の再割当てにより、選
択解除されることがある。
ロセッサ・システムのプロセッサ相互間で作業を割当て
る時に用いられるロジックの全体を示す。作業単位は、
現在ディスパッチされている作業単位がプロセッサから
選択解除された時にプロセッサに割当てるか、または再
度割当てる必要がある。作業単位は、保留、時間枠の終
了、作業単位の特性類似性の変化、物理プロセッサ上で
使用可能な特性の変化、または、その物理プロセッサへ
の別の作業単位のディスパッチ中の再割当てにより、選
択解除されることがある。
【0016】マイクロプロセッサの作業割当てメカニズ
ムは全て、次にどの作業単位を処理する(割当てる)か
を決定する機構をもつ。ほとんどは、待機中の作業のキ
ューに対して何らかの検索を伴う。本発明の割当て手段
は、ここで説明しようとしているもの以外の作業単位を
選択する機構と共に機能する。好適なこの実施例は、本
発明の割当て手段を駆動するために用いられる機構につ
いて説明している。割当て手段は、起動毎に1作業単位
を処理する。この作業単位はこの説明では候補作業単位
と呼ばれる。割当て手段は次の3つの例に適用される。 1.作業単位が保留(使用不能)から使用可能に移行す
る時。 2."促進"の一環として、すなわちプロセッサが停止し
た時(時間枠の終了、作業単位の保留、作業単位の特性
類似性の変化によるプロセッサの除外)に割当てのため
に使用可能な作業単位を選択する時。本発明に用いられ
る促進機構については後で詳述する。 3.作業単位がまだ使用可能であるが、そのプロセッサ
に現在割当てられている作業単位ではなくなった場合
に、その作業単位の選択解除の一環として。
ムは全て、次にどの作業単位を処理する(割当てる)か
を決定する機構をもつ。ほとんどは、待機中の作業のキ
ューに対して何らかの検索を伴う。本発明の割当て手段
は、ここで説明しようとしているもの以外の作業単位を
選択する機構と共に機能する。好適なこの実施例は、本
発明の割当て手段を駆動するために用いられる機構につ
いて説明している。割当て手段は、起動毎に1作業単位
を処理する。この作業単位はこの説明では候補作業単位
と呼ばれる。割当て手段は次の3つの例に適用される。 1.作業単位が保留(使用不能)から使用可能に移行す
る時。 2."促進"の一環として、すなわちプロセッサが停止し
た時(時間枠の終了、作業単位の保留、作業単位の特性
類似性の変化によるプロセッサの除外)に割当てのため
に使用可能な作業単位を選択する時。本発明に用いられ
る促進機構については後で詳述する。 3.作業単位がまだ使用可能であるが、そのプロセッサ
に現在割当てられている作業単位ではなくなった場合
に、その作業単位の選択解除の一環として。
【0017】図4を参照する。割当て手段は、候補作業
単位が停止中のプロセッサに対して適格かどうかを判定
する(図4の401)。停止中のプロセッサに対して適
格であれば、停止中のプロセッサがその候補作業単位の
ために選択され(図4の412)、処理は後述する図4
の406に進む。候補作業単位が停止中のプロセッサに
対して適格でなければ、割当て手段が候補作業単位を割
当てるために、リダイレクトされた(再割当てされた)
作業を現在実行しているプロセッサを判定する(図4の
402)。これについては、後の「リダイレクトのため
のプロセッサの判定」の節で詳しく述べる。次に割当て
手段は、作業のリダイレクトに参加できるプロセッサ群
のなかで(処理は図4の402で終わっている)、その
プロセッサ群のうちの1つで実行されている、停止中の
プロセッサに対して適格である作業単位があるかどうか
を判定する(図4の403)。そのような作業単位が、
作業のリダイレクトに参加できるプロセッサ群で実行さ
れている場合、割当て手段は、候補作業単位の割当ての
ために、停止中のプロセッサの使用を可能にする最小限
の間接処理をもたらすプロセッサを選択する(図4の4
04)。これについては後の「停止中のプロセッサへの
最小間接処理」で詳述する。処理は次に図4の406に
進む(後述)。図4の403の処理から、作業のリダイ
レクトに参加できるプロセッサ群内で、現在実行されて
いる停止中のプロセッサに対して適格である作業単位が
ない場合は、候補作業単位を割当てるために、優先度が
低い作業単位がプロセッサから選択解除され(置き換え
られ)なければならない。そこで割当て手段は、作業の
リダイレクトに参加できるプロセッサ相互間で、優先度
が最低の作業単位を判定する(図4の408)。これに
ついては後の「最低優先度の作業単位の判定」で詳述す
る。優先度が最低のその作業単位は、候補作業単位を割
当てるために最終的には選択解除される(置き換えられ
る)作業単位である。割当て手段は次に、候補作業単位
の割当てのために、先に述べた優先度が最低の作業を実
行しているプロセッサの使用を可能にする最小間接処理
をもたらすプロセッサを選択する。これについては後の
「最小優先度作業を置き換える最小間接処理」で詳述す
る。割当て手段は次に、しきい値メカニズムを使い、候
補作業単位の優先度が作業単位のリダイレクトを引起こ
すのに充分高いかどうかを判定する(図4の410)。
この実施例のしきい値は、時間枠スケジューラのサンプ
リング間隔にもとづき、候補作業単位と、リダイレクト
される最低優先度の作業単位の優先度の差の除数として
用いられる。本発明にはこのしきい値メカニズムが用い
られるが、他のメカニズムも本発明の主旨に反すること
なく採用できる。しきい値の適用(図4の410)によ
って、候補作業単位が割当てられない場合、この割当て
パスは完了し割当て手段は終了する。他の場合、候補作
業単位にプロセッサが選択されているので処理は継続す
る(図4の406)。候補作業単位は選択されたプロセ
ッサに割当てられ、選択されたプロセッサが通知されて
(図4の406)、この候補作業単位が選択され、それ
が実行している作業単位は選択解除される。置き換えら
れた(この処理でリダイレクトされた)作業単位がある
場合、割当て手段は置き換えられた作業単位が、選択解
除するプロセッサに割当てられていて、実行のために選
択されていないかどうか判定する(図4の407)。こ
れは、再割当てが複数回に及ぶシナリオで起こり得る。
その場合、割当て手段は、選択解除/選択を行なってい
るプログラムよりもかなり速いペースで処理を進めてい
る(例えば、割当て手段がシステム内で最高優先度をも
つことができる)。その場合(置き換えられた作業単位
が割当てられているが、そこから置き換えられるプロセ
ッサによって選択されていない場合)、置き換えられた
この作業単位は、図4の401に進んで、置き換えられ
たこの作業単位を割当てることによって、次に割当てら
れる作業単位になる(図4の411)。そうでない場合
(置き換えられた作業単位が割当てられていて、そこか
ら置き換えられたプロセッサによって選択されている場
合)、処理は完了し、割当て手段は終了する。
単位が停止中のプロセッサに対して適格かどうかを判定
する(図4の401)。停止中のプロセッサに対して適
格であれば、停止中のプロセッサがその候補作業単位の
ために選択され(図4の412)、処理は後述する図4
の406に進む。候補作業単位が停止中のプロセッサに
対して適格でなければ、割当て手段が候補作業単位を割
当てるために、リダイレクトされた(再割当てされた)
作業を現在実行しているプロセッサを判定する(図4の
402)。これについては、後の「リダイレクトのため
のプロセッサの判定」の節で詳しく述べる。次に割当て
手段は、作業のリダイレクトに参加できるプロセッサ群
のなかで(処理は図4の402で終わっている)、その
プロセッサ群のうちの1つで実行されている、停止中の
プロセッサに対して適格である作業単位があるかどうか
を判定する(図4の403)。そのような作業単位が、
作業のリダイレクトに参加できるプロセッサ群で実行さ
れている場合、割当て手段は、候補作業単位の割当ての
ために、停止中のプロセッサの使用を可能にする最小限
の間接処理をもたらすプロセッサを選択する(図4の4
04)。これについては後の「停止中のプロセッサへの
最小間接処理」で詳述する。処理は次に図4の406に
進む(後述)。図4の403の処理から、作業のリダイ
レクトに参加できるプロセッサ群内で、現在実行されて
いる停止中のプロセッサに対して適格である作業単位が
ない場合は、候補作業単位を割当てるために、優先度が
低い作業単位がプロセッサから選択解除され(置き換え
られ)なければならない。そこで割当て手段は、作業の
リダイレクトに参加できるプロセッサ相互間で、優先度
が最低の作業単位を判定する(図4の408)。これに
ついては後の「最低優先度の作業単位の判定」で詳述す
る。優先度が最低のその作業単位は、候補作業単位を割
当てるために最終的には選択解除される(置き換えられ
る)作業単位である。割当て手段は次に、候補作業単位
の割当てのために、先に述べた優先度が最低の作業を実
行しているプロセッサの使用を可能にする最小間接処理
をもたらすプロセッサを選択する。これについては後の
「最小優先度作業を置き換える最小間接処理」で詳述す
る。割当て手段は次に、しきい値メカニズムを使い、候
補作業単位の優先度が作業単位のリダイレクトを引起こ
すのに充分高いかどうかを判定する(図4の410)。
この実施例のしきい値は、時間枠スケジューラのサンプ
リング間隔にもとづき、候補作業単位と、リダイレクト
される最低優先度の作業単位の優先度の差の除数として
用いられる。本発明にはこのしきい値メカニズムが用い
られるが、他のメカニズムも本発明の主旨に反すること
なく採用できる。しきい値の適用(図4の410)によ
って、候補作業単位が割当てられない場合、この割当て
パスは完了し割当て手段は終了する。他の場合、候補作
業単位にプロセッサが選択されているので処理は継続す
る(図4の406)。候補作業単位は選択されたプロセ
ッサに割当てられ、選択されたプロセッサが通知されて
(図4の406)、この候補作業単位が選択され、それ
が実行している作業単位は選択解除される。置き換えら
れた(この処理でリダイレクトされた)作業単位がある
場合、割当て手段は置き換えられた作業単位が、選択解
除するプロセッサに割当てられていて、実行のために選
択されていないかどうか判定する(図4の407)。こ
れは、再割当てが複数回に及ぶシナリオで起こり得る。
その場合、割当て手段は、選択解除/選択を行なってい
るプログラムよりもかなり速いペースで処理を進めてい
る(例えば、割当て手段がシステム内で最高優先度をも
つことができる)。その場合(置き換えられた作業単位
が割当てられているが、そこから置き換えられるプロセ
ッサによって選択されていない場合)、置き換えられた
この作業単位は、図4の401に進んで、置き換えられ
たこの作業単位を割当てることによって、次に割当てら
れる作業単位になる(図4の411)。そうでない場合
(置き換えられた作業単位が割当てられていて、そこか
ら置き換えられたプロセッサによって選択されている場
合)、処理は完了し、割当て手段は終了する。
【0018】リダイレクトのためのプロセッサの判定:
作業のリダイレクトに参加できるプロセッサを判定する
ため(図4の402を更に洗練した図5)、割当て手段
は、候補作業単位の候補マスク204内の候補プロセッ
サをそれぞれ調べる(図5の501)。まず最初にINDI
RECTLEVEL 索引を0(間接処理のレベルを示さない)に
セットし、そのELIGMASKエントリのCPU索引を第1候補
プロセッサにセットすることによって、ELIGMASKアレイ
(図12)が構成される。ELIGMASK(CPU、INDIRECTLEV
EL)エントリは、その候補プロセッサで実行されている
作業単位の候補マスク204に等しくセットされる(図
5の502)。次に割当て手段は、この候補プロセッサ
(CPU)のELIGMASKエントリを完全にするために、先
のELIGMASKエントリによって指示されたプロセッサ上で
実行されている各作業単位の候補マスクの"OR"を取る
(図5の503、504)。先のELIGMASKエントリが最
新のELIGMASKエントリに等しい時は、ELIGMASKエントリ
が全て候補プロセッサ(CPU)のために作成されてい
る。その候補プロセッサのLEVELアレイ・エントリ13
01乃至1303はINDIRECTLEVELにセットされ(図5
の505)、そのプロセッサに候補作業単位が割当てら
れた場合に考慮すべきリダイレクト回数が指示される。
INDIRECT_IDLEマスクやINDIRECT_BUMPマスクが更新され
る(図5の505、506)。その候補プロセッサの最
後のELIGMASKエントリ1200のビットが、IDLE_PROCE
SSORマスク(図9の901乃至904)によって指示さ
れるように、停止中のプロセッサに対してオンであれ
ば、その候補プロセッサのビットがINDIRECT_IDLE マス
ク(図10の1001乃至1004)にセットされる
(図5の505)。その候補プロセッサの最後のELIGMA
SKエントリ1200のビットが、停止中のプロセッサに
対してオンでなければ、INDIRECT_BUMPマスク(図11
の1101乃至1104)が最後のELIGMASKエントリ1
200に等しくセットされる(図5の506)。処理は
次に、全て処理されるまで図5の501で次の候補プロ
セッサに進む。この処理の終わりに、INDIRECT_IDLEマ
スク(図10の1000)のビットは、停止中のプロセ
ッサへのリダイレクトに参加できる、候補作業単位の候
補マスク内の各プロセッサに対してオンである。INDIRE
CT_BUMP マスク(図11の1100)は、作業を置き換
えるためのリダイレクトに参加できる、候補作業単位の
候補マスク内のアクティブ・プロセッサそれぞれに対し
てオンのビットを含む。ELIGMASKアレイ(図12の12
00)は、各候補プロセッサのエントリを含み、候補プ
ロセッサの使用に必要な間接処理のレベルが指示され
る。LEVEL アレイのエントリ1301乃至1303は、
各プロセッサについて考慮すべき間接処理のレベルを含
む。
作業のリダイレクトに参加できるプロセッサを判定する
ため(図4の402を更に洗練した図5)、割当て手段
は、候補作業単位の候補マスク204内の候補プロセッ
サをそれぞれ調べる(図5の501)。まず最初にINDI
RECTLEVEL 索引を0(間接処理のレベルを示さない)に
セットし、そのELIGMASKエントリのCPU索引を第1候補
プロセッサにセットすることによって、ELIGMASKアレイ
(図12)が構成される。ELIGMASK(CPU、INDIRECTLEV
EL)エントリは、その候補プロセッサで実行されている
作業単位の候補マスク204に等しくセットされる(図
5の502)。次に割当て手段は、この候補プロセッサ
(CPU)のELIGMASKエントリを完全にするために、先
のELIGMASKエントリによって指示されたプロセッサ上で
実行されている各作業単位の候補マスクの"OR"を取る
(図5の503、504)。先のELIGMASKエントリが最
新のELIGMASKエントリに等しい時は、ELIGMASKエントリ
が全て候補プロセッサ(CPU)のために作成されてい
る。その候補プロセッサのLEVELアレイ・エントリ13
01乃至1303はINDIRECTLEVELにセットされ(図5
の505)、そのプロセッサに候補作業単位が割当てら
れた場合に考慮すべきリダイレクト回数が指示される。
INDIRECT_IDLEマスクやINDIRECT_BUMPマスクが更新され
る(図5の505、506)。その候補プロセッサの最
後のELIGMASKエントリ1200のビットが、IDLE_PROCE
SSORマスク(図9の901乃至904)によって指示さ
れるように、停止中のプロセッサに対してオンであれ
ば、その候補プロセッサのビットがINDIRECT_IDLE マス
ク(図10の1001乃至1004)にセットされる
(図5の505)。その候補プロセッサの最後のELIGMA
SKエントリ1200のビットが、停止中のプロセッサに
対してオンでなければ、INDIRECT_BUMPマスク(図11
の1101乃至1104)が最後のELIGMASKエントリ1
200に等しくセットされる(図5の506)。処理は
次に、全て処理されるまで図5の501で次の候補プロ
セッサに進む。この処理の終わりに、INDIRECT_IDLEマ
スク(図10の1000)のビットは、停止中のプロセ
ッサへのリダイレクトに参加できる、候補作業単位の候
補マスク内の各プロセッサに対してオンである。INDIRE
CT_BUMP マスク(図11の1100)は、作業を置き換
えるためのリダイレクトに参加できる、候補作業単位の
候補マスク内のアクティブ・プロセッサそれぞれに対し
てオンのビットを含む。ELIGMASKアレイ(図12の12
00)は、各候補プロセッサのエントリを含み、候補プ
ロセッサの使用に必要な間接処理のレベルが指示され
る。LEVEL アレイのエントリ1301乃至1303は、
各プロセッサについて考慮すべき間接処理のレベルを含
む。
【0019】停止中のプロセッサへの最小間接処理:間
接処理が必要な時、候補作業単位の割当てに候補プロセ
ッサを選択する際、停止中のプロセッサが使用できる場
合は、候補作業単位をそのプロセッサに割当て、そのプ
ロセッサは最小限の間接処理(作業単位の移動)を実現
しなければならない。そのためのロジックを図6に示す
(これは図4のブロック404を更に洗練したものであ
る)。INDIRECT_IDLE マスク1001乃至1003でオ
ンの各ビットに対して先に作成されたINDIRECT_IDLE マ
スク1000(図5の505)を使用し、それらのプロ
セッサを表わすELIGMASKエントリ1200が検索される
(図6の601)。INDIRECT_IDLE マスク1001乃至
1003内のこれらのビットはそれぞれ、候補作業単位
を割当てることができるプロセッサを表わす。割当て手
段は次に、LEVELアレイとELIGMASK エントリ1300に
よって示される間接処理の最小(最低値)をもつプロセ
ッサを選択する(図6の602)。
接処理が必要な時、候補作業単位の割当てに候補プロセ
ッサを選択する際、停止中のプロセッサが使用できる場
合は、候補作業単位をそのプロセッサに割当て、そのプ
ロセッサは最小限の間接処理(作業単位の移動)を実現
しなければならない。そのためのロジックを図6に示す
(これは図4のブロック404を更に洗練したものであ
る)。INDIRECT_IDLE マスク1001乃至1003でオ
ンの各ビットに対して先に作成されたINDIRECT_IDLE マ
スク1000(図5の505)を使用し、それらのプロ
セッサを表わすELIGMASKエントリ1200が検索される
(図6の601)。INDIRECT_IDLE マスク1001乃至
1003内のこれらのビットはそれぞれ、候補作業単位
を割当てることができるプロセッサを表わす。割当て手
段は次に、LEVELアレイとELIGMASK エントリ1300に
よって示される間接処理の最小(最低値)をもつプロセ
ッサを選択する(図6の602)。
【0020】最低優先度の作業単位の判定:候補作業単
位の割当てで候補プロセッサを選択する際、間接処理が
必要であって、停止中のプロセッサがリダイレクトに参
加できない時は、リダイレクトに参加できる、最低優先
度の作業単位を実行するプロセッサを判定しなければな
らない。このロジックを図7に示す(これは図4のブロ
ック408を更に洗練したものである)。INDIRECT_BUM
P マスク内でオンの各ビット1101乃至1103に対
して先に作成された(図5の506)INDIRECT_BUMP マ
スク1100を使用して、INDIRECT_BUMP マスク110
1乃至1103内のそのビットで表わされるプロセッサ
で実行される作業単位の優先度202が検索される。作
業単位の優先度202が最低のプロセッサのID、10
0乃至103が、LEASTCPUデータ・フィールド1400
にセーブされる(図7の702)。
位の割当てで候補プロセッサを選択する際、間接処理が
必要であって、停止中のプロセッサがリダイレクトに参
加できない時は、リダイレクトに参加できる、最低優先
度の作業単位を実行するプロセッサを判定しなければな
らない。このロジックを図7に示す(これは図4のブロ
ック408を更に洗練したものである)。INDIRECT_BUM
P マスク内でオンの各ビット1101乃至1103に対
して先に作成された(図5の506)INDIRECT_BUMP マ
スク1100を使用して、INDIRECT_BUMP マスク110
1乃至1103内のそのビットで表わされるプロセッサ
で実行される作業単位の優先度202が検索される。作
業単位の優先度202が最低のプロセッサのID、10
0乃至103が、LEASTCPUデータ・フィールド1400
にセーブされる(図7の702)。
【0021】最低優先度作業を置き換える最小間接処
理:候補作業単位の割当てに候補プロセッサを選択する
際、間接処理が必要であって、リダイレクトに参加でき
る停止中のプロセッサがない時、優先度が最低の作業単
位をもつプロセッサの判定(図7)後、候補プロセッサ
が選択され、これにより優先度が最低の作業単位を置き
換えるための間接処理(作業単位の移動)が最小にな
る。このロジックを図8に示す(これは図4のブロック
409を更に洗練したものである)。候補作業単位に対
して先に作成された(図5の503、504)ELIGMASK
アレイ1200を使用して、ELIGMASKエントリ1200
が検索される(図8の801)。そのELIGMASKエントリ
1200から候補としてLEASTCPU1400(先に図7の
ブロック702で作成されたもの)をもち、間接処理が
最小の候補プロセッサが、LEVEL アレイ1301乃至1
304から選択される(図8の802)。
理:候補作業単位の割当てに候補プロセッサを選択する
際、間接処理が必要であって、リダイレクトに参加でき
る停止中のプロセッサがない時、優先度が最低の作業単
位をもつプロセッサの判定(図7)後、候補プロセッサ
が選択され、これにより優先度が最低の作業単位を置き
換えるための間接処理(作業単位の移動)が最小にな
る。このロジックを図8に示す(これは図4のブロック
409を更に洗練したものである)。候補作業単位に対
して先に作成された(図5の503、504)ELIGMASK
アレイ1200を使用して、ELIGMASKエントリ1200
が検索される(図8の801)。そのELIGMASKエントリ
1200から候補としてLEASTCPU1400(先に図7の
ブロック702で作成されたもの)をもち、間接処理が
最小の候補プロセッサが、LEVEL アレイ1301乃至1
304から選択される(図8の802)。
【0022】間接処理例:以下の例は本発明の動作を示
す。図1乃至図3に示した環境と図4乃至図8のロジッ
クを用いて本発明の動作について解説する。プロセッサ
W100で実行される作業単位WU4 120が保留さ
れたとする。これにより、プロセッサWが作業単位WU
4 120を選択解除する。IDLE_PROCESSORマスク(図
9)は、プロセッサWのビットを1にセットし、プロセ
ッサWは実行中の作業単位をもたなくなる。促進ロジッ
ク(「促進」の節で詳述)が実行され、使用可能キュー
(図3)から、作業単位WU5 301のエントリが選
択される。これは、除外されたプロセッサW100に対
して適格な作業単位が使用可能キュー(図3)になく、
作業単位WU5が使用可能キュー(図3)上で優先度が
最高の作業単位であるからである。作業単位WU5はこ
れで候補作業単位になる。図4のロジックを使用して、
候補作業単位を割当てるのにリダイレクトが必要かどう
か判定される。図5のロジックを使用することで、本発
明によって、リダイレクトに参加できるプロセッサ10
0乃至103からプロセッサがどのように判定されるか
が分かる。ELIGMASKアレイ(図12)はこのロジックに
よって作成される。候補作業単位はプロセッサX101
とプロセッサZ103に対して適格である。まずELIGMA
SK(X、INDIRECTLEVEL)(図12)のエントリELIGMAS
K 1200が構成される。プロセッサX101で実行さ
れる作業単位WU3 121の候補マスクを先頭に、EL
IGMASK(X、0)が作成される(図12)。次にELIGMA
SK(X、0)(図12)で示されるプロセッサ上で実行
される作業単位の候補マスクの"OR"が取られ、ELIGMASK
(X、1)が構成される(図12)。このロジックはEL
IGMASK(X、1)で続いてELIGMASK(X、2)が作成さ
れる。ELIGMASK(X、1)とELIGMASK(X、2)は同一
なので、候補プロセッサXの処理は完了する。ELIGMASK
(X、2)には、停止中のプロセッサであるプロセッサ
W100に対してオンのビットがあるので、プロセッサ
Z1002のINDIRECT_IDLE マスク1002内のビット
がオンになる。LEVEL アレイ(図13)も図のようにセ
ットされる。次に、先に作成されたデータを使用して、
図6に示すロジックにより、候補作業単位を割当てるた
めにプロセッサX101が選択される。これにより、作
業単位WU3 121がプロセッサX101から選択解
除される。割当て試行はここで作業単位WU3に移る。
この候補作業単位はプロセッサX101とプロセッサY
102に対して適格である。そこで、これらのプロセッ
サのELIGMASKエントリが上記のように構成される。上記
と同じロジックを使用して、この候補作業単位がプロセ
ッサY102に割当てられる。これはプロセッサY10
2の使用に、1つのレベルの間接処理しか要せず、プロ
セッサX101の使用には、それ以上のレベルの間接処
理が必要だからである。プロセッサY102上の作業単
位WU1 122は選択解除される。作業単位WU1
122に対する割当てがここで試行される。作業単位W
U1 122はプロセッサW100(停止中のプロセッ
サ)に対して適格であるので、すぐそこに割当てられ
る。割当てはこれで完了する。この例は、作業単位のリ
ダイレクト、停止中のプロセッサの優先、及び必要な時
の優先度が候補作業単位よりも高い作業の移動を説明し
ている。
す。図1乃至図3に示した環境と図4乃至図8のロジッ
クを用いて本発明の動作について解説する。プロセッサ
W100で実行される作業単位WU4 120が保留さ
れたとする。これにより、プロセッサWが作業単位WU
4 120を選択解除する。IDLE_PROCESSORマスク(図
9)は、プロセッサWのビットを1にセットし、プロセ
ッサWは実行中の作業単位をもたなくなる。促進ロジッ
ク(「促進」の節で詳述)が実行され、使用可能キュー
(図3)から、作業単位WU5 301のエントリが選
択される。これは、除外されたプロセッサW100に対
して適格な作業単位が使用可能キュー(図3)になく、
作業単位WU5が使用可能キュー(図3)上で優先度が
最高の作業単位であるからである。作業単位WU5はこ
れで候補作業単位になる。図4のロジックを使用して、
候補作業単位を割当てるのにリダイレクトが必要かどう
か判定される。図5のロジックを使用することで、本発
明によって、リダイレクトに参加できるプロセッサ10
0乃至103からプロセッサがどのように判定されるか
が分かる。ELIGMASKアレイ(図12)はこのロジックに
よって作成される。候補作業単位はプロセッサX101
とプロセッサZ103に対して適格である。まずELIGMA
SK(X、INDIRECTLEVEL)(図12)のエントリELIGMAS
K 1200が構成される。プロセッサX101で実行さ
れる作業単位WU3 121の候補マスクを先頭に、EL
IGMASK(X、0)が作成される(図12)。次にELIGMA
SK(X、0)(図12)で示されるプロセッサ上で実行
される作業単位の候補マスクの"OR"が取られ、ELIGMASK
(X、1)が構成される(図12)。このロジックはEL
IGMASK(X、1)で続いてELIGMASK(X、2)が作成さ
れる。ELIGMASK(X、1)とELIGMASK(X、2)は同一
なので、候補プロセッサXの処理は完了する。ELIGMASK
(X、2)には、停止中のプロセッサであるプロセッサ
W100に対してオンのビットがあるので、プロセッサ
Z1002のINDIRECT_IDLE マスク1002内のビット
がオンになる。LEVEL アレイ(図13)も図のようにセ
ットされる。次に、先に作成されたデータを使用して、
図6に示すロジックにより、候補作業単位を割当てるた
めにプロセッサX101が選択される。これにより、作
業単位WU3 121がプロセッサX101から選択解
除される。割当て試行はここで作業単位WU3に移る。
この候補作業単位はプロセッサX101とプロセッサY
102に対して適格である。そこで、これらのプロセッ
サのELIGMASKエントリが上記のように構成される。上記
と同じロジックを使用して、この候補作業単位がプロセ
ッサY102に割当てられる。これはプロセッサY10
2の使用に、1つのレベルの間接処理しか要せず、プロ
セッサX101の使用には、それ以上のレベルの間接処
理が必要だからである。プロセッサY102上の作業単
位WU1 122は選択解除される。作業単位WU1
122に対する割当てがここで試行される。作業単位W
U1 122はプロセッサW100(停止中のプロセッ
サ)に対して適格であるので、すぐそこに割当てられ
る。割当てはこれで完了する。この例は、作業単位のリ
ダイレクト、停止中のプロセッサの優先、及び必要な時
の優先度が候補作業単位よりも高い作業の移動を説明し
ている。
【0023】促進:先に述べた通り、割当て機構は全
て、プロセッサが停止した時(時間枠の終了、作業単位
の保留、そのプロセッサを無くすための作業単位の特性
類似性の変更など)、割当てのために作業単位を選択す
る機構を備える。これは、ここでは作業の"促進"という
用語で呼ばれる。本発明の促進ロジックは、その入力に
使用可能キュー(図3)がある。促進メカニズムの主な
目的は、検索対象の使用可能キュー(図3)を出来るだ
け少なくし、割当て試行も出来るだけ少なくすることで
ある。ここで、好適な実施例の促進機構について説明す
るが、他の機構も本発明の範囲から逸脱することなく採
用することができる。
て、プロセッサが停止した時(時間枠の終了、作業単位
の保留、そのプロセッサを無くすための作業単位の特性
類似性の変更など)、割当てのために作業単位を選択す
る機構を備える。これは、ここでは作業の"促進"という
用語で呼ばれる。本発明の促進ロジックは、その入力に
使用可能キュー(図3)がある。促進メカニズムの主な
目的は、検索対象の使用可能キュー(図3)を出来るだ
け少なくし、割当て試行も出来るだけ少なくすることで
ある。ここで、好適な実施例の促進機構について説明す
るが、他の機構も本発明の範囲から逸脱することなく採
用することができる。
【0024】作業単位が選択解除された時に残る空きを
生めるための促進は、一連の割当て試行によって実現さ
れる。停止中のプロセッサに対して、間接処理に制限は
設けられないので、作業単位が選択解除された後のプロ
セッサの停止状態により、選択解除に続く第1の割当て
試行が、ある作業単位に対するもので、その候補に空い
たプロセッサが含まれていない場合、空いたプロセッサ
が候補になる、使用可能な割当てられていない作業が存
在する時は、間接処理が調整されない。従って、空いた
プロセッサが候補である、最も重要度が高くて使用可能
な割当てられていない作業単位に対して割当てを試行す
るには、使用可能キュー(図3)の第1パスが必要であ
る。その時に間接処理を考慮すべき、使用可能な割当て
られていない作業単位は、空いたプロセッサが候補とな
る最も重要度の高い作業単位よりも重要度が高い作業単
位から成る。空いたプロセッサが候補になる使用可能な
割当てられていない作業単位が見つからない場合は、間
接処理に使用可能キュー(図3)全体を考慮しなければ
ならない。しかし、このような間接処理は他のプロセッ
サに割当てられた作業単位に、候補として空いたプロセ
ッサが含まれる場合にしか発生しない。他のプロセッサ
に割当てられた作業単位に、候補として空いたプロセッ
サが含まれない場合は、考えられる間接処理を扱うため
に割当て試行の追加を第2パスによって考慮する必要は
ない。
生めるための促進は、一連の割当て試行によって実現さ
れる。停止中のプロセッサに対して、間接処理に制限は
設けられないので、作業単位が選択解除された後のプロ
セッサの停止状態により、選択解除に続く第1の割当て
試行が、ある作業単位に対するもので、その候補に空い
たプロセッサが含まれていない場合、空いたプロセッサ
が候補になる、使用可能な割当てられていない作業が存
在する時は、間接処理が調整されない。従って、空いた
プロセッサが候補である、最も重要度が高くて使用可能
な割当てられていない作業単位に対して割当てを試行す
るには、使用可能キュー(図3)の第1パスが必要であ
る。その時に間接処理を考慮すべき、使用可能な割当て
られていない作業単位は、空いたプロセッサが候補とな
る最も重要度の高い作業単位よりも重要度が高い作業単
位から成る。空いたプロセッサが候補になる使用可能な
割当てられていない作業単位が見つからない場合は、間
接処理に使用可能キュー(図3)全体を考慮しなければ
ならない。しかし、このような間接処理は他のプロセッ
サに割当てられた作業単位に、候補として空いたプロセ
ッサが含まれる場合にしか発生しない。他のプロセッサ
に割当てられた作業単位に、候補として空いたプロセッ
サが含まれない場合は、考えられる間接処理を扱うため
に割当て試行の追加を第2パスによって考慮する必要は
ない。
【0025】選択解除された作業単位がまだ実行可能で
あり、候補マスクが変更されていて、前にはなかった候
補が追加される時は、追加プロセッサを利用したり、そ
の利用を改良したりする可能性が生じる。第1パスによ
って割当てが試行された作業単位が、こうした環境下で
割当てられていない作業単位である場合、間接処理を考
慮すべき作業単位は、第1パスで割当てが試行された作
業単位に先行する作業単位ではなく、空いたプロセッサ
が候補である第1の使用可能な割当てられていない作業
単位までの作業単位である。第1パスによって割当てが
試行された作業単位が、こうした環境下で選択解除され
た作業単位ではない場合、第2パスの間かその後に選択
解除された作業単位に対して別に割当てを試行しなけれ
ばならない。間接処理を扱うために第2パスを設ける場
合、選択解除された作業単位の割当ては順に、キューを
重要度が最も高いものから最も低いものへ実行しながら
試行する必要があるが、選択解除された作業単位の候補
プロセッサは、第2パス内の間接処理のために対象とな
るプロセッサのマスクには追加できない。選択解除され
た作業単位が引続き実行可能であり、候補マスクが変更
されて、先にはなかった候補が追加され、使用可能キュ
ー(図3)を通る第1のパスまたは第2のパスにその作
業単位の割当てが試行されていない場合、促進プロセス
が完了したとみなされる前に、選択解除された作業単位
の割当てを別に試行しなければならない。
あり、候補マスクが変更されていて、前にはなかった候
補が追加される時は、追加プロセッサを利用したり、そ
の利用を改良したりする可能性が生じる。第1パスによ
って割当てが試行された作業単位が、こうした環境下で
割当てられていない作業単位である場合、間接処理を考
慮すべき作業単位は、第1パスで割当てが試行された作
業単位に先行する作業単位ではなく、空いたプロセッサ
が候補である第1の使用可能な割当てられていない作業
単位までの作業単位である。第1パスによって割当てが
試行された作業単位が、こうした環境下で選択解除され
た作業単位ではない場合、第2パスの間かその後に選択
解除された作業単位に対して別に割当てを試行しなけれ
ばならない。間接処理を扱うために第2パスを設ける場
合、選択解除された作業単位の割当ては順に、キューを
重要度が最も高いものから最も低いものへ実行しながら
試行する必要があるが、選択解除された作業単位の候補
プロセッサは、第2パス内の間接処理のために対象とな
るプロセッサのマスクには追加できない。選択解除され
た作業単位が引続き実行可能であり、候補マスクが変更
されて、先にはなかった候補が追加され、使用可能キュ
ー(図3)を通る第1のパスまたは第2のパスにその作
業単位の割当てが試行されていない場合、促進プロセス
が完了したとみなされる前に、選択解除された作業単位
の割当てを別に試行しなければならない。
【0026】選択解除された作業単位が引続き実行可能
で、候補マスクが変更されて、空いたプロセッサが除外
される場合、選択解除された作業単位について、その作
業単位に別の割当てを試行することなく、選択解除され
た作業単位に必要な割当て試行を省略する可能性が残
る。第1パスによって割当てが試行される作業単位は、
このような環境下で選択解除された作業単位ではない。
第2パスの間かその後に選択解除された作業単位につい
ては別に割当てを試行しなければならない。第2パスを
設けて間接処理を扱う場合、選択解除された作業に対す
る割当ては、順にキューを重要度が最も高いものから最
も低いものへ実行しながら試行する必要があるが、選択
解除された作業単位の候補プロセッサは、第2パス内の
間接処理のために対象となるプロセッサのマスクに追加
できない。選択解除された作業単位が引続き実行可能
で、候補マスクが変更されていて、先に存在した候補が
追加されるか、または空いたプロセッサが除外され、使
用可能キュー(図3)を通る第1のパスまたは第2のパ
スでその作業単位に対して割当てが試行されていない場
合は、促進プロセスが完了したとみなされる前に、選択
解除された作業単位の割当てを別に試行しなければなら
ない。
で、候補マスクが変更されて、空いたプロセッサが除外
される場合、選択解除された作業単位について、その作
業単位に別の割当てを試行することなく、選択解除され
た作業単位に必要な割当て試行を省略する可能性が残
る。第1パスによって割当てが試行される作業単位は、
このような環境下で選択解除された作業単位ではない。
第2パスの間かその後に選択解除された作業単位につい
ては別に割当てを試行しなければならない。第2パスを
設けて間接処理を扱う場合、選択解除された作業に対す
る割当ては、順にキューを重要度が最も高いものから最
も低いものへ実行しながら試行する必要があるが、選択
解除された作業単位の候補プロセッサは、第2パス内の
間接処理のために対象となるプロセッサのマスクに追加
できない。選択解除された作業単位が引続き実行可能
で、候補マスクが変更されていて、先に存在した候補が
追加されるか、または空いたプロセッサが除外され、使
用可能キュー(図3)を通る第1のパスまたは第2のパ
スでその作業単位に対して割当てが試行されていない場
合は、促進プロセスが完了したとみなされる前に、選択
解除された作業単位の割当てを別に試行しなければなら
ない。
【0027】間接処理を扱う第2パスの間、ある優先度
をもつ作業単位に対して割当てが試行された場合、優先
度の重要度が低い他の作業単位の割当て試行は、これら
の作業単位が、割当てがすでに試行されたプロセッサ以
外のプロセッサ上で実行するのに適した作業単位である
時にのみ考慮する必要がある。従って、使用可能キュー
(図3)を重要度が高いものから低いものへ実行する
際、割当てが試行された全ての作業単位の候補マスクの
包括的ORであるマスクを維持し、このマスク内に含ま
れる全ての候補の作業単位に対して割当て試行を省略す
ることができる。その例外は、選択解除された作業単位
の候補マスクが引続き実行可能であり、作業単位が選択
された時に存在しなかった候補が追加されるよう変更さ
れている時であり、その際には追加プロセッサを利用す
るか、またはその利用を改良する可能性が生じる。その
場合、割当てが試行された作業の全ての単位に対する候
補プロセッサの包括的ORマスク内に候補を追加できな
い、選択解除された作業単位に対して、別に割当てを試
行しなければならない。
をもつ作業単位に対して割当てが試行された場合、優先
度の重要度が低い他の作業単位の割当て試行は、これら
の作業単位が、割当てがすでに試行されたプロセッサ以
外のプロセッサ上で実行するのに適した作業単位である
時にのみ考慮する必要がある。従って、使用可能キュー
(図3)を重要度が高いものから低いものへ実行する
際、割当てが試行された全ての作業単位の候補マスクの
包括的ORであるマスクを維持し、このマスク内に含ま
れる全ての候補の作業単位に対して割当て試行を省略す
ることができる。その例外は、選択解除された作業単位
の候補マスクが引続き実行可能であり、作業単位が選択
された時に存在しなかった候補が追加されるよう変更さ
れている時であり、その際には追加プロセッサを利用す
るか、またはその利用を改良する可能性が生じる。その
場合、割当てが試行された作業の全ての単位に対する候
補プロセッサの包括的ORマスク内に候補を追加できな
い、選択解除された作業単位に対して、別に割当てを試
行しなければならない。
【0028】促進のまとめ: 1.使用可能キュー(図3)を通る第1パスは、空いた
プロセッサが候補の1つであり、優先度が最高で、使用
可能な、割当てられていない作業単位の割当てを試行す
る。 2.作業単位への候補の追加によって別に割当てを試行
する必要がなく、割当て試行が第1パスで扱われる限
り、第2パスは、空いたプロセッサが候補であり、現在
割当てられている作業単位が、他のプロセッサ上に存在
する場合にのみ必要である。 3.使用可能キュー(図3)を通る第2パスは間接処理
を扱う。このパスでまだ割当てが試行されていない候補
がある、使用可能な割当てられていない作業単位に対し
て割当てが試行される。 a.候補が作業単位に追加されることによって割当てを
別に試行する必要があり、割当て試行が第1パスで処理
された場合、第2パスは空いたプロセッサが候補である
第1作業単位の後に停止する。 b.他の場合、第1パスが割当てを試行した場合、第2
パスは第1パスで割当てが試行された作業単位で停止す
る。 c.他の場合、第2パスは使用可能キュー(図3)の終
わりで停止する。 4.これらのパスの完了時、新しい候補が作業単位に追
加されることによって必要になった余分な割当てがまだ
試行されていない場合は、それを実行しなければならな
い。
プロセッサが候補の1つであり、優先度が最高で、使用
可能な、割当てられていない作業単位の割当てを試行す
る。 2.作業単位への候補の追加によって別に割当てを試行
する必要がなく、割当て試行が第1パスで扱われる限
り、第2パスは、空いたプロセッサが候補であり、現在
割当てられている作業単位が、他のプロセッサ上に存在
する場合にのみ必要である。 3.使用可能キュー(図3)を通る第2パスは間接処理
を扱う。このパスでまだ割当てが試行されていない候補
がある、使用可能な割当てられていない作業単位に対し
て割当てが試行される。 a.候補が作業単位に追加されることによって割当てを
別に試行する必要があり、割当て試行が第1パスで処理
された場合、第2パスは空いたプロセッサが候補である
第1作業単位の後に停止する。 b.他の場合、第1パスが割当てを試行した場合、第2
パスは第1パスで割当てが試行された作業単位で停止す
る。 c.他の場合、第2パスは使用可能キュー(図3)の終
わりで停止する。 4.これらのパスの完了時、新しい候補が作業単位に追
加されることによって必要になった余分な割当てがまだ
試行されていない場合は、それを実行しなければならな
い。
【0029】しきい値の使用:先に述べた通り、割当て
手段はしきい値メカニズムを使用して、作業単位の過剰
なリダイレクトを避ける。ここで本発明に用いられるし
きい値メカニズムについて説明するが、割当て手段と共
に他のしきい値も使用できる(或いは使用しないことも
できる)。本発明に用いられるしきい値には2種類あ
る。
手段はしきい値メカニズムを使用して、作業単位の過剰
なリダイレクトを避ける。ここで本発明に用いられるし
きい値メカニズムについて説明するが、割当て手段と共
に他のしきい値も使用できる(或いは使用しないことも
できる)。本発明に用いられるしきい値には2種類あ
る。
【0030】1.優先度が最低の作業単位を置き換える
ために間接処理が不要な時 a.優先度が最低の作業単位が割当てられているが選択
されていない時、しきい値が採用されないことを示す0
しきい値が用いられる。 b.優先度が最低の作業単位が割当てられて選択されて
いる時、しきい値は、時間枠スケジューラのサンプル間
隔(好適な実施例では、50ミリ秒がサンプル間隔)よ
りも小さい。 2.優先度が最低の作業単位を置き換えるために間接処
理が必要な場合、優先度が最低の作業単位と、候補作業
単位の優先度の差がしきい値で割られ、優先度の差によ
ってサポートされる間接処理の最大数が決定される。サ
ンプル間隔の1/4のしきい値(好適な実施例では、1
2.5ミリ秒)が用いられる。
ために間接処理が不要な時 a.優先度が最低の作業単位が割当てられているが選択
されていない時、しきい値が採用されないことを示す0
しきい値が用いられる。 b.優先度が最低の作業単位が割当てられて選択されて
いる時、しきい値は、時間枠スケジューラのサンプル間
隔(好適な実施例では、50ミリ秒がサンプル間隔)よ
りも小さい。 2.優先度が最低の作業単位を置き換えるために間接処
理が必要な場合、優先度が最低の作業単位と、候補作業
単位の優先度の差がしきい値で割られ、優先度の差によ
ってサポートされる間接処理の最大数が決定される。サ
ンプル間隔の1/4のしきい値(好適な実施例では、1
2.5ミリ秒)が用いられる。
【0031】プロセッサの優先度と相対割当量:先に述
べた通り、作業単位の優先度が割当ての決定に用いられ
る。この優先度を設定する方法は、割当て手段の一部で
はないが、システム全体の性能に関係する。そこで、以
下に優先度を動的に調整する1つの方式について説明す
る。この方式は、相対割当量と実際の使用率をもとに優
先度を調整することによって、作業単位相互間に一貫し
たCPUリソース割当量を保証しようとするものであ
る。相対的処理の重み、すなわち相対割当量は、負のフ
ィードバックを使用することで適用される。各作業単位
によって消費されるCPU時間は、このCPU時間が与
えられ、有効時間と呼ばれる経過時間に変換される。C
PUの1/2を使用することを認められた作業単位の場
合、有効時間は、例えば用いられたCPU時間の3倍で
ある。スケジューリング期間に消費されたCPU時間に
よって、ディスパッチのための優先度が決定される。目
的のCPUリソース割当量を得るうえで最も遅れている
作業単位が最も重要な優先度をもつ。
べた通り、作業単位の優先度が割当ての決定に用いられ
る。この優先度を設定する方法は、割当て手段の一部で
はないが、システム全体の性能に関係する。そこで、以
下に優先度を動的に調整する1つの方式について説明す
る。この方式は、相対割当量と実際の使用率をもとに優
先度を調整することによって、作業単位相互間に一貫し
たCPUリソース割当量を保証しようとするものであ
る。相対的処理の重み、すなわち相対割当量は、負のフ
ィードバックを使用することで適用される。各作業単位
によって消費されるCPU時間は、このCPU時間が与
えられ、有効時間と呼ばれる経過時間に変換される。C
PUの1/2を使用することを認められた作業単位の場
合、有効時間は、例えば用いられたCPU時間の3倍で
ある。スケジューリング期間に消費されたCPU時間に
よって、ディスパッチのための優先度が決定される。目
的のCPUリソース割当量を得るうえで最も遅れている
作業単位が最も重要な優先度をもつ。
【0032】長い停止期間に応答して作業単位に与えら
れる処理時間には制限を設けなければならない。他の場
合、作業単位は1日中停止したままで、翌日には優先度
が最も高くなる。この制限は、各作業単位の履歴テーブ
ルを使用することによって実現される。履歴テーブルは
各々、最近のXサンプリング期間それぞれの有効時間の
総計のエントリから成る。サンプリング期間それぞれの
終わりに、最も古いサンプルが棄却されて元の値にな
り、新しいサンプルが開始される。この実施例では、5
0ミリ秒のサンプル期間の値が合計31個、履歴テーブ
ルに保持される。履歴は、各サンプリング期間の終わり
に古くなる。
れる処理時間には制限を設けなければならない。他の場
合、作業単位は1日中停止したままで、翌日には優先度
が最も高くなる。この制限は、各作業単位の履歴テーブ
ルを使用することによって実現される。履歴テーブルは
各々、最近のXサンプリング期間それぞれの有効時間の
総計のエントリから成る。サンプリング期間それぞれの
終わりに、最も古いサンプルが棄却されて元の値にな
り、新しいサンプルが開始される。この実施例では、5
0ミリ秒のサンプル期間の値が合計31個、履歴テーブ
ルに保持される。履歴は、各サンプリング期間の終わり
に古くなる。
【0033】履歴テーブルの始めと終わりの時間差に等
しい有効時間に達している作業単位を保留することによ
って、キャッピングが実施される。キャッピングされた
作業単位の各々が、各サンプル期間内に処理を受けるよ
うに、その時間枠が有効時間がサンプル期間に等しい処
理時間に制限される。
しい有効時間に達している作業単位を保留することによ
って、キャッピングが実施される。キャッピングされた
作業単位の各々が、各サンプル期間内に処理を受けるよ
うに、その時間枠が有効時間がサンプル期間に等しい処
理時間に制限される。
【0034】履歴は、特にキャッピングでは、ほかに処
理が取られない場合はそれ自体を繰返す傾向がある。各
サンプル期間が終わると、キャッピングのために保留さ
れた作業単位は、履歴テーブルから棄却されたばかりの
期間に消費された処理時間と正確に同じ時間を受取るこ
とができる。極端な例では、先に停止中だったCPUの
1/3を使用できる作業単位は、履歴期間の1/3、約
1/2秒、連続的実行される。約1秒は保留され、この
状態はそれが実行する第1のサンプルが棄却されるまで
続く。次に、また1/2秒連続して実行され、その後1
秒間保留される。これは、作業単位が実行可能である限
り無限に繰返される。
理が取られない場合はそれ自体を繰返す傾向がある。各
サンプル期間が終わると、キャッピングのために保留さ
れた作業単位は、履歴テーブルから棄却されたばかりの
期間に消費された処理時間と正確に同じ時間を受取るこ
とができる。極端な例では、先に停止中だったCPUの
1/3を使用できる作業単位は、履歴期間の1/3、約
1/2秒、連続的実行される。約1秒は保留され、この
状態はそれが実行する第1のサンプルが棄却されるまで
続く。次に、また1/2秒連続して実行され、その後1
秒間保留される。これは、作業単位が実行可能である限
り無限に繰返される。
【0035】こうした連続的な反復を防ぐため、履歴テ
ーブル内のサンプルに重みつき平均化が用いられる。最
も古い8個のサンプルは他の全てのサンプルの1/2の
重みをもつ。先に停止中だった、CPUの1/3を使用
できる作業単位の例では、履歴期間の1/3、約1/2
秒は連続に実行される。それがアクティブだった第1の
サンプルが、履歴テーブル内の1/2の重みの位置の1
つに達するまで、約1.2秒の間は保留される。次の期
間に、重みが減少したサンプル内で消費された処理時間
の1/2を使用できるようになる。同様に、作業単位が
CPU全部を使用したサンプルのそれぞれが重みつきエ
リアに入ると、作業単位は、その期間に消費された処理
時間の1/2を使用できるようになる。捨てられる処理
時間と、重みが減少した処理時間は、ある時間には等し
いことがあり、その時間には、作業単位が受取ることの
できる時間量はそれ以上減少しないが、これが与えられ
る履歴テーブルの一部は、1サイクルから次のサイクル
に減少する。これにより反復が弱まる。
ーブル内のサンプルに重みつき平均化が用いられる。最
も古い8個のサンプルは他の全てのサンプルの1/2の
重みをもつ。先に停止中だった、CPUの1/3を使用
できる作業単位の例では、履歴期間の1/3、約1/2
秒は連続に実行される。それがアクティブだった第1の
サンプルが、履歴テーブル内の1/2の重みの位置の1
つに達するまで、約1.2秒の間は保留される。次の期
間に、重みが減少したサンプル内で消費された処理時間
の1/2を使用できるようになる。同様に、作業単位が
CPU全部を使用したサンプルのそれぞれが重みつきエ
リアに入ると、作業単位は、その期間に消費された処理
時間の1/2を使用できるようになる。捨てられる処理
時間と、重みが減少した処理時間は、ある時間には等し
いことがあり、その時間には、作業単位が受取ることの
できる時間量はそれ以上減少しないが、これが与えられ
る履歴テーブルの一部は、1サイクルから次のサイクル
に減少する。これにより反復が弱まる。
【0036】キャッピング:現在のスケジューラ時間間
隔について、それが使用できる処理時間を超えているキ
ャッピングされた作業単位は、割当てに関して保留され
ているとみなされる。作業単位は、その処理時間が現在
のスケジューラ時間間隔内で与えられている量を超える
場合は、選択解除された時にキャッピング保留にセット
される。各スケジューラ時間間隔の終わりに、キャッピ
ング保留が解除された各作業単位に対して割当てが試行
される。
隔について、それが使用できる処理時間を超えているキ
ャッピングされた作業単位は、割当てに関して保留され
ているとみなされる。作業単位は、その処理時間が現在
のスケジューラ時間間隔内で与えられている量を超える
場合は、選択解除された時にキャッピング保留にセット
される。各スケジューラ時間間隔の終わりに、キャッピ
ング保留が解除された各作業単位に対して割当てが試行
される。
【0037】
【発明の効果】本発明は、停止中のプロセッサに対して
適格ではない作業単位を割当てられるように、アクティ
ブな作業単位をプロセッサ相互間に再度割当てる能力を
提供する。
適格ではない作業単位を割当てられるように、アクティ
ブな作業単位をプロセッサ相互間に再度割当てる能力を
提供する。
【図1】特性が異なり共通のメモリを有し、集約された
作業単位情報を含むプロセッサ(CPU)、作業単位割
当て手段、及び促進メカニズムから成るマイクロプロセ
ッサ・コンピューティング・システムを示す、本発明の
システム図である。
作業単位情報を含むプロセッサ(CPU)、作業単位割
当て手段、及び促進メカニズムから成るマイクロプロセ
ッサ・コンピューティング・システムを示す、本発明の
システム図である。
【図2】作業単位を実行のために割当てることに関係す
る各作業単位についての情報を記述したエントリを連結
した、作業単位テーブルのフォーマットと内容を示す図
である。
る各作業単位についての情報を記述したエントリを連結
した、作業単位テーブルのフォーマットと内容を示す図
である。
【図3】作業単位テーブルのエントリから成り、プロセ
ッサへの割当てに使用可能な優先度順のキューのフォー
マットを示す図である。
ッサへの割当てに使用可能な優先度順のキューのフォー
マットを示す図である。
【図4】割当て手段の流れ図である。
【図5】割当て手段の"プロセッサ群判定"ロジックの流
れ図である。
れ図である。
【図6】割当て手段内で、最小限の間接処理によって停
止中のプロセッサを利用する割当てのためにプロセッサ
を選択するロジックの流れ図である。
止中のプロセッサを利用する割当てのためにプロセッサ
を選択するロジックの流れ図である。
【図7】割当て手段内で、置換可能な優先度が最低の作
業単位を実行しているプロセッサを判定するロジックの
流れ図である。
業単位を実行しているプロセッサを判定するロジックの
流れ図である。
【図8】割当て手段内で、最小限の間接処理によって優
先度が最低の作業を置き換える割当てのためにプロセッ
サを選択するロジックの流れ図である。
先度が最低の作業を置き換える割当てのためにプロセッ
サを選択するロジックの流れ図である。
【図9】システム内の各プロセッサのビット位置を含む
IDLE_PROCESSORビット・マスクの図である。
IDLE_PROCESSORビット・マスクの図である。
【図10】システム内の各プロセッサのビット位置を含
むINDIRECT_IDLE ビット・マスクの図である。
むINDIRECT_IDLE ビット・マスクの図である。
【図11】システム内の各プロセッサのビット位置を含
むINDIRECT_BUMP ビット・マスクの図である。
むINDIRECT_BUMP ビット・マスクの図である。
【図12】ELIGMASKの2次元アレイの図である。次元は
CPUとINDIRECTLEVELである。
CPUとINDIRECTLEVELである。
【図13】プロセッサ(CPU)当たり1エントリのLE
VELアレイの図である。
VELアレイの図である。
【図14】置き換えられる優先度が最低の作業単位を含
むプロセッサを示すためにセットされるLEASTCPUデータ
・フィールドの図である。
むプロセッサを示すためにセットされるLEASTCPUデータ
・フィールドの図である。
【図15】各プロセッサにどの特性があるかを記述する
プロセッサ特性テーブルのフォーマットと内容を示す図
である。
プロセッサ特性テーブルのフォーマットと内容を示す図
である。
100、101、102、103 プロセッサ 110、111、112、113 特性 130 共通メモリ 131 作業単位テーブル 132 使用可能キュー 133 プロセッサ特性テーブル 140 ハイパバイザ 141 割当て手段 142 促進メカニズム 201 作業単位ID 202 優先度 203 候補マスク 204 所要特性 205 チェーン・フィールド 301、302、303、304 エントリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウイリアム・ジェームズ・グリン アメリカ合衆国12601、ニューヨーク州 ポキプシ、ウエスト・ウィンディング 6 (72)発明者 ロジャー・エルドレッド・ホウ アメリカ合衆国12528、ニューヨーク州 ハイランド、シャロン・ドライブ 7 (72)発明者 マノア・ラマ・ラオ アメリカ合衆国12603、ニューヨーク州 ポキプシ、スパッケンキル・ロード 218ビィ (56)参考文献 特開 昭62−115567(JP,A) 特公 昭60−3229(JP,B1)
Claims (7)
- 【請求項1】a.2つ以上のプロセッサを含む密結合複
合プロセッサであって、上記2つ以上のプロセッサの少
なくとも1つは、該1つのプロセッサ上で実行される作
業単位によって使用できる特性を有する密結合複合プロ
セッサと、 b.上記2つ以上のプロセッサのうちの1つまたは複数
のプロセッサ上で実行できる、1つ以上の使用可能な作
業単位と、 c.上記使用可能な作業単位のうち選択された1つを割
当てるべく、現在実行中の作業をリダイレクトすること
ができる、上記密結合複合プロセッサ内の宛先プロセッ
サ群を識別する手段と、 d.上記2つ以上のプロセッサのそれぞれを選択した場
合の作業リダイレクト動作を分析し、該分析に基づい
て、作業リダイレクト動作が再割当て目標を達成するよ
うに、上記使用可能な作業単位のうちの選択された1つ
を割当てるプロセッサを選択する分析手段と、 を含む作業の動的再割当て装置。 - 【請求項2】上記プロセッサ群が、間接停止マスクによ
って識別される間接停止プロセッサ群から成る、請求項
1記載の装置。 - 【請求項3】上記プロセッサ群が、間接置換マスクによ
って識別される間接置換プロセッサ群から成る、請求項
1記載の装置。 - 【請求項4】a.2つ以上のプロセッサを含む密結合複
合プロセッサであって、上記2つ以上のプロセッサの少
なくとも1つは、該1つのプロセッサ上で実行される作
業単位によって使用できる特性を有する密結合複合プロ
セッサと、 b.上記2つ以上のプロセッサのうちの1つまたは複数
のプロセッサ上で実行できる、1つ以上の使用可能な作
業単位と、 c.上記使用可能な作業単位のうち選択された1つを割
当てるべく、現在実行中の作業をリダイレクトすること
ができる、上記密結合複合プロセッサ内の宛先プロセッ
サ群を識別する手段であって、該プロセッサ群は、間接
停止マスクによって識別される間接停止プロセッサ群
と、間接置換マスクによって識別される間接置換プロセ
ッサ群とを含む、上記識別手段と、 d.上記2つ以上のプロセッサのそれぞれを選択した場
合の作業リダイレクト動作を分析し、該分析に基づい
て、作業リダイレクト動作が再割当て目標を達成するよ
うに、上記使用可能な作業単位のうちの選択された1つ
を割当てるプロセッサを選択する分析手段であって、上
記再割当て目標の1つが、上記2つ以上のプロセッサの
うち停止中だった1つを、上記間接停止プロセッサ群に
関係する上記作業リダイレクト動作の完了後に使用する
ことであり、上記再割当て目標の他の1つが、上記プロ
セッサ群のサブセット上で実行されるアクティブな作業
単位群のうち優先度が最低の作業単位を、上記作業リダ
イレクト動作が完了した後に置き換えることであり、上
記間接停止群が空でない場合には、上記第1の再割当て
目標が上記分析手段によって追求され、上記間接停止群
が空の場合には、上記第2の再割当て目標が上記分析手
段によって追求され、上記分析手段が更に上記間接停止
群が空の時、上記作業リダイレクト動作の合計回数が、
しきい値から導かれた値より少ないのでなければ上記割
当てを行なわないようにする手段を含み、該しきい値か
ら導かれた値が、上記作業リダイレクト動作の最大許容
回数を示す、上記分析手段と、 e.上記作業リダイレクト動作が、最小回数の該作業リ
ダイレクト動作から成るようにする手段と、 を含む作業の動的再割当て装置。 - 【請求項5】2つ以上のプロセッサを含む密結合の複合
データ処理機構であって、上記2つ以上のプロセッサの
少なくとも1つは、該1つのプロセッサ上で実行される
作業単位によって使用できる特性を有する密結合の複合
データ処理機構において、作業単位を動的に再度割当て
る方法であって、 a.割当てを考慮して、上記2つ以上のプロセッサのう
ち1つ以上で実行できる1つ以上の使用可能な作業単位
群のうち1つを選択するステップと、 b.上記使用可能な作業単位のうち選択された1つを割
当てるべく、現在実行中の作業をリダイレクトすること
ができる、上記密結合複合プロセッサ内の宛先プロセッ
サ群を識別するステップと、 c.上記2つ以上のプロセッサのそれぞれを選択した場
合の作業リダイレクト動作を分析し、該分析に基づい
て、作業リダイレクト動作が再割当て目標を達成するよ
うに、上記使用可能な作業単位のうちの選択された1つ
を割当てるプロセッサを選択するステップと、 を含む方法。 - 【請求項6】上記2つ以上のプロセッサの間接停止群を
間接停止マスクによって識別するステップを含む、請求
項5記載の方法。 - 【請求項7】上記2つ以上のプロセッサの間接置換群を
間接置換マスクによって識別するステップを含む、請求
項5記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/978,601 US5301324A (en) | 1992-11-19 | 1992-11-19 | Method and apparatus for dynamic work reassignment among asymmetric, coupled processors |
US978601 | 1992-11-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06214961A JPH06214961A (ja) | 1994-08-05 |
JP2559993B2 true JP2559993B2 (ja) | 1996-12-04 |
Family
ID=25526252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5262364A Expired - Fee Related JP2559993B2 (ja) | 1992-11-19 | 1993-10-20 | 非対称型結合プロセッサ相互間の作業の動的再割当て装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5301324A (ja) |
EP (1) | EP0598231A3 (ja) |
JP (1) | JP2559993B2 (ja) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108704A (en) | 1995-09-25 | 2000-08-22 | Netspeak Corporation | Point-to-point internet protocol |
US5706514A (en) * | 1996-03-04 | 1998-01-06 | Compaq Computer Corporation | Distributed execution of mode mismatched commands in multiprocessor computer systems |
US6728784B1 (en) * | 1996-08-21 | 2004-04-27 | Netspeak Corporation | Collaborative multimedia architecture for packet-switched data networks |
US5918057A (en) * | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
JP3681026B2 (ja) * | 1997-03-27 | 2005-08-10 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
US6735631B1 (en) * | 1998-02-10 | 2004-05-11 | Sprint Communications Company, L.P. | Method and system for networking redirecting |
US6625638B1 (en) | 1998-04-30 | 2003-09-23 | International Business Machines Corporation | Management of a logical partition that supports different types of processors |
US7216348B1 (en) * | 1999-01-05 | 2007-05-08 | Net2Phone, Inc. | Method and apparatus for dynamically balancing call flow workloads in a telecommunications system |
US6539542B1 (en) * | 1999-10-20 | 2003-03-25 | Verizon Corporate Services Group Inc. | System and method for automatically optimizing heterogenous multiprocessor software performance |
US20020099759A1 (en) * | 2001-01-24 | 2002-07-25 | Gootherts Paul David | Load balancer with starvation avoidance |
US6874014B2 (en) * | 2001-05-29 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | Chip multiprocessor with multiple operating systems |
US7487504B2 (en) * | 2002-02-06 | 2009-02-03 | International Business Machines Corporation | Thread dispatch for multiprocessor computer systems |
US7143411B2 (en) * | 2002-03-15 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Capping processor utilization |
US7448036B2 (en) * | 2002-05-02 | 2008-11-04 | International Business Machines Corporation | System and method for thread scheduling with weak preemption policy |
US7275249B1 (en) * | 2002-07-30 | 2007-09-25 | Unisys Corporation | Dynamically generating masks for thread scheduling in a multiprocessor system |
JP4090908B2 (ja) * | 2003-02-21 | 2008-05-28 | シャープ株式会社 | 画像処理装置および画像形成装置 |
US7281075B2 (en) * | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
JP4148223B2 (ja) * | 2005-01-28 | 2008-09-10 | セイコーエプソン株式会社 | プロセッサおよび情報処理方法 |
JP2006243865A (ja) * | 2005-03-01 | 2006-09-14 | Seiko Epson Corp | プロセッサおよび情報処理方法 |
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 |
JP5089896B2 (ja) | 2006-03-17 | 2012-12-05 | 株式会社日立製作所 | マイクロプロセッサの負荷分散機能を備えたストレージシステム |
US20070266391A1 (en) * | 2006-04-27 | 2007-11-15 | Hoffman Philip M | System and method for separating multi-workload processor utilization on a metered computer system |
JP2007328461A (ja) * | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 非対称マルチプロセッサ |
US7461241B2 (en) * | 2006-07-31 | 2008-12-02 | International Business Machines Corporation | Concurrent physical processor reassignment method |
US7941805B2 (en) | 2006-08-15 | 2011-05-10 | International Business Machines Corporation | Affinity dispatching load balancer with precise CPU consumption data |
US8201165B2 (en) * | 2007-01-02 | 2012-06-12 | International Business Machines Corporation | Virtualizing the execution of homogeneous parallel systems on heterogeneous multiprocessor platforms |
US11836506B2 (en) | 2007-04-11 | 2023-12-05 | Apple Inc. | Parallel runtime execution on multiple processors |
US8108633B2 (en) * | 2007-04-11 | 2012-01-31 | Apple Inc. | Shared stream memory on multiple processors |
CN103927150B (zh) * | 2007-04-11 | 2016-09-07 | 苹果公司 | 多处理器上的并行运行时执行 |
US8286196B2 (en) | 2007-05-03 | 2012-10-09 | Apple Inc. | Parallel runtime execution on multiple processors |
US8341611B2 (en) | 2007-04-11 | 2012-12-25 | Apple Inc. | Application interface on multiple processors |
US8276164B2 (en) | 2007-05-03 | 2012-09-25 | Apple Inc. | Data parallel computing on multiple processors |
AU2008239696B2 (en) | 2007-04-11 | 2011-09-08 | Apple Inc. | Data parallel computing on multiple processors |
US8286198B2 (en) | 2008-06-06 | 2012-10-09 | Apple Inc. | Application programming interfaces for data parallel computing on multiple processors |
US8225325B2 (en) | 2008-06-06 | 2012-07-17 | Apple Inc. | Multi-dimensional thread grouping for multiple processors |
US8566831B2 (en) * | 2011-01-26 | 2013-10-22 | International Business Machines Corporation | Execution of work units in a heterogeneous computing environment |
US8683479B1 (en) * | 2011-02-16 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Shifting information technology workload demands |
US8533720B2 (en) | 2011-02-25 | 2013-09-10 | International Business Machines Corporation | Offloading work from one type to another type of processor based on the count of each type of service call instructions in the work unit |
RU2011117765A (ru) * | 2011-05-05 | 2012-11-10 | ЭлЭсАй Корпорейшн (US) | Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности |
WO2018183553A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups |
US10686729B2 (en) | 2017-03-29 | 2020-06-16 | Fungible, Inc. | Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths |
CN110710139A (zh) | 2017-03-29 | 2020-01-17 | 芬基波尔有限责任公司 | 具有光置换器的无阻塞全网状数据中心网络 |
CN110741356B (zh) | 2017-04-10 | 2024-03-15 | 微软技术许可有限责任公司 | 多处理器系统中的中继一致存储器管理 |
US10725825B2 (en) | 2017-07-10 | 2020-07-28 | Fungible, Inc. | Data processing unit for stream processing |
WO2019014265A1 (en) | 2017-07-10 | 2019-01-17 | Fungible, Inc. | DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES |
US11178262B2 (en) | 2017-09-29 | 2021-11-16 | Fungible, Inc. | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths |
US10965586B2 (en) | 2017-09-29 | 2021-03-30 | Fungible, Inc. | Resilient network communication using selective multipath packet flow spraying |
US10841245B2 (en) | 2017-11-21 | 2020-11-17 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4073005A (en) * | 1974-01-21 | 1978-02-07 | Control Data Corporation | Multi-processor computer system |
FR2500659B1 (fr) * | 1981-02-25 | 1986-02-28 | Philips Ind Commerciale | Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur |
US4394727A (en) * | 1981-05-04 | 1983-07-19 | International Business Machines Corporation | Multi-processor task dispatching apparatus |
JPS603229A (ja) * | 1983-06-21 | 1985-01-09 | Hamamatsu Photonics Kk | パルス信号処理回路 |
US4638427A (en) * | 1984-04-16 | 1987-01-20 | International Business Machines Corporation | Performance evaluation for an asymmetric multiprocessor system |
JPS62115567A (ja) * | 1985-11-15 | 1987-05-27 | Nec Corp | 多重プロセサシステム |
JPS63307570A (ja) * | 1987-06-04 | 1988-12-15 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 星形トポロジのスイツチ装置 |
US4943912A (en) * | 1987-10-13 | 1990-07-24 | Hitachi, Ltd. | Parallel processor system having control processor and array control apparatus for selectively activating different processors |
US5031089A (en) * | 1988-12-30 | 1991-07-09 | United States Of America As Represented By The Administrator, National Aeronautics And Space Administration | Dynamic resource allocation scheme for distributed heterogeneous computer systems |
-
1992
- 1992-11-19 US US07/978,601 patent/US5301324A/en not_active Expired - Fee Related
-
1993
- 1993-10-19 EP EP9393116856A patent/EP0598231A3/en not_active Withdrawn
- 1993-10-20 JP JP5262364A patent/JP2559993B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06214961A (ja) | 1994-08-05 |
EP0598231A3 (en) | 1994-10-19 |
US5301324A (en) | 1994-04-05 |
EP0598231A2 (en) | 1994-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2559993B2 (ja) | 非対称型結合プロセッサ相互間の作業の動的再割当て装置及び方法 | |
US9069610B2 (en) | Compute cluster with balanced resources | |
EP3254196B1 (en) | Method and system for multi-tenant resource distribution | |
US7065766B2 (en) | Apparatus and method for load balancing of fixed priority threads in a multiple run queue environment | |
US9727372B2 (en) | Scheduling computer jobs for execution | |
JP5744909B2 (ja) | アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム | |
US8694644B2 (en) | Network-aware coordination of virtual machine migrations in enterprise data centers and clouds | |
US7748005B2 (en) | System and method for allocating a plurality of resources between a plurality of computing domains | |
RU2481618C2 (ru) | Иерархическая инфраструктура планирования резервирования ресурсов | |
US8316365B2 (en) | Computer system | |
US7178147B2 (en) | Method, system, and program for allocating processor resources to a first and second types of tasks | |
US6782410B1 (en) | Method for managing user and server applications in a multiprocessor computer system | |
US7613897B2 (en) | Allocating entitled processor cycles for preempted virtual processors | |
US5606685A (en) | Computer workstation having demand-paged virtual memory and enhanced prefaulting | |
US20060130062A1 (en) | Scheduling threads in a multi-threaded computer | |
JP2004326743A (ja) | グローバル割込み待ち行列の仮想化 | |
JP2007512632A (ja) | アクティビティ情報を用いての仮想マシンの管理 | |
JP2003256221A (ja) | 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ | |
KR20110075297A (ko) | 병렬도를 고려한 병렬 처리 장치 및 방법 | |
KR100791296B1 (ko) | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 | |
JP3541212B2 (ja) | プロセッサ割当て装置 | |
Xu et al. | Prophet: Scheduling executors with time-varying resource demands on data-parallel computation frameworks | |
CN115576683A (zh) | 一种协程池调度管理方法、系统、装置及存储介质 | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
JP4121525B2 (ja) | リソース利用率を制御する方法およびコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |