JP2008046889A - プロセス管理方法 - Google Patents
プロセス管理方法 Download PDFInfo
- Publication number
- JP2008046889A JP2008046889A JP2006222266A JP2006222266A JP2008046889A JP 2008046889 A JP2008046889 A JP 2008046889A JP 2006222266 A JP2006222266 A JP 2006222266A JP 2006222266 A JP2006222266 A JP 2006222266A JP 2008046889 A JP2008046889 A JP 2008046889A
- Authority
- JP
- Japan
- Prior art keywords
- area
- computer
- setting
- assigned
- management method
- 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
Images
Abstract
【課題】チェックポイント時のプロセスIDをリスタート時に用いるソフトウェアを任意の計算機で実行する。
【解決手段】計算機101上でOS121を実行し、OS121上で実行するプロセス111にプロセスID112を割り当てるプロセス管理方法において、OS121の起動時に、プロセスID112を格納する領域を計算機101の記憶装置上に設定する処理と、前記領域を第1の領域と、第2の領域に分割する処理と、前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する処理と、OS121がプロセス111を生成する際に、予め設定されたプロセスに対して前記第2の領域のプロセスIDを割り当て、他のプロセスに対しては前記第1の領域のプロセスIDを割り当てる処理と、を含む。
【選択図】図1
【解決手段】計算機101上でOS121を実行し、OS121上で実行するプロセス111にプロセスID112を割り当てるプロセス管理方法において、OS121の起動時に、プロセスID112を格納する領域を計算機101の記憶装置上に設定する処理と、前記領域を第1の領域と、第2の領域に分割する処理と、前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する処理と、OS121がプロセス111を生成する際に、予め設定されたプロセスに対して前記第2の領域のプロセスIDを割り当て、他のプロセスに対しては前記第1の領域のプロセスIDを割り当てる処理と、を含む。
【選択図】図1
Description
本発明は、実行中のソフトウェアのチェックポイントで実行状態を生成して記憶し、ソフトウェアのリスタート時に記憶しておいたチェックポイントの実行状態を利用する計算機システムに関し、特に、オペレーティングシステムでチェックポイント及びリスタート機能を提供する計算機システムに関する。
複数の計算機をネットワークなどで接続した並列計算機システムでは、長時間に渡る計算の実行を継続するために、チェックポイント/リスタート機能を備えたものが知られている。チェックポイント/リスタート機能は、各計算機毎に実行中のプロセスの実行状態を定期的に保存しておき、計算機やOS等に障害が発生したときなどに保存しておいた実行状態からプロセスの再開を可能にする技術である。
通常、プロセスには生成時に各計算機上で固有のプロセス識別子(プロセスID)が割り当てられ、プロセスの実行が終了するとプロセスIDは再利用される。このため、チェックポイント時のプロセスIDが別のプロセスへ割り当てられ、プロセスのリスタート時に同一のプロセスIDを割り当てることができない場合がある。プロセスによっては、実行時に自身のプロセスIDを記録して使用することがあるため、リスタート時に同一のプロセスIDを割り当てる手段が必要となる。
リスタート時に同一のプロセスIDを割り当てる技術としては、チェックポイントでプロセスIDを予約ファイルに登録しておき、リスタート時には予約ファイルからプロセスに対応するプロセスIDを取得して、リスタート時にチェックポイント時と同一のプロセスIDを保証する技術が知られている(例えば、特許文献1、2)。
特開2006−31067号
特開平6−230981号
上記従来例では、障害が発生したときなどで、計算機を再起動してチェックポイントの記録からプロセスのリスタートを行う際には、当該プロセスが予約ファイルに登録したプロセスIDを使用し、他のプロセスが予約ファイルのプロセスIDを使用するのを禁止することで、チェックポイント時のプロセスIDをリスタート時に割り当てることを保証している。
上記従来例では同一の計算機でリスタート時にチェックポイント時のプロセスIDを割り当てることを保証することはできる。しかしながら、チェックポイントで実行状態を記録した計算機が故障した場合に、当該プロセスのリスタートを他の計算機で行うと、このプロセスが必要とするプロセスIDを保証することはできない。
つまり、他の計算機では起動するサービス(デーモン)等の違いによって、実行させようとするプロセスに必要となるプロセスIDが、既に他のサービスなどに割り当てられてしまう場合がある。このため、リスタート時にチェックポイント時と同一のプロセスIDを必要とするプロセスは、他の計算機でリスタートすることができない場合があった。特に、上記並列計算機システムやブレードサーバなど、複数のノード(計算機)を備えた計算機システムでは、ひとつのノード(計算機)に障害が発生しても、障害によって停止したプロセスを他のノードで実行することは可能であるが、障害が発生した計算機で割り当てられたプロセスIDまでは保証することはできなかった。
そこで本発明は、上記問題点に鑑みてなされたもので、チェックポイント時のプロセスIDをリスタート時に用いるソフトウェアを任意の計算機で実行することを目的とする。
本発明は、計算機上でオペレーティングシステムを実行し、前記オペレーティングシステム上で実行するプロセスにプロセスIDを割り当てるプロセス管理方法において、前記オペレーティングシステムの起動時に、前記プロセスIDを格納する領域を計算機の記憶装置上に設定する処理と、前記領域を第1の領域と、第2の領域に分割する処理と、前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する処理と、前記オペレーティングシステムがプロセスを生成する際に、予め設定されたプロセスに対して前記第2の領域のプロセスIDを割り当て、他のプロセスに対しては前記第1の領域のプロセスIDを割り当てる処理と、を含む。
さらに、前記プロセスIDとして前記第2のプロセスIDが設定されたプロセスについて、予め設定されたタイミングで当該プロセスの実行状態を保存する処理をさらに含む。
したがって、本発明は、プロセスIDを第1のプロセスIDと第2のプロセスIDの2つに分割し、予め設定したプロセスについてのみ第2のプロセスIDを割り当てる。予め設定したプロセスを再起動する際には、第2のプロセスIDを割り当てることを保証することができる。特に、プロセスIDを第1のプロセスIDと第2のプロセスIDの2つに分割した計算機間では、他の計算機でも保存された実行状態のプロセスIDを第2のプロセスIDで割り当ててプロセスの再起動を行うことができる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、第1の実施形態を示し、本発明を適用する計算機システムのブロック図である。本発明を適用する計算機システム1は、複数の計算機101、101−2〜nをネットワーク103で接続し、各計算機間で相互に通信可能となっている。ネットワーク103にはストレージ装置140が接続されており、このストレージ装置140は各計算機101、101−2〜101−nから読み書き可能な共有ストレージ装置として機能する。なお、計算機同士とストレージ装置140の接続はネットワーク103に代わって、バスやスイッチで構成することができる。また、ネットワーク103には計算機システム1の各計算機101、101−2〜101−nに対して設定を行ったり、各計算機101〜101−nに実行させるプロセス(プログラム)を指示するための管理コンソール(または管理端末)150が接続される。また、各計算機101、101−2〜n間には並列処理の同期を行うために、図示はしないが、バリア同期装置を備えても良い。
各計算機101、101−2〜101−nは、それぞれCPU2とメモリ3を備えて、オペレーティングシステム(以下、OS)121とプロセス111及びチェックポイント生成ライブラリ130を実行する。なお、各計算機101〜101−nでは、任意の数(図中n個)のプロセス111−nを実行することができる。
次に、各計算機で実行されるソフトウェアについて、以下に説明する。なお、計算機101、101−2〜101−nは同様の構成であるので、以下では計算機101のみについて説明し、他の計算機101−2〜101−nの説明は省略する。
図1において、OS121上で実行されるプロセス111は、後述するチェックポイント機能を利用するアプリケーションソフトウェアを示しており、各プロセス111は、OS121から割り当てられた識別子としてのプロセスID112と、使用するメモリ3のアドレス領域など計算機101のリソースの割り当てを含む実行状態113を有する。
チェックポイント生成ライブラリ130は、プロセス111の実行状態を定期的に保存するチェックポイント機能を提供する。チェックポイント機能は、予め指定されたタイミングでプロセス111の実行状態をストレージ装置140に保存する。チェックポイント機能を利用するプロセス111は、管理コンソール150からタスク(またはジョブ)を投入する際に、チェックポイント機能を利用する指定を予め設定されたものである。また、チェックポイント機能を実行するタイミングはタスクの投入時などにコンソール150が設定するものとし、例えば、チェックポイントを実行する周期(例えば、数分)を設定する。チェックポイント生成ライブラリ130は、コンソール150からの指定のあったプロセス111のみについてチェックポイント機能を実行し、その他のプロセスについてはチェックポイント機能を実行しない。
チェックポイント生成ライブラリ130は、コンソール150から指定されたタスクのプロセス111について、所定のタイミングになる度にプロセス111の実行状態をストレージ装置140に実行状態退避ファイル102として保存する。実行状態退避ファイル102は、チェックポイント機能を実行する度に最新の実行状態が格納される。このとき、実行状態退避ファイル102は、最新の実行状態で上書きして良いし、新たなファイルとして作成しても良い。
ここで、実行状態退避ファイル102は、各計算機101〜101−n毎に設定されており、並列処理を計算機101〜101−nで実行する場合では、一つのタスクを各計算機101〜101−nに割り当てて、各計算機101〜101−nのOS121がプロセス111として実行し、各計算機101〜101−nのチェックポイント生成ライブラリ130がストレージ装置140の実行状態退避ファイル102〜nへ実行状態を書き込む。
ここで、プロセス111の実行状態退避ファイル102の内容は、実行状態113の内容などが含まれており、例えば、プロセスID112、プロセス名、レジスタ状態、実行した計算機のID(IPアドレスなど)、プロセス111のメモリ空間、ファイルへのアクセス状態などが格納される。そして、チェックポイント生成ライブラリ130が生成した実行状態退避ファイル102は、後述のリスタート機能で利用される。
次に、OS121の機能のうち、チェックポイント機能とリスタート機能に関する部分について説明する。その他の機能については、公知のOSと同様の機能を備えるものである。
OS121は、実行する全てのプロセスにプロセスIDを割り当てるため、プロセスID領域指定モジュール122と、プロセスID割り当てモジュール123と、プロセスID領域分割モジュール124と、プロセスID割り当て管理テーブル125を備える。
プロセスID領域指定モジュール122は、OS121の起動時にメモリ3(またはストレージ装置140)上にプロセスIDを格納する領域を予約し、この領域にプロセスID割り当て管理テーブル125を設定する。プロセスID割り当て管理テーブル125は、後述するように、プロセスIDを予め設定したものでOS121が予め設定したプロセスIDとプロセスID毎の割り当て状況を含む。
プロセスID領域分割モジュール124は、プロセスID領域指定モジュール122がメモリ3上に予約したプロセスID割り当て管理テーブル125のプロセスIDについて、チェックポイント機能を使用するプロセス111に割り当てるプロセスIDの領域と、チェックポイント機能を使用しないプロセスに割り当てるプロセスIDの領域に分割する。プロセスID領域分割モジュール124によって、メモリ3上のプロセスID割り当て管理テーブル125は、チェックポイント機能を利用するプロセス111に割り当てるプロセスIDの領域と、チェックポイント機能を利用しないプロセス(通常のプロセス)に割り当てるプロセスID領域の2つに分割される。
プロセスID割り当てモジュール123は、OS121が生成するプロセス111のプロセスID112を、チェックポイント機能の利用の有無に基づいて、プロセスID領域分割モジュール124が分割したプロセスID割り当て管理テーブル125からプロセスID112を後述するように割り当てる。
また、OS121は、プロセス111のリスタート機能を提供するプロセス再開制御モジュール1101を含む。プロセス再開制御モジュール1101は、後述するように、再開するプロセス111を実行可能な計算機を計算機システム1内で検索し、当該プロセス111にチェックポイントを生成した時点のプロセスID112を優先して割り当て、割り当てが成功した場合には実行させる。
次に、プロセス111にプロセスID112を割り当てる処理の詳細について、以下に詳述する。
<プロセスID領域指定モジュール>
図2は、プロセスID領域指定モジュール122の処理を示すフローチャートで、OS121の起動時に実行される。
図2は、プロセスID領域指定モジュール122の処理を示すフローチャートで、OS121の起動時に実行される。
プロセスID領域指定モジュール122は、OS121が起動するときに実行され、管理コンソール150から入力された引数に基づいて、メモリ3上の所定の領域をプロセスID割り当て管理テーブル125を読み込むために予約する(401)。引数は、管理コンソール150を操作する管理者などがOS121を起動する際に入力するもので、プロセスID領域指定モジュール122は、この引数に対応するメモリ3上の領域(メモリ空間)を確保して終了する。本実施形態では、プロセスID領域指定モジュール122が、OS121に予め設定されたプロセスID112を、引数に応じて確保した領域へ書き込むものとする。プロセスID領域指定モジュール122の処理が完了すると、OS121はプロセスID領域分割モジュール124を起動する。プロセスID領域分割モジュール124は、プロセスID領域指定モジュール122が確保したメモリ3上の領域の大きさに合わせて、プロセスID割り当て管理テーブル125を設定する。
<プロセスID管理テーブル>
図3は、プロセスID割り当て管理テーブル125の一例を示す説明図である。プロセスID割り当て管理テーブル125は、OS121に予め設定されたプロセスID112の最小値から、上記図2のプロセスID領域指定モジュール122が確保したメモリ3上の領域に応じた最大値までを設定する。図3の例では、プロセスID112の最小値は「0」から開始され、メモリ3上の領域が許容する最大値「n」までが設定される。
図3は、プロセスID割り当て管理テーブル125の一例を示す説明図である。プロセスID割り当て管理テーブル125は、OS121に予め設定されたプロセスID112の最小値から、上記図2のプロセスID領域指定モジュール122が確保したメモリ3上の領域に応じた最大値までを設定する。図3の例では、プロセスID112の最小値は「0」から開始され、メモリ3上の領域が許容する最大値「n」までが設定される。
プロセスID割り当て管理テーブル125は、プロセスID112毎に一つのエントリを形成する。各エントリには、当該プロセスID112が既にプロセス111へ割り当てられたか否かを示す割り当て可否201の欄と、チェックポイント機能の利用の有無を判定するための領域指定の有無202の2つの設定欄を備えている。
領域指定有無202の欄は、プロセスID領域分割モジュール124によって、後述するように設定され、割り当て可否201の欄は、プロセスID割り当てモジュール123によって、後述するように設定される。図3の例では、プロセスID112が「3」以下の領域が、チェックポイント機能を利用しない「指定外領域」として設定され、プロセスID112が「4」以上領域が、チェックポイント機能を利用する「指定領域」として設定された例を示している。なお、指定外領域のプロセスID112が第1のプロセスIDであり、指定領域のプロセスID112が第2のプロセスIDである。
すなわち、プロセスID領域分割モジュール124は、メモリ3上に確保された領域のうち前半部をチェックポイント機能を利用しない指定外領域として設定し、後半部をチェックポイント機能を利用する指定領域に設定する。
<プロセスID領域分割モジュール>
プロセスID領域分割モジュール124は、上記図2のプロセスID領域指定モジュール122が終了した後に、OS121によって起動される。図4にプロセスID領域分割モジュール124で行われる処理の一例を示す。
プロセスID領域分割モジュール124は、上記図2のプロセスID領域指定モジュール122が終了した後に、OS121によって起動される。図4にプロセスID領域分割モジュール124で行われる処理の一例を示す。
プロセスID領域分割モジュール124は、プロセスID領域指定モジュール122が確保した領域に、OS121に予め設定されたプロセスID112の最小値から、領域の上限までのプロセスID112を備えたプロセスID割り当て管理テーブル125を設定し、指定領域と指定外領域に分割する。なお、確保したメモリ3上の領域が十分大きい場合には、プロセスID領域分割モジュール124は、OS121に予め設定された最小値から最大値までのプロセスID112を、プロセスID割り当て管理テーブル125に設定する。また、プロセスID領域分割モジュール124は、OS121に予め設定された指定外領域のプロセスID112の最大値を優先して確保した後に、指定外領域のプロセスID112を確保する。また、プロセスID112の最大値は、指定領域のプロセスID112の最大値に対応する。
ステップ601では、上記図2のプロセスID領域指定モジュール122で確保したメモリ3上の領域を取得する。また、プロセスID領域分割モジュール124は、OS121からプロセスID割り当て管理テーブル125のプロセスID112の最大値と、指定外領域の最大値とを取得する。
次に、ステップ602では、OS121に予め設定されたプロセスID112の指定領域の最大値が、メモリ3上の領域に設定可能なプロセスID112の最大値を超えているか否かを判定する。この判定は、メモリ3上の領域の容量と、OS121に設定されたプロセスID112の最小値から最大値までのプロセスID112を設定したときのプロセスID割り当て管理テーブル125の容量を比較することで行うことができる。
プロセスID112の最大値がメモリ3上の領域に収まらない場合には、ステップ603で管理コンソール150に警告を表示する。次にステップ604で、メモリ3上の領域からはみ出したプロセスID112を削除する。
次に、ステップ605では、チェックポイント機能を利用する指定領域のプロセスID112が、確保されたメモリ3上の領域に割り当て可能であるか否かを判定する。つまり、プロセスID領域指定モジュール122が確保したメモリ3上の領域が小さい場合には、図3に示したプロセスID112のうち、指定外領域のプロセスID112だけしか割り当てられない場合が生じる。このため、指定領域のプロセスID112が割り当てられるか否かを判定する。
メモリ3上に確保された領域に指定領域のプロセスID112が設定可能な場合には、ステップ606へ進む。ステップ606では、プロセスID領域分割モジュール124が、所定の指定外領域と指定領域のプロセスID112を備えたプロセスID割り当て管理テーブル125を確保されたメモリ3上の領域に設定する。そして、プロセスID領域分割モジュール124は、指定外領域のプロセスID112のエントリについては、プロセスID割り当て管理テーブル125の領域指定202に「無」を設定し、指定領域のプロセスID112についてはプロセスID割り当て管理テーブル125の領域指定202に「有」を設定して処理を終了する。
指定領域のプロセスID112をメモリ3上の領域に割り当てることができない場合には、ステップ607で管理コンソール150に警告(またはエラー)を表示する。そしてステップ608では割り当て可能なプロセスID112でプロセスID割り当て管理テーブル125を構成し、メモリ3上に確保された領域に当該テーブル125を設定する。
以上の処理により、計算機101の起動時には、管理コンソール150が与えた引数に応じてメモリ3上の領域を確保し、確保された領域の大きさに応じたプロセスID112の最大値を含むプロセスID割り当て管理テーブル125が設定される。そして、プロセスID領域分割モジュール124は、プロセスID割り当て管理テーブル125の割り当て可否201に「無」を設定して処理を終了する。
なお、上記図2、図4の処理を計算機101−2〜101−nでそれぞれ実行することで、各計算機101〜101−nのそれぞれにプロセスID割り当て管理テーブル125が設定される。
<プロセスID割り当てモジュール>
次に、OS121がチェックポイント機能を利用するプロセスを生成する度にプロセスID112を割り当てるプロセスID割り当てモジュール123が行う処理について以下に説明する。図5〜図7は、プロセスID割り当てモジュール123で行われる処理の一例を示すフローチャートで、OS121がプロセスを生成する度に実行される。
次に、OS121がチェックポイント機能を利用するプロセスを生成する度にプロセスID112を割り当てるプロセスID割り当てモジュール123が行う処理について以下に説明する。図5〜図7は、プロセスID割り当てモジュール123で行われる処理の一例を示すフローチャートで、OS121がプロセスを生成する度に実行される。
図5のステップ701では、生成するプロセス111に指定されたプロセスID112がある場合、プロセスID割り当て管理テーブル125の「指定領域」に、該当するプロセスID112が含まれているか、または、指定領域のプロセスID112を割り当てるか否かを判定する。
プロセス111の生成時にプロセスID112が指定されている場合は、例えば、障害が発生して再起動(リスタート)時に実行状態退避ファイル102に記録されているプロセスIDを復元する場合や、タスクの投入時に管理コンソール150からプロセスIDを指定した場合などである。また、タスクの投入時にチェックポイント機能の利用を指定した場合には、プロセス111の生成時に、指定領域のプロセスID112を用いる。これらの場合には、図6の処理へ進む。
一方、指定されたプロセスID112がプロセスID割り当て管理テーブル125の指定領域に無い場合、または、プロセス111がチェックポイント機能を利用しない場合は、図7の処理へ進む。
まず、図6の処理について説明する。プロセスID割り当てモジュール123は、ステップ901でチェックポイント機能を利用する指定領域のプロセスID112を割当可能か否かを判定する。指定領域のプロセスID112を割り当て可能な場合には、ステップ903へ進む。
一方、指定領域のプロセスID112を割り当てることができない場合には、ステップ902へ進む。ステップ902では、OS121の戻り値に、プロセスID112を割り当てられなかったことを示すエラーコードを設定して処理を終了する。この場合、プロセスID112が割り当てられないので、OS121は管理コンソール150へ警告などを送信し、プロセス111を起動しない。
指定領域のプロセスID112を割り当て可能な場合のステップ903では、プロセス111に割り当てるプロセスIDの値が指定されているか否かを判定する。プロセスID112の値が指定されていない場合には、ステップ904へ進む。一方、プロセスID112の値が指定されている場合には、ステップ906へ進む。
ステップ904では、プロセスID割り当て管理テーブル125の指定領域から、割り当て可否201が「可」のプロセスID112を抽出する。そして、抽出したプロセスID112の割り当て可否201を「否」に更新する。次に、ステップ905では、ステップ904で抽出したプロセスIDの値をOS121への戻り値に設定して処理を終了する。この戻り値を受け付けたOS121は、生成するプロセス111に指定領域のプロセスID112を付与して実行する。このプロセス111は所定のタイミングでチェックポイント機能を起動して、実行状態退避ファイル102を生成することになる。
次に、ステップ906では、プロセス111に指定されたプロセスID112を割り当て可能か否かを判定する。この判定は、プロセス111に指定されているプロセスID112に対応するプロセスID割り当て管理テーブル125のエントリで、割り当て可否が201が「可」であれば割り当て可能と判定し、「否」であれば割り当て不能と判定する。割り当て可能であればステップ907へ進み、割り当て不能であればステップ909へ進む。
ステップ907では、プロセス111に指定されたプロセスID112に対応するプロセスID割り当て管理テーブル125のエントリで、割り当て可否201を「否」に更新する。次に、ステップ908では、指定されたプロセス111のプロセスIDの値をOS121への戻り値に設定して処理を終了する。この戻り値を受け付けたOS121は、生成するプロセス111に指定されたプロセスID112を付与して実行する。このプロセス111は所定のタイミングでチェックポイント機能を起動して、実行状態退避ファイル102を生成することになる。
一方、ステップ909では、OS121の戻り値に、指定されたプロセスID112を割り当てられなかったことを示すエラーコードを設定して処理を終了する。この場合、プロセスID112が割り当てられないので、OS121は管理コンソール150へ警告などを送信し、プロセス111を起動しない。
次に、図5の判定で、指定されたプロセスID112が指定領域にない場合、またはプロセス111がチェックポイント機能を利用しない場合の処理を、図7のフローチャートに示す。
ステップ1001では、指定外領域のプロセスID112を割り当てることが可能であるか否かを判定する。指定外領域のプロセスID112を割り当て可能であればステップ1002に進み、割り当て不能の場合にはステップ1004へ進む。
ステップ1002では、プロセスID割り当てモジュール123が、プロセスID割り当て管理テーブル125の指定外領域のプロセスID112を抽出する。そして、プロセスID割り当てモジュール123は、抽出したプロセスID112のエントリで、割り当て可否201を「否」に更新する。次に、ステップ1003では、このプロセスID112の値を戻り値としてOS121へ通知する。これにより、OS121はチェックポイント機能を利用しないプロセス111にチェックポイント機能を利用しないプロセスID112を割り当てて、当該プロセス111を実行する。
一方、指定外領域のプロセスID112を割り当てることができない場合には、ステップ1004で、上記ステップ902と同様に、エラーコードをOS121への戻り値に設定し、プロセス111の起動を中止する。
以上の図5〜図7の処理によって、OS121が生成するプロセス111がチェックポイント機能を利用するか否かに応じて、チェックポイント機能を利用する指定領域と、利用しない指定外領域に分割されたプロセスID割り当て管理テーブル125から、割り当て可能なプロセスIDを抽出してプロセス111に割り当てる。
また、障害後の再起動などで、プロセスID112が指定されている場合には、指定されたプロセスID112がプロセスID割り当て管理テーブル125で割り当て可能であれば、当該プロセス111にこのプロセスIDを割り当てる。一方、割り当て不能な場合には、OS121へエラーを通知することで、プロセスIDを指定して起動するプロセスを中止する。これは、上述のように、実行時に自身のプロセスIDを記録して使用するプロセス111では、リスタート時にチェックポイント時のプロセスIDを割り当てなければ実行できないためであり、この種のプロセス111にチェックポイント時以外のプロセスIDを割り当てても円滑に実行できないので、プロセス111の起動を中止するのである。
<チェックポイント生成ライブラリ>
チェックポイント生成ライブラリ130は、プロセス111が所定のタイミングになると、当該プロセス111の実行状態を、ストレージ装置140の実行状態退避ファイル102へ書き込んで更新する。
チェックポイント生成ライブラリ130は、プロセス111が所定のタイミングになると、当該プロセス111の実行状態を、ストレージ装置140の実行状態退避ファイル102へ書き込んで更新する。
チェックポイント生成ライブラリ130は、上記処理を繰り返し、計算機101が停止すると、その時点の実行状態退避ファイル102がストレージ装置140に保持される。
<プロセス再開制御モジュール>
次に、障害などにより実行を中断したプロセス111を再開する際に呼び出されるプロセス再開制御モジュール1101の処理について、以下に説明する。プロセス再開制御モジュール1101は、管理コンソール150からの指令に基づいて実行される。
次に、障害などにより実行を中断したプロセス111を再開する際に呼び出されるプロセス再開制御モジュール1101の処理について、以下に説明する。プロセス再開制御モジュール1101は、管理コンソール150からの指令に基づいて実行される。
管理コンソール150からは、実行する計算機101〜101−nのいずれか一つと、実行するプロセス111と、当該プロセス111の実行状態退避ファイル102〜102−nを指定する。指定された計算機101では、プロセス再開制御モジュール1101を起動する。
プロセス再開制御モジュール1101は、再開するプロセス111(以下再開プロセス111とする)の実行状態退避ファイル102を読み込んでから、まず、上記図5、図6のプロセスID割り当てモジュール123を起動して、当該計算機101で、チェックポイント時のプロセスID112を割り当てられる場合には、自計算機101で再開プロセス111を実行する。
自計算機101で、チェックポイント時のプロセスID112を割り当てられない場合には、図8に示す処理を開始する。
プロセス再開制御モジュール1101は、まず、ステップ1201で、計算機システム1で再開プロセス111を実行可能な計算機101〜101−nが残っているか否かを判定する。再開プロセス111を実行可能な計算機101〜101−nが残っていない場合には、ステップ1202で、OS121へ実行可能な計算機101が無いことを示すエラーコードを戻り値として終了する。OS121は、計算機システム1内の計算機101〜101−nで、プロセス111のリスタートができないことを管理コンソール150へ通知して、プロセス111の再開を停止する。
一方、再開プロセス111を実行可能な計算機があれば、ステップ1203へ進む。ステップ1203では、プロセス再開制御モジュール1101が、実行状態退避ファイル102から読み込んだプロセスID112を、再開プロセス111を実行可能な計算機101で、チェックポイント機能を利用する指定領域に割り当てているか否かを判定する。
例えば、プロセス111を実行していた計算機101−n(図中第1の計算機)が障害により停止し、計算機101でプロセス再開制御モジュール1101を実行し、計算機101では、再開プロセス111のチェックポイント時のプロセスID112を割り当てられないため、計算機101−2を選択したものとする。
計算機101のプロセス再開制御モジュール1101は、計算機101−2に対して、再開プロセス111の実行状態退避ファイル102−nのプロセスID112を、指定領域に割り当てているか否かを尋ねるメッセージを送信する。計算機101−2のOS121から、尋ねたプロセスID112が指定領域にあるという返信を受けた場合、計算機101のプロセス再開制御モジュール1101は、ステップ1204に進む。一方、実行したいプロセスID112が指定領域にないという返信を受けた場合には、計算機101のプロセス再開制御モジュール1101は、ステップ1201へ戻る。
ステップ1204では、計算機101のプロセス再開制御モジュール1101が、計算機101−2に対して、再開プロセス111のプロセスID112を、現在割り当て可能であるか否かを尋ねるメッセージを送信する。計算機101−2のOS121から、尋ねたプロセスID112が割り当て可能であるという返信を受けた場合、ステップ1205に進む。なお、計算機101−2では、OS121がプロセスID割り当て管理テーブル125を参照し、問い合わせのあったプロセスID112の割り当て可否201が「可」であれば、計算機101に対して、プロセスID112を割り当て可能と返信する。
ステップ1205では、計算機101のプロセス再開制御モジュール1101が、計算機101−2に対して、再開プロセス111の実行の依頼と、実行状態退避ファイル102−nの通知を行って処理を終了する。
計算機101−2では、計算機101から依頼された再開プロセス111に、チェックポイント時のプロセスID112を割り当てて実行を開始する。このときの処理は、上記図5、図6と同様に行われる。
以上のように、本発明では、計算機システム1内の計算機101〜101−nで、プロセスID割り当て管理テーブル125を、指定外領域と指定領域の2つの領域に分けておき、チェックポイント機能を利用するプロセスID112を指定領域に割り当てておくことで、再起動時に異なる計算機101−2を選択して場合でも、チェックポイント時のプロセスID112を割り当てることを保証することが可能となる。
なお、計算機101〜101−nの起動時には、プロセスID割り当て管理テーブル125を設定する領域を指定するための引数を同様の値として、プロセスID割り当て管理テーブル125の領域を各計算機101〜101−nで同様としておくことが望ましい。また、計算機システム1内では、各計算機101〜101−nで設定するプロセスID割り当て管理テーブル125の指定外領域のプロセスIDの数を等しく設定しおくことが望ましい。これにより、各計算機101〜101−nのプロセスID割り当て管理テーブル125の指定外領域と指定領域の境界を等しくすることができ、再開プロセス111にチェックポイント時のプロセスID112を割り当てることを保証することができる。
なお、上記計算機システム1としては、並列計算機やブレードサーバあるいはクラスタサーバなど、複数の計算機(または、ノード)を備えたものであれば本発明を適用することができる。
また、上記計算機システム1で実行されるプロセス111は、並列処理に限定されるものではなく、実行中にチェックポイント機能を利用し、障害が発生した後に実行状態退避ファイル102を用いて再起動するソフトウェアであれば本発明を適用することができる。
<第2実施形態>
図9は第2の実施形態を示し、前記第1実施形態のプロセスID割り当て管理テーブル125を、チェックポイント機能を利用しない指定外領域のプロセスIDのプロセスID割り当て管理テーブル125−1と、チェックポイント機能を利用する指定外領域のプロセスID割り当て管理テーブル125−2の2つに分割したものである。その他の構成は、前記第1実施形態と同様である。
図9は第2の実施形態を示し、前記第1実施形態のプロセスID割り当て管理テーブル125を、チェックポイント機能を利用しない指定外領域のプロセスIDのプロセスID割り当て管理テーブル125−1と、チェックポイント機能を利用する指定外領域のプロセスID割り当て管理テーブル125−2の2つに分割したものである。その他の構成は、前記第1実施形態と同様である。
図9(A)に示す指定外領域のプロセスIDのプロセスID割り当て管理テーブル125−1は、プロセスID112に全てのプロセスIDを格納し、各エントリのうち指定外領域で使用しないプロセスID(つまり、指定領域のプロセスID)について割り当て可否201のフィールドを割り当て禁止(図中、否(固定))とし、指定外領域で使用するプロセスIDについて、割り当て可否201のフィールドに現在の割り当て状態を書き込み可能としたものである。図9(A)では、プロセスID112が0または偶数の値のエントリが、指定外領域のプロセスIDとして割り当て可能に設定され、奇数のプロセスIDが指定外領域では割り当て禁止に設定される。
一方、図9(B)に示す指定領域のプロセスIDのプロセスID割り当て管理テーブル125−2は、プロセスID112に全てのプロセスIDを格納し、各エントリのうち指定領域で使用しないプロセスID(つまり、指定外領域のプロセスID)について割り当て可否201のフィールドを割り当て禁止(図中、否(固定))とし、指定領域で使用するプロセスIDについて、割り当て可否201のフィールドに現在の割り当て状態を書き込み可能としたものである。図9(B)では、プロセスID112が奇数の値のエントリが、指定領域のプロセスIDとして割り当て可能に設定され、0または偶数のプロセスIDが指定外領域では割り当て禁止に設定される。
上記の例では、指定外領域のプロセスID112と指定領域のプロセスID112が交互に出現することとなる。なお、図9の例では、一連の値を交互に指定外領域と指定領域に割り当てる例を示したが、これに限定されるものではなく、任意の値を指定外領域または指定領域のいずれか一方のプロセスIDとして割り当てることができる。
<第3実施形態>
図10は第3の実施形態を示し、前記第1実施形態のプロセスID領域指定モジュール122の処理を、予め設定したファイルを読み込んでメモリ3上の領域を確保するようにしたものである。その他の構成は、前記第1実施形態と同様である。
図10は第3の実施形態を示し、前記第1実施形態のプロセスID領域指定モジュール122の処理を、予め設定したファイルを読み込んでメモリ3上の領域を確保するようにしたものである。その他の構成は、前記第1実施形態と同様である。
プロセスID領域指定モジュール122は、OS121が起動するときに実行され、管理コンソール150から指定されたファイルの値に基づいて、メモリ3上の所定の領域をプロセスID割り当て管理テーブル125を読み込むために予約する(401’)。このファイルは、例えばストレージ装置140に予め格納されたものであり、ファイルの内容としては前記第1実施形態の引数と同様に、計算機101〜101−nのメモリ3上に確保する領域の大きさなどが含まれる。
このファイルは、管理コンソール150を操作する管理者などがOS121を起動する際に指定するもので、プロセスID領域指定モジュール122は、このファイルを読み込んでメモリ3上の領域(メモリ空間)を確保して終了する。
このように、OS121の起動時に引数を指定するのに代わって、ファイルを指定してプロセスID割り当て管理テーブル125を読み込み領域を確保するようにしても良い。
<第4実施形態>
図11、図12は第4の実施形態を示し、前記第1実施形態に示した計算機101〜101−nで、プロセスID割り当て管理テーブル125を管理するプロセスID管理ライブラリ160を実行し、図5に示したプロセスID割当モジュール123がプロセスID管理ライブラリ160の参照の有無に応じて割り当てるプロセスIDの種類を変更する要にしたものである。その他の構成は、前記第1実施形態と同様である。
図11、図12は第4の実施形態を示し、前記第1実施形態に示した計算機101〜101−nで、プロセスID割り当て管理テーブル125を管理するプロセスID管理ライブラリ160を実行し、図5に示したプロセスID割当モジュール123がプロセスID管理ライブラリ160の参照の有無に応じて割り当てるプロセスIDの種類を変更する要にしたものである。その他の構成は、前記第1実施形態と同様である。
図11において、チェックポイント機能を利用するプロセス111とチェックポイント生成ライブラリ130は、プロセスID管理ライブラリ160を介してプロセスID割り当て管理テーブル125を参照し、チェックポイント生成ライブラリ130はプロセスID割り当て管理テーブル125の指定領域のプロセスIDについては、所定のタイミングで実行状態退避ファイル102を更新する。
プロセスID割当モジュール123は、図5に代わって図12の処理を実行する。図12において、ステップ701’では、生成するプロセス111がプロセスID管理ライブラリ160を参照しているか否かを判定する。
チェックポイント機能を利用するプロセス111は、プロセスID管理ライブラリ160を参照しており、チェックポイント機能を利用しないプロセス111はプロセスID管理ライブラリ160を参照しない。
このため、プロセスID割り当てモジュール123は、プロセスID管理ライブラリ160を参照するプロセス111の場合、プロセスID割り当て管理テーブル125の「指定領域」に該当するプロセスID112を割り当てるため前記第1実施形態の図6の処理へ進む。一方、プロセス111がプロセスID管理ライブラリ160を参照していなければ、指定外領域のプロセスIDを割り当てるため前記第1実施形態の図7の処理に進む。
このように、プロセスID割り当てモジュール123は、プロセスID割り当て管理テーブル125を管理するプロセスID管理ライブラリ160の参照の有無に応じて割り当てるプロセスIDの種類を選択することができる。
<第5実施形態>
図13は第5の実施形態を示し、前記第1実施形態のプロセス再開制御モジュール1101の他の例を示す。その他の構成は、前記第1実施形態と同様である。
図13は第5の実施形態を示し、前記第1実施形態のプロセス再開制御モジュール1101の他の例を示す。その他の構成は、前記第1実施形態と同様である。
プロセス再開制御モジュール1101は、自計算機101で、チェックポイント時のプロセスID112を割り当てられない場合には、図13に示す処理を開始する。
図13の処理では、ステップ1201から1203までが前記第1実施形態の図8と同様である。つまり、計算機システム1内で検索する計算機が残っていなければ、OS121へエラーを通知し、リスタートするプロセス111に割り当てる指定領域のプロセスIDがなければ次の計算機101−2〜101−nを検索する。
指定領域のプロセスIDがリスタートするプロセスID112を含む計算機101〜101−nが見つかるとステップ1304の処理に進む。ステップ1304では、リスタートするプロセス111のプロセスID112を使用している他のプロセス111を停止可能であるか否かを、検索した計算機(以下、計算機101−2とする)に問い合わせる。計算機101−2が、停止可能と返信した場合には、計算機101のプロセス再開制御モジュール1101はステップ1305へ進んで、計算機101−2に対してリスタートするプロセス111のプロセスIDを割り当てている他のプロセスの停止及び退避を依頼する。
そして、計算機101のプロセス再開制御モジュール1101は、ステップ1307へ進んで、リスタートするプロセス111の再開を計算機101−2へ依頼して処理を終了する。
一方、ステップ1304で、計算機101−2がリスタートするプロセス111のプロセスID112を使用する他のプロセスを停止できないと返信した場合、計算機101のプロセス再開制御モジュール1101は、ステップ1306で、当該プロセスID112の処理が完了したか否かを計算機101−2に問い合わせ、当該プロセスID112の処理が完了するまで待機する。そして、計算機101−2からプロセスID112の処理の完了を受信すると、計算機101のプロセス再開制御モジュール1101は、ステップ1307へ進んで、計算機101−2に対してリスタートするプロセス111の再開を依頼して処理を終了する。
以上のように、リスタートするプロセス111に割り当てるプロセスID112が、他の計算機101−2で使用中の場合には、このプロセスID112を使用する他の計算機101−2の処理が完了するのを待ってから、当該他の計算機101−2へプロセス111のリスタートを指令することができる。
<第6実施形態>
図14、図15は第6の実施形態を示し、前記第1実施形態の図3に示した指定領域のプロセスIDを計算機101〜101−n毎に区分けし、さらに、前記第1実施形態の図6に示したプロセスID割り当てモジュール123の処理の一部を変更した例を示す。その他の構成は、前記第1実施形態と同様である。
図14、図15は第6の実施形態を示し、前記第1実施形態の図3に示した指定領域のプロセスIDを計算機101〜101−n毎に区分けし、さらに、前記第1実施形態の図6に示したプロセスID割り当てモジュール123の処理の一部を変更した例を示す。その他の構成は、前記第1実施形態と同様である。
図14は、プロセスID割り当て管理テーブル125の一例を示し、プロセスID112の値が0〜3を指定外領域のプロセスIDとし、4〜nを指定領域のプロセスIDとする。そして、指定領域のプロセスID112を計算機システム1内の計算機101〜101−n毎に予め割り当てたものである。
このプロセスID割り当て管理テーブル125は、図1の計算機101〜101−nで同じフォーマットのものを使用する。例えば、計算機101では、指定領域のプロセスIDとして4〜7を使用し、計算機101−2では指定領域のプロセスIDとして8から11を割り当てる。指定領域のプロセスIDは、自計算機に割り当てられたもののみを、自計算機のプロセス111に割り当てるように制限しておき、他の計算機のプロセス111を実行するときのみ、他の計算機に割り当てられた指定領域のプロセスIDを割り当て可能とするものである。
つまり、計算機101−2が障害で停止した場合、他の計算機では、プロセスID112が8〜11の指定領域が計算機101−2用として予め確保されているので、停止した計算機101−2で指定領域のプロセスID112を用いていたプロセス111を、他の計算機101、101−3〜nの何れでも実行可能となる。
図15は、前記第1実施形態の図6の処理に代わって行われるプロセスID割り当てモジュール123の処理である。
図15で、ステップ901〜903及び907、908は前記第1実施形態の図6と同様で、指定領域のプロセスID112が割り当て不能であればOS121へエラーを返す。指定領域のプロセスID112を割り当て可能で、OS121が生成するプロセス111にプロセスID112が指定されていれば、ステップ907、908で該当するプロセスID112を割り当てる。
一方、プロセスID112が指定されていなければ、ステップ1401で、図14のように計算機101〜101−n毎に分割された指定領域のプロセスID112から、当該計算機101〜101−nに割り当てられた指定領域のプロセスID112のみを選択するように制限する。
ステップ1402では、当該計算機101〜101−nに割り当てられた指定領域のプロセスID112のうち、割り当て可否201が「可」のプロセスID112があるか否かを判定する。割り当て可否201に「可」のプロセスID112がなければ、ステップ1405へ進んでOS121にエラーを通知する。
一方、ステップ1403では、当該計算機101〜101−nに割り当てられた指定領域のプロセスID112に、割り当て可否201が「可」のプロセスID112があれば、このプロセスIDを選択する。そして、選択したプロセスID112の割り当て可否201を「否」に更新する。次に、ステップ1404では、ステップ1403で選択したプロセスIDの値をOS121への戻り値に設定して処理を終了する。この戻り値を受け付けたOS121は、生成するプロセス111に指定領域のプロセスID112を付与して実行する。このプロセス111は所定のタイミングでチェックポイント機能を利用することになる。
このように、プロセスID割り当て管理テーブル125の指定領域のプロセスIDを予め計算機システム1内の計算機101〜101−n毎に割り当てておくことで、障害が発生した計算機のプロセス111を、他の計算機101〜101−nでチェックポイント時のプロセスID112を確実に割り当ててリスタートすることが可能となる。
<第7実施形態>
図16、図17は、第7の実施形態を示し、前記第1実施形態の図4に示したプロセスID領域分割モジュール124の処理を、OS121の起動後にプロセスID割り当て管理テーブル125を設定する領域を割り当て、または変更するようにしたものである。その他の構成は、前記第1実施形態と同様である。この処理は、OS121の起動後に、指定領域や指定外領域のプロセスID112が不足したときなどに、プロセスIDの設定を変更可能にするものである。
図16、図17は、第7の実施形態を示し、前記第1実施形態の図4に示したプロセスID領域分割モジュール124の処理を、OS121の起動後にプロセスID割り当て管理テーブル125を設定する領域を割り当て、または変更するようにしたものである。その他の構成は、前記第1実施形態と同様である。この処理は、OS121の起動後に、指定領域や指定外領域のプロセスID112が不足したときなどに、プロセスIDの設定を変更可能にするものである。
図16のステップ1501では、OS121の起動後に、管理コンソール150からプロセスID領域の指定を受け付ける。
次に、ステップ602〜608では、前記第1実施形態の図4と同様にして、指定されたメモリ3上の領域に応じてプロセスID割り当て管理テーブル125を割り当てる。
次に、図17のステップ1601では、プロセスID割り当て管理テーブル125のうち、新たに指定外領域となるプロセスIDで領域指定202が「有」となっているプロセスID112を割り当て可能か判定する。新たに指定外領域となるプロセスID112が割り当て可能であれば、ステップ1602で、この指定外領域のプロセスID112の領域指定202を「無」に更新して解放し、プロセスID112を指定外領域のプロセスIDとする。
一方、新たに指定外領域となるプロセスID112が割り当て可能でない場合には、ステップ1603で管理コンソール150に警告を通知して表示させ、ログに記録する。そして、ステップ1604で、新たに指定外領域となるプロセスIDのうち、割り当て可能なプロセスID112の領域指定202を「無」に更新して処理を終了する。
以上の処理によって、OS121の起動後に、プロセスID割り当て管理テーブル125の内容を変更することが可能となる。
<第8実施形態>
図18は、第8の実施形態を示し、前記第1実施形態の図1に示したストレージ装置を各計算機101〜101−n内に設けたもので、その他の構成は前記第1実施形態と同様である。
図18は、第8の実施形態を示し、前記第1実施形態の図1に示したストレージ装置を各計算機101〜101−n内に設けたもので、その他の構成は前記第1実施形態と同様である。
各計算機101〜101−n内には、ストレージ装置141が設けられ、実行状態退避ファイル102が格納される。
本実施形態では、各計算機101〜101−nで実行状態退避ファイル102〜102−nを生成してローカルのストレージ装置141に保存するときに、各計算機間をまたがって実行状態退避ファイル102のパリティデータ(保護データ)170を生成する。そして、各パリティデータ170を隣の計算機などに保存しておく。これにより、故障した計算機を除いた各計算機101〜101−nに保存されている実行状態退避ファイル102と保護データ170から、故障した計算機に保存されていた実行状態退避ファイル102を復元し、リスタートを実行することが可能となる。
<捕捉>
21.前記プロセスIDとして前記第2のプロセスIDが設定されたプロセスについて、予め設定されたタイミングで当該プロセスの実行状態を保存する手順をさらに含むことを特徴とする請求項13に記載のプログラム。
21.前記プロセスIDとして前記第2のプロセスIDが設定されたプロセスについて、予め設定されたタイミングで当該プロセスの実行状態を保存する手順をさらに含むことを特徴とする請求項13に記載のプログラム。
22.前記計算機は複数の計算機を含んで構成され、
前記保存された実行状態に基づいて、前記プロセスを再開する手順をさらに含み、
前記プロセスIDを割り当てる手順は、
前記保存された実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機を前記複数の計算機から検索する手順と、
前記実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機に当該プロセスの実行を指令する手順と、
を含むことを特徴とする上記21に記載のプログラム。
前記保存された実行状態に基づいて、前記プロセスを再開する手順をさらに含み、
前記プロセスIDを割り当てる手順は、
前記保存された実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機を前記複数の計算機から検索する手順と、
前記実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機に当該プロセスの実行を指令する手順と、
を含むことを特徴とする上記21に記載のプログラム。
23.前記実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機に当該プロセスの実行を指令する手順は、
前記計算機で、前記実行状態に含まれるプロセスIDが使用中の場合には、当該プロセスの終了をまって、前記計算機に当該プロセスの実行を指令することを特徴とする22に記載のプログラム。
前記計算機で、前記実行状態に含まれるプロセスIDが使用中の場合には、当該プロセスの終了をまって、前記計算機に当該プロセスの実行を指令することを特徴とする22に記載のプログラム。
23−1.前記実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機に当該プロセスの実行を指令する手順は、
前記計算機で、前記実行状態に含まれるプロセスIDが使用中の場合には、当該プロセスの実行状態を保存して終了させ、前記計算機に当該プロセスの実行を指令することを特徴とする22に記載のプログラム。
前記計算機で、前記実行状態に含まれるプロセスIDが使用中の場合には、当該プロセスの実行状態を保存して終了させ、前記計算機に当該プロセスの実行を指令することを特徴とする22に記載のプログラム。
24.前記オペレーティングシステムの起動後に、前記プロセスIDを格納する領域の変更指令を受け付ける手順と、
前記受け付けた変更指定に基づいて、前記設定された第1の領域または第2の領域を変更する手順と、
をさらに含むことを特徴とする請求項13に記載のプログラム。
前記受け付けた変更指定に基づいて、前記設定された第1の領域または第2の領域を変更する手順と、
をさらに含むことを特徴とする請求項13に記載のプログラム。
以上のように、本発明はチェックポイント機能を利用するソフトウェアのリスタート時に、チェックポイント時のプロセスIDを割り当てることを保証できるので、OSやOSの拡張モジュールに適用することができる。あるいはチェックポイント機能を利用する並列計算機システムに適用することができる。
1 計算機システム
101〜101−n 計算機
102 実行状態退避ファイル
111 プロセス
121 OS
122 プロセスID領域指定モジュール
123 プロセスID割り当てモジュール
124 プロセスID領域分割モジュール
125 プロセスID割り当て管理テーブル
130 チェックポイント生成ライブラリ
1101 プロセス再開制御モジュール
101〜101−n 計算機
102 実行状態退避ファイル
111 プロセス
121 OS
122 プロセスID領域指定モジュール
123 プロセスID割り当てモジュール
124 プロセスID領域分割モジュール
125 プロセスID割り当て管理テーブル
130 チェックポイント生成ライブラリ
1101 プロセス再開制御モジュール
Claims (21)
- 計算機上でオペレーティングシステムを実行し、前記オペレーティングシステム上で実行するプロセスにプロセスIDを割り当てるプロセス管理方法において、
前記オペレーティングシステムの起動時に、前記プロセスIDを格納する領域を計算機の記憶装置上に設定する処理と、
前記領域を第1の領域と、第2の領域に分割する処理と、
前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する処理と、
前記オペレーティングシステムがプロセスを生成する際に、予め設定されたプロセスに対して前記第2の領域のプロセスIDを割り当て、他のプロセスに対しては前記第1の領域のプロセスIDを割り当てる処理と、
を含むことを特徴とするプロセス管理方法。 - 前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する処理は、
予め設定した連続する値を、前記1の領域と第2の領域で分割し、前記第1のプロセスIDと前記第2のプロセスIDとをそれぞれ連続する値に設定することを特徴とする請求項1に記載のプロセス管理方法。 - 前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する処理は、
予め設定した連続する値について、前記第1のプロセスIDまたは前記第2のプロセスIDの一方を割り当てたことを特徴とする請求項1に記載のプロセス管理方法。 - 前記計算機は複数の計算機を含んで構成され、
前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する処理は、
前記第2のプロセスIDを、前記計算機毎に予め割り当てることを特徴とする請求項1に記載のプロセス管理方法。 - 前記プロセスIDを格納する領域を計算機の記憶装置上に設定する処理は、
前記オペレーティングシステムの起動時に引数を付与し、この引数に基づいて前記領域を設定することを特徴とする請求項1に記載のプロセス管理方法。 - 前記プロセスIDを格納する領域を計算機の記憶装置上に設定する処理は、
前記オペレーティングシステムの起動時に読み込む情報を指令し、この情報に基づいて前記領域を設定することを特徴とする請求項1に記載のプロセス管理方法。 - 前記プロセスIDを割り当てる処理は、
前記生成するプロセスに前記プロセスIDが指定されている場合には、前記第2のプロセスIDとして前記指定されたプロセスIDを当該プロセスに割り当てることを特徴とする請求項1に記載のプロセス管理方法。 - 前記プロセスIDを割り当てる処理は、
前記生成するプロセスが、予め設定したライブラリを参照している場合には、前記第2のプロセスIDを当該プロセスに割り当てることを特徴とする請求項1に記載のプロセス管理方法。 - 前記プロセスIDとして前記第2のプロセスIDが設定されたプロセスについて、予め設定されたタイミングで当該プロセスの実行状態を保存する処理をさらに含むことを特徴とする請求項1に記載のプロセス管理方法。
- 前記計算機は複数の計算機を含んで構成され、
前記保存された実行状態に基づいて、前記プロセスを再開する処理をさらに含み、
前記プロセスIDを割り当てる処理は、
前記保存された実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機を前記複数の計算機から検索する処理と、
前記実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機に、当該プロセスの実行を指令する処理と、
を含むことを特徴とする請求項9に記載のプロセス管理方法。 - 前記実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機に当該プロセスの実行を指令する処理は、
前記計算機で、前記実行状態に含まれるプロセスIDが使用中の場合には、当該プロセスの終了をまって、前記計算機に当該プロセスの実行を指令することを特徴とする請求項10に記載のプロセス管理方法。 - 前記実行状態に含まれるプロセスIDを、前記第2のプロセスIDに含む計算機に当該プロセスの実行を指令する処理は、
前記計算機で、前記実行状態に含まれるプロセスIDが使用中の場合には、当該プロセスの実行状態を保存して終了させ、前記計算機に当該プロセスの実行を指令することを特徴とする請求項10に記載のプロセス管理方法。 - 前記オペレーティングシステムの起動後に、前記プロセスIDを格納する領域の変更指令を受け付ける処理と、
前記受け付けた変更指定に基づいて、前記設定された第1の領域または第2の領域を変更する処理と、
をさらに含むことを特徴とする請求項1に記載のプロセス管理方法。 - 計算機上でオペレーティングシステムを実行し、前記オペレーティングシステム上で実行するプロセスにプロセスIDを割り当てるプログラムであって、
前記オペレーティングシステムの起動時に、前記プロセスIDを格納する領域を計算機の記憶装置上に設定する手順と、
前記領域を第1の領域と、第2の領域に分割する手順と、
前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する手順と、
前記オペレーティングシステムがプロセスを生成する際に、予め設定されたプロセスに対して前記第2の領域のプロセスIDを割り当て、他のプロセスに対しては前記第1の領域のプロセスIDを割り当てる手順と、
を計算機に実行させることを特徴とするプログラム。 - 前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する手順は、
予め設定した連続する値を、前記1の領域と第2の領域で分割し、前記第1のプロセスIDと前記第2のプロセスIDとをそれぞれ連続する値に設定することを特徴とする請求項14に記載のプログラム。 - 前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する手順は、
予め設定した連続する値について、前記第1のプロセスIDまたは前記第2のプロセスIDの一方を割り当てたことを特徴とする請求項14に記載のプログラム。 - 前記計算機は複数の計算機を含んで構成され、
前記第1の領域に第1のプロセスIDを設定し、前記第2の領域に第2のプロセスIDを設定する手順は、
前記第2のプロセスIDを、前記計算機毎に予め割り当てることを特徴とする請求項14に記載のプログラム。 - 前記プロセスIDを格納する領域を計算機の記憶装置上に設定する手順は、
前記オペレーティングシステムの起動時に引数を受け付けて、この引数に基づいて前記領域を設定することを特徴とする請求項14に記載のプログラム。 - 前記プロセスIDを格納する領域を計算機の記憶装置上に設定する手順は、
前記オペレーティングシステムの起動時に読み込む情報を受け付けて、この情報に基づいて前記領域を設定することを特徴とする請求項14に記載のプログラム。 - 前記プロセスIDを割り当てる手順は、
前記生成するプロセスに前記プロセスIDが指定されている場合には、前記第2のプロセスIDとして前記指定されたプロセスIDを当該プロセスに割り当てることを特徴とする請求項14に記載のプログラム。 - 前記プロセスIDを割り当てる手順は、
前記生成するプロセスが、予め設定したライブラリを参照している場合には、前記第2のプロセスIDを当該プロセスに割り当てることを特徴とする請求項14に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006222266A JP2008046889A (ja) | 2006-08-17 | 2006-08-17 | プロセス管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006222266A JP2008046889A (ja) | 2006-08-17 | 2006-08-17 | プロセス管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008046889A true JP2008046889A (ja) | 2008-02-28 |
Family
ID=39180576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006222266A Pending JP2008046889A (ja) | 2006-08-17 | 2006-08-17 | プロセス管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008046889A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009010855A1 (de) | 2008-02-27 | 2009-10-15 | Hoya Corp. | Fotomaskenrohling, Fotomaske und Verfahren zum Herstellen einer Fotomaske |
JP2011186606A (ja) * | 2010-03-05 | 2011-09-22 | Nec Corp | コンピュータシステム、およびそのチェックポイントリスタート方法 |
-
2006
- 2006-08-17 JP JP2006222266A patent/JP2008046889A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009010855A1 (de) | 2008-02-27 | 2009-10-15 | Hoya Corp. | Fotomaskenrohling, Fotomaske und Verfahren zum Herstellen einer Fotomaske |
JP2011186606A (ja) * | 2010-03-05 | 2011-09-22 | Nec Corp | コンピュータシステム、およびそのチェックポイントリスタート方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509680B2 (en) | Methods, systems and apparatus to perform a workflow in a software defined data center | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
JP5328177B2 (ja) | 情報処理装置、情報処理装置のデータ処理方法、記憶媒体及びプログラム | |
CN109995813B (zh) | 一种分区扩展方法、数据存储方法及装置 | |
CN110262893B (zh) | 配置镜像内存的方法、装置及计算机存储介质 | |
WO2011036707A1 (en) | Computer system for controlling backups using wide area network | |
CN111897558A (zh) | 容器集群管理系统Kubernetes升级方法和装置 | |
US20210089379A1 (en) | Computer system | |
JP2007133544A (ja) | 障害情報解析方法及びその実施装置 | |
US20220066786A1 (en) | Pre-scanned data for optimized boot | |
US7849264B2 (en) | Storage area management method for a storage system | |
CN112860787A (zh) | 分布式主从系统中主节点的切换方法、主节点设备和存储介质 | |
JP2007323657A (ja) | 過渡状態情報を格納するための方法、システムおよびコンピュータ・プログラム | |
JP2008046889A (ja) | プロセス管理方法 | |
JP2019149118A (ja) | 電子機器およびプログラム | |
JP2006164095A (ja) | ディスクシステム | |
CN109254870B (zh) | 数据备份的方法和装置 | |
US20170308684A1 (en) | System and method for information processing | |
JP2009265973A (ja) | データ同期システム、障害復旧方法、及び、プログラム | |
JP2003167752A (ja) | プログラム更新システム、プログラム更新方法、および、プログラム更新プログラム | |
JP3941597B2 (ja) | 論理区画式計算機システム | |
JP6146092B2 (ja) | 仮想化システム、仮想サーバ、仮想マシン制御方法、及び仮想マシン制御プログラム | |
CN114356214B (zh) | 一种针对kubernetes系统提供本地存储卷的方法及系统 | |
WO2016046951A1 (ja) | 計算機システム及びそのファイル管理方法 | |
JP4472498B2 (ja) | ディスクレスブートシステムのストレージ接続方法、そのシステム、そのための管理サーバ、ストレージ、およびプログラム |