JPH06348666A - 計算機システムにおけるプログラム実行負荷分散方法 - Google Patents

計算機システムにおけるプログラム実行負荷分散方法

Info

Publication number
JPH06348666A
JPH06348666A JP13604993A JP13604993A JPH06348666A JP H06348666 A JPH06348666 A JP H06348666A JP 13604993 A JP13604993 A JP 13604993A JP 13604993 A JP13604993 A JP 13604993A JP H06348666 A JPH06348666 A JP H06348666A
Authority
JP
Japan
Prior art keywords
computer
class
execution
load
assigned
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.)
Pending
Application number
JP13604993A
Other languages
English (en)
Inventor
Akira Tanaka
晶 田中
Makoto Sano
真 佐野
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP13604993A priority Critical patent/JPH06348666A/ja
Publication of JPH06348666A publication Critical patent/JPH06348666A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】本発明は、アプリケーションプログラムの実行
時にクラス毎にメソッドを低負荷の別の計算機に自動的
に割り当て実行させることにより負荷を分散させ、終了
時に割り当てたメソッドを別の計算機から消去する。 【構成】通信媒体20を介して複数の計算機が接続され
ている。ある計算機211のOS2110上でアプリケ
ーションプログラム22の実行中にメソッドが実行され
ると、負荷分散手段23は、そのメソッドの属するクラ
スがどの計算機にも割り当てられていないなら、低負荷
の計算機を検索し、そのクラスを割りあて、ぞのクラス
に属する全てのメソッドを転送する。そして、実行する
メソッドの属するクラスが他計算機に割り当てられた
ら、当該クラスに属するメソッドについては実行を当該
他の計算機に依頼し、そのメソッドの属するクラスが自
計算機に割り当てらたら当該クラスに属するメソッドに
ついては自計算機で実行する。アプリケーションプログ
ラム22が終了したら、負荷分散手段23は、他計算機
から、当該他計算機に割り当てたクラスに属するメソッ
ドをすべて消去する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、通信媒体で接続された
複数の計算機を備えた分散計算機システムに関するもの
であり、特に、分散計算機システムにおけるアプリケー
ションプログラム実行の負荷を分散する技術に関するも
のである。
【0002】
【従来の技術】従来、複数の計算機を通信媒体で接続し
た分散計算機システムにおけるアプリケーションプログ
ラム実行の負荷の分散化の技術としては、アプリケーシ
ョンプログラムをシステム内の複数の計算機にあらかじ
め備え、アプリケーションプログラム実行時に、これら
複数の計算機の中で最も実行効率がよいと思われる計算
機を特定し、その計算機に対して一括してアプリケーシ
ョンプログラムの実行を依頼する技術が知られている。
【0003】また、この他、特開平3-42765号公報や、
特開平2-285460号公報記載の技術が知られている。
【0004】この、特開平2-285460号公報記載の技術で
は、アプリケーションプログラム実行時に、システム内
の複数の計算機の中で最も実行効率がよいと思われる計
算機を特定し、その時点で、その計算機に対して一括し
てアプリケーションプログラムを転送し実行を依頼して
いる。
【0005】また、特開平3-42765号公報記載の技術で
は、あらかじめ、アプリケーションプログラムを所定の
処理単位に分割し、システム内の複数の計算機にあらか
じめ各処理単位を備える。そして、アプリケーションプ
ログラム実行中において該当する処理単位が呼び出され
たときに、実行コスト等を考慮して最も実行効率がよい
と思われる計算機を特定し、その計算機に対して、その
処理単位の実行を依頼している。
【0006】
【発明が解決しようとする課題】これらの従来の方法に
おいては、次のような問題点がある。
【0007】すなわち、他の計算機にアプリケーション
プログラムの実行を依頼する技術では、このアプリケー
ションプログラムを、あらかじめ実行を依頼する相手の
計算機に備えておかなければならない。したがい、負荷
を充分に分散させる各アプリケーションプログラムを分
散計算機システムを構成する各計算機に備えておかなけ
ればならないので、負荷分散のために要する各計算機の
資源量が過大となる。
【0008】また、特開平2-285460号公報記載の技術で
は、アプリケーションプログラムの規模が大きくなる
と、充分に各計算機に負荷を分散させることができなく
なる。
【0009】また、特開平3-42765号公報記載の技術で
は、アプリケーションプログラムが実行を依頼する処理
単位があらかじめ相手の計算機に備わっていなければな
らず、負荷分散のために要する各計算機の資源量が増大
する。また、さらに、処理単位の実行の依頼前に、処理
単位ごとの各計算機における処理実行コストを指定しな
ければならないが、この実行コストを管理するテーブル
の内容は、アプリケーションプログラムを実行する計算
機によって異なる値にならざるを得ない。したがい、ア
プリケーションプログラムを実行する計算機を、一の計
算機から他の計算機に代えるときには、このテ−ブルの
内容を再度作成せねばならない。よって、適宜、任意の
計算機で利用したいアプリケ−ションプログラムの負荷
分散には必ずしも適していない。
【0010】そこで、本発明は、負荷分散のために要す
る各計算機の資源量を増大させることなく、充分にアプ
リケ−ションプログラム実行の負荷を分散させることが
できる分散計算機システムを提供することを目的とす
る。
【0011】
【課題を解決するための手段】前記目的達成のために本
発明は、通信媒体を介して接続された2以上の計算機を
有する計算機システムにおいて、特定の計算機で実行さ
れるプログラムの実行の負荷を、前記特定の計算機を含
む複数の計算機に分散させる方法であって、前記特定の
計算機に、前記プログラムを構成する処理の単位である
処理単位を割り当てた計算機を、割り当てた処理単位に
関連付けて登録するテ−ブルを設けるステップと、前記
特定の計算機が、前記処理単位を順次実行するステップ
と、前記特定の計算機が前記処理単位を実行する際に、
前記テ−ブルを参照して、当該処理単位が割り当てられ
た計算機が存在するか否かを判断するステップと、処理
単位が割り当てられた計算機が存在しないと判断された
場合に、当該処理単位を前記複数の計算機の内の一の計
算機に割り当て、割り当てた計算機を割り当てた処理単
位に関連付けて前記テ−ブルに登録し、割り当てた計算
機に当該処理単位を前記特定の計算機より転送して実行
させるステップと、処理単位が割り当てられた計算機が
存在すると判断された場合には、当該計算機に当該処理
単位を実行させるステップと、前記特定の計算機が、前
記プログラムの実行を終了した際に、前記特定の計算機
より他の計算機に転送した処理単位をすべて、当該他の
計算機より消去し、前記テ−ブルを初期化するステップ
とを有することを特徴とする計算機システムにおけるプ
ログラム実行負荷分散方法を提供する。
【0012】なお、ここで、前記テ−ブルを、登録され
ている計算機に対応付けて、当該計算機に割り当てられ
た処理単位の実行に要した負荷量を登録可能なテ−ブル
とし、処理単位の実行の終了時に、当該処理単位が割り
当てられている計算機に対応づけられて既に登録されて
いる負荷量を、当該負荷量に前記実行を終了したメソッ
ドの実行に要した負荷量を加算した値に更新するステッ
プをさらに備え、前記処理単位の計算機への割り当て
は、前記テ−ブルに対応付けられてえ登録されている処
理単位の実行の負荷量の累積が最も小さい計算機に当該
処理単位を割り当てることにより行うようにしてもよ
い。
【0013】
【作用】本発明に係るプログラム実行負荷分散方法によ
れば、プログラムの実行中に自動的に各計算機に処理単
位が割り当てられるのであらかじめ処理単位を他の計算
機に備えておく必要はない。よって、プログラム作成者
および使用者は特に分散処理や実際に処理をする計算機
を意識することがない。また、アプリケーションプログ
ラムの終了時に他の計算機に割り当てた全ての処理単位
を消去するので資源の無駄遣いがなくなる。
【0014】また、プログラム実行時に、処理単位の実
行負荷のみに基づいて割り当てる計算機を選択するの
で、分散計算機システムを構成する計算機で負荷は分散
し、また、プログラムをシステムのどの計算機上でも同
様に動作させることができる。
【0015】
【実施例】以下、本発明に係る分散計算機システムの一
実施例を説明する。
【0016】図1に、本実施例に係る分散計算機システ
ムの構成を示す。
【0017】図示するように、計算機211、212、
213は通信媒体20を介して接続され分散計算機シス
テムを構成している。各計算機211、212、213
は、プロセッサ、記憶装置、通信制御装置等からなる標
準的な計算機である。さて、各計算機211、212、
213は、オペレ−ティングシステム(OS)211
0、2120、2130を備え、OS上でアプリケ−シ
ョンプログラムを実行する。たとえば、計算機211に
おいては、OS2110上でアプリケーションプログラ
ム22を実行する。各OS2110、2120、213
0は、アプリケーションプログラムの実行の負荷を分散
させるために負荷分散手段23、232、233をそれ
ぞれ備えている。たとえば、負荷分散手段23は、アプ
リケーションプログラム22の処理単位を、他の計算機
212、213の負荷分散手段232、233に転送
し、実行を依頼する。他の計算機212、213の負荷
分散手段232、233は、実行を依頼された処理単位
を実行し、結果を依頼元の負荷分散手段23に返す。
【0018】次に、アプリケ−ションプログラム22に
ついて説明する。
【0019】アプリケ−ションプログラム22は、オブ
ジェクト指向型のプログラミン言語で記述されたプログ
ラムである。本実施例では、「C++」として広く知ら
れているプログラミング言語によって記述している。
【0020】図2に、アプリケ−ションプログラム22
を示す。
【0021】図示するように、アプリケーションプログ
ラム220はクラスの定義51、52、53と、メイン
プログラム54とからなる。
【0022】ここで、図3を用いて、クラスについて説
明する。
【0023】図3に示すように、クラスX10として定
義されたクラスは、データの定義の集合であるデータ部
11と、データを操作する演算であるメソッドの集合の
メソッド部12とからなる。データ部11は、クラス固
有のデータの定義111〜119からなり、メソッド部
12はデータを操作する処理単位であるメソッド121
〜129からなる。
【0024】図中のオブジェクト13、14はその型が
クラスX10であると宣言された変数である。オブジェ
クト13、14はクラス10のインスタンスを表現して
いるので、メソッド、データの定義は共通であるが、デ
ータ自体は、それぞれ固有のものを持つ。
【0025】さて、図2に戻り、このプログラムでは、
まず、クラスの定義51、52、53でそれぞれクラス
A、B、Cを定義している。メインプログラム54で
は、オブジェクトの宣言541、542、543でそれ
ぞれクラスAのオブジェクトc1、クラスBのオブジェ
クトc2、クラスCのオブジェクトc3が宣言される。
次に544は、オブジェクトc1に対して、オブジェク
トc1の属するクラスAのメソッドfunc1を実行す
ることを指定している。同様に、545は、オブジェク
トc2に対して、オブジェクトc2の属するクラスBの
メソッドfunc1を実行することを指定し、546は
オブジェクトc1に対して、オブジェクトc1の属する
クラスAのメソッドfunc2を実行することを指定し
ている。
【0026】さて、OS2110は、このようなアプリ
ケーションプログラム22を逐次実行するが、この際、
前述したような負荷の分散を実現するのが、負荷分散手
段23、232、233である。
【0027】図4に、負荷分散手段23の機能構成を示
す。なお、負荷分散手段232、233も、同じ構成を
有している。
【0028】図4において、通信制御手段30は、通信
媒体20に接続されており、計算機間の通信を行う。記
憶部31は、自計算機上で実行するアプリケ−ションプ
ログラムとオブジェクトと、他の計算機より自計算機に
割り当てられたクラスのメソッド部と他の計算機より自
計算機に送られたオブジェクトのデータを記憶する。ク
ラス管理部32は、自計算機に割り当てられているクラ
スの情報を記憶する。メソッド実行手段33は、クラス
管理部32の情報を元に記憶部31にあるメソッドを実
行する。メソッド実行依頼手段34は、通信制御手段3
0を介して指定された計算機にメソッド実行を依頼し実
行結果を得る。クラス転送手段35は、通信制御手段3
0を介して指定された計算機にクラスのメソッド部を転
送する。クラス消去依頼手段36は、通信制御手段30
を介して指定された計算機に、指定されたクラスのメソ
ッド部の消去を依頼する。メソッド代理実行手段37
は、通信制御手段30を介してメソッド実行依頼手段3
4から依頼されたメソッドの実行を、メソッド実行手段
33を呼び出し実現する。クラス格納手段38は、通信
制御手段30を介してクラス転送手段35により転送さ
れたメソッド部を、記憶部31に記憶する。クラス消去
手段39は、通信制御手段30を介してクラス消去依頼
手段36から指定されたクラスのメソッド部を、記憶部
31から消去する。負荷管理部40は、メソッド実行依
頼手段34およびメソッド実行手段33が実行したメソ
ッドの属するクラスに関する負荷情報を管理する。実行
選択手段41は、アプリケーションプログラムからある
クラス内のメソッドが初めて呼び出されるときには、負
荷管理部40の情報に基づき負荷の低い計算機を指定
し、クラス転送手段35を呼び出しクラスのメソッド部
を転送する手段、および、既にメソッドの属するクラス
がクラス転送手段35により転送されている場合にアプ
リケーションプログラムからメソッドが呼び出されると
きには負荷管理部40の情報に基づきメソッドの属する
クラスがどの計算機にあるかを指定し、指定された計算
機が自計算機のときにはメソッド実行手段33を呼び出
し、他の計算機のときにはメソッド実行依頼手段34を
呼び出し負荷管理部40の情報を更新する手段を含むも
のである。プログラム終了手段42は、負荷管理部40
の情報に基づきクラスと計算機を指定し、クラス消去依
頼手段36を呼び出し、負荷管理部40からクラスを消
去することを、負荷管理部40に記憶されたクラスがす
べて消去されるまで繰り返す。
【0029】以下、図4に示した負荷分散手段の各部の
詳細について説明する。
【0030】まず、前記負荷管理部40は、図5に示す
ように、クラス名401、クラス401のメソッドを実
行する計算機名402、クラス401の全てのメソッド
の実行時間の総和である処理時間403、計算機でクラ
ス401を識別するための識別番号404を記憶するテ
−ブルからなる。
【0031】また、クラス管理部32は、図6に示すよ
うに、クラス管理部32は、クラス名321、計算機内
でのクラス321の識別番号322を記憶するテ−ブル
から成る。
【0032】次に、実行選択手段41は、実行すべきメ
ソッド名とそのクラスを引数として呼び出され、図7に
示すフローチャートに従った処理を行う手段である。
【0033】すなわち、実行選択手段41は、まず、負
荷管理部40のクラス名401からクラスを検索する
(ステップ10010)。クラス名を検索できたかどう
か調べ(10020)、検索できた場合は、クラス名に
対応する計算機名402を得て計算機を特定する(10
070)。
【0034】検索出来なかった場合は、負荷管理部40
の計算機名402ごとに処理時間403の総和を求め、
最も処理時間の総和が少ない計算機を特定し(1003
0)、それが自計算機かどうか調べ(10040)、自
計算機でないならクラス転送手段35を呼び出し(10
050)て、実行すべきメソッドの属するクラスのメソ
ッド部の転送を依頼する。そして、転送したメソッド部
のクラス名と転送した計算機名を負荷管理部40のクラ
ス名401、計算機名402へ登録し、処理時間403
を初期化する(10060)。
【0035】メソッドを実行するマシンが特定できる
と、それが自計算機か別の計算機を判別し(1008
0)、自計算機ならメソッド実行手段33を呼び出し自
計算機でメソッドを実行させ(10090)、そうでな
いならメソッド実行依頼手段34を呼び出し別の計算機
でメソッドを実行させる(10100)。
【0036】この後、メソッド実行手段33もしくはメ
ソッド実行依頼手段34から、メソッドの実行時間が戻
って来るので、それをメソッドのクラスに対応する負荷
管理部40の処理時間403に加え(10110)、処
理を呼び出し元へ戻す。
【0037】次に、クラス転送手段35は、相手計算機
名とクラス名を引数として呼び出され、図8に示すフロ
ーチャートに従った処理を実行する手段である。
【0038】すなわち、クラス転送手段35は、まず、
記憶部31より相手計算機のクラス格納手段38に対し
てクラスのメソッド部を転送し(15010)、戻って
きた識別番号を戻り値として返し(15020)、処理
を呼び出し元へ戻す。
【0039】次に、クラス格納手段38は、図9に示す
フロチャ−トに従った処理を行う手段である。
【0040】すなわち、クラス格納手段38は、別の計
算機から転送されてきたメソッド部を記憶部31に格納
し(13010)、メソッド部のクラス名をクラス管理
部32のクラス名321に登録し、それに対応する識別
番号322を戻り値として返し(13020)、処理を
呼び出し元へ戻す。
【0041】次に、メソッド実行手段33は、メソッド
名とそのクラスを計算機が識別するための識別番号とを
引数として呼び出され、図10に示すフローチャートに
従った処理を行う手段である。
【0042】メソッド実行手段33は、まず、メソッド
のクラスをクラス管理部32の識別番号322より対応
するクラス名321を選択しクラスを特定する(110
10)。そして、記憶部31に記憶されている、特定し
たクラスの引数として渡されたメソッド名に対応するメ
ソッドを、記憶部31に記憶されているオブジェクトの
データを用いて実行する(11020)。そして、実行
結果と実行時間を戻り値とし(11030)、処理を呼
び出し元へ戻す。
【0043】次にメソッド実行依頼手段34は、相手計
算機名とメソッド名とそのクラスを計算機が識別する識
別番号を引数として呼び出され、図11に示すフローチ
ャートに従った処理を実行する手段である。
【0044】すなわち、メソッド実行依頼手段34は、
まず、メソッド名とクラスの識別番号とを引数として通
信制御手段30を介して相手計算機のメソッド代理実行
手段37を呼び出す(14010)。また、このとき、
メソッドの実行に必要なデータ(オブジェクトのデー
タ)を記憶部31より読みだしてメソッド代理実行手段
37に渡す。そして、相手計算機のメソッド代理実行手
段37から、戻ってきた実行結果と実行時間を戻り値と
して返し(14020)、処理を呼び出し元へ戻す。
【0045】次に、メソッド代理実行手段37は、メソ
ッド名とそのクラスを相手計算機が識別する番号とを引
数として呼び出され、図12に示すフローチャートに従
った処理を行う手段である。
【0046】メソッド代理実行手段37は、まず、渡さ
れたメソッドの実行に必要なデータ(オブジェクトのデ
ータ)を記憶部31に記憶し、識別番号とメソッド名と
を引数としてメソッド実行手段33を呼び出す(120
10)。そして、メソッド実行手段33から実行結果と
実行時間が戻ってきたら、これを戻り値とし(1202
0)、処理を呼び出し元へ戻す。また、このとき、記憶
部31に記憶したメソッドの実行に必要なデータ(オブ
ジェクトのデータ)を消去する。
【0047】次に、プログラム終了手段は、動作を図1
3のフローチャートに従った処理を行う手段である。
【0048】プログラム終了手段42は、呼びだされる
と、まず、負荷管理部40のクラス名401、計算機名
402、識別番号404を得て(16010)、クラス
名がある間(16020)、計算機名が自計算機かどう
かを調べ(16030)、自計算機ならば識別番号を引
数としてクラス消去手段を呼び出し(16040)、そ
うでなければ計算機名と識別番号を引数としてクラス消
去依頼手段36を呼び出し(16050)、負荷管理部
40のクラス名401、計算機名402、処理時間40
3、識別番号404を削除する(16050)。クラス
名がなくなったら処理を呼び出し元へ戻す。
【0049】次に、クラス消去手段39は、識別番号を
引数にして呼び出され、図14に示すフローチャートに
従った処理を行う手段である。
【0050】すなわち、クラス消去手段39は、クラス
管理部32の識別番号322から識別番号を検索し対応
するクラス名321からクラスを特定し(1701
0)、そのクラスが他の計算機より割り当てられたもの
であるならば、転送され記憶部31に格納された当該ク
ラスのメソッド部を削除する(17020)。また、ク
ラス管理部32のクラス名321、番号322から、当
該クラス、識別番号を削除し(17030)、処理を呼
び出し元へ戻す。
【0051】次に、クラス消去依頼手段36は、相手計
算機名と識別番号を引数にして呼び出され図15に示す
フローチャートに従った処理を行う手段である。
【0052】すなわち、クラス消去依頼手段36は、ま
ず、通信制御手段30を介して相手計算機のクラス消去
手段39を呼び出し(18010)、処理を呼び出し元
へ戻す。
【0053】以下、本実施例に係る分散計算機システム
のアプリケ−ションプログラムの実行動作について説明
する。
【0054】まず、図16に、OS2110が、アプリ
ケ−ションプログラム22の実行のために行う処理手順
を示す。
【0055】図示するように、OS2110は、まず、
記憶部31に記憶されているアプリケーションプログラ
ム22のメインプログラム54を順次実行する(190
40)。処理の途中でメソッドの実行が起きたら(19
010)、メソッド名とクラス名を引数とし負荷分散手
段23の実行選択手段41を呼び出す(19020)。
また、メインプログラムがが終了したら(19030)
はプログラム終了手段42を呼び出す(19050)。
【0056】このようなOS2110の動作によって図
2に示したアプリケ−ションプログラム22を実行する
場合の、各部の動作を次のようになる。
【0057】まず、アプリケーションプログラム22メ
インプログラム54が逐次実行される。図17はアプリ
ケーションプログラム22実行開始直前の分散計算機シ
ステムの状態を表す。
【0058】まず、オブジェクトの宣言541、54
2、543でそれぞれクラスAのオブジェクトc1、ク
ラスBのオブジェクトc2、クラスCのオブジェクトc
3が宣言される。次に、544はメソッドなので実行選
択手段41が呼び出される。実行選択手段41はメソッ
ド544がクラスAのメソッドでありクラスAが負荷管
理部641のクラス名6411にないのでクラスAを割
り当てる計算機を決定する。
【0059】負荷管理部641には何も情報がないので
ランダムに決定し計算機611に割り当てることにす
る。計算機611はアプリケーションプログラム22を
実行している計算機なのでクラスのメソッドを転送する
必要はない。
【0060】クラスAと計算機611を負荷管理部64
1のクラス名6411、計算機名6412へ記憶し処理
時間6413を初期化する。そして実行選択手段41は
メソッド実行手段33を呼び出す。メソッド実行手段3
3はメソッド544を実行し実行結果と処理時間を返
す。実行選択手段41は返ってきた処理時間を負荷管理
部641の処理時間6413のクラスAに対応したもの
に加える。実行選択手段はメソッド実行結果をアプリケ
ーションプログラム22へ返す。この時点での分散計算
機システムの状態を示したのが図18である。
【0061】次に図2の545が実行される。545は
メソッドなので実行選択手段41が呼び出される。実行
選択手段41はメソッド545がクラスBのメソッドで
ありクラスBが負荷管理部641のクラス名6411に
ないのでクラスBを割り当てる計算機を決定する。負荷
管理部641の計算機名6412、処理時間6413よ
り計算機612、613の処理時間が0なのでこの2つ
からランダムに決定し計算機613に割り当てることに
する。計算機613はアプリケーションプログラム22
を実行している計算機611ではないのでクラス転送手
段35を呼び出す。クラス転送手段35は通信制御手段
30を介して計算機613のクラス格納手段38に対し
てクラスBのメソッド部を転送する。クラス格納手段3
8は転送されたメソッド部を記憶部653へ格納しクラ
スBをクラス管理部663のクラス名6631へ記憶し
クラスBの識別番号を決定し識別番号6632へ記憶し
その値を返す。実行選択手段41は返ってきた識別番号
とクラスBと計算機613を負荷管理部641の識別番
号6414、クラス名6411、計算機名6412へ記
憶し処理時間6413を初期化する。
【0062】そして実行選択手段41はメソッド実行依
頼手段34を呼び出す。メソッド実行依頼手段34は通
信制御手段30を介して計算機613のメソッド代理実
行手段37を呼び出す。メソッド代理実行手段37はメ
ソッド545指定しメソッド実行手段を呼び出す。メソ
ッド実行手段はメソッド545を実行し実行結果と処理
時間を返す。実行選択手段41は返ってきた処理時間を
負荷管理部641の処理時間6413のクラスBに対応
したものに加える。実行選択手段はメソッド実行結果を
アプリケーションプログラム22へ返す。この時点での
分散計算機システムの状態を示したのが図19である。
【0063】次に図2の546が実行される。546は
メソッドなので実行選択手段41が呼び出される。実行
選択手段41はメソッド546がクラスAのメソッドで
あるので負荷管理部641のクラス名6411、計算機
名6412を検索しクラスAのメソッド部が計算機61
1に割り当てられていることを知る。計算機611はア
プリケーションプログラム22を実行している計算機6
11(自計算機)なので実行選択手段41はメソッド実
行手段を呼び出す。メソッド実行手段33はメソッド5
46を実行し実行結果と処理時間を返す。実行選択手段
41は返ってきた処理時間を負荷管理部641の処理時
間6413のクラスAに対応したものに加える。実行選
択手段はメソッド実行結果をアプリケーションプログラ
ム22へ返す。この時点での分散計算機システムの状態
を示したのが図20である。
【0064】次に、図2の547が実行される。547
はメソッドなので実行選択手段41が呼び出される。実
行選択手段41はメソッド547がクラスCのメソッド
でありクラスCが負荷管理部641のクラス名6411
にないのでクラスCを割り当てる計算機を決定する。負
荷管理部641の計算機名6412、処理時間6413
より計算機612の処理時間が0で最低値なので計算機
612に割り当てることにする。計算機612はアプリ
ケーションプログラム22を実行している計算機611
ではないのでクラス転送手段35を呼び出す。クラス転
送手段35は通信制御手段30を介して計算機612の
クラス格納手段38に対してクラスCのメソッド部を転
送する。クラス格納手段38は転送されたメソッド部を
記憶部653へ格納しクラスCをクラス管理部663の
クラス名6631へ記憶しクラスCの識別番号を決定し
識別番号6632へ記憶しその値を返す。実行選択手段
41は返ってきた識別番号とクラスCと計算機612を
負荷管理部641の識別番号6414、クラス名641
1、計算機名6412へ記憶し処理時間6413を初期
化する。そして実行選択手段41はメソッド実行依頼手
段34を呼び出す。メソッド実行依頼手段34は通信制
御手段30を介して計算機612のメソッド代理実行手
段37を呼び出す。メソッド代理実行手段37はメソッ
ド545指定しメソッド実行手段を呼び出す。メソッド
実行手段はメソッド545を実行し実行結果と処理時間
を返す。実行選択手段41は返ってきた処理時間を負荷
管理部641の処理時間6413のクラスBに対応した
ものに加える。実行選択手段はメソッド実行結果をアプ
リケーションプログラム22へ返す。この時点での分散
計算機システムの状態を示したのが図21である。
【0065】次に、図2の548が実行される。548
はメソッドなので実行選択手段41が呼び出される。実
行選択手段41はメソッド548がクラスBのメソッド
であるので負荷管理部641のクラス名6411、計算
機名6412を検索しクラスBのメソッド部が計算機6
13に割り当てられていることを知る。計算機613は
アプリケーションプログラム22を実行している計算機
611でないので実行選択手段41はメソッド実行依頼
手段34を呼び出す。メソッド実行依頼手段34は通信
制御手段30を介して計算機613のメソッド代理実行
手段37を呼び出す。メソッド代理実行手段37はメソ
ッド545指定しメソッド実行手段を呼び出す。メソッ
ド実行手段はメソッド545を実行し実行結果と処理時
間を返す。実行選択手段41は返ってきた処理時間を負
荷管理部641の処理時間6413のクラスBに対応し
たものに加える。実行選択手段はメソッド実行結果をア
プリケーションプログラム22へ返す。この時点での分
散計算機システムの状態を示したのが図22である。
【0066】以上で、図2のアプリケーションプログラ
ム22のメインプログラム54の実行は終了するのでプ
ログラム終了手段42が呼び出される。プログラム終了
手段42は負荷管理部641のクラス名6411、計算
機名6412を検索しクラスAのメソッド部が計算機6
11に割り当ててあることを知る。計算機611はアプ
リケーションプログラム22を実行している計算機61
1(自計算機)なので識別番号6414を指定しクラス
消去手段39が呼び出される。クラス消去手段39は指
定された識別番号に対応するクラス管理部32のクラス
名321、識別番号322を削除する。
【0067】プログラム終了手段42は負荷管理部64
1のクラス名6411と対応する計算機名6412、処
理時間6413、識別番号6414を削除し検索を続
け、クラスBのメソッド部が計算機613に割り当てて
あることを知る。計算機613はアプリケーションプロ
グラム22を実行している計算機611ではないので計
算機名6412と識別番号6414を指定しクラス消去
依頼手段36が呼び出される。
【0068】クラス消去依頼手段36は通信制御手段3
0を介して計算機613のクラス消去手段39を呼び出
す。クラス消去手段39は指定された識別番号に対応す
るクラス管理部32のクラス名321、識別番号322
を削除する。プログラム終了手段42は負荷管理部64
1のクラス名6411と対応する計算機名6412、処
理時間6413、識別番号6414を削除し検索を続
け、クラスCのメソッド部が計算機612に割り当てて
あることを知る。
【0069】計算機612はアプリケーションプログラ
ム22を実行している計算機611ではないので計算機
名6412と識別番号6414を指定しクラス消去依頼
手段36が呼び出される。クラス消去依頼手段36は通
信制御手段30を介して計算機612のクラス消去手段
39を呼び出す。クラス消去手段39は指定された識別
番号に対応するクラスのメソッドを記憶部31より削除
し対応するクラス管理部32のクラス名321、識別番
号322を削除する。プログラム終了手段42は負荷管
理部641のクラス名6411と対応する計算機名64
12、処理時間6413、識別番号6414を削除し検
索を続け、クラス名6411にもうクラスが記憶されて
いないことを知り処理を終える。この時点での分散計算
機システムの状態を示したのが図23でありアプリケー
ションプログラム22のメソッドすべてが分散計算機シ
ステムから消去されていることがわかる。
【0070】なお、以上の説明では、アプリケーション
プログラム22を計算機211上で実行させたが、計算
機212、213で実行させても同様に、その時点の計
算機システムの状態により自動的に負荷が分散するよう
にクラスの割り当てられ、同一の実行結果が得られる。
【0071】また、以上の説明では、プログラミング言
語C++で記述したアプリケ−ションプログラムについ
て説明したが、たとえば、smalltalkとして知
られているプログラミング言語等、他のオブジェクト指
向型言語で記述されるたアプリケ−ションプログラムに
ついても本実施例で示した機構を適用することができ
る。
【0072】以上説明してきたように本実施例によれ
ば、本発明によれば、アプリケーションプログラム実行
時に負荷を分散するようにクラスのメソッド部単位で分
散計算機システムを構成している各計算機へ自動的に割
り当てるので、前もってアプリケーション全体あるいは
その一部分を各計算機に備えておく必要がなくなる。ま
た、アプリケーションプログラムの終了時に別の計算機
に割り当てたメソッド群はすべて削除されるので、資源
の無駄遣いもなくなる。
【0073】
【発明の効果】以上のように、本発明によれば、負荷分
散のために要する各計算機の資源量を増大させることな
く、充分にアプリケ−ションプログラム実行の負荷を分
散させることができる分散計算機システムを提供するこ
とができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係る分散計算機システムの
構成を示すブロック図である。
【図2】アプリケ−ションプログラムの構成を示す説明
図である。
【図3】クラスの構成を示す説明図である。
【図4】本発明の一実施例に係る負荷分散手段の構成を
示すブロック図である。
【図5】本発明の一実施例に係る負荷管理部の記憶する
テ−ブルを示す説明図である。
【図6】本発明の一実施例に係るクラス管理部の記憶す
るテ−ブルを示す説明図である。
【図7】本発明の一実施例に係る実行選択手段の行う処
理手順を示すフローチャートである。
【図8】本発明の一実施例に係るクラス転送手段の処理
手順を示すフローチャートである。
【図9】本発明の一実施例に係るクラス格納手段の行う
処理手順を示すフローチャートである。
【図10】本発明の一実施例に係るメソッド実行手段ク
ラス格納手段の行う処理手順を示すフローチャートであ
る。
【図11】本発明の一実施例に係るメソッド実行依頼手
段の行う処理手順を示すフローチャートである。
【図12】本発明の一実施例に係るメソッド代理実行手
段の行う処理手順を示すフローチャートである。
【図13】本発明の一実施例に係るプログラム終了手段
の行う処理手順を示すフローチャートである。
【図14】本発明の一実施例に係るクラス消去手段の行
う処理手順を示すフローチャートである。
【図15】本発明の一実施例に係るクラス消去依頼手段
の行う処理手順を示すフローチャートである。
【図16】本発明の一実施例に係るオペレ−ティングシ
ステムのアプリケーションプログラム実行手順を示すフ
ローチャートである。
【図17】本発明の一実施例に係る分散計算機システム
のアプリケーションプログラム実行直前の状態を示す説
明図である。
【図18】本発明の一実施例に係る分散計算機システム
のアプリケーションプログラム実行途中の状態を示す説
明図である。
【図19】本発明の一実施例に係る分散計算機システム
のアプリケーションプログラム実行途中の状態を示す説
明図である。分散計算機システムの一時点での状態図で
ある。
【図20】本発明の一実施例に係る分散計算機システム
のアプリケーションプログラム実行途中の状態を示す説
明図である。分散計算機システムの一時点での状態図で
ある。
【図21】本発明の一実施例に係る分散計算機システム
のアプリケーションプログラム実行途中の状態を示す説
明図である。分散計算機システムの一時点での状態図で
ある。
【図22】本発明の一実施例に係る分散計算機システム
のアプリケーションプログラム実行途中の状態を示す説
明図である。
【図23】本発明の一実施例に係る分散計算機システム
のアプリケーションプログラム実行終了後の状態を示す
説明図である。
【符号の説明】
20……通信媒体 22……アプリケーションプログラム 23……負荷分散手段 30……通信制御手段 31……記憶部 32……クラス管理部 33……メソッド実行手段 34……メソッド実行依頼手段 35……クラス転送手段 36……クラス消去依頼手段 37……メソッド代理実行手段 38……クラス格納手段 39……クラス消去手段 40……負荷管理部 41……実行選択手段 42……プログラム終了手段 211、212、213……計算機 231、232、233……負荷分散手段

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】通信媒体を介して接続された2以上の計算
    機を有する計算機システムにおいて、特定の計算機で実
    行されるプログラムの実行の負荷を、前記特定の計算機
    を含む複数の計算機に分散させる方法であって、 前記特定の計算機に、前記プログラムを構成する処理の
    単位である処理単位を割り当てた計算機を、割り当てた
    処理単位に関連付けて登録するテ−ブルを設けるステッ
    プと、 前記特定の計算機が、前記処理単位を順次実行するステ
    ップと、 前記特定の計算機が前記処理単位を実行する際に、前記
    テ−ブルを参照して、当該処理単位が割り当てられた計
    算機が存在するか否かを判断するステップと、 処理単位が割り当てられた計算機が存在しないと判断さ
    れた場合に、当該処理単位を前記複数の計算機の内の一
    の計算機に割り当て、割り当てた計算機を割り当てた処
    理単位に関連付けて前記テ−ブルに登録し、割り当てた
    計算機に当該処理単位を前記特定の計算機より転送して
    実行させるステップと、 処理単位が割り当てられた計算機が存在すると判断され
    た場合には、当該計算機に当該処理単位を実行させるス
    テップと、 前記特定の計算機が、前記プログラムの実行を終了した
    際に、前記特定の計算機より他の計算機に転送した処理
    単位をすべて、当該他の計算機より消去し、前記テ−ブ
    ルを初期化するステップとを有することを特徴とする計
    算機システムにおけるプログラム実行負荷分散方法。
  2. 【請求項2】請求項1記載の計算機システムにおけるプ
    ログラム実行負荷分散方法であって、 前記テ−ブルは、登録されている計算機に対応付けて、
    当該計算機に割り当てられた処理単位の実行に要した負
    荷量を登録可能なテ−ブルであって、 処理単位の実行の終了時に、当該処理単位が割り当てら
    れている計算機に対応づけられて既に登録されている負
    荷量を、当該負荷量に前記実行を終了したメソッドの実
    行に要した負荷量を加算した値に更新するステップをさ
    らに備え、 前記処理単位の計算機への割り当ては、前記テ−ブルに
    対応づけられて登録されている処理単位の実行の負荷量
    の累積が最も小さい計算機に当該処理単位を割り当てる
    ことにより行われることを特徴とする計算機システムに
    おけるプログラム実行負荷分散方法。
  3. 【請求項3】通信媒体を介して接続された2以上の計算
    機を有する計算機システムにおいて、特定の計算機で実
    行されるプログラムの実行の負荷を、前記特定の計算機
    を含む複数の計算機に分散させる方法であって、 前記特定の計算機に、前記プログラムを構成する処理群
    の単位であるクラスを割り当てた計算機を、割り当てた
    処理単位に関連付けて登録するテ−ブルを設けるステッ
    プと、 前記特定の計算機が、前記クラスに属する処理であるメ
    ソッドを順次実行するステップと、 前記特定の計算機が任意の前記メソッドを実行する際
    に、前記テ−ブルを参照して、当該任意のメソッドの属
    するクラスが割り当てられた計算機が存在するか否かを
    判断するステップと、 前記任意のメソッドの属するクラスが割り当てられた計
    算機が存在しないと判断された場合に、当該クラスを前
    記複数の計算機の内の一の計算機に割り当て、割り当て
    た計算機を割り当てたクラスに関連付けて前記テ−ブル
    に登録し、割り当てた計算機に当該クラスに属する全て
    のメソッドを前記特定の計算機より転送し、前記任意の
    メソッドを実行させるステップと、 前記任意のメソッドの属するクラスが割り当てられた計
    算機が存在すると判断された場合には、当該計算機に前
    記任意のメソッドを実行させるステップと、 前記特定の計算機が、前記プログラムの実行を終了した
    際に、前記特定の計算機より他の計算機に転送したメソ
    ッドを、当該他の計算機より全て消去し、前記テ−ブル
    を初期化するステップとを有することを特徴とする計算
    機システムにおけるプログラム実行負荷分散方法。
  4. 【請求項4】請求項3記載の計算機システムにおけるプ
    ログラム実行負荷分散方法であって、 前記テ−ブルは、登録されている計算機に対応付けて、
    当該計算機に割り当てられたクラスの実行に要した負荷
    量を登録可能なテ−ブルであって、 メソッドの実行の終了時に、当該メソッドの属するクラ
    スが割り当てられている計算機に対応づけられて既に登
    録されている負荷量を、当該負荷量に当該メソッドの実
    行に要した負荷量を加算した値に更新するステップをさ
    らに備え、 前記クラスの計算器への割り当ては、前記テ−ブルに対
    応付けられて登録されているメソッドの実行の負荷量の
    累積が最も小さい計算機に当該クラスを割り当てること
    により行われることを特徴とする計算機システムにおけ
    るプログラム実行負荷分散方法。
  5. 【請求項5】通信媒体と、当該通信媒体を介して互いに
    接続された複数の計算機を有する計算機システムであっ
    て、 前記計算機は、 実行するプログラムのメソッドを記憶した記憶部と、実
    行するプログラムを構成する処理の単位であるクラスを
    割り当てた計算機と、当該クラスに属する全てのメソッ
    ドの実行の負荷量とを、割り当てた処理単位に関連付け
    て記憶する負荷管理部と、実行を依頼されたメソッドを
    実行するメソッドを実行し、当該メソッドの実行に要し
    た負荷量の報告を依頼元に行うメソッド実行手段と、実
    行の依頼を依頼されたメソッドの実行を前記メソッド実
    行手段に依頼し、前記負荷量の報告を依頼元に中継する
    メソッド代理実行手段と、実行の依頼を依頼されたメソ
    ッドの実行を他の計算機のメソッドの代理実行手段に依
    頼し、前記負荷量の報告を依頼元に中継するメソッド実
    行依頼手段と、転送されたメソッドを前記記憶部に記憶
    するクラス格納手段と、転送を依頼されたクラスに属す
    る全てのメソッドを前記記憶部より他の計算機のクラス
    格納手段に転送するクラス転送手段と、 任意の前記メソッドを処理する際に、前記負荷管理部の
    記憶内容より、当該任意のメソッドの属するクラスが割
    り当てられた計算機をチェックし、前記任意のメソッド
    の属するクラスが割り当てられた計算機が存在しない場
    合に、前記負荷管理部に対応付けられて記憶されている
    メソッドの実行の負荷量の累積が最も小さい計算機を前
    記任意のメソッドの属するクラスを割り当てる計算機と
    して決定し、前記クラス転送手段に決定した計算機に前
    記任意のメソッドの属するクラスの転送を依頼し、前記
    任意のメソッドの属するクラスが自計算機に割り当てら
    れている場合に、前記メソッド実行手段に前記任意のメ
    ソッドの実行を依頼し、前記任意のメソッドの属するク
    ラスが他計算機に割り当てられている場合に、当該他の
    計算機への前記任意のメソッドの実行の依頼を前記メソ
    ッド実行依頼手段に依頼し、前記負荷管理部に、前記負
    荷料の報告に応じて、それまでに各クラスに属するメソ
    ッドの実行に要した負荷量を、当該クラス単位を割り当
    てる計算機に対応付けて前記負荷管理部に記憶する実行
    選択手段と、 消去を依頼されたクラスに属するメソッドを前記記憶部
    より消去し、依頼に応じて前記負荷管理部の記憶内容を
    初期化するクラス消去手段と、消去の依頼を依頼された
    クラスの消去と、前記負荷管理部の記憶内容の初期化を
    他の計算機の前記クラス消去手段に依頼するクラス消去
    依頼手段と、 前記プログラムの実行が終了した場合に、前記負荷管理
    部の記憶内容に応じて、クラス消去手段に前記負荷管理
    部の記憶内容の初期化を依頼し、前記クラス消去依頼手
    段にクラスの消去の他装置のクラス消去手段への依頼を
    依頼するプログラム終了手段とを有することを特徴とす
    る計算機システム。
JP13604993A 1993-06-07 1993-06-07 計算機システムにおけるプログラム実行負荷分散方法 Pending JPH06348666A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13604993A JPH06348666A (ja) 1993-06-07 1993-06-07 計算機システムにおけるプログラム実行負荷分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13604993A JPH06348666A (ja) 1993-06-07 1993-06-07 計算機システムにおけるプログラム実行負荷分散方法

Publications (1)

Publication Number Publication Date
JPH06348666A true JPH06348666A (ja) 1994-12-22

Family

ID=15165988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13604993A Pending JPH06348666A (ja) 1993-06-07 1993-06-07 計算機システムにおけるプログラム実行負荷分散方法

Country Status (1)

Country Link
JP (1) JPH06348666A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235127A (ja) * 1995-02-28 1996-09-13 Chugoku Nippon Denki Software Kk 自動負荷分散方法および装置
JPH09212364A (ja) * 1995-12-27 1997-08-15 Internatl Business Mach Corp <Ibm> 実行時オブジェクト・インスタンス管理のための方法及びシステム
US6345311B1 (en) 1995-12-27 2002-02-05 International Business Machines Corporation Method and system of dynamically moving objects between heterogeneous execution environments
KR100331519B1 (ko) * 1998-08-01 2002-04-06 포만 제프리 엘 분산 애플리케이션을 실행시키는 시스템 및 컴퓨터화된 방법
US6421736B1 (en) 1995-12-27 2002-07-16 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235127A (ja) * 1995-02-28 1996-09-13 Chugoku Nippon Denki Software Kk 自動負荷分散方法および装置
JPH09212364A (ja) * 1995-12-27 1997-08-15 Internatl Business Mach Corp <Ibm> 実行時オブジェクト・インスタンス管理のための方法及びシステム
US6345311B1 (en) 1995-12-27 2002-02-05 International Business Machines Corporation Method and system of dynamically moving objects between heterogeneous execution environments
US6421736B1 (en) 1995-12-27 2002-07-16 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status
US6886167B1 (en) 1995-12-27 2005-04-26 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status
US6895587B2 (en) 1995-12-27 2005-05-17 International Business Machines Corporation Method and system for migrating an object between a split status and a merged status
KR100331519B1 (ko) * 1998-08-01 2002-04-06 포만 제프리 엘 분산 애플리케이션을 실행시키는 시스템 및 컴퓨터화된 방법

Similar Documents

Publication Publication Date Title
CN110120940B (zh) 一种面向Docker容器的文件系统资源隔离方法
US6714949B1 (en) Dynamic file system configurations
US7349970B2 (en) Workload management of stateful program entities
US7783737B2 (en) System and method for managing supply of digital content
US7203941B2 (en) Associating a native resource with an application
US7325041B2 (en) File distribution system in which partial files are arranged according to various allocation rules associated with a plurality of file types
EP0747832A2 (en) Customer information control system and method in a loosely coupled parallel processing environment
JP2005534116A (ja) 複数の消費者をもつコンピュータシステムで資源を動的に割当てて管理する方法
US7194594B2 (en) Storage area management method and system for assigning physical storage areas to multiple application programs
US11263107B2 (en) Application development support system and application development support method
CN111291062A (zh) 数据同步写入方法、装置、计算机设备及存储介质
US20100199058A1 (en) Data Set Size Tracking and Management
JP5969122B2 (ja) ホストバスアダプタおよびシステム
WO2019228237A1 (zh) 数据处理方法以及计算机设备
CN114116189A (zh) 任务处理的方法、装置和计算设备
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
US5678024A (en) Method and system for dynamic performance resource management within a computer based system
EP0747812A2 (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
CN112631994A (zh) 数据迁移方法及系统
CN120407201B (zh) 内存资源的分配方法、装置、电子设备、介质及产品
US20240078227A1 (en) Lifecycle tracking of data objects
CN110019057B (zh) 请求处理方法及装置
KR102456017B1 (ko) 응용 프로그램간 파일 공유 장치 및 방법
JP3110185B2 (ja) 計算機システム
CN114168306B (zh) 调度方法及调度装置