JP2001034489A - オブジェクト指向型プログラム実行環境の実行制御方法 - Google Patents
オブジェクト指向型プログラム実行環境の実行制御方法Info
- Publication number
- JP2001034489A JP2001034489A JP11204227A JP20422799A JP2001034489A JP 2001034489 A JP2001034489 A JP 2001034489A JP 11204227 A JP11204227 A JP 11204227A JP 20422799 A JP20422799 A JP 20422799A JP 2001034489 A JP2001034489 A JP 2001034489A
- Authority
- JP
- Japan
- Prior art keywords
- program execution
- oriented program
- execution environment
- thread
- oriented
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】各オブジェクト指向型プログラム実行環境が個
々のプロセスとして存在し、ヒープ領域も各プロセス上
にとられるため、オブジェクト指向型プログラム実行環
境間でヒープ領域を共有できず、また、オブジェクト指
向型プログラム実行環境終了時にはヒープ領域が解放さ
れる。 【解決手段】オブジェクト指向型プログラム実行環境
(110,111,112)間で共用メモリ190上の
ヒープ領域191を共有し、スレッドの実行を停止する
ことなく他オブジェクト指向型プログラム実行環境にス
レッドの実行を引継ぐ手段、および、オブジェクト指向
型プログラム実行環境の停止時にヒープ領域を解放せず
に再起動時に使用する手段を設ける。
々のプロセスとして存在し、ヒープ領域も各プロセス上
にとられるため、オブジェクト指向型プログラム実行環
境間でヒープ領域を共有できず、また、オブジェクト指
向型プログラム実行環境終了時にはヒープ領域が解放さ
れる。 【解決手段】オブジェクト指向型プログラム実行環境
(110,111,112)間で共用メモリ190上の
ヒープ領域191を共有し、スレッドの実行を停止する
ことなく他オブジェクト指向型プログラム実行環境にス
レッドの実行を引継ぐ手段、および、オブジェクト指向
型プログラム実行環境の停止時にヒープ領域を解放せず
に再起動時に使用する手段を設ける。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
型プログラム実行環境の負荷分散方法および障害回復方
法および再起動方法に関する。また、ヒープ領域を共有
しているオブジェクト指向型プログラム実行環境を介し
た他計算機システムの資源へのアクセス方法に関する。
型プログラム実行環境の負荷分散方法および障害回復方
法および再起動方法に関する。また、ヒープ領域を共有
しているオブジェクト指向型プログラム実行環境を介し
た他計算機システムの資源へのアクセス方法に関する。
【0002】
【従来の技術】「JAVAバーチャルマシン」(Jon Meye
r,Troy Downing著 株式会社オライリー・ジャパン発
行)に記載のように、JavaVMのようなオブジェク
ト指向型プログラム実行環境が使用するメモリ領域は、
クラスを配置するメソッドエリア、およびクラスのイン
スタンスを配置するヒープ領域、およびスレッド毎に用
意されたスタックである。スタックには、フレーム(メ
ソッド呼び出し毎に作成されるメソッドの作業用メモ
リ)とプログラムカウンタが格納されている。メソッド
エリアとスタックをヒープ領域内に割り当てるか否か
は、オブジェクト指向型プログラム実行環境の実装方法
による。従来のヒープ領域の管理方法では、特開平5−
35496号公報に記載のように、各オブジェクト指向
型プログラム実行環境が個々のプロセスとして存在する
ため、ヒープ領域も各プロセス上にとられることにな
り、オブジェクト指向型プログラム実行環境間でヒープ
領域を共有できなかった。また、オブジェクト指向型プ
ログラム実行環境終了時には、プロセスが消滅すること
により、プロセス上にとられたヒープ領域も解放されて
しまう。プロセス間の共用メモリを使用したオブジェク
トの共有方法に関連するものには、例えば特開平5−3
5496号公報、特開平10−207709号公報等が
挙げられる。
r,Troy Downing著 株式会社オライリー・ジャパン発
行)に記載のように、JavaVMのようなオブジェク
ト指向型プログラム実行環境が使用するメモリ領域は、
クラスを配置するメソッドエリア、およびクラスのイン
スタンスを配置するヒープ領域、およびスレッド毎に用
意されたスタックである。スタックには、フレーム(メ
ソッド呼び出し毎に作成されるメソッドの作業用メモ
リ)とプログラムカウンタが格納されている。メソッド
エリアとスタックをヒープ領域内に割り当てるか否か
は、オブジェクト指向型プログラム実行環境の実装方法
による。従来のヒープ領域の管理方法では、特開平5−
35496号公報に記載のように、各オブジェクト指向
型プログラム実行環境が個々のプロセスとして存在する
ため、ヒープ領域も各プロセス上にとられることにな
り、オブジェクト指向型プログラム実行環境間でヒープ
領域を共有できなかった。また、オブジェクト指向型プ
ログラム実行環境終了時には、プロセスが消滅すること
により、プロセス上にとられたヒープ領域も解放されて
しまう。プロセス間の共用メモリを使用したオブジェク
トの共有方法に関連するものには、例えば特開平5−3
5496号公報、特開平10−207709号公報等が
挙げられる。
【0003】
【発明が解決しようとする課題】本発明の第1の目的
は、実行中のスレッドの実行を停止することなく、複数
計算機システム間での負荷分散を可能にすることにあ
る。
は、実行中のスレッドの実行を停止することなく、複数
計算機システム間での負荷分散を可能にすることにあ
る。
【0004】本発明の第2の目的は、実行中のスレッド
の実行を停止することなく、オブジェクト指向型プログ
ラム実行環境の障害回復を可能にすることにある。
の実行を停止することなく、オブジェクト指向型プログ
ラム実行環境の障害回復を可能にすることにある。
【0005】本発明の第3の目的は、ある計算機システ
ム上で動作しているスレッドから、他計算機システムの
資源へのアクセスを容易にすることにある。
ム上で動作しているスレッドから、他計算機システムの
資源へのアクセスを容易にすることにある。
【0006】本発明の第4の目的は、オブジェクト指向
型プログラム実行環境の再起動時に、再起動前の停止時
点からの再実行を可能にすることにある。
型プログラム実行環境の再起動時に、再起動前の停止時
点からの再実行を可能にすることにある。
【0007】
【課題を解決するための手段】第1の目的を達成するた
めに、オブジェクト指向型プログラム実行環境間で共用
しているメモリにヒープ領域を置き共有し、あるオブジ
ェクト指向型プログラム実行環境で負荷が高くなった場
合にスレッドを移動させる指示を出す負荷認識手段と、
スレッドの実行を停止することなく他オブジェクト指向
型プログラム実行環境にスレッドの実行を引継ぐスレッ
ド引継ぎ手段を設けたものである。
めに、オブジェクト指向型プログラム実行環境間で共用
しているメモリにヒープ領域を置き共有し、あるオブジ
ェクト指向型プログラム実行環境で負荷が高くなった場
合にスレッドを移動させる指示を出す負荷認識手段と、
スレッドの実行を停止することなく他オブジェクト指向
型プログラム実行環境にスレッドの実行を引継ぐスレッ
ド引継ぎ手段を設けたものである。
【0008】第2の目的を達成するために、オブジェク
ト指向型プログラム実行環境間で共用しているメモリに
ヒープ領域を置き共有し、ある計算機システムまたはオ
ブジェクト指向型プログラム実行環境で障害発生時にス
レッドを移動させる指示を出す障害発生認識手段と、ス
レッドの実行を停止することなく他オブジェクト指向型
プログラム実行環境にスレッドの実行を引継ぐスレッド
引継ぎ手段を設けたものである。
ト指向型プログラム実行環境間で共用しているメモリに
ヒープ領域を置き共有し、ある計算機システムまたはオ
ブジェクト指向型プログラム実行環境で障害発生時にス
レッドを移動させる指示を出す障害発生認識手段と、ス
レッドの実行を停止することなく他オブジェクト指向型
プログラム実行環境にスレッドの実行を引継ぐスレッド
引継ぎ手段を設けたものである。
【0009】第3の目的を達成するために、オブジェク
ト指向型プログラム実行環境間で共用しているメモリに
ヒープ領域を置き共有し、あるスレッドから他計算機シ
ステムの資源に対するアクセス要求発生時に要求してい
る資源を所有するオブジェクト指向型プログラム実行環
境を検索しスレッドを移動させる指示を与える要求資源
認識手段と、スレッドの実行を停止することなく他オブ
ジェクト指向型プログラム実行環境にスレッドの実行を
引継ぐスレッド引継ぎ手段を設けたものである。
ト指向型プログラム実行環境間で共用しているメモリに
ヒープ領域を置き共有し、あるスレッドから他計算機シ
ステムの資源に対するアクセス要求発生時に要求してい
る資源を所有するオブジェクト指向型プログラム実行環
境を検索しスレッドを移動させる指示を与える要求資源
認識手段と、スレッドの実行を停止することなく他オブ
ジェクト指向型プログラム実行環境にスレッドの実行を
引継ぐスレッド引継ぎ手段を設けたものである。
【0010】第4の目的を達成するために、オブジェク
ト指向型プログラム実行環境の再起動前の停止時にヒー
プ領域を解放せずに残しておき、このヒープ領域を使い
停止時点の状態からオブジェクト指向型プログラム実行
環境を再実行する再起動手段を設けたものである。
ト指向型プログラム実行環境の再起動前の停止時にヒー
プ領域を解放せずに残しておき、このヒープ領域を使い
停止時点の状態からオブジェクト指向型プログラム実行
環境を再実行する再起動手段を設けたものである。
【0011】
【発明の実施の形態】実施例の説明において、メソッド
エリア及びスタックはヒープ領域に含まれているものと
する。
エリア及びスタックはヒープ領域に含まれているものと
する。
【0012】図1はオブジェクト指向型プログラム実行
環境の全体構成を表わす図である。計算機システム10
0と101は、共用メモリ190を共用している。計算
機システム100上のオブジェクト指向型プログラム実
行環境110と111、および計算機システム101上
のオブジェクト指向型プログラム実行環境112は、共
用メモリ190上のヒープ領域191を共有している。
各オブジェクト指向型プログラム実行環境(110,1
11,112)上では、オブジェクト指向型プログラム
(170,171,172,173)がスレッド(18
0と181,182,183,184)により実行され
ている。各オブジェクト指向型プログラム実行環境(1
10,111,112)は、各々スレッド引継ぎ手段
(120,121,122)と負荷認識手段(130,
131,132)と障害発生認識手段(140,14
1,142)と要求資源認識手段(150,151,1
52)と再起動手段(160,161,162)を備え
ている。スレッド引継ぎ手段(120,121,12
2)は、各オブジェクト指向型プログラム実行環境(1
10,111,112)で実行されているスレッド(1
80,181,182,183,184)を、他のオブ
ジェクト指向型プログラム実行環境に移動して引継ぎ実
行を行うための制御を行う。なお、資源192は、計算
機システム101のみが所有している資源である。
環境の全体構成を表わす図である。計算機システム10
0と101は、共用メモリ190を共用している。計算
機システム100上のオブジェクト指向型プログラム実
行環境110と111、および計算機システム101上
のオブジェクト指向型プログラム実行環境112は、共
用メモリ190上のヒープ領域191を共有している。
各オブジェクト指向型プログラム実行環境(110,1
11,112)上では、オブジェクト指向型プログラム
(170,171,172,173)がスレッド(18
0と181,182,183,184)により実行され
ている。各オブジェクト指向型プログラム実行環境(1
10,111,112)は、各々スレッド引継ぎ手段
(120,121,122)と負荷認識手段(130,
131,132)と障害発生認識手段(140,14
1,142)と要求資源認識手段(150,151,1
52)と再起動手段(160,161,162)を備え
ている。スレッド引継ぎ手段(120,121,12
2)は、各オブジェクト指向型プログラム実行環境(1
10,111,112)で実行されているスレッド(1
80,181,182,183,184)を、他のオブ
ジェクト指向型プログラム実行環境に移動して引継ぎ実
行を行うための制御を行う。なお、資源192は、計算
機システム101のみが所有している資源である。
【0013】図2は、オブジェクト指向型プログラム実
行環境管理テーブル200である。当テーブル200
は、オブジェクト指向型プログラム実行環境識別子21
0、そのオブジェクト指向型プログラム実行環境の再起
動用停止要求有無211、そのオブジェクト指向型プロ
グラム実行環境がどの計算機システム上にあるかを示す
計算機システム識別子212、そのオブジェクト指向型
プログラム実行環境で動いているオブジェクト指向型プ
ログラム実行数213、オブジェクト指向型プログラム
管理テーブル(図3で後述)ポインタ214、ヒープ領
域ポインタ215の情報を含んでいる。当テーブル20
0は、オブジェクト指向型プログラム実行環境の状態が
変わる毎に更新されるものとする。
行環境管理テーブル200である。当テーブル200
は、オブジェクト指向型プログラム実行環境識別子21
0、そのオブジェクト指向型プログラム実行環境の再起
動用停止要求有無211、そのオブジェクト指向型プロ
グラム実行環境がどの計算機システム上にあるかを示す
計算機システム識別子212、そのオブジェクト指向型
プログラム実行環境で動いているオブジェクト指向型プ
ログラム実行数213、オブジェクト指向型プログラム
管理テーブル(図3で後述)ポインタ214、ヒープ領
域ポインタ215の情報を含んでいる。当テーブル20
0は、オブジェクト指向型プログラム実行環境の状態が
変わる毎に更新されるものとする。
【0014】図3は、オブジェクト指向型プログラム管
理テーブル300である。当テーブル300は、オブジ
ェクト指向型プログラム識別子310、そのオブジェク
ト指向型プログラムを動かしているスレッド数311、
スレッド管理テーブル(図4で後述)ポインタ312の
情報を含んでいる。320は、オブジェクト指向型プロ
グラム実行環境110内のオブジェクト指向型プログラ
ム(170,171)を管理するテーブルの内容であ
る。同様に、321は111内、322は112内のオ
ブジェクト指向型プログラムを管理するテーブルの内容
である。当テーブル300は、オブジェクト指向型プロ
グラムの状態が変わる毎に更新されるものとする。
理テーブル300である。当テーブル300は、オブジ
ェクト指向型プログラム識別子310、そのオブジェク
ト指向型プログラムを動かしているスレッド数311、
スレッド管理テーブル(図4で後述)ポインタ312の
情報を含んでいる。320は、オブジェクト指向型プロ
グラム実行環境110内のオブジェクト指向型プログラ
ム(170,171)を管理するテーブルの内容であ
る。同様に、321は111内、322は112内のオ
ブジェクト指向型プログラムを管理するテーブルの内容
である。当テーブル300は、オブジェクト指向型プロ
グラムの状態が変わる毎に更新されるものとする。
【0015】図4は、スレッド管理テーブル400であ
る。当テーブル400は、スレッド識別子410、要求
資源認識手段により使用される資源要求元オブジェクト
指向型プログラム実行環境識別子411、スレッドのス
タックポインタ412の情報を含む。スタックポインタ
412は、ヒープ領域191内のスタック430へのポ
インタである。420はオブジェクト指向型プログラム
170を動作させているスレッド(180,181)を
管理するテーブルの内容である。同様に、421は17
1を、422は172を、423は173を動作させて
いるスレッドを管理するテーブルの内容である。当テー
ブル400は、スレッドの状態が変わる毎に更新される
ものとする。
る。当テーブル400は、スレッド識別子410、要求
資源認識手段により使用される資源要求元オブジェクト
指向型プログラム実行環境識別子411、スレッドのス
タックポインタ412の情報を含む。スタックポインタ
412は、ヒープ領域191内のスタック430へのポ
インタである。420はオブジェクト指向型プログラム
170を動作させているスレッド(180,181)を
管理するテーブルの内容である。同様に、421は17
1を、422は172を、423は173を動作させて
いるスレッドを管理するテーブルの内容である。当テー
ブル400は、スレッドの状態が変わる毎に更新される
ものとする。
【0016】図5は、計算機システム負荷テーブル50
0である。当テーブル500は、計算機システム識別子
510、その計算機システムのCPU使用率511の情
報を含んでいる。当テーブル500は、各計算機システ
ムが持つCPU使用率の情報をもとに一定時間毎に更新
されるものとする。
0である。当テーブル500は、計算機システム識別子
510、その計算機システムのCPU使用率511の情
報を含んでいる。当テーブル500は、各計算機システ
ムが持つCPU使用率の情報をもとに一定時間毎に更新
されるものとする。
【0017】図6は、計算機システム資源テーブル60
0である。当テーブル600は、資源識別子610、そ
の資源を所有する計算機システム識別子611の情報を
含んでいる。当テーブル600は、各計算機システムが
所有する資源の状態が変わる毎に更新されるものとす
る。
0である。当テーブル600は、資源識別子610、そ
の資源を所有する計算機システム識別子611の情報を
含んでいる。当テーブル600は、各計算機システムが
所有する資源の状態が変わる毎に更新されるものとす
る。
【0018】第1の実施例として、計算機システム10
1の負荷が増大したため、スレッド184をオブジェク
ト指向型プログラム実行環境111に移動し引継ぎ実行
させることにより、負荷分散を行う実施例を図7、図8
を用いて説明する。この負荷分散の動作は、負荷認識手
段とスレッド引継ぎ手段により実現される。図7は、負
荷認識手段の処理手順を示すフローチャートである。負
荷認識手段132は、自計算機システム101のCPU
使用率が80%を超えると通知を受け起動されるものと
する。
1の負荷が増大したため、スレッド184をオブジェク
ト指向型プログラム実行環境111に移動し引継ぎ実行
させることにより、負荷分散を行う実施例を図7、図8
を用いて説明する。この負荷分散の動作は、負荷認識手
段とスレッド引継ぎ手段により実現される。図7は、負
荷認識手段の処理手順を示すフローチャートである。負
荷認識手段132は、自計算機システム101のCPU
使用率が80%を超えると通知を受け起動されるものと
する。
【0019】まず、負荷認識手段132は、テーブル2
00と322と423を使い、自計算機システム101
内のスレッドの中から他計算機システムに移動するスレ
ッドを選択する(ステップ701)。ここでは、184
が選択されたものとする。次に、計算機システム負荷テ
ーブル500から、最もCPU使用率の低い計算機シス
テムを選択し、スレッド移動先計算機システムとする
(ステップ702)。ここでは、100が選択さたもの
とする。次に、テーブル200を用いて、ステップ70
2で選択した計算機システム100上で動作しているオ
ブジェクト指向型プログラム実行環境のうちの1つをス
レッド移動先オブジェクト指向型プログラム実行環境と
して選択する(ステップ703)。ここでは、111が
選択されたものとする。次に、ステップ701により選
択されたスレッド184をステップ703により選択さ
れたオブジェクト指向型プログラム実行環境111に移
動するよう、スレッド引継ぎ手段122に指示を与える
(ステップ704)。
00と322と423を使い、自計算機システム101
内のスレッドの中から他計算機システムに移動するスレ
ッドを選択する(ステップ701)。ここでは、184
が選択されたものとする。次に、計算機システム負荷テ
ーブル500から、最もCPU使用率の低い計算機シス
テムを選択し、スレッド移動先計算機システムとする
(ステップ702)。ここでは、100が選択さたもの
とする。次に、テーブル200を用いて、ステップ70
2で選択した計算機システム100上で動作しているオ
ブジェクト指向型プログラム実行環境のうちの1つをス
レッド移動先オブジェクト指向型プログラム実行環境と
して選択する(ステップ703)。ここでは、111が
選択されたものとする。次に、ステップ701により選
択されたスレッド184をステップ703により選択さ
れたオブジェクト指向型プログラム実行環境111に移
動するよう、スレッド引継ぎ手段122に指示を与える
(ステップ704)。
【0020】図8は、スレッド引継ぎ手段の処理手順を
示すフローチャートである。当実施例の場合、スレッド
移動元のスレッド引継ぎ手段800は122であり、ス
レッド移動先のスレッド引継ぎ手段801は121であ
る。まず、スレッド移動元のスレッド引継ぎ手段122
は、移動するスレッド184を一時停止させる(ステッ
プ810)。次に、スレッド移動先のスレッド引継ぎ手
段121にスレッド184を移動することを通知する
(ステップ811)。通知を受けたスレッド移動先のス
レッド引継ぎ手段121は、通知されたスレッド184
が自オブジェクト指向型プログラム実行環境111に移
動した状態を、必要に応じてテーブル200,300,
400に反映する(ステップ820)。
示すフローチャートである。当実施例の場合、スレッド
移動元のスレッド引継ぎ手段800は122であり、ス
レッド移動先のスレッド引継ぎ手段801は121であ
る。まず、スレッド移動元のスレッド引継ぎ手段122
は、移動するスレッド184を一時停止させる(ステッ
プ810)。次に、スレッド移動先のスレッド引継ぎ手
段121にスレッド184を移動することを通知する
(ステップ811)。通知を受けたスレッド移動先のス
レッド引継ぎ手段121は、通知されたスレッド184
が自オブジェクト指向型プログラム実行環境111に移
動した状態を、必要に応じてテーブル200,300,
400に反映する(ステップ820)。
【0021】当実施例の場合、スレッド184をオブジ
ェクト指向型プログラム実行環境111に移動すること
により、オブジェクト指向型プログラム173が111
に移動される。このため、テーブル322内のオブジェ
クト指向型プログラム173のエントリをテーブル32
1内に移動する。テーブル200内のオブジェクト指向
型プログラム実行環境111のエントリのオブジェクト
指向型プログラム実行数213の値を1から2に変更
し、オブジェクト指向型プログラム実行環境112のエ
ントリの213の値を1から0に変更する。次に、テー
ブル400から移動するスレッド184のスタック43
0のポインタ412を取得する(ステップ821)。次
に、スレッドを新規に作成し、ステップ821で求めた
スタックを引継ぎスレッドの実行を開始する(ステップ
822)。スレッドの移動完了をスレッド移動元のスレ
ッド引継ぎ手段122に通知する(ステップ823)。
通知を受けたスレッド移動元のスレッド引継ぎ手段12
2は、ステップ810で一時停止していたスレッドを消
滅させる(ステップ812)。
ェクト指向型プログラム実行環境111に移動すること
により、オブジェクト指向型プログラム173が111
に移動される。このため、テーブル322内のオブジェ
クト指向型プログラム173のエントリをテーブル32
1内に移動する。テーブル200内のオブジェクト指向
型プログラム実行環境111のエントリのオブジェクト
指向型プログラム実行数213の値を1から2に変更
し、オブジェクト指向型プログラム実行環境112のエ
ントリの213の値を1から0に変更する。次に、テー
ブル400から移動するスレッド184のスタック43
0のポインタ412を取得する(ステップ821)。次
に、スレッドを新規に作成し、ステップ821で求めた
スタックを引継ぎスレッドの実行を開始する(ステップ
822)。スレッドの移動完了をスレッド移動元のスレ
ッド引継ぎ手段122に通知する(ステップ823)。
通知を受けたスレッド移動元のスレッド引継ぎ手段12
2は、ステップ810で一時停止していたスレッドを消
滅させる(ステップ812)。
【0022】第2の実施例として、計算機システム10
1に通信系の障害が発生したため、計算機システム10
1上で実行していたスレッド184をオブジェクト指向
型プログラム実行環境111に移動し引継ぎ実行させる
ことにより、障害回復を行う実施例を図9を用いて説明
する。この障害回復の動作は、障害発生認識手段とスレ
ッド引継ぎ手段により実現される。図9は、障害発生認
識手段の処理手順を示すフローチャートである。障害発
生認識手段142は、計算機システム101に障害が発
生した時に通知を受け起動されるものとする。
1に通信系の障害が発生したため、計算機システム10
1上で実行していたスレッド184をオブジェクト指向
型プログラム実行環境111に移動し引継ぎ実行させる
ことにより、障害回復を行う実施例を図9を用いて説明
する。この障害回復の動作は、障害発生認識手段とスレ
ッド引継ぎ手段により実現される。図9は、障害発生認
識手段の処理手順を示すフローチャートである。障害発
生認識手段142は、計算機システム101に障害が発
生した時に通知を受け起動されるものとする。
【0023】まず、障害発生認識手段142は、テーブ
ル200,322,423を使い、自計算機システム1
01内のスレッドを検索する(ステップ901)。ここ
では、スレッド184が検索される。次に、テーブル2
00を用いて、他計算機システム上のオブジェクト指向
型プログラム実行環境の中からスレッド移動先オブジェ
クト指向型プログラム実行環境を選択する(ステップ9
02)。ここでは111が選択されたものとする。次
に、ステップ901で検索したスレッド184をステッ
プ902で選択したオブジェクト指向型プログラム実行
環境111に移動するよう、スレッド引継ぎ手段122
に指示を与える(ステップ903)。スレッド引継ぎ手
段122の動作は、実施例1で図8を用いて説明したの
と同じである。
ル200,322,423を使い、自計算機システム1
01内のスレッドを検索する(ステップ901)。ここ
では、スレッド184が検索される。次に、テーブル2
00を用いて、他計算機システム上のオブジェクト指向
型プログラム実行環境の中からスレッド移動先オブジェ
クト指向型プログラム実行環境を選択する(ステップ9
02)。ここでは111が選択されたものとする。次
に、ステップ901で検索したスレッド184をステッ
プ902で選択したオブジェクト指向型プログラム実行
環境111に移動するよう、スレッド引継ぎ手段122
に指示を与える(ステップ903)。スレッド引継ぎ手
段122の動作は、実施例1で図8を用いて説明したの
と同じである。
【0024】第3の実施例として、スレッド183か
ら、他の計算機システム101のみが所有する資源19
2にアクセスする実施例を図10を用いて説明する。こ
の動作は要求資源認識手段とスレッド引継ぎ手段により
実現される。図10は、要求資源認識手段の処理手順を
示すフローチャートである。スレッド183が他計算機
システムの資源192へのアクセス要求を出すと、要求
資源認識手段151が通知を受け起動されるものとす
る。
ら、他の計算機システム101のみが所有する資源19
2にアクセスする実施例を図10を用いて説明する。こ
の動作は要求資源認識手段とスレッド引継ぎ手段により
実現される。図10は、要求資源認識手段の処理手順を
示すフローチャートである。スレッド183が他計算機
システムの資源192へのアクセス要求を出すと、要求
資源認識手段151が通知を受け起動されるものとす
る。
【0025】まず、要求資源認識手段151は、計算機
システム資源テーブル600を検索し、要求資源192
がどの計算機システムの資源であるかを検索する(ステ
ップ1000)。ここでは計算機システム101の資源
であることが検索される。次に、テーブル200を用い
て、計算機システム101上のオブジェクト指向型プロ
グラム実行環境の中から、スレッド移動先オブジェクト
指向型プログラム実行環境を選択する(ステップ100
1)。ここでは112が選択されたものとする。次に、
テーブル400のスレッド183のエントリの資源要求
元オブジェクト指向型プログラム実行環境識別子411
に、自オブジェクト指向型プログラム実行環境111を
設定する(ステップ1002)。次に、資源要求元スレ
ッド183をステップ1001で選択したオブジェクト
指向型プログラム実行環境112に移動するよう、スレ
ッド引継ぎ手段121に指示を与える(ステップ100
3)。スレッド引継ぎ手段121の動作は、実施例1で
図8を用いて説明したのと同様である。
システム資源テーブル600を検索し、要求資源192
がどの計算機システムの資源であるかを検索する(ステ
ップ1000)。ここでは計算機システム101の資源
であることが検索される。次に、テーブル200を用い
て、計算機システム101上のオブジェクト指向型プロ
グラム実行環境の中から、スレッド移動先オブジェクト
指向型プログラム実行環境を選択する(ステップ100
1)。ここでは112が選択されたものとする。次に、
テーブル400のスレッド183のエントリの資源要求
元オブジェクト指向型プログラム実行環境識別子411
に、自オブジェクト指向型プログラム実行環境111を
設定する(ステップ1002)。次に、資源要求元スレ
ッド183をステップ1001で選択したオブジェクト
指向型プログラム実行環境112に移動するよう、スレ
ッド引継ぎ手段121に指示を与える(ステップ100
3)。スレッド引継ぎ手段121の動作は、実施例1で
図8を用いて説明したのと同様である。
【0026】ここでは、スレッド183がオブジェクト
指向型プログラム実行環境111から112に移動し引
継ぎ実行されたものとする。次に、スレッド移動先の要
求資源認識手段152にスレッド183が資源192に
アクセスするため移動したことを通知する(ステップ1
004)。通知を受けた要求資源認識手段152は、自
オブジェクト指向型プログラム実行環境112に移動し
引継ぎ実行したスレッド183の資源192へのアクセ
スを監視し完了を検知する(ステップ1010)。次
に、テーブル400からスレッド183の資源要求元オ
ブジェクト指向型プログラム実行環境を検索する(ステ
ップ1011)。ここではステップ1002で設定した
値111が検索される。次に、スレッド183をステッ
プ1011で検索したオブジェクト指向型プログラム実
行環境111に移動するよう、スレッド引継ぎ手段12
2に指示を与える(ステップ1012)。スレッド引継
ぎ手段122の動作は、実施例1で図8を用いて説明し
たのと同様である。ここでは、スレッド183がオブジ
ェクト指向型プログラム実行環境112から111に移
動し引継ぎ実行されたものとする。次に、資源要求元の
要求資源認識手段151に、アクセス完了を通知する
(ステップ1013)。
指向型プログラム実行環境111から112に移動し引
継ぎ実行されたものとする。次に、スレッド移動先の要
求資源認識手段152にスレッド183が資源192に
アクセスするため移動したことを通知する(ステップ1
004)。通知を受けた要求資源認識手段152は、自
オブジェクト指向型プログラム実行環境112に移動し
引継ぎ実行したスレッド183の資源192へのアクセ
スを監視し完了を検知する(ステップ1010)。次
に、テーブル400からスレッド183の資源要求元オ
ブジェクト指向型プログラム実行環境を検索する(ステ
ップ1011)。ここではステップ1002で設定した
値111が検索される。次に、スレッド183をステッ
プ1011で検索したオブジェクト指向型プログラム実
行環境111に移動するよう、スレッド引継ぎ手段12
2に指示を与える(ステップ1012)。スレッド引継
ぎ手段122の動作は、実施例1で図8を用いて説明し
たのと同様である。ここでは、スレッド183がオブジ
ェクト指向型プログラム実行環境112から111に移
動し引継ぎ実行されたものとする。次に、資源要求元の
要求資源認識手段151に、アクセス完了を通知する
(ステップ1013)。
【0027】第4の実施例として、ユーザからの要求に
応じて、オブジェクト指向型プログラム実行環境112
の再起動を行う実施例を図11を用いて説明する。この
再起動の動作は、再起動手段により実現される。図11
は、再起動手段の処理手順を示すフローチャートであ
る。ユーザがオブジェクト指向型プログラム実行環境の
再起動を行う場合は、再起動用停止要求を行った後で、
再起動要求を行うものとする。ユーザが再起動用停止要
求をオブジェクト指向型プログラム実行環境112に対
して行うと、再起動手段162が通知を受け起動される
ものとする。
応じて、オブジェクト指向型プログラム実行環境112
の再起動を行う実施例を図11を用いて説明する。この
再起動の動作は、再起動手段により実現される。図11
は、再起動手段の処理手順を示すフローチャートであ
る。ユーザがオブジェクト指向型プログラム実行環境の
再起動を行う場合は、再起動用停止要求を行った後で、
再起動要求を行うものとする。ユーザが再起動用停止要
求をオブジェクト指向型プログラム実行環境112に対
して行うと、再起動手段162が通知を受け起動される
ものとする。
【0028】まず、再起動手段162は、テーブル20
0の自オブジェクト指向型プログラム実行環境112の
エントリの再起動用停止要求有無211にYを設定する
(ステップ1101)。次に、テーブル200と322
と423を使って、オブジェクト指向型プログラム実行
環境112内のスレッドを検索する(ステップ110
2)。ここではスレッド184が検索される。次に、ス
テップ1102で検索したスレッド184を消滅させる
(ステップ1103)。次に、ヒープ領域を解放せず、
オブジェクト指向型プログラム実行環境を終了させる
(ステップ1104)。次に、ユーザがオブジェクト指
向型プログラム実行環境112の再起動要求を行うと、
オブジェクト指向型プログラム実行環境112が作成さ
れ、再起動手段162のステップ1105以降の処理が
起動されるものとする。
0の自オブジェクト指向型プログラム実行環境112の
エントリの再起動用停止要求有無211にYを設定する
(ステップ1101)。次に、テーブル200と322
と423を使って、オブジェクト指向型プログラム実行
環境112内のスレッドを検索する(ステップ110
2)。ここではスレッド184が検索される。次に、ス
テップ1102で検索したスレッド184を消滅させる
(ステップ1103)。次に、ヒープ領域を解放せず、
オブジェクト指向型プログラム実行環境を終了させる
(ステップ1104)。次に、ユーザがオブジェクト指
向型プログラム実行環境112の再起動要求を行うと、
オブジェクト指向型プログラム実行環境112が作成さ
れ、再起動手段162のステップ1105以降の処理が
起動されるものとする。
【0029】また、オブジェクト指向型プログラム実行
環境112は、共用メモリ190上のヒープ領域191
を使用するものとする。再起動手段162はテーブル2
00を検索し、自オブジェクト指向型プログラム実行環
境122の再起動用停止要求有無211の値がYである
かをチェックする(ステップ1105)。211の値が
Nの場合は、ユーザに再起動要求エラーであることを通
知して自オブジェクト指向型プログラム実行環境112
を終了する(ステップ1110)。211の値がYの場
合は、テーブル200,300,400から自オブジェ
クト指向型プログラム実行環境内のスレッドを検索する
(ステップ1106)。ステップ1103でスレッドを
消滅させる時にテーブル200,300,400の変更
を行わないため、再起動用停止要求処理時のスレッドの
状態がテーブルに残っており、ここでは184が検索さ
れる。次に、ステップ1106で求めたスレッド184
のスタックポインタを、テーブル400から取得する
(ステップ1107)。次に、スレッドを新規に作成
し、ステップ1107で求めたスタックを引継ぎスレッ
ドの実行を開始する(ステップ1108)。
環境112は、共用メモリ190上のヒープ領域191
を使用するものとする。再起動手段162はテーブル2
00を検索し、自オブジェクト指向型プログラム実行環
境122の再起動用停止要求有無211の値がYである
かをチェックする(ステップ1105)。211の値が
Nの場合は、ユーザに再起動要求エラーであることを通
知して自オブジェクト指向型プログラム実行環境112
を終了する(ステップ1110)。211の値がYの場
合は、テーブル200,300,400から自オブジェ
クト指向型プログラム実行環境内のスレッドを検索する
(ステップ1106)。ステップ1103でスレッドを
消滅させる時にテーブル200,300,400の変更
を行わないため、再起動用停止要求処理時のスレッドの
状態がテーブルに残っており、ここでは184が検索さ
れる。次に、ステップ1106で求めたスレッド184
のスタックポインタを、テーブル400から取得する
(ステップ1107)。次に、スレッドを新規に作成
し、ステップ1107で求めたスタックを引継ぎスレッ
ドの実行を開始する(ステップ1108)。
【0030】
【発明の効果】以上述べたように、本発明によれば、オ
ブジェクト指向型プログラム実行環境間で共用メモリ上
のヒープ領域を共有することにより、スレッドの実行を
停止することなく他オブジェクト指向型プログラム実行
環境にスレッドを移動することが可能になり、計算機シ
ステム間での負荷分散、続行可能なスレッドを停止させ
ない障害回復、他計算機システムの資源へのアクセスに
利用できる。特に、JavaVMのような種々のオペレ
ーティングシステムに実装可能なオブジェクト指向型プ
ログラム実行環境の場合は、異なるオペレーティングシ
ステム間でそのオペレーティングシステムの特徴を活か
した負荷分散が可能となる。
ブジェクト指向型プログラム実行環境間で共用メモリ上
のヒープ領域を共有することにより、スレッドの実行を
停止することなく他オブジェクト指向型プログラム実行
環境にスレッドを移動することが可能になり、計算機シ
ステム間での負荷分散、続行可能なスレッドを停止させ
ない障害回復、他計算機システムの資源へのアクセスに
利用できる。特に、JavaVMのような種々のオペレ
ーティングシステムに実装可能なオブジェクト指向型プ
ログラム実行環境の場合は、異なるオペレーティングシ
ステム間でそのオペレーティングシステムの特徴を活か
した負荷分散が可能となる。
【0031】また、オブジェクト指向型プログラム実行
環境の終了時にヒープ領域を解放せず残しておくことに
より、再起動時に終了時点からの再実行が可能となり、
オブジェクト指向型プログラム実行環境の回復時間が短
縮される。また、ヒープ領域を共用メモリ上に置くこと
により、メモリを共用している任意の計算機システムか
らオブジェクト指向型プログラム実行環境の再起動が可
能となる。
環境の終了時にヒープ領域を解放せず残しておくことに
より、再起動時に終了時点からの再実行が可能となり、
オブジェクト指向型プログラム実行環境の回復時間が短
縮される。また、ヒープ領域を共用メモリ上に置くこと
により、メモリを共用している任意の計算機システムか
らオブジェクト指向型プログラム実行環境の再起動が可
能となる。
【図1】オブジェクト指向型プログラム実行環境の全体
構成図である。
構成図である。
【図2】オブジェクト指向型プログラム実行環境管理テ
ーブルを示す図である。
ーブルを示す図である。
【図3】オブジェクト指向型プログラム管理テーブルを
示す図である。
示す図である。
【図4】スレッド管理テーブルを示す図である。
【図5】計算機システム負荷テーブルを示す図である。
【図6】計算機システム資源テーブルを示す図である。
【図7】負荷認識手段の処理手順を示すフローチャート
である。
である。
【図8】スレッド引継ぎ手段の処理手順を示すフローチ
ャートである。
ャートである。
【図9】障害発生認識手段の処理手順を示すフローチャ
ートである。
ートである。
【図10】要求資源認識手段の処理手順を示すフローチ
ャートである。
ャートである。
【図11】再起動手段の処理手順を示すフローチャート
である。
である。
100,101…計算機システム、110,111,1
12…オブジェクト指向型プログラム実行環境、12
0,121,122…スレッド引継ぎ手段、130,1
31,132…負荷認識手段、140,141,142
…障害発生認識手段、150,151,152…要求資
源認識手段、160,161,162…再起動手段、1
70,171,172,173…オブジェクト指向型プ
ログラム、180,181,182,183,184…
スレッド、190…共用メモリ、191…ヒープ領域、
192…資源。
12…オブジェクト指向型プログラム実行環境、12
0,121,122…スレッド引継ぎ手段、130,1
31,132…負荷認識手段、140,141,142
…障害発生認識手段、150,151,152…要求資
源認識手段、160,161,162…再起動手段、1
70,171,172,173…オブジェクト指向型プ
ログラム、180,181,182,183,184…
スレッド、190…共用メモリ、191…ヒープ領域、
192…資源。
フロントページの続き (72)発明者 杉田 勉 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア事業部内 (72)発明者 西原 啓輔 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア事業部内 Fターム(参考) 5B045 GG02 JJ44 JJ45 5B098 GA05 GC01 GC10 GC14 GD14 JJ03
Claims (5)
- 【請求項1】 少なくとも一つ以上の計算機システム
と、前記計算機システムでデータ処理を行なう少なくと
も一つ以上のオブジェクト指向型プログラムと、前記オ
ブジェクト指向型プログラムを動作させる少なくとも一
つ以上のスレッドと、前記スレッドが参照可能な共用メ
モリと、前記スレッドを動作させる少なくとも一つ以上
の相互に通知機能を持つオブジェクト指向型プログラム
実行環境において、オブジェクト指向型プログラム実行
環境がスレッドを実行するために作成するヒープ領域を
共用メモリに置き、第1のオブジェクト指向型プログラ
ム実行環境で実行中のスレッドを、前記共用メモリを利
用して第2のオブジェクト指向型プログラム実行環境へ
引継ぐスレッド引継ぎ手段を設けたことを特徴とするオ
ブジェクト指向型プログラム実行環境の実行制御方法。 - 【請求項2】 請求項1記載のオブジェクト指向型プロ
グラム実行環境の実行制御方法は、オブジェクト指向型
プログラム実行環境に負荷認識手段を設け、第1のオブ
ジェクト指向型プログラム実行環境の負荷が高い場合に
第2のオブジェクト指向型プログラム実行環境にスレッ
ドを移動して負荷分散を行なうことを特徴とするオブジ
ェクト指向型プログラム実行環境の実行制御方法。 - 【請求項3】 請求項1記載のオブジェクト指向型プロ
グラム実行環境の実行制御方法は、オブジェクト指向型
プログラム実行環境に障害発生認識手段を設け、第1の
オブジェクト指向型プログラム実行環境または第1のオ
ブジェクト指向型プログラム実行環境が属する計算機シ
ステムに障害が発生した場合は第2のオブジェクト指向
型プログラム実行環境にスレッドを移動して障害回復を
行なうことを特徴とするオブジェクト指向型プログラム
実行環境の実行制御方法。 - 【請求項4】 請求項1記載のオブジェクト指向型プロ
グラム実行環境の実行制御方法は、オブジェクト指向型
プログラム実行環境に要求資源認識手段を設け、第1の
オブジェクト指向型プログラム実行環境で実行中のスレ
ッドが、第2のオブジェクト指向型プログラム実行環境
が有している計算機システムの資源を要求した場合に、
第2のオブジェクト指向型プログラム実行環境にスレッ
ドを移動して処理を続行することを特徴とするオブジェ
クト指向型プログラム実行環境の実行制御方法。 - 【請求項5】 請求項1記載のオブジェクト指向型プロ
グラム実行環境の実行制御方法は、オブジェクト指向型
プログラム実行環境に再起動手段を設け、オブジェクト
指向型プログラム実行環境の終了時に請求項1記載のヒ
ープ領域を解放せず残しておき、前記ヒープ領域を利用
して共用メモリに接続された任意の計算機システムでオ
ブジェクト指向型プログラム実行環境の再起動を可能と
することを特徴とするオブジェクト指向型プログラム実
行環境の実行制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11204227A JP2001034489A (ja) | 1999-07-19 | 1999-07-19 | オブジェクト指向型プログラム実行環境の実行制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11204227A JP2001034489A (ja) | 1999-07-19 | 1999-07-19 | オブジェクト指向型プログラム実行環境の実行制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001034489A true JP2001034489A (ja) | 2001-02-09 |
Family
ID=16486955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11204227A Pending JP2001034489A (ja) | 1999-07-19 | 1999-07-19 | オブジェクト指向型プログラム実行環境の実行制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001034489A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003131900A (ja) * | 2001-10-24 | 2003-05-09 | Hitachi Ltd | サーバシステム運用管理方式 |
WO2003054693A1 (en) * | 2001-12-12 | 2003-07-03 | Telefonaktiebolaget L M Ericsson (Publ) | Collision handling apparatus and method |
JP2017182115A (ja) * | 2016-03-28 | 2017-10-05 | 日本電気株式会社 | 情報処理装置、プロセス切り替え方法及びプログラム |
-
1999
- 1999-07-19 JP JP11204227A patent/JP2001034489A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003131900A (ja) * | 2001-10-24 | 2003-05-09 | Hitachi Ltd | サーバシステム運用管理方式 |
WO2003054693A1 (en) * | 2001-12-12 | 2003-07-03 | Telefonaktiebolaget L M Ericsson (Publ) | Collision handling apparatus and method |
JP2017182115A (ja) * | 2016-03-28 | 2017-10-05 | 日本電気株式会社 | 情報処理装置、プロセス切り替え方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9996401B2 (en) | Task processing method and virtual machine | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
US6832298B2 (en) | Server system operation control method | |
US7251814B2 (en) | Yield on multithreaded processors | |
US7137115B2 (en) | Method for controlling multithreading | |
US9201691B2 (en) | Method, apparatus and system for coordinating execution of tasks in a computing system having a distributed shared memory | |
JP2002041305A (ja) | 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム | |
JP2000242512A (ja) | 複数のオペレーティングシステムを実行する計算機 | |
JPH03144847A (ja) | マルチプロセッサ・システムおよびそのプロセス同期方法 | |
JP2007172334A (ja) | 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム | |
US20110107344A1 (en) | Multi-core apparatus and load balancing method thereof | |
CN101876926A (zh) | 一种非对称结构的软件三机热备容错方法 | |
JPH07311749A (ja) | マルチプロセッサシステム及びカーネル置換方法 | |
JP2001306341A (ja) | コンピュータシステムおよびコンピュータ読み取り可能な記録媒体 | |
WO2002048886A2 (en) | Telecommunications platform with processor cluster and method of operation thereof | |
JP2001034489A (ja) | オブジェクト指向型プログラム実行環境の実行制御方法 | |
JP2014002798A (ja) | 計算機システム及びプログラム | |
CN114253681B (zh) | 一种中断注册及共享管理方法及电子设备 | |
JP2003271404A (ja) | マルチプロセッサシステム | |
JP2002024048A (ja) | 高可用性システム | |
JP4992745B2 (ja) | チェックポイント・リスタート装置及びチェックポイント・リスタート方法 | |
JPH09319708A (ja) | オンライン制御プロセス代行方式 | |
JP2004005113A (ja) | 複数の実計算機上で動作する仮想計算機システム及びその制御方法 | |
JPH0363768B2 (ja) | ||
JPH02139630A (ja) | オンラインタスク入替え装置 |