Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPH0628053B2 - マルチプロセッサシステムの資源の割当制御方法 - Google Patents
[go: Go Back, main page]

JPH0628053B2 - マルチプロセッサシステムの資源の割当制御方法 - Google Patents

マルチプロセッサシステムの資源の割当制御方法

Info

Publication number
JPH0628053B2
JPH0628053B2 JP62323013A JP32301387A JPH0628053B2 JP H0628053 B2 JPH0628053 B2 JP H0628053B2 JP 62323013 A JP62323013 A JP 62323013A JP 32301387 A JP32301387 A JP 32301387A JP H0628053 B2 JPH0628053 B2 JP H0628053B2
Authority
JP
Japan
Prior art keywords
processor
allocation
block
flag
executed
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
JP62323013A
Other languages
English (en)
Other versions
JPS63239553A (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 JPS63239553A publication Critical patent/JPS63239553A/ja
Publication of JPH0628053B2 publication Critical patent/JPH0628053B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/5044Allocation 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Description

【発明の詳細な説明】 [発明の属する技術分野] 本発明はマルチプロセッサシステム、特にマルチプロセ
ッサシステムにおける動的負荷平衡すなわちプロセッサ
の割当に関する。
[従来技術の説明] マルチプロセッサシステムにおいては、システム内の種
々のプロセッサ間に処理負荷を分散することが望まし
い。この機能は、通常、動的負荷平衡又はプロセッサ割
当と呼ばれる。従来の技術システムは、この機能を固定
アルゴリスムを利用して行なっている。この様なアルゴ
リズムのひとつは、プログラムが、実行を要求すると、
システム内の全てのプロセッサが順次実行のためのプロ
グラムを受け取る。このプログラムは、通常新規ジョブ
又は新規プロセスと呼ばれる。他のアルゴリズムは、新
しいプログラムを、最低量の作業を持つプロセッサへ割
当てる。従来用いられる技術は、ある種の作業処理環境
においてはよく機能する。しかし、システム管理者が異
なる状況に合せて動的負荷アルゴリズムを調整すること
ができないという問題点がある。更に、応用プログラマ
と割当てられるべき新規プログラムのユーザ又はその一
方は、プロセッサ割当がいかに行なわれるかについてコ
ントルールできない。応用プログラマ又はユーザはしば
しば、マルチプロセッサ内のプロセッサが特定のジョブ
を受けとるべきであるということに関して重要な情報を
持っていることがある。
[発明の目的] 本発明の目的は、特定のジョブに対するプロセッサの割
当をシステム管理者が制御できるようにし、更に、応用
プログラマ又はプログラムのユーザが、どのプロセッ
サ、又はどの型のプロセッサが特定のプログラムを実行
するために用いられるかを調整できるようにすることで
ある。
[発明の概要] 本発明によれば、マルチプロセッサにおいて、システム
管理者と、応用プログラマと、割当てられるべき新規プ
ログラムのユーザとからなるグループのうちの誰か(複
数でもよい)は、システム内のどのプロセッサが与えら
れたプログラムを実行すべきかを決定する割当機能また
は調整能力を有する。
これにより、マルチプロセッサシステムが、各々異なる
能力と異なる資源を持つ種々の異なる型のプロセッサか
ら構成されることが可能となる。更に、応用プログラマ
又はプログラムユーザは、要求をプロセッサ割当機能上
に能率的に配置して利用することができ、従って、従来
マルチプロセッサシステム上では実行できなかったある
タイプの動作が簡単な方法で実行できるようになる。
本発明の方法は、プロセッサの資源をマルチプロセッサ
内の新規プログラムへ割当てるに際し、システム内に新
規プログラムの為のオブジェクトコードを格納するステ
ップと、一連のプロセッサ割当パラメータを格納された
オブジェクトコードに挿入するステップと、この格納さ
れたオブジェクトコードを読み出すステップと、そし
て、読み出されたオブジェクトコードのプロセッサ割当
パラメータに応じて、あるプロセッサを割当るステップ
とを行なうことによって制御する。
この挿入するステップは、ユーザコマンドに応じて、プ
ロセッサ割当パラメータを格納されたオブジェクトコー
ドに書き込むステップからなる。本発明の方法は、更
に、格納されたオブジェクトコードを実行する要求に応
じて、割当ステップで使用するために、他のプロセッサ
割当パラメータを利用できることを提供している。
更に、本発明のシステムは、複数のシステムプロセッサ
割当フラッグを格納し、そして割当ステップは、システ
ムフラッグとプロセッサ割当パラメータの双方に応じ
て、読み出したオブジェクトコードを実行するためにプ
ロセッサの割当を実行する。
[実施例の説明] 図1は、バス107によって相互接続された複数のコンピ
ュータ101−106を有するマルチプロセッサシステムを示
す。各コンピュータは、ケー、トンプソン(K.tompso
n)による報告.ザ.ベル.システム.テクニカルジャ
ーナル(The Bell Sys tem Technical Journal)7月〜
8月、1978年、57巻、6号の“ユニックス(UNIX)
の作成”に述べられているユニックス(UNIX)オペ
レーティングシステム(OS)のバージョンと事実上同
様のオペレーティングシステムの制御のもとに動作す
る。ユニッスク(UNIX)オペレーティングシステム
のマルチプロセッサバージョンはティー、ビショップ
(T.Bishop)の本願と同日出願に係る特許願(1)に添
附した図面に図示されている。図1に示されるシステム
内の新しいプログラムの開始は、プログラムがプロセス
とみなされ、図1に示すコンピュータに自動的に割当て
られる様にするコマンド“エクセク(exec)”によって
行われる。この割当を行うために、資源の割当と動的負
荷平衡は、コンピュータ101の核(Kernel)が行うプロ
セスマネージャ(PM)機能108によって行われる。こ
のコンピュータ101は、マルチプロセッサシステム(図
1)のホストコンピュータである。図1のどのコンピュ
ータによるエクセス(execシステムコールの実行も、コ
ンピュータ101の核によって行われるPM機能108の指示
に従う。この機能が、フラッグと、変数とのいずれかの
指示、あるいは、システム管理者と、応用プログラマ
と、プログラムユーザまたは、その誰かの指示によって
特定されるパラメータを、プロセッサ割当の制御に用い
ることが、本発明の要旨である。
システム管理者は、最初にselectsw変数にある値を代入
することによって、5個の別個の割当方法の内、どれを
使用するかを決定する。選択され得る個別の方法につい
て、図7から13を参照して詳述する。5番目の方法に
おいては、システム管理者、応用プログラマ、ユーザの
誰かは、プロセッサ割当の別の調整を特定する。システ
ム管理者は、マルチプロセッサ内部のプログラム割当
を、図3に示すフラッグ構造内のフラッグの状態を制御
することにって調整する。フラッグ構造は、コンピュー
タ101の核に保持される。PM機能108の実行が、コンピ
ュータ資源を割当るために、この構造をいかに利用する
かを図7から図13を参照して説明する。
応用プログラマおよびプログラムユーザは、各々シスマ
ルチ(sysmulti)システムコール又はマサイン(massig
n)シェルコマンドによって、5番目の方法を調整でき
る。これらの調整は、システム管理者によって行なわれ
る調整によって修正できる。どのようにして応用プログ
ラマがその調整を実行PM機能108に受け渡すかを理解
するためには、図1のマルチプロセッサシステム上にお
いて、いかに新規プログラムが実行されるかを理解する
ことが必要である。応用プログラマは、最初に、新規プ
ログラムの実行を要求する要求(requesting)プログラ
ムを書き込む。そして、その要求プログラムは、図1上
の複数のプロセッサの中の1つのプロセッサ上のプロセ
スによって実行されていると仮定する。例として、この
プロセッサが、プロセッサ102であると仮定する。応用
プログラマによって書き込まれた要求プログラムは、最
初に、その実行プロセスを子プロセスおよび親プロセス
に複製するフォーク(fork)コマンドを実行する。これ
らのプロセスは、同じプログラムを共有するが、異なる
データ記憶場所(strage)を有する。そして子プロセス
は、シスマルチシステムコールを実行する。このシステ
ムコールにおいて定義されるパラメータは、応用プログ
ラマが、PM機能108によって行われる動的負荷平衡に
対して行おうとする調整を、標準的方法で特定する。
シスマルチシステムコールを実行した後、子プロセス
は、エクセク(exec)システムコールを実行する。ユニ
ックス(UNIX)オペレーティングシステムが分岐す
る方法と、エクセク(exec)システムコール機能に関す
る情報は、前掲のトンプソンの報告書の中に開示されて
いる。
応用プログラマは、動的負荷平衡機能内で行われる調整
を要求プログラムの原始コードが書き込まれた時点で決
定する。シスマルチ(sysmulti)システムコールが実行
されると、応用プログラマの調整を定義づけるパラメー
タは、プロセスのユーブロック(ublock)内に、最初
に、標準的方法で格納される。これらのパラメータは、
エクセク(exec)システムコールの実行中に、PM機能
108で用いる為に、コンピュータ101の核に受け渡され
る。
プログラムのユーザは、ユーザの調整をマサイン(mass
ign)シェルコマンドの実行によって、入力する。例え
ば、ユーザが、図1に示されるマルチプロセッサシステ
ム内のある特定のプロセッサ上で、言語処理プログラム
を実行したい場合、ユーザは、プログラムが割当てられ
るプロセッサを特定するマサイン(massign)コマンド
と、言語処理プログラムを含むエーアウト(a.out)フ
ァイルを実行する。ところで、マサイン(massign)コ
マンドは、標準的方法で、この言語処理プログラムをエ
イ・アウト(a.out)ファイルへ挿入する。このマサイ
ン(massign)コマンドは、同一プログラムをシステム
資源に関して、個々のプログラムユーザのニーズに適合
できる為に、非常に強力なツールである。
図2は、コンピュータ資源の割当の制御の手順と、割当
機能そのものの全体図を示している。ブロック201で
は、システム管理者が、システムフラッグと割当機能に
利用されるselectsw変数を管理する。このselectsw変数
とシステムフラッグは、コンピュータ101に格納され、
システム管理者が、公知技術を用いて管理する。システ
ムフラッグを含む構造は図3に示される。
ブロック202では、プログラムユーザが、マサイン(mas
sign)コマンドを割当機能を調整する為に利用できる。
ユーザが、このマサイン(massign)コマンドを実行す
ると、ブロック203が実行され、これらの調整を特定す
るパラメータがエイ・アウト(a.out)ファイルに格納
される。
ブロック204では、応用プログラマが、エクセク(exe
c)システムコールを実行前に、シスマルチ(sysmult
i)システムコールを実行する。システムコールが実行
されると、ブロック205が実行され、シスマルチ(sysmu
lti)システムコール内で特定されたパラメータが、実
行中の子プロセスのユーブロック(ublock)に格納され
る。ブロック206では、特定されたパラメータを読み出
すエクセク(exec)システムコールを実行し、そしてコ
ンピュータの核に、これらを、他の情報と共に、PMプ
ロセス108で用いるために伝送する。
PM機能108は、ブロック207から210を実行する。ブロ
ック207では、selectsw変数をチェックして、最初の4
つの負荷平衡方法を用いるべきか(ブロック209)、又
は、システムフラッグとパラメータを用いる5番目の負
荷平衡方法を用いるべきか(ブロック208)を決定す
る。ブロック207から210を実行するために用いられる手
続きは、assignpe機能と呼ばれる。エクセク(exec)シ
ステムコールの実行中、このシステムコールは、ユーブ
ロック(ublock)とエイ・アウト(a.out)ファイル、
又はその一方からパラメータを読み出し、これらのパラ
メータをPMプロセス108に伝送する。プロセッサ割当
を行うために、コンピュータ101の核は、PM機能108内
のassignpe手続きを呼び出す。フラッグと、システム管
理者、応用プログラマ、そしてユーザによって決定され
たパラメータは、図4に示される構造内のPM機能に転
送される。図4のpaselsetと割当構造(assign structu
re)は、図5と6で定義されている。
assignpe手続きを、図7−図13に詳述する。ブロック
701から708は、図2のブロック209の負荷平衡方法を実
行する。ブロック701は、selectsw変数を検査する。sel
ectsw変数が0に等しい場合は、ブロック702を実行す
る。このブロック702は、プロセッサを割当るために特
定の技術を用いる。その技術とは、全てのプログラムの
実行に利用されるべきプロセッサの特定のために、sele
ctpe変数の内容を審査することである。この割当は、特
定されたプロセッサに付与される。selectpe変数の内容
は、システム管理者によって決定される。
selectswが0に等しくない場合は、ブロック703が実行
され、selectswが1に等しい場合は、ブロック704が、
ブロック703の次に実行される。用語で区別する便宜
上、図1に示すコンピュータは、ホストコンピュータま
たはホストプロセッサ要素(processor element、P
E)であるコンピュータ101を除いて、全て他のもの
は、補助コンピュータ又は補助プロセッサ要素(PE)
と名づける。
ブロック704は、プログラム又はジョブが割当てられる
際に、最初のプログラムは、ホストプロセッサへ割当ら
れ、次は補助プロセッサへ、3番目はホストプロセッサ
へ、4番目は別の補助プロセッサへと割当てられるよう
な交互の割当方法を行う。selectswが1に等しくない場
合は、判断ブロック705が実行される。selectsw変数が
2に等しい場合は、ブロック706が実行される。このブ
ロック706は、各プロセッサは同数の割当を受ける様に
周期的な方法で、プログラムがホストプロセッサと補助
プロセッサとに割当てられる割当方法を行う。
selectsw変数が2に等しくない場合は、判断ブロック70
7が実行される。selectsw変数が3に等しい場合は、ブ
ロック708が実行され、そしてプログラムは周期的に、
補助プロセッサにのみ割当てられる。
selectsw変数が3より大きい場合は、残りの図8から図
13が、図2に示される処理ブロック208を実行する。
最初に、図8の判断ブロック809において、図5のPE
FLAGの状態が検査され、このフラッグがセットされ
ているか否かを判断する。このフラッグがセットされて
いる場合、特定のプロセッサが、ジョブを行うために、
図4のPE−ASSIGN変数において指定される。コ
ンピュータの特定は、応用プログラマ又はユーザによっ
て行われる。もしPEFLAGがセットされている場合
(真)は、判断ブロック810が実行され、特定のプロセ
ッサ(PE)が指定されたか否かを判断する。PE−A
SSIGN変数の内容が、この判断を行うために使用さ
れる。特定のプロセッサが指定されていない場合(偽)
は、ブロック818が実行される。あるコンピュータが指
定されている場合(真)は、判断ブロック811が実行さ
れ、特定のプロセッサが十分なメモリを持つか否かを判
定し、そして判断ブロック812が続いて実行されて、要
求されたプロセッサが正しい型であるかどうかを判断す
る。ブロック811と812によって試験される双方の条件が
満足される(真)と、特定のプロセッサを割当、このジ
ョブを実行するブロック813が実行される。ブロック811
と812によって試験されるこれらの条件が満足されなけ
れば(偽)、ブロック814で、エラーを戻す。
判断ブロック818は、MAXCOMPATフラッグをチ
ェックする。このフラッグがセットされる(真)と、各
々の新しいジョブが、エクセク(exec)システムコール
を実行したものと同じプロセッサに割当てられることを
要求する。このプロセッサは通常オールドユーザ(old
user)プロセッサと呼ばれる。MACOMPATフラッ
グがセットされている場合は、判断ブロック819が、実
行され、オールドユーザ(old user)プロセッサ(P
E)が、新規ジョブを実行するために正しい型であるか
否かを判断する。オールドユーザプロセッサが正しい型
の場合(真)は、判断ブロック820が実行され、オール
ドユーザPEが、新規ジョブを行うために十分なメモリ
を持っているか否かを確かめる。
ブロック819と820によってチェックされる条件の双方が
満足される場合(真)は、オールドユーザプロセッサ
に、新規ジョブを割当るブロック821が実行される。ブ
ロック819と820のどちらかが満足されない場合(偽)
は、ブロック822で、エラーを戻す。
実行の間、assignpe手続きは、どのプロセッサが有効か
又は無効かを定義する表を作製する。MAXCOMPA
Tフラッグがセットされていない場合(偽)は、ブロッ
ク825が実行される。ブロック825は、不十分なメモリし
か持たない全てのプロセッサに無効をマークする。ブロ
ック826では、誤った型のプロセッサに無効をマークす
る。
ブロック826の実行後、図9の判断ブロック901が実行さ
れ、PRIFLAGフラッグがセットされているか否か
を判断する。このフラッグは図5に示される構造内に格
納される。PRIFRAGがセットされている場(真)
は、公用プロセッサのみが割当適格を有する。公用プロ
セッサと個人用プロセッサとの差異は、システム管理者
による呼び名の一種である。様々な理由で、システム管
理者は、一つまたは複数のプロセッサを個人用と指定で
き、そしてこれらのプロセッサの利用を、ある仕事やユ
ーザに限定できる。PRIFLAGフラッグがセットさ
れていれば(真)、判断ブロック902と903が実行され、
いくつかの公用プロセッサが十分なメモリを持つか否
か、そして正しい型であるか否かを判断する。どの公用
プロセッサもブロック902と903によって試験される二つ
の要求を満さなければ(偽)、ブロック905が実行さ
れ、エラーを戻す。ブロック902と903の要求が満されれ
ば(真)、ブロック906が実行され全ての個人用プロセ
ッサが無効とマークされる。
次に判断ブロック910が実行され、REQFLAGフラ
ッグがセットされているか否かを判断する。このフラッ
グは、図5に示される構造内に格納される。このフラッ
グがセットされると、コンピュータ割当が、マサイン
(massign)コマンド又はシスマルチ(sysmulti)シス
テムコールによってセットされたパラメータに従って行
われるべきことを指示する。これらのパラメータは、図
6に示される。REQFLAGがセットされている場合
は、チェックされる最初のパラメータは、図6の項目
(entry)607に含まれる。この項目607の中には5つの
パラメータフラッグ:PS−CURRENT、PS−P
ARENT、PS−MABS、PS−FSPEC、PS
−EXPLICITがある。PS−MABSとPS−E
XPLICITはプロセッサ割当手段としては用いな
い。図10の判断ブロック1011は、PS−CURRENT
フラッグをチェックする。このフラッグがセットされて
いれば(真)、新規プログラムがオールドユーザプロセ
ッサ上で実行されることを指示する。PS−CURRE
NTフラッグがセットされている(真)と、判断ブロッ
ク1012が実行され、そのオールドユーザプロセッサが有
効とマークされているか否かを判断する。オールドユー
ザ(old user)プロセッサが有効とマークされていると
(真)、プログラムはブロック1013によってオールドユ
ーザプロセッサへ割当てられる。オールドユーザプロセ
ッサが有効でなければ(偽)、ブロック1014で、エラー
を戻す。
PS−CURRENTフラッグがセットされていなけれ
ば(偽)、判断ブロック1018が実行され、PS−PAR
ENTフラッグがセットされているか否かをチェックす
る。PS−PARENTフラッグがセットされていれば
(真)、新規プログラムを、エクセクシステムコールを
実行するプロセスの親プロセスを実行しているプロセッ
サに割当るように試みる。PS−PARENTフラッグ
がセットされている(真)と、判断ブロック1019が実行
され、親プロセッサが有効とマークされているか否かを
判断する。親プロセッサが有効とマークされている
(真)と、新規プログラムは、ブロック1020によって、
このプロセッサに割当てられる。それ以外はエラーをブ
ロック1012で戻す。
次に、判断ブロック1024によって、PS−FSPECフ
ラッグがチェックされる。このフラッグは、図6の項目
606の特定のファイル記述子(descriptor)に限定され
たプロセッサが、割当を受けるべきプロセッサかを指示
する。PS−FSPECフラッグがセットされている
(真)と、判断ブロック1025が、このファイルに限定さ
れているプロセッサが有効であるか否かをチェックす
る。このプロセッサが有効である(真)と、プログラム
がブロック1026によって、そのプロセッサへ割当てられ
る。そのプロセッサが有効でない(偽)と、エラーがブ
ロック1027で戻る。
プロセッサ割当が、図10の判断ブロック10117018、10
24においてチェックされた結果実行されると、図11の
ブロック1101から1108が実行され、図6で特定されたパ
ラメータの残りを適用することによって、プログラムを
受けるために有効なプロセッサの数を限定する。項目60
1と602の内容は、ある型のプロセッサが許容されるかさ
れないかを各々特定する。許容され得る又はされ得ない
プロセッサには、ホストプロセッサ(PS−HOSTF
LAG)、計算サーバプロセッサ(PS−CS)、ファ
イルサーバプロセッサ(PS−FS)の3つある。判断
ブロック1101は、項目601を検査する。この項目の内容
がゼロでなければ、ブロック1102が実行され、許容集合
内にない型の全てのプロセッサが無効とマークされる。
次に、判断ブロック1103は、項目602内の非許容集合が
空集合であるか否かを判断し、そして、空集合でなけれ
ば(偽)、ブロック1104が、項目602内の型の全てのプ
ロセッサを無効とマークする。
図6の項目603と604は、図1の各プロセッサが、新規プ
ログラムを実行する割当の際に、その対象に含まれるか
又は除外されるかの特定をする。ブロック1105と1106
は、含まれるべきプロセッサを決定し、ブロック1107と
1108は、除外されるべきプロセッサを決定する。
上記の動作後に、判断ブロック1109は、有効とマークさ
れたプロセッサがあるかどうかをチェックする。有効と
マークされたプロセッサが残っていなければ(偽)、エ
ラーがブロック1110によって戻される。プロセッサが有
効であれば(真)、システムフラッグの残りは、プロセ
ッサ割当を行うために用いる。判断ブロック1111は、C
PUFLAGフラッグがセットされているか否かを判断
する。このフラッグは、プロセッサの割当がプロセッサ
の負荷に基づくべきことを指示し、ある量より少ないア
イドル時間しか持たないプロセッサは、無効とマークさ
れる。CPUFLAGフラッグがセットされていると
(真)、この決定は、最長アイドル時間(maximum idle
time、MIT)を持つプロセッサを見い出すことによっ
て行われる。ブロック1112は、式MIT−MIT/2
で与えられる値より短いアイドル時間しか持たないプロ
セッサを無効とマークする。変数Aは、システム管理者
によって予め定義された値である変数CFUZZYを表
わす。このCFUZZYは、図5に示される構造に格納
される。
次に、SHTXTFLAGフラッグが判断ブロック1113
によってチェックされる。このフラッグがセットされる
と、残っている有効なプロセッサが、エイ・アウト(a
out)ファイルを共有し得る転写(copy)を持っている
かどうかを確認し、割当はこれらのうち1つへ行われ
る。SHTXFLAGフラッグがセットされていると
(真)、制御は、エイ・アウト(a out)ファイルを共
有し得る転写を持つプロセッサがあるか否か判断する判
断ブロック1114に受渡される。エイ・アウトファイルの
共有可能転写を持つプロセッサがある(真)と、ブロッ
ク1115が実行され、エイ・アウトファイルを共有可能転
写を持たないプロセッサは、無効とマークされる。
次に、図12の判断ブロック1201が実行される。この判断
ブロックは、MEMFLAGフラッグがセットされてい
るか否かをチェックする。このフラッグがセットされて
いる場合、その自由大域メモリ(free global memory)
がある特定量より少ない全てのプロセッサは、無効とマ
ークされる。この決定は、最大の自由大域メモリを持つ
プロセッサを見い出し、最大自由大域メモリから、最大
自由大域メモリを2MFUZZYで割った値を差引いた値より
小さい自由大域メモリを持つプロセッサを削除すること
によって成される。変数MFUZZYは、システム管理
者によって決定された変数である。MEMFLAGフラ
ッグがセットされている(真)と、要求量より少ない自
由メモリしか持たないプロセッサが無効とマークされる
(ブロック1202)。ブロック1202において、MFMは最
大自由大域メモリ(maximum free global memory)を表
わし、変数Bは、変数MFUZZを表わす。次に、FI
LEFLAGフラッグが、判断ブロック1203によってチ
ェックされる。
このフラッグがセットされている場合、エクセク(exe
c)システムコールを実行しているプロセッサのオープ
ンファイルの数と配置が、プロセッサ割当を行なうため
の基準として用いられることを指示する。この判断は、
判断ブロック1204において、実行プロセスのオープンフ
ァイルを最大数持つプロセッサを決定し、このファイル
数が、図5に示された構造のFILELIMIT変数の
値以上か否かを決定することによってなされる。この変
数は、システム管理者によって決定される。これらの条
件が満足されると、新規プログラムを、最大数のオープ
ンファイルを持つプロセッサに割当る(ブロック120
5)。これらの条件が満足されないと、判断ブロック120
6が実行される。
ブロック1206から1212は、以下の機能を実行する。AO
UTFLAGとOLDUSERFLAGフラッグの両方
がセットされ、そしてエクセク(exec)システムコール
を実行するプロセスの関連する遠隔プロセスの数が、S
TUBLIMIT変数以下であれば、プロセスを、エー
アウト(a out)ファイルに限定されるプロセッサ(一
般にエーアウト(a out)プロセッサと呼ばれる)に割
当る試みが最初に行われる。遠隔プロセッサは、実行プ
ロセスが、もうひとつのプロセッサの資源のアクセスを
得られるようにしている。このプロセッサが無効である
なら(ブロック1209)、プログラムを、エクセク(exe
c)システムコールを実行した一般にオールドユーザ(o
ld user)プロセッサに割当る第二の試みが行われる
(ブロック1211)。これらのプロセッサのどちらも有効
でなければ、又はブロック1206、1207、1208で検査され
る条件が満されなければ、制御は、図13の判断ブロック
1301に受け渡される。ブロック1206、1207、1208で検査
される条件が満足されて、エーアウトプロセッサが有効
であれば、プログラムはブロック1210によってエーアウ
トプロセッサへ割当てられる。エーアウトプロセッサが
有効でないと、判断ブロック1211が、オールドユーザプ
ロセッサが有効であるか否かをチェックする。オールド
ユーザプロセスが有効であれば、プログラムはブロック
1212によってオールドユーザプロセスに割当てられる。
判断ブロック1206、1207、1208で検査される条件が満足
されなければ、判断ブロック1301が実行される。OLD
USERフラッグがセットされ、判断ブロック1302がオ
ールドユーザプロセッサが有効であると判断すると、プ
ログラムは、ブロック1303によってオールドユーザプロ
セッサに割当てられる。もし前述の条件のいずれかが満
足されなければ、判断ブロック1304が実行される。その
AOUTFLAGフラッグがセットされ、かつエーアウ
トプロセッサが有効であると、処理ブロック13061が実
行され、割当はエーアウトプロセッサへ行われる。割当
がオールドユーザプロセッサ、エーアウトプロセッサの
いずれにも行なわれなかったなら、ブロック1307が実行
され、プログラムは最も多いアイドルメモリを持つ有効
なプロセッサに割当てられる。
尚、特許請求の範囲に記載した参照番号は、発明の容易
なる理解の為のもので、その権利解釈に影響を与えるも
のではないと理解されたい。
【図面の簡単な説明】
第1図は、本発明を利用したマルチプロセッサシステム
を、ブロックダイヤグラムの形で描いた図、 第2図は、第1図のマルチプロセッサシステムによって
実行される場合のプロセッサ割当機能の流れ図、 第3図は、プロセッサ割当機能に使用されるシステムフ
ラッグを含むフラッグ構造の表、 第4図は、コンピュータ101のPMプロセスに伝えられ
るフラッグとパラメータの表、 第5図は、第4図の一部の更に詳しい図、 第6図は、第4図の他の一部の更に詳しい図、 第7図から第13図は、第2図の流れ図によって行なわ
れる機能の詳細図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイムズ ステュアート ピターソン アメリカ合衆国,60505 イリノイ,オー ロラ,ペパートゥリィ レイン 255 (72)発明者 グロヴァ ティモシィ スラット アメリカ合衆国,60185 イリノイ,ウェ スト シカゴ,ヒッコリ レイン 716 ウェスト 28

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサ(101−106)を有
    し、このプロセッサの中の1つ(101)が、新規プロ
    グラムが実行されるべきオブジェクトコードファイルを
    格納するマルチプロセッサシステムの資源の割当制御方
    法において、 (A)一連のプロセッサ割当パラメータ(Selectsw)
    を、格納されたオブジェクトコードファイルに書き込む
    ステップと、 (B)格納されたオブジェクトコードファイルを読み出
    すステップと、 (C)この読み出されたオブジェクトコードファイルを
    実行するために、オブジェクトコードファイルのプロセ
    ッサ割当パラメータに応じて、プロセッサ1つを割当て
    るステップと、 からなることを特徴とするマルチプロセッサシステムの
    資源の割当制御方法。
  2. 【請求項2】前記(A)の書き込むステップは、ユーザ
    コマンドに応じて、格納されたオブジェクトコードにプ
    ロセッサ割当パラメータを書き込む ことを特徴とする特許請求の範囲第1項記載の方法。
  3. 【請求項3】システムコールに応じて、前記(C)の割
    当ステップで使用する為に、他のプロセッサ割当パラメ
    ータを提供するステップを更に有する ことを特徴とする特許請求の範囲第1項記載の方法。
  4. 【請求項4】システムプロセッサ割当フラッグを格納す
    るステップを更に含み、 前記(C)の割当てステップは、格納されたシステムプ
    ロセッサ割当フラッグに応じて、プロセッサの1つを割
    当てる ことを特徴とする特許請求の範囲第2項記載の方法。
  5. 【請求項5】システムコールに応じて、プロセッサ割当
    パラメータの一部を格納するステップと、 システムプロセッサ割当フラッグを格納するステップと を更に含み、 前記(A)の書き込むステップは、ユーザコマンドに応
    じて、プロセッサ割当パラメータの一部を格納されたオ
    ブジェクトコードに書き込み、 前記(C)の割当てステップは、格納されたシステムプ
    ロセッサ割当フラッグ応じて、プロセッサの1つを割当
    てる ことを特徴とする特許請求の範囲第1項記載の方法。
  6. 【請求項6】前記(C)の割当てステップは、 特定のプロセッサの割当てが許容されるか否かを決定す
    るために、システムプロセッサ割当フラッグの1つをチ
    ェックするステップと、 前記ステップにより、特定のプロセッサの割当てが許容
    されると、特定のプロセッサが要求されているか否かを
    検証するステップと、 前記ステップにより、特定のプロセッサが要求される
    と、特定のプロセッサを割当てるステップと からなることを特徴とする特許請求の範囲第5項記載の
    方法。
JP62323013A 1986-12-22 1987-12-22 マルチプロセッサシステムの資源の割当制御方法 Expired - Lifetime JPH0628053B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US94170186A 1986-12-22 1986-12-22
US941701 1986-12-22

Publications (2)

Publication Number Publication Date
JPS63239553A JPS63239553A (ja) 1988-10-05
JPH0628053B2 true JPH0628053B2 (ja) 1994-04-13

Family

ID=25476922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62323013A Expired - Lifetime JPH0628053B2 (ja) 1986-12-22 1987-12-22 マルチプロセッサシステムの資源の割当制御方法

Country Status (9)

Country Link
US (1) US5115505A (ja)
EP (1) EP0272836B1 (ja)
JP (1) JPH0628053B2 (ja)
KR (1) KR970008524B1 (ja)
BR (1) BR8706965A (ja)
CA (1) CA1296432C (ja)
DE (1) DE3789215T2 (ja)
HK (1) HK108094A (ja)
SG (1) SG116694G (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241677A (en) * 1986-12-19 1993-08-31 Nippon Telepgraph and Telehone Corporation Multiprocessor system and a method of load balancing thereof
CA2067576C (en) * 1991-07-10 1998-04-14 Jimmie D. Edrington Dynamic load balancing for a multiprocessor pipeline
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
US5349682A (en) * 1992-01-31 1994-09-20 Parallel Pcs, Inc. Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
US5504894A (en) * 1992-04-30 1996-04-02 International Business Machines Corporation Workload manager for achieving transaction class response time goals in a multiprocessing system
FR2692058B1 (fr) * 1992-06-09 1994-07-29 Bull Sa Systeme de traitement transactionnel entre un serveur informatique et une pluralite de stations de travail.
JP3003440B2 (ja) * 1993-01-19 2000-01-31 株式会社日立製作所 負荷分散制御方法および分散処理システム
JP2814880B2 (ja) * 1993-06-04 1998-10-27 日本電気株式会社 異なる命令特性を持つ複数のcpuによって構成される計算機システムの制御装置
US5495603A (en) * 1993-06-14 1996-02-27 International Business Machines Corporation Declarative automatic class selection filter for dynamic file reclassification
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5630129A (en) * 1993-12-01 1997-05-13 Sandia Corporation Dynamic load balancing of applications
EP0668564A1 (en) * 1994-02-22 1995-08-23 International Business Machines Corporation Resource measurement facility in a multiple operating system complex
US5915095A (en) * 1995-08-08 1999-06-22 Ncr Corporation Method and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application
US5872972A (en) * 1996-07-05 1999-02-16 Ncr Corporation Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited
US5938722A (en) * 1997-10-15 1999-08-17 Mci Communications Corporation Method of executing programs in a network
FI106507B (fi) 1998-04-09 2001-02-15 Nokia Networks Oy Tietosanoman käsittely tietoliikenneverkon verkkoelementissä
US6947987B2 (en) * 1998-05-29 2005-09-20 Ncr Corporation Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
RU2186420C1 (ru) * 2001-02-22 2002-07-27 Военный университет связи Устройство обслуживания разноприоритетных запросов абонентов вычислительной системы
US7191446B2 (en) * 2001-06-01 2007-03-13 Texas Instruments Incorporated Method for resource management in a real-time embedded system
US20030236813A1 (en) * 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
US7594233B2 (en) * 2002-06-28 2009-09-22 Hewlett-Packard Development Company, L.P. Processing thread launching using volunteer information
KR100497230B1 (ko) * 2002-07-23 2005-06-23 삼성에스디아이 주식회사 플라즈마 디스플레이 패널의 구동 장치 및 구동 방법
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7058864B1 (en) * 2003-05-21 2006-06-06 Hewlett-Packard Development Company, L.P. Test for processor memory cache
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7606929B2 (en) 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US7614055B2 (en) * 2004-06-14 2009-11-03 Alcatel-Lucent Usa Inc. Selecting a processor to run an executable of a distributed software application upon startup of the distributed software application
US7634773B2 (en) * 2004-11-24 2009-12-15 Hewlett-Packard Development Company, L.P. Method and apparatus for thread scheduling on multiple processors
US7689993B2 (en) * 2004-12-04 2010-03-30 International Business Machines Corporation Assigning tasks to processors based at least on resident set sizes of the tasks
US7707578B1 (en) 2004-12-16 2010-04-27 Vmware, Inc. Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system
US20060156291A1 (en) * 2005-01-12 2006-07-13 Dell Products L.P. System and method for managing processor execution in a multiprocessor system
US8825833B2 (en) * 2005-03-30 2014-09-02 International Business Machines Corporation Tracking computer system configuration changes with corresponding message responses
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US8019873B2 (en) * 2008-09-30 2011-09-13 Microsoft Corporation Mesh platform utility computing portal
US8352952B2 (en) * 2008-12-01 2013-01-08 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool
JP6252140B2 (ja) 2013-11-29 2017-12-27 富士通株式会社 タスク割り付けプログラム及びタスク割り付け方法
CN104743480B (zh) * 2015-02-09 2017-05-31 长沙今朝科技股份有限公司 一体式抽真空、充气和压塞装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US4073005A (en) * 1974-01-21 1978-02-07 Control Data Corporation Multi-processor computer system
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
JPS6184740A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 汎用オブジエクトコ−ド生成方式

Also Published As

Publication number Publication date
JPS63239553A (ja) 1988-10-05
EP0272836A3 (en) 1988-08-31
DE3789215T2 (de) 1994-06-01
KR970008524B1 (ko) 1997-05-24
CA1296432C (en) 1992-02-25
DE3789215D1 (de) 1994-04-07
KR880008186A (ko) 1988-08-30
EP0272836A2 (en) 1988-06-29
EP0272836B1 (en) 1994-03-02
HK108094A (en) 1994-10-14
SG116694G (en) 1994-11-25
US5115505A (en) 1992-05-19
BR8706965A (pt) 1988-07-26

Similar Documents

Publication Publication Date Title
JPH0628053B2 (ja) マルチプロセッサシステムの資源の割当制御方法
CN110120940B (zh) 一种面向Docker容器的文件系统资源隔离方法
JP4012517B2 (ja) 仮想計算機環境におけるロックの管理
US8433902B2 (en) Computer system with dual operating modes
US7584222B1 (en) Methods and apparatus facilitating access to shared storage among multiple computers
US5136712A (en) Temporary object handling system and method in an object based computer operating system
US6341338B1 (en) Protocol for coordinating the distribution of shared memory
US20070214456A1 (en) Management of virtual machines to utilize shared resources
US20040078782A1 (en) Workload management of stateful program entities
JPH10301834A (ja) 共用メモリの管理方法
JPH07319714A (ja) 適切なオブジェクト・オーナシップ・モデルを選択的に適用する方法およびシステム
US8490104B2 (en) Method and apparatus for reservation and reallocation of surplus resources to processes in an execution space by a local resource manager after the execution space is generated succeeding the initialization of an application for which the execution space is created and the resources are allocated to the execution space by a global resource manager prior to application execution
US8161161B2 (en) Information processing method and information processing apparatus
JPH0950418A (ja) 疎結合並列処理環境において一時的記憶待ち行列機能を有する顧客情報制御システム及び方法
US5355488A (en) Method for adaptively building a library of program threads
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
JPH0962635A (ja) 疎結合並列処理環境においてトランザクション直列化制御機能を有する顧客情報制御システム及び方法
CN119597491A (zh) 一种gpu资源隔离方法、系统、介质及产品
JP4211645B2 (ja) 専用プロセッサの備わった計算機システム
JP2588175B2 (ja) ハツシユ・テ−ブル・エントリ排他処理装置
Takada et al. Inter-and intra-processor synchronizations in multiprocessor real-time kernel
JP3764282B2 (ja) プログラム制御システムの制御装置
JP3087274B2 (ja) ファイル排他制御システム
CN120429119A (zh) 中央处理器资源分配方法及电子设备
JPH0652028A (ja) ファイル管理装置