JP3725318B2 - Process state management method, process management apparatus, and recording medium recording a program for performing the same - Google Patents

Process state management method, process management apparatus, and recording medium recording a program for performing the same Download PDF

Info

Publication number
JP3725318B2
JP3725318B2 JP01129498A JP1129498A JP3725318B2 JP 3725318 B2 JP3725318 B2 JP 3725318B2 JP 01129498 A JP01129498 A JP 01129498A JP 1129498 A JP1129498 A JP 1129498A JP 3725318 B2 JP3725318 B2 JP 3725318B2
Authority
JP
Japan
Prior art keywords
state
period information
period
group
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01129498A
Other languages
Japanese (ja)
Other versions
JPH10269095A (en
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP01129498A priority Critical patent/JP3725318B2/en
Publication of JPH10269095A publication Critical patent/JPH10269095A/en
Application granted granted Critical
Publication of JP3725318B2 publication Critical patent/JP3725318B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、プロセス状態の管理方法およびプロセス状態管理システムに関し、特に、あるプロセスから他のプロセスが生成される場合の、チェックポイントを用いたプロセス状態の管理用法及び該方法を実現するシステムに関する。
【0002】
【従来の技術】
従来から、計算機におけるプログラム実行の信頼性を向上させる方法として、チェックポイントに従ったプログラムの実行方法が知られている。これは、プログラムの実行に際し、所定のチェックポイント・タイミングに従ってプログラムの実行体であるプロセスの状態を定期・不定期に取得し、プログラムの実行中に障害が発生した場合には、直近のチェックポイントに取得したおけるプロセスの状態から当該プログラムを再実行するという方法である。ここで、チェックポイントとは、プログラムの実行を経時的に見た場合に、プロセスの状態を取得するための処理を行う時点をいうものとし、チェックポイント・タイミングとは、あるチェックポイントから次のチェックポイントまでの範囲をいうものとする。
【0003】
ところで、単独で動作するプロセスにおいては、そのプロセスの途中状態のみのチェックポイントで、プロセスの状態を取得すればよいが、複数のプログラムがプロセス間通信等の関係をもって動作するような場合においては、1つのプロセスについて、チェックポイントに従って当該プロセスの状態を取得するのみでは不十分である。すなわち、再実行した場合に矛盾が生じないようにするためには、チェックポイントごとに相互に関係がある複数のプロセスの状態を取得する必要がある。以下では、便宜上、各プロセスごとについてのチェックポイントをローカルチェックポインといい、相互に関係があるプロセスについてのローカルチェックポイントの集合を分散チェックポイントというものとする。
【0004】
上述のように、複数のプロセスがプロセス間通信等の関係をもって動作するような場合においては、これら相互に関係がある複数のプロセスの状態を一貫性が保たれるように(矛盾なく)取得しなければならない。この点につき、図を参照しつつ、さらに詳細に説明する。
【0005】
すなわち、図1は、分散チェックポイントの例を示す図である。同図(a)〜(c)は、3つのプロセスp1,p2,p3がそれぞれメッセージ送受信を行ないながら処理を進めている場合における3通りの分散チェックポイントCH1,CH2,CH3を示している。メッセージmは送信側の番号、受信側の番号を添字にもつ。
【0006】
同図(a)における分散チェックポイントCH1においては、ローカルチェックポイントch11,ch12,ch13に従って各プロセスの状態が取得された場合に、各メッセージに関して矛盾した状態がないため、直近のチェックポイントに戻り(ロールバック)再実行(リスタート)を行っても、正常にメッセージの送受信が行なわれる。しかしながら、同図(b)における分散チェックポイントCH2は、メッセージm32に注目すると、ローカルチェックチェックポイントch13ではp3はまだメッセージを送っていない状態であるにも関わらず、ローカルチェックポイントch12ではp2はメッセージを受けた状態にあることになる。そのため、いずれかのプロセスにおいて障害が発生することにより、分散チェックポイントCH1までロールバックし、再実行を行なった場合、m32に関して矛盾した状態になる。同様に、同図(c)における分散チェックポイントCH3に関しても、メッセージm23に関して矛盾した状態になる。
【0007】
従来、提案されている分散チェックポイントの一貫性を保証する方法は、メッセージ送受信を対象にしており、同期型チェックポイント生成方式と、非同期型チェックポイント生成方式がある。
【0008】
ところで、同期型チェックポイントに従ったプロセスの状態の取得方法として、"K.M. Chandy and L. Lamport: Distributed Snapshots:Determining Global States of Distributed Systems, ACM Trans. Computer Syst., Vol. 3, No. 1, pp. 63-75, Feb 1985" が知られている。この方法は上記の例と同様に、プロセス間通信としてメッセージ送受信を対象にしており、一貫性のある分散チェックポイントとは、未送信かつ受信済みのメッセージが存在しない状態であると定義している。未送信かつ受信済みのメッセージが存在する状態とは、上述した図1(b)の場合におけるメッセージm23が存在する状態である。
【0009】
また、CH3では、m23が失われることになるため、送信済みで未受信のメッセージは取得情報として保存する。より具体的なアルゴリズムとして、分散チェックポイントに従ったプロセス状態の保存時に、マーカと呼ばれるメッセージを送り合うことで矛盾を引き起こすメッセージを検出し、それらを保存することで全体として一慣性のある状態を構築し、プロセス状態の保存を行なう。
【0010】
また、一般的なオペレーティングシステムでは、新たなプロセスを生成するに際し、現在動作しているプロセスが自分と同じものを新たに生成するようなことが行われてる。例えば、UNIXにおける、forkシステムコールがそれに相当し、それを呼び出したプロセスと同じ内容のプロセスが生成される。forkシステムコールを呼び出したプロセスは親プロセスと呼ばれ、該親プロセスから新たに生成されたプロセスは子プロセスと呼ばれている。
【0011】
図2は、同期型チェックポイントにおける新たなプロセスを生成する場合のチェックポイントの例を示す図である。同図において、プロセスAは分散チェックポイントCP(n)、CP(n+1)を生成し、その間にプロセスBをforkシステムコールで生成している。このとき、CP(n+1)では、プロセスAは、プロセスBとは無関係であるため、チェックポイントは生成されない。その後、メッセージm1,m2により、プロセスA,Bは関係を持つことになる。すなわち、障害F1が発生した場合、プロセスAはCP(n+1)までロールバックして、リスタートすることになるが、プロセスBはチェックポイントを持っていないため、プロセスの状態が取得されず、正常にリスタートできないという問題点がある。
【0012】
【発明が解決しようとする課題】
複数のプロセスを対象にした分散チェックポイントであって、同期型チェックポイント方法においては、あるプロセスから他のプロセスが生成されるような場合に、プロセスの状態を相互に矛盾なく取得することができず、そのため、プログラムの実行中に障害等が発生して、再実行しなければならないような場合、正常に再実行することができないという問題点があった。
【0013】
本発明は、上記問題点に鑑みてなされたもので、同期型チェックポイント方法において、あるプロセスから他の新たなプロセスが生成されるような場合であってもプロセスの状態を相互に矛盾なく取得することができるプロセス状態の管理方法及びシステムを提供することを目的とする。
【0014】
【課題を解決するための手段】
本発明は、計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理するプロセス管理部のプロセス状態の管理方法であって、前記プロセス管理部は、前記要求を受け取ると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断し、この判断によってあると判断された場合に、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう更新されるまで、前記第1のプロセスへ前記応答を遅延して通知し、前記プロセス管理部は、それぞれのプロセス状態の取得の開始を示す指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断し、この判断によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう更新されるまで、前記プロセス群のそれぞれへ前記指示を遅延して通知するようにした。
また、本発明は、計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理する第1手段と、前記第1のプロセスから、前記第1のプロセスと同じ第2のプロセスの生成を開始したい旨を示す要求を受け、この要求を許可する応答を前記第1のプロセスへ通知する第2手段と、前記プロセス群のプロセス状態の取得の開始の指示を受け、前記プロセス群へ前記プロセス群のプロセス状態の取得を指示する第3手段とを備えるプロセス管理部のプロセス状態の管理方法であって、前記第2手段は、前記要求を受けると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断し、この判断によってあると判断された場合には、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう前記第1手段で更新された後に、前記第1のプロセスへ前記応答を通知するようにし、前記第3手段は、前記指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断し、この判断によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう前記第1手段で更新された後に、前記プロセス群のそれぞれへ前記指示を通知するようにした。
また、本発明は、計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理するプロセス管理装置であって、前記要求を受け取ると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断する第1判断手段と、前記第1判断手段によってあると判断された場合に、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう更新されるまで、前記第1のプロセスへ前 記応答を遅延して通知する第1通知手段と、それぞれのプロセス状態の取得の開始を示す指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断する第2判断手段と、前記第2判断手段によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう更新されるまで、前記プロセス群のそれぞれへ前記指示を遅延して通知する第2通知手段とを備えた。
また、本発明は、計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理する第1手段と、前記第1のプロセスから、前記第1のプロセスと同じ第2のプロセスの生成を開始したい旨を示す要求を受け、この要求を許可する応答を前記第1のプロセスへ通知する第2手段と、前記プロセス群のプロセス状態の取得の開始の指示を受け、前記プロセス群へ前記プロセス群のプロセス状態の取得を指示する第3手段と、前記要求を受けると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断する第1判断手段と、前記第1判断手段によってあると判断された場合には、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう前記第1手段で更新された後に、前記第1のプロセスへ前記応答を通知する第1通知手段と、前記指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断する第2判断手段と、前記第2判断手段によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう前記第1手段で更新された後に、前記プロセス群のそれぞれへ前記指示を通知する第2通知手段とを備えた。
また、本発明は、計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理する、コンピュータに実行させるプログラムを記憶した記憶媒体であって、前記要求を受け取ると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断させ、この判断によってあると判断された場合に、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう更新されるまで、前記第1のプロセスへ前記応答を遅延し通知させる第1プログラムコードと、それぞれのプロセス状態の取得の開始を示す指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断させ、この判断によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう更新されるまで、前記プロセス群のそれぞれへ前記指示を遅延し通知させる第2プログラムコードとを備えた。
また、本発明のコンピュータに実行させるプログラムを記憶した記憶媒体は、計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であ るか否かを示す第2期間情報を更新管理させる第1プログラムコードと、前記第1のプロセスから、前記第1のプロセスと同じ第2のプロセスの生成を開始したい旨を示す要求を受け、この要求を許可する応答を前記第1のプロセスへ通知させる第2プログラムコードと、前記プロセス群のプロセス状態の取得の開始の指示を受け、前記プロセス群へ前記プロセス群のプロセス状態の取得を指示させる第3プログラムコードと、前記要求を受けると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断させる第4プログラムコードと、前記第4プログラムコードによってあると判断された場合には、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう前記第1手段で更新された後に、前記第1のプロセスへ前記応答を通知させる第5プログラムコードと、前記指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断させる第6プログラムコードと、前記第6プログラムコードによってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう前記第1手段で更新された後に、前記プロセス群のそれぞれへ前記指示を通知させる第7プログラムコードとを備えた。
【0015】
本発明によれば、同期型チェックポイントに従ったプロセス状態の取得をするに際し、新たなプロセスが生成されるような場合にも、分散チェックポイントに従ったプロセス状態の取得(生成、保存)が矛盾なく行うことができるようになる。
【0030】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照しつつ、説明する。
図3は、本発明に係るチェックポイントを用いたプロセス状態の管理方法およびプロセス状態管理システムを実現するハードウェアの概略構成を示す図である。本発明の実施の形態においては、計算機上でプログラムが実行される際の実行体をプロセスと呼ぶこととする。同図において、計算機1a,1b,1cは、プログラムからプロセスを生成し、該プロセスを実行する。また、計算機1a,1b,1cは、通信路2を介して相互に接続されている。
【0031】
図4は、本発明に係るプロセス状態の管理方法等を実現するためのプログラムを説明するための概念図である。同図(a)に示すように、本発明に係るプロセス状態の管理方法は、アプリケーションプログラムとオペレーティングシステムとの間に実現したり、同図(b)に示すように、アプリケーションの一部としてまたはオペレーティングシステムの一部として実現してもよい。さらに、図示はしていないが、独立に存在する必要はなく、アプリケーションの包含され、またはオペレーティングシステムに包含されていてもよく、特にこだわるものではない。
【0032】
このように、本発明は、計算機(コンピュータ)によって実現され、後述する本発明の各機能は、プログラムが実行されることにより、実現することができる。
【0033】
図5は、プロセス間通信及びプロセスの生成を説明するための概念図である。同図において、プロセスPは、あるプログラムのコンピュータ上における実行体として把握することができる。このプロセスは1つの計算機内の他のプロセスと通信し、または2以上の計算機間のプロセス同士が通信を行いながら、実行される。また、プロセスは、他のプロセスを新たに生成することもできる。これは、例えば、UNIXでいうforkシステムコール等によって、実現することができる。このようなプロセス群は、例えば、オペレーティングシステムやプロセスを管理するプロセスによって管理される。
【0034】
図6は、本発明に係るチェックポイントを用いたプロセス状態の管理方法を実現するシステムの概略構成を示す図である。プロセス管理部61は、各プロセスごとのローカルチェックポイントに従ったプロセス状態の保存を指示するプロセス状態チェックポイント指示部611を有する。また、プロセス管理部61は、相互に関係があるプロセス群(プロセスグループ)を管理するためのプロセス管理テーブル612を有する。図7は、プロセス管理テーブル612の構成の一例を示す図である。同図に示すように、プロセス管理テーブル612は、グループIDフィールド71、プロセス名フィールド72、fork情報フィールド73及びCPフィールド74を有する。グループIDフィールドには、相互に関係があるプロセスを、例えば、ID番号等により管理するためのものである。プロセス名フィールド72には、あるグループに所属するプロセスのプロセス名が登録される。また、fork情報フィールドは、さらに親プロセスIDフィールドと子プロセスIDフィールドを有し、それぞれfork処理を行う親プロセスとそれによって生成された子プロセスのプロセスIDが登録される。さらに、CPフラグフィールド74には、そのグループに所属するプロセス群がチェックポイントに従ってプロセス状態を保存中か否かを示すための値が登録される。
【0035】
図6に戻り、各プロセス62は、ローカルチェックポイントに従ってプロセス状態の保存を行うプロセス状態保存部621及び新たなプロセスを生成するための制御を行うfork制御部622を有する。
【0036】
以上のようなチェックポイントを用いたプロセス状態の管理方法を機能実現手段の観点から把握すると以下のようになる。
すなわち、図8は、本発明に係るプロセス状態の管理方法を実現するシステムの機能ブロック図である。
【0037】
同図において、プログラム実行部81は、アプリケーションプログラムをプロセスとして実行する。このプログラム実行部81は、プログラムの実行形式を問わず、コンパイラ実行、インタプリタ実行またはその他の実行形式であってもかまわない。プログラム実行部61がアプリケーションプログラムを実行している間、fork実行監視部82は、fork関数によりシステムコールが呼び出されようとしているか否かを監視する。このfork実行監視部82は、forkシステムコールが呼び出されるべきことを検出すると、その旨をfork管理部83に通知する。fork管理部83は、親プロセスまたは子プロセスにより動作が異なる。ここで、親プロセスとは、新たなプロセスを生成したプロセスをいい、子プロセスとは、親プロセスから生成されたプロセスをいう。fork管理部83は、forkシステムコールが呼び出される前においては、呼び出したプロセス(親プロセス)のプロセスIDをプロセス状態取得指示部84に通知する。また、forkシステムコールを呼び出した後においては、親プロセスのfork管理部83は、生成された子プロセスのプロセスIDをプロセス状態取得指示部84に通知し、子プロセスのfork管理部83は、自己のプロセスIDをプロセス状態取得指示部84に通知する。
【0038】
チェックポイントタイミング決定部85は、実行中のプロセスの状態を保存するためのタイミング(チェックポイント・タイミング)を決定するためのものである。チェックポイントタイミング決定部85は、例えば、他のプロセスまたはオペレーティングシステムにより管理されるタイマに基づいて、定期・不定期にチェックポイントを決定する。チェックポイントタイミング決定部85は、チェックポイントであると判断した場合には、プロセス状態を保存するため、プロセス状態取得指示部84にその旨通知する。
【0039】
プロセス状態取得指示部84は、fork管理部83からの通知により、またはチェックポイントタイミング決定部85からの通知により、プロセス状態を保存するようにプロセス状態取得部86に指示を行うために、プロセス管理テーブル87を参照し、必要ならばプロセス管理テーブル87に所定の情報を登録する。
【0040】
プロセス状態取得部87は、プロセス状態取得指示部84の指示に従い、必要ならばプログラム実行部81から情報を取り込んで、プロセスごとのプロセス状態を生成し、これをプロセス状態記憶部88に記憶する。
【0041】
以上のように構成された本発明に係るシステムは、以下のように動作する。
図9は、fork制御部の動作処理を説明するための図である。
新たにプロセスを生成するプロセス(親プロセス)のfork実行監視部82は、forkシステムコールが呼び出されることを検出すると、fork管理部83にその旨通知する。fork管理部83は、forkシステムコールが呼び出される前に、プロセス状態取得指示部84に自分のプロセスIDを通知し(ST901)、プロセス状態取得指示部84からの応答を待機する(ST902)。そして、プロセス状態取得指示部84による後述する所定の動作処理を行うことによって応答が返ってきた場合には、fork管理部83はforkシステムコールを実行する(ST903)。
【0042】
fork管理部83は、forkシステムコールの実行後、親プロセスと子プロセスの双方に分かれて処理を続けることとなる(ST904)。親プロセスにおけるfork管理部83は、生成された子プロセスのプロセスIDをプロセス状態取得指示部84に通知し(ST905)、該プロセス状態取得指示部84からの応答を待機する(ST907)。一方、子プロセスのfork管理部83は、自己のプロセスIDをプロセス状態取得指示部84に通知し(ST906)、応答を待機する(ST907)。以上がfork制御部における動作処理である。
【0043】
次にプロセス状態取得指示部84の動作処理について説明する。
図10は、プロセス生成時におけるプロセス状態取得指示部84の動作処理を説明するための図である。
【0044】
上述のようにfork管理部83は、forkシステムコールが呼び出される前に、プロセス状態取得指示部84に自分のプロセスIDを通知し、プロセス状態取得指示部84からの応答を待機する。そして、プロセス状態取得指示部84は、すでにそのプロセスの属するグループのfork情報フィールドに所定の情報(プロセスID)が登録されているか否かを判断し(ST1001)、登録されていると判断した場合には、fork情報がクリアされるのを待機する(ST1002)。また、fork情報フィールドに登録されていない場合や、fork情報フィールドがクリアされた場合には、当該プロセスが所属するグループのCPフラグフィールドを調べ、CPフラグがセットされているか否かを判断する(ST1003)。そして、プロセス状態取得指示部84は、CPフラグがセットされていると判断した場合には、それがクリアされるまで待機する(ST1004)。その後、プロセス状態取得指示部84は、当該グループのfork情報の親プロセスIDフィールドに、fork管理部83から通知されたプロセスIDを登録して応答を返す(ST1005)。一方、CPフラグがセットされていない場合は、待機することなくグループのfork情報の親プロセスIDフィールドに、通知されたプロセスIDを登録し、応答を返す(ST1005)。
【0045】
図11は、親プロセスのfork管理部83が子プロセスのプロセスIDをプロセス状態取得指示部84に通知した場合の動作処理を説明するための図である。
上述のようにfork管理部83は、forkシステムコールの実行後、親プロセスと子プロセスの双方に分かれて処理を続けることとなる。親プロセスにおけるfork管理部83は、生成された子プロセスのプロセスIDをプロセス状態取得指示部84に通知し、該プロセス状態取得指示部84からの応答を待機する。
【0046】
プロセス状態取得指示部84は、当該プロセスが所属するグループのfork情報の子プロセスIDフィールドに、通知されたプロセスIDを登録し(ST1101)、さらに親プロセスが所属するグループと同一のグループのプロセス名フィールドに子プロセスのプロセスIDを登録し(ST1102)、応答を返す(ST1103)。
【0047】
図12は、子プロセスのfork管理部83が自己のプロセスIDをプロセス状態取得指示部84に通知した場合の動作処理を説明するための図である。
上述のように子プロセスのfork管理部83は、自己のプロセスIDをプロセス状態取得指示部84に通知し、応答を待機する。プロセス状態取得指示部84は、通知されたプロセスIDが当該グループのfork情報フィールドの子プロセスIDフィールドに登録されているか否かを判断する(ST1201)。これは、プロセスの並行動作に基づく挙動の非決定性ゆえ、親プロセスによる子プロセスのプロセスIDの通知よりも前に、子プロセスが自己のプロセスIDを通知する場合があるためである。ST1201において、登録されていないと判断した場合には、フィールドの内容が一致するまで、すなわち、登録されるまで待機し(ST1202)、以降の処理を行う。一方、登録されていると判断した場合には、そのfork情報をクリアし、応答を返す(ST1203)。
【0048】
図13は、プロセス状態取得指示部84の動作処理を説明するための図である。また、図14は、各プロセスのプロセス状態取得部87の動作処理を説明するための図である。
【0049】
プロセス状態取得指示部84は、あるプロセスグループのチェックポイントにおけるプロセス状態の取得に際し、そのグループのCPフラグをセットする(図13のST1301)。その後、グループのfork情報フィールドを調べ、そのfork情報がセットされているか否かを判断する(ST1302)。プロセス状態取得指示部84は、そのfork情報がセットされていると判断した場合には、そのfork情報がクリアされるのを待機する(ST1303)。一方、fork情報がセットされていないと判断した場合には、チェックポイントにおけるプロセス状態の生成処理を継続する。すなわち、各プロセスのプロセス状態取得部87にチェックポイントにおけるプロセス状態の取得を指示し(ST1304)、各プロセスのチェックポイントにおけるプロセス状態の取得が終了することを待機する(ST1305)。プロセス状態の取得指示があるまで待機していた各プロセスのプロセス状態取得部87は、該取得指示を受けて、チェックポイントにおけるプロセス状態を生成、保存し(図14のST1401,ST1402)、応答を返す(ST1403)。プロセス状態取得指示部84は、各プロセスのチェックポイントにおけるプロセス状態の取得が終了した後、当該グループのCPフラグをクリアする(図13のST1306)。
【0050】
図15は、本発明に係るプロセス状態の管理方法における一連の動作処理を説明するための図である。
同図(a)は、プロセスの生成要求が先に発生し、その後、チェックポイントにおけるプロセス状態の取得が行われた場合の状態を示す図であり、同図(b)は、チェックポイントにおけるプロセス状態の取得が先に行われ、その後、プロセスの生成要求が発生した場合の状態を示す図である。
【0051】
まず、同図(a)において、fork処理が開始されると、最初の親プロセスからのfork情報の通知により、チェックポイントタイミング決定部により通知されたチェックポイント(CP)におけるプロセス状態の生成は、該fork処理が終了するまで遅延されることとなる。すなわち、親(となる)プロセスにおいてfork実行に基づく一連の処理が開始されると(図中A点、以下同じ。)、親プロセスが自己のプロセスIDをプロセス管理部に通知し(B)、プロセス管理部からの応答があるまで待機する。プロセス管理部は、所定の処理を経て親プロセスに応答を返し(C)、親プロセスは、該応答によってforkシステムコールを実行する(D)。
【0052】
親プロセスによるforkシステムコールを実行後、親プロセスは、生成された子プロセスのプロセスIDをプロセス管理部に通知し(E)、登録された旨の応答を受ける(F)。一方、子プロセスは、自己のプロセスIDをプロセス管理部に通知し(G)、fork情報フィールドの内容がクリアされた旨の応答を受ける(H)。以上のforkシステムコールに基づく一連の処理が終了した後、プロセス管理部は、各プロセスにプロセス状態の取得を指示する(I1,I2)。取得指示を受けた各プロセスは、自己のプロセス状態を取得し、終了した旨をプロセス管理部に通知する(J1,J2)。
【0053】
これにより、新たなプロセスが生成される間は、プロセス状態の取得のためのチェックポイントであると決定されても、該プロセス生成が完了するまで遅延されることとなり、分散チェックポイントに従ったプロセス状態の取得を矛盾なく行うことができるようになる。
【0054】
一方、同図(b)において、チェックポイントタイミング決定部85によりチェックポイントであると決定され(A)、CPフラグはONとなる(C)。その後、プロセスの生成要求が発生したとする(B)。従って、親プロセスが自己のプロセスIDを通知しても(D)、チェックポイントにおけるプロセス状態の取得指示が通知され(E)、チェックポイントにおける一連の処理が終了した旨の通知(F)があるまで、登録された旨の応答は返されないこととなる(G)。そして、該応答を受けた後に、forkシステムコールが実行され、子プロセスが生成されることとなる(H)。
【0055】
これにより、チェックポイントに従ったプロセス状態の取得中は、新たなプロセスの生成は、該一連のチェックポイントに基づく処理が終了するまで遅延されるので、新たなプロセス生成を行うような場合にも分散チェックポイントに従ったプロセス状態の取得を矛盾なく行うことができるようになる。
【0056】
なお、本発明は、親プロセスから他のプロセスが生成され、さらに当該他のプロセスから子プロセスが生成される場合においても、同様に、矛盾なくプロセス状態の取得を行うことができる。
また、本発明は、複数の親プロセスのそれぞれから複数の子プロセスが生成される倍においても、同様に実現可能である(図16)。
【0057】
【発明の効果】
本発明によれば、同期型チェックポイントに従ったプロセス状態の取得をするに際し、新たなプロセスが生成されるような場合にも、分散チェックポイントに従ったプロセス状態の取得(生成、保存)が矛盾なく行うことができるようになる。
【図面の簡単な説明】
【図1】 分散チェックポイントの例を示す図。
【図2】 同期型チェックポイントにおける新たなプロセスを生成する場合のチェックポイントの例を示す図。
【図3】 本発明に係るプロセス状態の管理方法等を実現するハードウェアの概略構成を示す図。
【図4】 本発明に係るプロセス状態の管理方法等を実現するためのプログラムを説明するための概念図。
【図5】 プロセス間通信及びプロセスの生成を説明するための概念図。
【図6】 本発明に係るプロセス状態の管理方法を実現するシステムの概略構成を示す図。
【図7】 プロセス管理テーブルの構成の一例を示す図。
【図8】 本発明に係るプロセス状態の管理方法を実現するシステムの機能ブロック図。
【図9】 fork制御部の動作処理を説明するための図。
【図10】 プロセス生成時におけるプロセス状態取得指示部の動作処理を説明するための図。
【図11】 親プロセスのfork管理部がfork情報をプロセス状態取得指示部に通知した場合の動作処理を説明するための図。
【図12】 子プロセスのfork管理部がfork情報をプロセス状態取得指示部に通知した場合の動作処理を説明するための図。
【図13】 プロセス状態取得指示部の動作処理を説明するための図。
【図14】 各プロセスのプロセス状態取得部の動作処理を説明するための図
【図15】 本発明に係るプロセス状態の管理方法における一連の動作処理を説明するための図。
【図16】 本発明に係るプロセス状態の管理方法における一連の動作処理を説明するための図。
【符号の説明】
1…計算機
2…通信路
61…プロセス管理部
611,84…プロセス状態取得指示部
612,86…プロセス管理テーブル
62…プロセス
621,87…プロセス状態取得部
622…fork制御部
81…プログラム実行部
82…fork実行監視部
83…fork管理部
85…チェックポイントタイミング決定部
88…プロセス状態記憶部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a process state management method and a process state management system, and more particularly to a process state management method using checkpoints and a system for realizing the method when another process is generated from a certain process.
[0002]
[Prior art]
Conventionally, a program execution method according to checkpoints is known as a method for improving the reliability of program execution in a computer. This is because when the program is executed, the status of the process that is the execution body of the program is acquired periodically or irregularly according to the specified checkpoint timing, and if a failure occurs during the execution of the program, the most recent checkpoint This method re-executes the program from the process state acquired in step (b). Here, the checkpoint refers to the point in time when the execution of the program is viewed over time, and the process for obtaining the process status is performed. It shall mean the range up to the checkpoint.
[0003]
By the way, in a process that operates independently, it is only necessary to obtain the process status at a checkpoint only in the middle of the process, but in the case where a plurality of programs operate with a relationship such as inter-process communication, For a single process, it is not sufficient to simply obtain the process status according to the checkpoint. That is, in order to avoid inconsistencies when re-executed, it is necessary to acquire the states of a plurality of processes that are mutually related for each checkpoint. Hereinafter, for convenience, a checkpoint for each process is referred to as a local checkpoint, and a set of local checkpoints for processes that are related to each other is referred to as a distributed checkpoint.
[0004]
As described above, in the case where multiple processes operate with relationships such as inter-process communication, the statuses of these multiple processes that are related to each other are acquired so as to maintain consistency (consistently). There must be. This point will be described in more detail with reference to the drawings.
[0005]
That is, FIG. 1 is a diagram illustrating an example of distributed checkpoints. FIGS. 9A to 9C show three distributed checkpoints CH1, CH2, and CH3 when the three processes p1, p2, and p3 are performing processing while transmitting and receiving messages, respectively. The message m has a sender number and a receiver number as subscripts.
[0006]
In the distributed checkpoint CH1 in FIG. 5A, when the status of each process is acquired according to the local checkpoints ch11, ch12, and ch13, there is no inconsistent state with respect to each message, so the process returns to the most recent checkpoint ( (Rollback) Even if re-execution (restart) is performed, messages are normally transmitted and received. However, when the distributed checkpoint CH2 in FIG. 5B pays attention to the message m32, p2 is a message at the local checkpoint ch12 even though p3 has not yet sent a message at the local checkpoint ch13. Will be in a state of receiving. For this reason, when a failure occurs in any of the processes, when the rollback is performed up to the distributed checkpoint CH1 and re-execution is performed, an inconsistent state occurs regarding m32. Similarly, the distributed checkpoint CH3 in FIG. 5C is also in an inconsistent state with respect to the message m23.
[0007]
Conventionally proposed methods for guaranteeing consistency of distributed checkpoints are for message transmission / reception, and there are a synchronous checkpoint generation method and an asynchronous checkpoint generation method.
[0008]
By the way, as a method of acquiring the process state according to the synchronous checkpoint, “KM Chandy and L. Lamport: Distributed Snapshots: Determining Global States of Distributed Systems, ACM Trans. Computer Syst., Vol. 3, No. 1, pp. 63-75, Feb 1985 "is known. Similar to the above example, this method targets message transmission / reception as inter-process communication, and a consistent distributed checkpoint is defined as a state in which there are no unsent and received messages. . The state where there is an unsent and received message is a state where the message m23 in the case of FIG.
[0009]
In CH3, since m23 is lost, a message that has been transmitted but not received is stored as acquired information. As a more specific algorithm, when storing process states according to distributed checkpoints, messages that cause inconsistencies are detected by sending messages called markers, and by storing them, the overall state of inertia can be obtained. Build and save process state.
[0010]
In a general operating system, when a new process is generated, a process that is currently operating newly generates the same process as itself. For example, a fork system call in UNIX corresponds to this, and a process having the same content as the process that invoked it is generated. A process that calls a fork system call is called a parent process, and a process newly generated from the parent process is called a child process.
[0011]
FIG. 2 is a diagram illustrating an example of checkpoints when a new process is generated in a synchronous checkpoint. In the figure, process A generates distributed checkpoints CP (n) and CP (n + 1), while process B is generated by a fork system call. At this time, in CP (n + 1), since the process A is irrelevant to the process B, no checkpoint is generated. Thereafter, the processes A and B are related by the messages m1 and m2. That is, when the failure F1 occurs, the process A rolls back to CP (n + 1) and restarts. However, since the process B does not have a checkpoint, the process status is not acquired and is normal. There is a problem that cannot be restarted.
[0012]
[Problems to be solved by the invention]
A distributed checkpoint for multiple processes. In the synchronous checkpoint method, when another process is generated from one process, the process status can be obtained without contradiction. For this reason, there has been a problem that when a failure or the like occurs during execution of the program and the program must be re-executed, it cannot be re-executed normally.
[0013]
The present invention has been made in view of the above problems, and in the synchronous checkpoint method, even when another new process is generated from a process, the process states are acquired without contradiction. It is an object of the present invention to provide a process state management method and system that can be used.
[0014]
[Means for Solving the Problems]
The present invention makes a request indicating that it is desired to start generation of a second process having the same contents as the first process, which is an execution body when a program is executed on a computer. A process group including the first process having a function of generating the second process in response to a response indicating permission for the request, and another process having an interrelation with the first process, First period information indicating whether or not a process state is being acquired, and a period during which the first process is generating a second process having the same content as the first process A process state management method of a process management unit that updates and manages second period information indicating whether or not there is a process state, the process management unit, upon receiving the request, based on the first period information, A period in which the first period information acquires the process state of the process group when it is determined whether or not the process state of the process group is acquired. The response is delayed and notified to the first process until it is updated to indicate that the process is not in progress, and when the process management unit receives an instruction indicating the start of acquisition of each process state, the second process Based on the period information, it is determined whether or not it is during the generation period of the second process, and if it is determined by this determination, the second period information is the second process information. The instruction is delayed and notified to each of the process groups until it is updated to indicate that the process is not being generated.
The present invention also provides a request indicating that it is desired to start generation of a second process having the same content as the first process, which is a first process that is an execution body when a program is executed on a computer. And a process group including the first process having a function of generating the second process in response to a response indicating permission for the request and another process having an interrelation with the first process First period information indicating whether or not the process state is being acquired, and a period during which the first process generates a second process having the same content as the first process. A first means for updating and managing the second period information indicating whether or not the second process information is received, and a request indicating that generation of the same second process as the first process is to be started is received from the first process. , This request Second means for notifying the first process of an acceptable response, and third means for receiving an instruction to start acquisition of the process state of the process group and instructing the process group to acquire the process state of the process group A process management unit comprising: a process management unit, wherein the second means receives the request and acquires the process state of the process group based on the first period information. If it is determined by this determination, the first means indicates that the first period information is not in a period for acquiring the process state of the process group. After the update, the first process is notified of the response, and when the third means receives the instruction, the third means generates the second process based on the second period information. The second period information is not in the period in which the second process is being generated, if it is determined that the determination is based on the determination. After the update by the first means, the instruction is notified to each of the process groups.
The present invention also provides a request indicating that it is desired to start generation of a second process having the same content as the first process, which is a first process that is an execution body when a program is executed on a computer. And a process group including the first process having a function of generating the second process in response to a response indicating permission for the request and another process having an interrelation with the first process First period information indicating whether or not the process state is being acquired, and a period during which the first process generates a second process having the same content as the first process. A process management apparatus that updates and manages second period information indicating whether or not the process is in progress, and the period during which the process state of the process group is acquired based on the first period information when the request is received A first determination means for determining whether or not the first determination information is determined by the first determination means that the first period information is not in a period for acquiring the process state of the process group. Previous to the first process until updated as shown A period during which the second process is generated based on the second period information when receiving a first notification means for delaying the response and an instruction indicating the start of acquisition of each process state If it is determined by the second determination means that determines whether the second process is in progress or the second determination means, the second period information is not during the generation of the second process. And a second notification means for delaying and notifying the instruction to each of the process groups until updated.
The present invention also provides a request indicating that it is desired to start generation of a second process having the same content as the first process, which is a first process that is an execution body when a program is executed on a computer. And a process group including the first process having a function of generating the second process in response to a response indicating permission for the request and another process having an interrelation with the first process First period information indicating whether or not the process state is being acquired, and a period during which the first process generates a second process having the same content as the first process. A first means for updating and managing the second period information indicating whether or not the second process information is received, and a request indicating that generation of the same second process as the first process is to be started is received from the first process. , This request Second means for notifying the first process of an acceptable response, and third means for receiving an instruction to start acquisition of the process state of the process group and instructing the process group to acquire the process state of the process group And receiving the request, based on the first period information, a first determination unit that determines whether or not the process state of the process group is being acquired, and the first determination unit If it is determined that there is, the first period information is updated by the first means to indicate that the process state of the process group is not being acquired, and then the first process is performed. A first notifying unit for notifying a response; and a second determining unit for determining whether or not the second process is being generated based on the second period information when receiving the instruction. And said 2 If the second determination unit determines that the second period information is not in a period during which the second process is being generated, the process group is updated after the first unit is updated to indicate that the second process information is not generated. Second notification means for notifying each of the instructions.
The present invention also provides a request indicating that it is desired to start generation of a second process having the same content as the first process, which is a first process that is an execution body when a program is executed on a computer. And a process group including the first process having a function of generating the second process in response to a response indicating permission for the request and another process having an interrelation with the first process First period information indicating whether or not the process state is being acquired, and a period during which the first process generates a second process having the same content as the first process. A storage medium storing a program to be executed by a computer for updating and managing the second period information indicating whether or not the program is in progress. When the request is received, the program is executed based on the first period information. A period in which the first period information acquires the process state of the process group when it is determined whether or not the process state of the process group is being acquired. When the first program code for delaying and notifying the response to the first process and an instruction indicating the start of acquisition of each process state are received until the first process is updated to indicate that it is not, the second period information Based on the second process, it is determined whether or not it is during the generation period of the second process, and if it is determined by this determination, the second period information is stored in the second process. Second program code for delaying and informing each of the process groups of the instruction until it is updated to indicate that it is not in the generation period.
The storage medium storing the program to be executed by the computer of the present invention is a first process that is an execution body when the program is executed on the computer, and is a second process having the same contents as the first process. The first process and the first process each having a function of generating a second process in response to a request indicating that it is desired to start generation of the process and receiving a response indicating permission for the request. First period information indicating whether or not the process state of a process group including other processes having a relationship is being acquired, and the first process has the same content as the first process During the period of generation of the second process Receiving a request indicating that it is desired to start generation of the same second process as the first process from the first program code for updating and managing the second period information indicating whether or not The second program code for notifying the first process of a response permitting the request and an instruction to start acquisition of the process state of the process group are received, and the process group is instructed to acquire the process state of the process group A third program code that, when receiving the request, a fourth program code that determines whether or not the process state of the process group is being acquired based on the first period information; If it is determined by the fourth program code, it indicates that the first period information is not in the period for acquiring the process state of the process group. After being updated by the first means, the fifth program code for notifying the response to the first process and the generation of the second process based on the second period information upon receiving the instruction If it is determined by the sixth program code and the sixth program code whether or not the period is being performed, the second period information generates the second process. And a seventh program code for notifying each of the process groups of the instruction after being updated by the first means so as to indicate that the process is not in progress.
[0015]
According to the present invention, when a process state is acquired according to a synchronous checkpoint, even when a new process is generated, process state acquisition (generation and storage) according to a distributed checkpoint is performed. Can be done without contradiction.
[0030]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 3 is a diagram showing a schematic configuration of hardware for realizing a process state management method and a process state management system using checkpoints according to the present invention. In the embodiment of the present invention, an execution body when a program is executed on a computer is referred to as a process. In the figure, computers 1a, 1b, and 1c generate a process from a program and execute the process. The computers 1a, 1b, and 1c are connected to each other via the communication path 2.
[0031]
FIG. 4 is a conceptual diagram for explaining a program for realizing a process state management method and the like according to the present invention. As shown in FIG. 5A, the process state management method according to the present invention is realized between an application program and an operating system, or as shown in FIG. It may be realized as part of the operating system. Further, although not shown, it does not have to exist independently, and may be included in an application or an operating system, and is not particularly limited.
[0032]
Thus, the present invention is realized by a computer (computer), and each function of the present invention to be described later can be realized by executing a program.
[0033]
FIG. 5 is a conceptual diagram for explaining inter-process communication and process generation. In the figure, a process P can be grasped as an execution body on a computer of a certain program. This process is executed while communicating with other processes in one computer, or processes between two or more computers communicating with each other. In addition, a process can newly generate another process. This can be realized by, for example, a fork system call in UNIX. Such a process group is managed, for example, by a process that manages an operating system and a process.
[0034]
FIG. 6 is a diagram showing a schematic configuration of a system for realizing a process state management method using checkpoints according to the present invention. The process management unit 61 includes a process state checkpoint instruction unit 611 that instructs to save a process state according to a local checkpoint for each process. Further, the process management unit 61 has a process management table 612 for managing process groups (process groups) that are related to each other. FIG. 7 is a diagram illustrating an example of the configuration of the process management table 612. As shown in the figure, the process management table 612 has a group ID field 71, a process name field 72, a fork information field 73 and a CP field 74. The group ID field is used to manage processes that are related to each other, for example, using an ID number or the like. In the process name field 72, process names of processes belonging to a certain group are registered. Further, the fork information field further includes a parent process ID field and a child process ID field, in which the parent process performing the fork process and the process ID of the child process generated thereby are registered. Further, in the CP flag field 74, a value for indicating whether or not the process group belonging to the group is saving the process state according to the checkpoint is registered.
[0035]
Returning to FIG. 6, each process 62 includes a process state storage unit 621 that stores a process state according to a local checkpoint, and a fork control unit 622 that performs control for generating a new process.
[0036]
The process state management method using the check points as described above is as follows from the viewpoint of the function realization means.
That is, FIG. 8 is a functional block diagram of a system that realizes the process state management method according to the present invention.
[0037]
In the figure, a program execution unit 81 executes an application program as a process. The program execution unit 81 may be a compiler execution, interpreter execution, or other execution format regardless of the execution format of the program. While the program execution unit 61 is executing the application program, the fork execution monitoring unit 82 monitors whether or not a system call is about to be called by the fork function. When the fork execution monitoring unit 82 detects that the fork system call is to be called, the fork execution monitoring unit 82 notifies the fork management unit 83 accordingly. The fork management unit 83 operates differently depending on the parent process or the child process. Here, the parent process refers to a process that has generated a new process, and the child process refers to a process generated from the parent process. The fork management unit 83 notifies the process state acquisition instructing unit 84 of the process ID of the called process (parent process) before the fork system call is called. After calling the fork system call, the fork management unit 83 of the parent process notifies the process ID of the generated child process to the process state acquisition instruction unit 84, and the fork management unit 83 of the child process Is sent to the process state acquisition instructing unit 84.
[0038]
The checkpoint timing determination unit 85 is for determining the timing (checkpoint timing) for saving the state of the process being executed. The checkpoint timing determination unit 85 determines checkpoints regularly or irregularly based on, for example, a timer managed by another process or operating system. If the check point timing determination unit 85 determines that the check point is a check point, the check point timing determination unit 85 notifies the process state acquisition instructing unit 84 to save the process state.
[0039]
The process state acquisition instructing unit 84 receives a process management in order to instruct the process state acquisition unit 86 to save the process state by a notification from the fork management unit 83 or a notification from the checkpoint timing determination unit 85. The table 87 is referenced, and predetermined information is registered in the process management table 87 if necessary.
[0040]
The process state acquisition unit 87 takes in information from the program execution unit 81 if necessary in accordance with an instruction from the process state acquisition instruction unit 84, generates a process state for each process, and stores this in the process state storage unit 88.
[0041]
The system according to the present invention configured as described above operates as follows.
FIG. 9 is a diagram for explaining the operation process of the fork control unit.
When the fork execution monitoring unit 82 of a process (parent process) that newly generates a process detects that a fork system call is called, the fork management unit 83 notifies the fork management unit 83 of the call. Before the fork system call is called, the fork management unit 83 notifies its own process ID to the process state acquisition instruction unit 84 (ST901), and waits for a response from the process state acquisition instruction unit 84 (ST902). If a response is returned by performing a predetermined operation process described later by the process state acquisition instruction unit 84, the fork management unit 83 executes a fork system call (ST903).
[0042]
After executing the fork system call, the fork management unit 83 is divided into both a parent process and a child process and continues processing (ST904). The fork management unit 83 in the parent process notifies the process state acquisition instruction unit 84 of the process ID of the generated child process (ST905), and waits for a response from the process state acquisition instruction unit 84 (ST907). On the other hand, the fork management unit 83 of the child process notifies the process state acquisition instruction unit 84 of its own process ID (ST906), and waits for a response (ST907). The above is the operation process in the fork control unit.
[0043]
Next, the operation process of the process state acquisition instruction unit 84 will be described.
FIG. 10 is a diagram for explaining an operation process of the process state acquisition instruction unit 84 at the time of process generation.
[0044]
As described above, the fork management unit 83 notifies the process state acquisition instruction unit 84 of its own process ID and waits for a response from the process state acquisition instruction unit 84 before the fork system call is called. Then, the process status acquisition instructing unit 84 determines whether or not predetermined information (process ID) is already registered in the fork information field of the group to which the process belongs (ST1001), and when determining that it is registered In step ST1002, the fork information is cleared. If the fork information field is not registered or if the fork information field is cleared, the CP flag field of the group to which the process belongs is checked to determine whether the CP flag is set ( ST1003). If process state acquisition instructing section 84 determines that the CP flag is set, it waits until it is cleared (ST1004). Thereafter, process status acquisition instructing section 84 registers the process ID notified from fork managing section 83 in the parent process ID field of the fork information of the group and returns a response (ST1005). On the other hand, if the CP flag is not set, the notified process ID is registered in the parent process ID field of the group fork information without waiting, and a response is returned (ST1005).
[0045]
FIG. 11 is a diagram for explaining the operation process when the fork management unit 83 of the parent process notifies the process state acquisition instruction unit 84 of the process ID of the child process.
As described above, after executing the fork system call, the fork management unit 83 is divided into both a parent process and a child process and continues processing. The fork management unit 83 in the parent process notifies the process state acquisition instruction unit 84 of the process ID of the generated child process, and waits for a response from the process state acquisition instruction unit 84.
[0046]
The process status acquisition instructing unit 84 registers the notified process ID in the child process ID field of the fork information of the group to which the process belongs (ST1101), and further, the process name of the same group as the group to which the parent process belongs The process ID of the child process is registered in the field (ST1102), and a response is returned (ST1103).
[0047]
FIG. 12 is a diagram for explaining operation processing when the fork management unit 83 of the child process notifies the process state acquisition instruction unit 84 of its own process ID.
As described above, the fork management unit 83 of the child process notifies the process state acquisition instruction unit 84 of its own process ID and waits for a response. The process state acquisition instructing unit 84 determines whether or not the notified process ID is registered in the child process ID field of the fork information field of the group (ST1201). This is because the child process may notify its own process ID before the notification of the process ID of the child process by the parent process due to the nondeterminism of the behavior based on the parallel operation of the process. If it is determined in ST1201 that the field is not registered, the process waits until the field contents match, that is, until the field is registered (ST1202), and the subsequent processing is performed. On the other hand, if it is determined that it is registered, the fork information is cleared and a response is returned (ST1203).
[0048]
FIG. 13 is a diagram for explaining the operation process of the process state acquisition instruction unit 84. FIG. 14 is a diagram for explaining the operation process of the process state acquisition unit 87 of each process.
[0049]
When obtaining the process state at the checkpoint of a certain process group, the process state obtaining instructing unit 84 sets the CP flag of that group (ST1301 in FIG. 13). Thereafter, the fork information field of the group is checked to determine whether or not the fork information is set (ST1302). If process status acquisition instructing section 84 determines that the fork information is set, it waits for the fork information to be cleared (ST1303). On the other hand, if it is determined that the fork information is not set, the process state generation process at the checkpoint is continued. That is, the process state acquisition unit 87 of each process is instructed to acquire the process state at the checkpoint (ST1304), and the process waits for completion of the process state acquisition at the checkpoint of each process (ST1305). In response to the acquisition instruction, the process state acquisition unit 87 of each process waiting until the process state acquisition instruction is generated, generates and stores the process state at the checkpoint (ST1401 and ST1402 in FIG. 14), and sends a response. Return (ST1403). After obtaining the process state at the checkpoint of each process, the process state obtaining instruction unit 84 clears the CP flag of the group (ST1306 in FIG. 13).
[0050]
FIG. 15 is a diagram for explaining a series of operation processes in the process state management method according to the present invention.
FIG. 4A is a diagram showing a state when a process generation request is generated first, and then a process state at the checkpoint is acquired, and FIG. 4B is a process at the checkpoint. It is a figure which shows a state when acquisition of a state is performed previously and the production | generation request | requirement of a process generate | occur | produces after that.
[0051]
First, in FIG. 6A, when fork processing is started, generation of a process state at the checkpoint (CP) notified by the checkpoint timing determination unit by notification of fork information from the first parent process is as follows. It will be delayed until the fork process is completed. That is, when a series of processing based on fork execution is started in the parent (becoming) process (point A in the figure, the same applies hereinafter), the parent process notifies its process ID to the process management unit (B), Wait until there is a response from the process manager. The process management unit returns a response to the parent process through a predetermined process (C), and the parent process executes a fork system call according to the response (D).
[0052]
After executing the fork system call by the parent process, the parent process notifies the process management unit of the process ID of the generated child process (E) and receives a response indicating that it has been registered (F). On the other hand, the child process notifies its own process ID to the process management unit (G), and receives a response that the content of the fork information field is cleared (H). After a series of processes based on the above fork system call is completed, the process management unit instructs each process to acquire a process state (I1, I2). Receiving the acquisition instruction, each process acquires its own process state and notifies the process management unit of the completion (J1, J2).
[0053]
As a result, while a new process is generated, even if it is determined to be a checkpoint for acquiring the process state, the process generation is delayed until the process generation is completed. The status can be acquired without contradiction.
[0054]
On the other hand, in FIG. 5B, the checkpoint timing determination unit 85 determines that the checkpoint is a checkpoint (A), and the CP flag is turned ON (C). Thereafter, it is assumed that a process generation request is generated (B). Therefore, even if the parent process notifies its own process ID (D), an instruction to acquire the process state at the checkpoint is notified (E), and there is a notification (F) that a series of processing at the checkpoint is completed. Until then, the response indicating that the registration has been made will not be returned (G). Then, after receiving the response, a fork system call is executed and a child process is generated (H).
[0055]
As a result, during the acquisition of the process state according to the checkpoint, the generation of a new process is delayed until the processing based on the series of checkpoints is completed. The process status can be acquired without any contradiction according to the distributed checkpoint.
[0056]
In the present invention, even when another process is generated from the parent process and a child process is generated from the other process, the process state can be similarly acquired without contradiction.
Further, the present invention can be similarly realized even in a case where a plurality of child processes are generated from each of a plurality of parent processes (FIG. 16).
[0057]
【The invention's effect】
According to the present invention, when a process state is acquired according to a synchronous checkpoint, even when a new process is generated, process state acquisition (generation and storage) according to a distributed checkpoint is performed. Can be done without contradiction.
[Brief description of the drawings]
FIG. 1 is a diagram showing an example of distributed checkpoints.
FIG. 2 is a diagram illustrating an example of a checkpoint when a new process is generated in a synchronous checkpoint.
FIG. 3 is a diagram showing a schematic configuration of hardware for realizing a process state management method and the like according to the present invention.
FIG. 4 is a conceptual diagram for explaining a program for realizing a process state management method and the like according to the present invention.
FIG. 5 is a conceptual diagram for explaining inter-process communication and process generation.
FIG. 6 is a diagram showing a schematic configuration of a system for realizing a process state management method according to the present invention.
FIG. 7 is a diagram showing an example of the configuration of a process management table.
FIG. 8 is a functional block diagram of a system that realizes a process state management method according to the present invention.
FIG. 9 is a diagram for explaining an operation process of a fork control unit.
FIG. 10 is a diagram for explaining operation processing of a process state acquisition instruction unit at the time of process generation.
FIG. 11 is a diagram for explaining operation processing when the fork management unit of the parent process notifies the process state acquisition instructing unit of fork information.
FIG. 12 is a diagram for explaining an operation process when a fork management unit of a child process notifies the process state acquisition instruction unit of fork information.
FIG. 13 is a diagram for explaining an operation process of a process state acquisition instruction unit;
FIG. 14 is a diagram for explaining an operation process of a process state acquisition unit of each process
FIG. 15 is a diagram for explaining a series of operation processing in the process state management method according to the present invention;
FIG. 16 is a diagram for explaining a series of operation processes in the process state management method according to the present invention.
[Explanation of symbols]
1 ... Calculator
2. Communication channel
61 ... Process management department
611, 84 ... Process status acquisition instruction unit
612, 86 ... Process management table
62 ... Process
621, 87 ... Process state acquisition unit
622 ... fork control unit
81. Program execution unit
82 ... fork execution monitoring unit
83 ... fork management department
85: Checkpoint timing determination unit
88 ... Process state storage unit

Claims (8)

計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理するプロセス管理部のプロセス状態の管理方法であって、A request indicating that it is desired to start generation of a second process having the same contents as the first process, which is an execution body when a program is executed on a computer, is made. A process state of a process group including the first process having a function of generating the second process in response to a response indicating permission for the process and another process having an interrelation with the first process is obtained. First period information indicating whether or not the first process is in progress, and whether or not the first process is generating a second process having the same content as the first process. A process state management method for a process management unit that updates and manages second period information indicating:
前記プロセス管理部は、前記要求を受け取ると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断し、この判断によってあると判断された場合に、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう更新されるまで、前記第1のプロセスへ前記応答を遅延して通知し、  When the process management unit receives the request, the process management unit determines whether the process state of the process group is being acquired based on the first period information, and is determined to be based on this determination. If the first period information is updated to indicate that it is not in the period of acquiring the process state of the process group, the response to the first process is delayed and notified,
前記プロセス管理部は、それぞれのプロセス状態の取得の開始を示す指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断し、この判断によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう更新されるまで、前記プロセス群のそれぞれへ前記指示を遅延して通知するようにしたことを特徴とするプロセス状態の管理方法。  When the process management unit receives an instruction indicating the start of acquisition of each process state, the process management unit determines whether the generation of the second process is in progress based on the second period information. However, if it is determined by this determination that the second period information is updated to indicate that it is not during the generation of the second process, the process group A process state management method characterized in that an instruction is delayed and notified.
前記プロセス管理部は、前記プロセス群からプロセス状態の取得の完了を示す通知をそれぞれ受けて、前記第1期間情報を、前記プロセスの状態を取得している期間でない旨に更新し、The process management unit receives a notification indicating completion of acquisition of a process state from the process group, and updates the first period information to indicate that it is not a period for acquiring the process state.
前記プロセス管理部は、前記指示を受けて前記第2のプロセスの生成を行っている期間であるか否かの判断によって否と判断された場合に、前記プロセス群のそれぞれへプロセス状態の取得の指示を通知するとともに、前記第1期間情報を前記プロセス群のプロセス状態を取得している期間中である旨に更新するようにしたことを特徴とする請求項1記載のプロセス状態の管理方法。  When the process management unit determines that the process is in a period during which the second process is generated in response to the instruction, the process management unit acquires the process status to each of the process groups. 2. The process state management method according to claim 1, wherein an instruction is notified and the first period information is updated to indicate that the process state of the process group is being acquired.
前記プロセス管理部は、前記第1のプロセスおよび第2のプロセスから第2のプロセスの生成の終了を示す通知をそれぞれ受けて、前記第2期間情報を、前記第2プロセスの生成を行っている期間でない旨に更新し、The process management unit receives a notification indicating the end of generation of the second process from the first process and the second process, and generates the second process using the second period information. Renewed that it is not a period,
前記プロセス管理部は、前記要求を受けて前記プロセスの状態を取得している期間であるか否かの判断によって否と判断された場合に、前記第1のプロセスへプロセスの生成を許可する応答を通知するとともに、前記第2期間情報を前記第2のプロセスの生成を行っている期間である旨に更新するようにしたことを特徴とする請求項1または請求項2に記載のプロセス状態の管理方法。  The process management unit responds to permit the first process to generate a process when it is determined to be no by determining whether or not it is a period in which the request is received and the state of the process is acquired. The process state according to claim 1 or 2, wherein the second period information is updated to a period during which the generation of the second process is performed. Management method.
計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理する第1手段と、A request indicating that it is desired to start generation of a second process having the same contents as the first process, which is an execution body when a program is executed on a computer, is made. A process state of a process group including the first process having a function of generating the second process in response to a response indicating permission for the process and another process having an interrelation with the first process is obtained. First period information indicating whether or not the first process is in progress, and whether or not the first process is generating a second process having the same content as the first process. A first means for updating and managing the second period information indicating
前記第1のプロセスから、前記第1のプロセスと同じ第2のプロセスの生成を開始したい旨を示す要求を受け、この要求を許可する応答を前記第1のプロセスへ通知する第2手段と、  A second means for receiving a request from the first process indicating that it is desired to start generation of the same second process as the first process, and notifying the first process of a response permitting the request;
前記プロセス群のプロセス状態の取得の開始の指示を受け、前記プロセス群へ前記プロセス群のプロセス状態の取得を指示する第3手段とを備えるプロセス管理部のプロセス状態の管理方法であって、  A process state management method of a process management unit comprising a third means for receiving an instruction to start acquisition of a process state of the process group and instructing the process group to acquire the process state of the process group,
前記第2手段は、前記要求を受けると、前記第1期間情報に基づいて、前記プロセス群  When the second means receives the request, the second means, based on the first period information, のプロセス状態を取得している期間中であるか否かを判断し、この判断によってあると判断された場合には、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう前記第1手段で更新された後に、前記第1のプロセスへ前記応答を通知するようにし、It is determined whether or not the process state of the process group is being acquired. If it is determined that the process state is acquired, the first period information is acquired during the period of acquiring the process state of the process group. Notifying the first process of the response after being updated by the first means to indicate that
前記第3手段は、前記指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断し、この判断によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう前記第1手段で更新された後に、前記プロセス群のそれぞれへ前記指示を通知するようにしたことを特徴とするプロセス状態の管理方法。  Upon receipt of the instruction, the third means determines whether or not the second process is being generated based on the second period information, and is determined to be based on this determination. If the second period information is updated by the first means to indicate that it is not during the generation period of the second process, the instruction is notified to each of the process groups. A process state management method characterized by the above.
計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理するプロセス管理装置であって、A request indicating that it is desired to start generation of a second process having the same contents as the first process, which is an execution body when a program is executed on a computer, is made. A process state of a process group including the first process having a function of generating the second process in response to a response indicating permission for the process and another process having an interrelation with the first process is obtained. First period information indicating whether or not the first process is in progress, and whether or not the first process is generating a second process having the same content as the first process. A process management apparatus for updating and managing the second period information indicating
前記要求を受け取ると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断する第1判断手段と、  When receiving the request, based on the first period information, first determination means for determining whether or not the process state of the process group is being acquired;
前記第1判断手段によってあると判断された場合に、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう更新されるまで、前記第1のプロセスへ前記応答を遅延して通知する第1通知手段と、  If it is determined by the first determination means that the first period information is updated to indicate that it is not in the period of acquiring the process state of the process group, the first process First notification means for delaying and notifying a response;
それぞれのプロセス状態の取得の開始を示す指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断する第2判断手段と、  Second determination means for determining whether or not it is during the generation of the second process based on the second period information when receiving an instruction indicating the start of acquisition of each process state; ,
前記第2判断手段によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう更新されるまで、前記プロセス群のそれぞれへ前記指示を遅延して通知する第2通知手段とを備えたことを特徴とするプロセス管理装置。  If it is determined by the second determination means that the second period information is updated to indicate that it is not during the generation period of the second process, to each of the process groups A process management apparatus comprising: second notification means for delaying notification of the instruction.
計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理する第1手段と、A request indicating that it is desired to start generation of a second process having the same contents as the first process, which is an execution body when a program is executed on a computer, is made. A process state of a process group including the first process having a function of generating the second process in response to a response indicating permission for the process and another process having an interrelation with the first process is obtained. First period information indicating whether or not the first process is in progress, and whether or not the first process is generating a second process having the same content as the first process. A first means for updating and managing the second period information indicating
前記第1のプロセスから、前記第1のプロセスと同じ第2のプロセスの生成を開始したい旨を示す要求を受け、この要求を許可する応答を前記第1のプロセスへ通知する第2手段と、  A second means for receiving a request from the first process indicating that it is desired to start generation of the same second process as the first process, and notifying the first process of a response permitting the request;
前記プロセス群のプロセス状態の取得の開始の指示を受け、前記プロセス群へ前記プロセス群のプロセス状態の取得を指示する第3手段と、  A third means for receiving an instruction to start acquisition of the process state of the process group and instructing the process group to acquire the process state of the process group;
前記要求を受けると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断する第1判断手段と、  When receiving the request, based on the first period information, first determination means for determining whether or not the process state of the process group is being acquired;
前記第1判断手段によってあると判断された場合には、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう前記第1手段で更新された後に、前記第1のプロセスへ前記応答を通知する第1通知手段と、  If it is determined by the first determination means that the first period information is updated by the first means to indicate that the process state of the process group is not being acquired, First notification means for notifying the response to the first process;
前記指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断する第2判断手段と、  Upon receiving the instruction, based on the second period information, a second determination means for determining whether or not it is during the generation period of the second process;
前記第2判断手段によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう前記第1手段で更新された後に  If it is determined by the second determination means that the second period information has been updated by the first means to indicate that the second process information is not being generated. 、前記プロセス群のそれぞれへ前記指示を通知する第2通知手段とを備えたことを特徴とするプロセス管理装置。And a second notification means for notifying each of the process groups of the instruction.
計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理する、コンピュータに実行させるプログラムを記憶した記憶媒体であって、A request indicating that it is desired to start generation of a second process having the same contents as the first process, which is an execution body when a program is executed on a computer, is made. A process state of a process group including the first process having a function of generating the second process in response to a response indicating permission for the process and another process having an interrelation with the first process is obtained. First period information indicating whether or not the first process is in progress, and whether or not the first process is generating a second process having the same content as the first process. A storage medium for storing a program to be executed by a computer for updating and managing the second period information indicating
前記要求を受け取ると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断させ、この判断によってあると判断された場合に、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう更新されるまで、前記第1のプロセスへ前記応答を遅延し通知させる第1プログラムコードと、  When receiving the request, based on the first period information, it is determined whether or not the process state of the process group is being acquired, and if it is determined that the determination is made, First program code that delays and notifies the first process of the response until the one-period information is updated to indicate that it is not in a period of acquiring the process state of the process group;
それぞれのプロセス状態の取得の開始を示す指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断させ、この判断によってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう更新されるまで、前記プロセス群のそれぞれへ前記指示を遅延し通知させる第2プログラムコードとを備えたことを特徴とするコンピュータに実行させるプログラムを記憶した記憶媒体。  When an instruction indicating the start of acquisition of each process state is received, whether or not it is during the generation period of the second process is determined based on the second period information. If the second period information is updated to indicate that it is not during the generation period of the second process, the instruction is delayed and notified to each of the process groups. A storage medium storing a program to be executed by a computer, comprising: a second program code.
計算機上でプログラムが実行される際の実行体である第1のプロセスであって、前記第1のプロセスと同じ内容の第2のプロセスの生成を開始したい旨を示す要求を行って、この要求に対する許可を示す応答を受けて前記第2のプロセスを生成する機能を備える前記第1のプロセスと前記第1のプロセスと相互に関係がある他のプロセスとからなるプロセス群の、プロセス状態を取得している期間中であるか否かを示す第1期間情報、および前記第1のプロセスが前記第1のプロセスと同じ内容の第2のプロセスの生成を行っている期間中であるか否かを示す第2期間情報を更新管理させる第1プログラムコードと、A request indicating that it is desired to start generation of a second process having the same contents as the first process, which is an execution body when a program is executed on a computer, is made. A process state of a process group including the first process having a function of generating the second process in response to a response indicating permission for the process and another process having an interrelation with the first process is obtained. First period information indicating whether or not the first process is in progress, and whether or not the first process is generating a second process having the same content as the first process. A first program code for updating and managing the second period information indicating
前記第1のプロセスから、前記第1のプロセスと同じ第2のプロセスの生成を開始したい旨を示す要求を受け、この要求を許可する応答を前記第1のプロセスへ通知させる第2プログラムコードと、  A second program code for receiving from the first process a request indicating that generation of the same second process as the first process is to be started, and notifying the first process of a response permitting the request; ,
前記プロセス群のプロセス状態の取得の開始の指示を受け、前記プロセス群へ前記プロセス群のプロセス状態の取得を指示させる第3プログラムコードと、  A third program code for receiving an instruction to start acquisition of a process state of the process group and instructing the process group to acquire a process state of the process group;
前記要求を受けると、前記第1期間情報に基づいて、前記プロセス群のプロセス状態を取得している期間中であるか否かを判断させる第4プログラムコードと、  Receiving the request, a fourth program code for determining whether or not the process state of the process group is being acquired based on the first period information;
前記第4プログラムコードによってあると判断された場合には、前記第1期間情報が前記プロセス群のプロセス状態を取得している期間中でないことを示すよう前記第1手段で更新された後に、前記第1のプロセスへ前記応答を通知させる第5プログラムコードと、  If it is determined by the fourth program code, the first period information is updated by the first means to indicate that it is not in a period of acquiring the process state of the process group, Fifth program code for notifying the first process of the response;
前記指示を受けると、前記第2期間情報に基づいて、前記第2のプロセスの生成を行っている期間中であるか否かを判断させる第6プログラムコードと、  Receiving the instruction, a sixth program code for determining whether or not the second process is being generated based on the second period information;
前記第6プログラムコードによってあると判断された場合には、前記第2期間情報が前記第2のプロセスの生成を行っている期間中でないことを示すよう前記第1手段で更新された後に、前記プロセス群のそれぞれへ前記指示を通知させる第7プログラムコードとを備えたことを特徴とするコンピュータに実行させるプログラムを記憶した記憶媒体。  If it is determined by the sixth program code that the second period information is updated by the first means to indicate that the second process information is not generated, the A storage medium storing a program to be executed by a computer, comprising: a seventh program code for notifying each of the process groups of the instruction.
JP01129498A 1997-01-24 1998-01-23 Process state management method, process management apparatus, and recording medium recording a program for performing the same Expired - Fee Related JP3725318B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01129498A JP3725318B2 (en) 1997-01-24 1998-01-23 Process state management method, process management apparatus, and recording medium recording a program for performing the same

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-10960 1997-01-24
JP1096097 1997-01-24
JP01129498A JP3725318B2 (en) 1997-01-24 1998-01-23 Process state management method, process management apparatus, and recording medium recording a program for performing the same

Publications (2)

Publication Number Publication Date
JPH10269095A JPH10269095A (en) 1998-10-09
JP3725318B2 true JP3725318B2 (en) 2005-12-07

Family

ID=26346323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01129498A Expired - Fee Related JP3725318B2 (en) 1997-01-24 1998-01-23 Process state management method, process management apparatus, and recording medium recording a program for performing the same

Country Status (1)

Country Link
JP (1) JP3725318B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4242155B2 (en) * 2001-03-07 2009-03-18 オラクル・インターナショナル・コーポレイション A method for coordinating the writing of dirty data items to persistent storage, a computer-readable medium storing a program for causing a computer to perform the method, and a dirty data item to persistent storage Device for adjusting writing
US8566539B2 (en) 2009-01-14 2013-10-22 International Business Machines Corporation Managing thermal condition of a memory
JP4886826B2 (en) 2009-08-24 2012-02-29 インターナショナル・ビジネス・マシーンズ・コーポレーション Fault tolerant computer system, method and program
JP5537917B2 (en) * 2009-12-04 2014-07-02 三菱電機株式会社 Management device, data processing control device, management method, data processing control method, and program

Also Published As

Publication number Publication date
JPH10269095A (en) 1998-10-09

Similar Documents

Publication Publication Date Title
JP3253883B2 (en) Process restart method and process monitoring device
JP3696832B2 (en) Continuous flow checkpoint setting data processing method
Silva et al. Global checkpointing for distributed programs
US6161193A (en) Methods and apparatus for process replication/recovery in a distributed system
CN102308286B (en) Method and system for multi-server application synchronization without stopping I/O
US20060294507A1 (en) Methods and devices for recovering from initialization failures
US6185702B1 (en) Method and system for process state management using checkpoints
KR970066900A (en) Distributed Memory Multiprocessor Systems and Failure Recovery Methods
Saridakis A System of Patterns for Fault Tolerance.
JP2000010810A (en) Commitment control method for transaction process, and computer system to which the same method is applied
EP2524302B1 (en) Persistent application activation and timer notifications
Park et al. The performance of checkpointing and replication schemes for fault tolerant mobile agent systems
JP2000194678A (en) Asynchronous i/o highly available in cluster computer system
JP3725318B2 (en) Process state management method, process management apparatus, and recording medium recording a program for performing the same
US20100274758A1 (en) Data processing method, computer, and data processing program
CN114721873A (en) Asynchronous execution data backup and recovery system
JP4009192B2 (en) Efficient timer management system
US20040008678A1 (en) System and method for managing transactions in a messaging system
JPH0895814A (en) Apparatus and method for updating of software
CN111880947A (en) Data transmission method and device
JP2003167746A (en) Software distribution method, execution system for the same and processing program for the same
CN111858177B (en) Inter-process communication abnormality repairing method and device, electronic equipment and storage medium
US6651185B1 (en) High availability platform with fast recovery from failure by reducing non-response time-outs
Mena et al. A new look at atomic broadcast in the asynchronous crash-recovery model
JPH11353284A (en) Job re-executing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050307

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050414

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050921

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080930

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110930

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130930

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees