JP2009217503A - 計算機システム、計算機制御方法及び計算機制御プログラム - Google Patents

計算機システム、計算機制御方法及び計算機制御プログラム Download PDF

Info

Publication number
JP2009217503A
JP2009217503A JP2008060016A JP2008060016A JP2009217503A JP 2009217503 A JP2009217503 A JP 2009217503A JP 2008060016 A JP2008060016 A JP 2008060016A JP 2008060016 A JP2008060016 A JP 2008060016A JP 2009217503 A JP2009217503 A JP 2009217503A
Authority
JP
Japan
Prior art keywords
task
program
computers
computer
execution
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.)
Granted
Application number
JP2008060016A
Other languages
English (en)
Other versions
JP5176230B2 (ja
Inventor
Yuki Takahashi
祐樹 高橋
Shuji Nishiyama
修治 西山
Teruyuki Yasunaga
輝幸 安永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Information and Control Systems Inc, Hitachi Information and Control Solutions Ltd filed Critical Hitachi Ltd
Priority to JP2008060016A priority Critical patent/JP5176230B2/ja
Publication of JP2009217503A publication Critical patent/JP2009217503A/ja
Application granted granted Critical
Publication of JP5176230B2 publication Critical patent/JP5176230B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】複数の計算機を高速なネットワークで接続したシステム構成において、同一時点で同一プログラムを実行させることでオペレーティングシステムより上位のソフトウェア階層に高稼動なコンピュータシステムを実現させるものである。
【解決手段】複数の計算機がネットワーク接続される計算機システムにおけるマルチプログラミングOS101を実装した各計算機が、ネットワークを介して、同一プログラムの実行を識別するプログラム識別情報を、タスク同期処理116、タイマ割込み処理118、同期システムコール実行処理120による任意の時間範囲にて交換し、プログラム識別情報の一致・不一致の状態を判定し、次に動作させるプログラムを選択して実行する。
【選択図】図1

Description

本発明は、ネットワークに接続される複数の計算機がマルチプログラミングOS(Operating System)を実装する計算機システム、計算機制御方法及び計算機制御プログラムに関する。
従来より、計算機システムにおいてシステムの稼動時間を長時間化するために、計算機を多重化する技術が存在している。この技術は、例えば、デュアルシステムなどにより、ハードウェアの障害に対しても、システム内の処理を継続することができるものである。
これに対し、システムの停止時間を最小化するための計算機としてフォールト・トレラント・コンピュータ(Fault tolerant computer)がある。この技術は、ハードウェアを多重化し、同一プログラムを複数のCPUで動作させて、結果を照合し、CPUの障害時に処理の継続を行うものである。例えば、本出願人は分散配置に適したフォ−ルトトレラントシステムの構成を提案している(特許文献1参照)。
例えば、CPU(Central Processing Unit)やメモリ、I/O(Input/Output)バス、I/Oカードを多重化、つまり2個用意する。そして、メモリ、I/Oバス、I/Oカードの診断等による障害検知時に、障害が発生した方を切り離すことにより、ハードウェア障害による計算機の停止を回避することができる。
特開平8−314744号公報
しかし、上述したフォールト・トレラント・コンピュータである計算機を製作するには、専用のハードウェアを製作する必要があり、製作コストの負担が大きいものとなる。例えば、CPU上の命令結果の付き合わせを実現するためには、これに対応する個別のユニットが必要になる。
これに対し、近年、プロセッサの高速化やマルチコア化、ネットワークの高速化が進み、複数の計算機を高速ネットワークで接続して1つの計算機システムとして構成することが可能となっている。このシステムにより、フォールト・トレラント・コンピュータに匹敵する稼働率を実現する環境が整いつつある。
そこで、専用のハードウェア機器を作成せずに汎用の複数の計算機をネットワーク接続したシステム構成において、オペレーティングシステムから上位のアプリケーションに対して高稼動な計算機システムを実現するソフトウェア技術を提示することが要求されている。
本発明は、複数の計算機を高速なネットワークで接続したシステム構成において、同一時点で同一プログラムを実行させることでオペレーティングシステムより上位のソフトウェア階層に高稼動な計算機システムを実現させるものである。
本発明の計算機システムでは、複数の計算機がネットワーク接続される計算機システムにおけるマルチプログラミングOSを実装した各計算機が、ネットワークを介して、同一プログラムの実行を識別するプログラム識別情報を、任意の時間範囲にて交換する情報交換処理部と、プログラム識別情報の一致あるいは不一致の状態を判定する判定部と、次に動作させるプログラムを選択して実行する選択実行部とを備えている。
また、本発明の計算機制御方法では、複数の計算機がネットワーク接続される計算機システムにおけるマルチプログラミングOSを実装する各計算機の処理が、ネットワークを介して、同一プログラムの実行を識別するプログラム識別情報を、任意の時間範囲にて交換する情報交換処理ステップと、プログラム識別情報の一致あるいは不一致の状態を判定する判定ステップと、次に動作させるプログラムを選択して実行する選択実行ステップとを含んでいる。
また、本発明の計算機制御プログラムは、複数の計算機がネットワーク接続され、各計算機がマルチプログラミングOSを実装する計算機システムにおける各計算機に、ネットワークを介して、同一プログラムの実行を識別するプログラム識別情報を、任意の時間範囲にて交換する情報交換処理機能と、プログラム識別情報の一致あるいは不一致の状態を判定する判定機能と、次に動作させるプログラムを選択して実行する選択実行機能を実現させるプログラムである。
これにより、本発明は、複数計算機においてネットワークを介して同一プログラムの実行を識別する情報を、例えば、タスクスイッチング時、タイマ起動のプログラム実行時又は特定のシステムコール実行時に任意の時間の範囲にて交換する。
そして、本発明は、プログラム識別情報の一致あるいは不一致の状態を判定することで、次に動作させるプログラムを選択し、複数の計算機にて任意経過時間後に同期してプログラムを選択・実行し、又は複数の計算機にて任意のシステムコールを同期して実行する。
本発明により、同一時点で同一プログラムを実行させることにより、オペレーティングシステムから上位のアプリケーションに対して高稼動な計算機システムを実現するソフトウェア技術を提供することができるという効果を奏する。
図1に、本発明のOS(オペレーティングシステム)内のタスク同期構成の説明図を示す。本発明の機能を実現する構成要素は、OS101内に存在する。OS101は、マルチプログラミング機能を有するオペレーティングシステムであるが、マルチプロセッサ用途、シングルプロセッサ用途を限定するものではない。
ただし、本発明においては、マルチプロセッサシステムにおいて、プログラム(タスク)の同期動作を任意のプロセッサ内のコアプロセッサに限定するなどの指定が可能である。CPUの中に複数のプロセッサが存在し、プロセッサの中に複数のコアが存在する。
本OS101は、複数の計算機、又は計算機ブレードにおいて動作する。
マルチプログミング機能を有するOS101においては、複数プログラムの実行を可能とするために実行中のプログラムをタスク(プロセスとも言う)という単位で管理する。プログラムが実行されるとOS101内のタスク生成処理102がタスクを生成し、タスクA,B,C単位に固有の情報をタスクコントロールブロック(TCB)104に記憶する。
すなわち、タスクAはTCB104のタスク制御テーブル103aに記憶され、タスクBはTCB104のタスク制御テーブル103bに記憶され、タスクCはTCB104のタスク制御テーブル103cに記憶される。
一般的に、タスクA,B,Cは、動作時に優先レベルX、X、Yを有し、優先レベルX、X、Yの高低によりタスクA,B,Cの実行順序をOS101が決定する。CPUの1つのコアにて動作するタスクA,B,Cは、同一時間においては1つである。このため、複数タスクA,B,Cが起動されている状態において、実行可能であるが他のタスクA,B,CによりCPUのコアを占有されている場合に、CPUのコアの空きを待つタスクA,B,Cを実行待ちキュー105で管理する。
実行待ちキュー105は、CPUのコア単位に存在する。すなわち、タスクA,Bは、実行待ちキュー105の優先レベルXの実行待ち処理として順次保持され、タスクCは、実行待ちキュー105の優先レベルYの実行待ち処理として保持される。
同期待ちキュー106は、本OS101を使用して複数の計算機において同一時に同一のタスクを実行させる場合に、同期待ち処理のタスクを管理する。すなわち、同一時にタスクが実行可能な状態でない場合において、全計算機において同一時に同一のタスクを実行可能な状態になるまでタスクを保持する。
プロセッサ状態情報107は、計算機におけるCPU内のプロセッサ1a,1b,1c,1dに対してコア単位のスケジューリング方法を記憶するテーブルである。
同期システムコール設定テーブル108は、OS101が提供する機能であるシステムコール実行時に複数計算機において同一タスクが同時に本システムコール処理を実行するために使用するテーブルである。
実行コア割当てテーブル109は、プロセスグループ単位にCPUの実行コアを指定するテーブルである。
CPUタスク同期状態情報110は、計算機内のCPUのコア単位に同一タスクが同時に実行されていることを示す状態を記憶するテーブルである。
タイムアウト設定テーブル111は、CPUのコア単位に同一タスクを動作させる場合において同一タスクが動作可能となることを待ち合わす時間を記憶するテーブルである。
同期論理設定テーブル112は、複数計算機にて同時に同一タスクを実行する場合に全計算機において、同一タスクが任意の時間内に実行可能とならない場合に、次に実行させるタスクを選択する方法を記憶するテーブルである。
タスク同期CPU間交換情報113は、タスクを同時に動作させる計算機において、次の動作対象タスク等の情報を交換するメモリ領域である。この領域は、CPU情報交換ドライバ121により更新される。
実行待ち処理114及びタスク選択処理115は、タスク同期処理116により複数計算機において同時に同一タスクを実行させる処理である。すなわち、実行中タスクが動作しているCPUのコアを他のタスクに明け渡す場合において、他の実行可能タスクを選択し、同時に同一タスクを実行させる。
割込み処理117、タイマ割込み処理118及び同期待ち合わせ処理119は、タイマ起動タスクを複数計算機においてタイマ割込みのズレを補正して同一時に実行させるための処理である。すなわち、タイマ割込みからタイマ割込み処理が起動され、任意の時間経過後に実行されるタイマ起動タスクを複数計算機においてタイマ割込みのズレを補正して同一時に実行させる。
同期システムコール実行処理120は、任意のシステムコール実行時に複数計算機にて同一タスクを同一時に実行させることに使用する。この処理は、OS101が提供するシステムコール処理から実行される処理である。
図2に、本発明の前提となるシステム構成と本発明のシステム構成を示す。図2Aにおいて、前提となる計算機201の構成機器を示す。図2Aに示す計算機201においてCPUの故障やメモリの故障が発生した場合においてもプログラムの実行を保証するために、以下のように構成している。
すなわち、CPU202、203、メモリ206、207、命令比較機能205、208は2台構成としている。各部は、バス204で接続される。まず、メモリ206、207内のデータを一致させ、CPU202、203において同一プログラムカウンタ値を比較、設定する。そして、CPU202、203の実行する命令や演算結果(レジスタの値、メモリに出力した値)が同一であるかどうかを、命令比較機能205、208によって比較する。
前提となる計算機のフォールトトレラント方式は、複数CPUを二重化バスで接続して同一タスクを実行し、実行結果(命令の出力)を照合する。ここで、不一致となった場合に予備のCPUで実行させ、結果を比較し、出力する。この技術は、ハードウェア機構による機械語命令と出力を比較する比較回路より、実行されるものである。
図2Bの計算機210は、本発明のOSを動作させる計算機である。
第1〜4のサーバ211〜214は、CPU211−1〜214−1、BC(バスコントローラ)211−2〜214−2、メモリ211−3〜214−3、NIC(ネットワークインターフェースコントローラ)211−4〜214−4を有している。
また、出力比較機216は、CPU216−1、BC216−2、メモリ216−3、NIC216−4、216−5を有している。
第1〜4のサーバ211〜214のメモリ211−3〜214−3に図1に示したOS101を搭載し、CPU211−1〜214−1上で実行させる。これにより、第1〜4のサーバ211〜214においてCPU211−1〜214−1の補助記憶装置内に存在する同一のタスクの実行モジュールを同一時に実行させる。
第1〜4のサーバ211〜214で実行されるネットワーク送信データについては、例えば出力比較機216において、第1〜4のサーバ211〜214からの送信データを受信して比較照合し、計算機210の外部のネットワーク217に出力する。
外部のネットワーク217から受信するデータについては、出力比較機216で受信し、出力比較機216が第1〜4のサーバ211〜214にブロードキャストし、第1〜4のサーバ211〜214の同一タスクが同一データを受信し、処理を行う。
図1に示したOS101を計算機210にて動作させることにより、第1〜4のサーバ211〜214の4台の装置のうち2台が故障したとしても残りの2台のサーバで同一タスクを動作し、出力比較機216において外部出力データの比較が可能となる。また、第1〜4のサーバ211〜214の4台のうち3台が故障したとしても残りの1台においてタスクの実行を継続することが可能となる。
図3に本発明におけるデータ構造を示す。
図3AはTCB、図3Bは実行待ちキュー、図3Cは同期待ちキュー、図3Dはプロセッサ状態情報、図3Eは同期システムコール設定テーブル、図3Fは実行コア割当てテーブル、図3GはCPUタスク同期状態情報、図3Hはタイムアウト設定テーブル、図3Iは同期論理設定テーブルである。
図3Aに示すタスクコントロールブロック(TCB)104は、実行中のプログラム単位にタスク個別の情報を記憶するものである。TCB104は、タスクを識別する識別ID301、タスクの動作優先レベル302、タスクのスケジュール方法を示す識別子を格納するスケジューリング方法303の情報を有する。
また、TCB104は、タスクが実行可能であるが、他タスクにCPUコアを占有されているため実行待ちを管理する実行待ちキューID304、実行CPUのプロセッサ番号305、コアID306、複数タスクのグループを示すプロセスグループ番号307、タスクの状態情報308の情報を有する。
CPUコアの空きを待つタスクを図3Bに示す実行待ちキュー105で管理する。実行待ちキュー105は、CPUコア単位に存在する。
図3Bに示す実行待ちキューID309は、実行待ちキューを識別する番号であり、CPUコアと1対1に対応する。図3Bに示す実行待ちキュー105は、タスク動作の優先レベル単位にTCB104のアドレスを記録する領域を所有し、実行待ち状態のタスクのTCB104を優先レベル単位に記録する。
図3Cに示す同期待ちキュー106は、本OS101を使用して複数の計算機において同一時に同一のタスクを実行させる場合において、タスクを管理する実行待ちキューである。すなわち、同一時にタスクが実行可能な状態でない場合において、複数の計算機において同一時に同一のタスクを実行可能状態になるまでタスクを管理する。
同期待ちキューID310は、同期待ちキューを識別する番号であり、CPUコアと1対1に対応する。図3Cに示す同期待ちキュー106は、タスク動作の優先レベル単位にTCB104のアドレスを記録する領域を所有し、実行待ち状態ではあるが、全計算機において同一タスクが実行待ち状態ではないタスクのTCB104を優先レベル単位に記録する。
図3Dに示すプロセッサ状態情報テーブル107は、計算機におけるCPU内コア単位のスケジューリング方法を記憶するテーブルである。プロセッサ状態情報107は、計算機又はブレードコンピュータのブレードに対応するCPUボードID311、計算機又はブレードコンピュータに複数CPUが実装されている場合の1つのCPUと対応するプロセッサID312を有する。また、プロセッサ状態情報テーブル107は、1CPU内の1CPUコアと対応するコアID313、スケジューリング方法に対応した値を示すスケジューリングID314の情報を有する。
図3Eに示す同期システムコール設定テーブル108は、OSが提供する機能であるシステムコール実行時に複数計算機において同一タスクが同時に本システムコール処理を実行するために使用する。
同期システムコール設定テーブル108は、システムコールを特定するためのシステムコールID315、本システムコールが特定のコアでのみ全計算機の処理実行を同期させるために使用するCPUプロセッサID316、コアID317の情報を有する。
また、同期システムコール設定テーブル108は、特定のプロセスグループのみ本システムコールの全計算機の処理実行を同期させるために使用するプロセスグループID318の情報を有する。
また、同期システムコール設定テーブル108は、特定のスケジューリング方法のみ本システムコールの全計算機の処理実行を同期させるために使用するスケジューリングID319の情報を有する。
図3Fに示す実行コア割当てテーブル109は、プロセスグループ単位にCPU、実行コアを指定するテーブルである。実行コア割当てテーブル109は、プロセスグループID320、プロセッサID321、コアID322の情報を有する。
図3Gに示すCPUタスク同期状態情報テーブル110は、計算機内のCPUコア単位に同一タスクが同時に実行されていることを示す状態を記憶するテーブルである。CPUタスク同期状態情報110は、計算機、ブレードコンピュータのブレードに対応するCPUボードID323、プロセッサID324、コアID325、同期維持あるいは同期離脱等の同期状態326、同期回数を示す同期カウンタ319の情報を有する。
図3Hに示すタイムアウト設定テーブル111は、CPUコア単位に同一タスクを動作させる場合において同一タスクが動作可能となることを待ち合わせる時間を記憶するテーブルである。
タイムアウト設定テーブル111は、プロセスグループ単位に待ち合わせ時間を指定するためにプロセスグループID328、プロセッサID329、コアID330、タイムアウト時間331、同期比率332、タイムアウト回数333の情報を有する。
同期比率332は、1秒内の同期待ち時間の最大比率を示すものである。タイムアウト回数333は、タイムアウトが連続で発生した場合に異常とみなす回数を指定する。累積時間334は、1秒内の同期待ち時間の累積時間を示す。この時間が1秒内において同期比率を超えた場合にタイムアウト回数をタイムアウト回数333で指定した回数待たずにタイムアウトとするなどの判定に使用する。
図3Iに示す同期論理設定テーブル112は、複数計算機にて同時に同一タスクを実行する場合に全計算機において、同一タスクが任意の時間内に実行可能とならない場合に次に実行させるタスクを選択する方法を記憶するテーブルである。
同期論理設定テーブル112は、同期論理を識別するID335、スケジュール判定情報336、再同期判定情報337の情報を有する。スケジュール判定情報336は、複数計算機にて同一タスクが実行可能状態であるか、否かの状態種別によって次に動作させるタスクを決定する方法を示すものである。例えば、スケジュール判定情報336は、次のような条件に対応させて設定することができる。
第1に、全計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機内で一番早く実行可能待ちとなったタスクを実行させる。
第2に、全計算機、又は2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機、又は2つ以上の計算機において一番早く実行可能待ちとなったタスクを実行させる。
第3に、全計算機においてタイムアウト時間内に同一タスクが実行可能状態となった場合にのみ計算機内で一番早く実行可能待ちとなったタスクを実行させる。
第4に、全計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機内で実行可能待ちとなったタスクのうち一番優先レベルが高いタスクを実行させる。
第5に、全計算機、又は2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機、又は2つ以上の計算機において実行可能待ちとなったタスクのうち一番優先レベルが高いタスクを実行させる。
第6に、全計算機内で一番早く実行可能待ちとなったタスクのうち優先レベルが一番高いタスクを実行させる。
図4にタスク同期CPU間交換情報113の構成を示す。タスク同期CPU間交換情報113は、タスクを同時に動作させる計算機において、次の動作対象タスク等の情報を交換するメモリ領域である。この領域は、図1に示したCPU情報交換ドライバのCPU情報交換処理121により更新される。
ぞれぞれの計算機において、図4に示すタスク同期CPU間交換情報113は、各計算機に対応するように第1〜第4のCPUボードの更新エリア113−1〜113−4が設けられている。各計算機は、図2の構成においては、第1〜第4のサーバ211〜214が対応する。
第1〜第4のCPUボードの更新エリア113−1〜113−4は、タスクスイッチ同期データ401、タイマ実行タスク同期データ402及びシステムコール同期データ403により構成される。タスクスイッチ同期データ401は、シーケンス番号404、同期状態情報405、同期対象タスク識別情報406、チェックサム値407、データ種別情報408、シーケンス番号409により構成される。
タイマ実行タスク同期データ402及びシステムコール同期データ403の領域内も、タスクスイッチ同期データ401と同様に、シーケンス番号404〜シーケンス番号409の情報が存在する構成となる。
タスクスイッチ同期データ401は、以下の情報を有する。すなわち、図1に示したタスク選択処理115が、次にCPUコア上で動作させるタスクを実行待ちキュー105を検索して選択し、そのタスクの情報を同一時に同一タスクを動作させる他の計算機へ送信する情報である。
タイマ実行タスク同期データ402は、以下の情報を有する。すなわち、図1に示したタイマ割込みから実行されるタイマ割込み処理118において、任意の時間経過後に実行されるタイマ起動タスクを複数計算機においてタイマ割込みのズレを補正して同一時に実行させる。このために任意の待ち時間が経過し、実行可能状態となったタスクに関する情報を同一時に同一タスクを動作させる他の計算機へ送信するための情報である。
システムコール同期データ403は、以下の情報を有する。すなわち、図1に示した同期システムコール実行処理120において、任意のシステムコール実行時に複数計算機にて同一タスクを同一時に実行させる。このために同期対象のシステムコールを実行したタスクに関する情報を同一時に同一タスクを動作させる他の計算機へ送信するための情報である。
第1〜第4のCPUボードの更新エリア113−1〜113−4において、自計算機に対応するエリアは、図1に示したCPU情報交換ドライバ112の送信情報により更新される。第1〜第4のCPUボードの更新エリア113−1〜113−4において、他計算機に対応するエリアは、CPU情報交換ドライバ121の受信情報により更新される。
シーケンス番号404、409は、送信情報を識別する番号であり、異なる情報を送信する度にシーケンス番号をインクリメントする。同期状態情報405は、このCPUコアにおける同期状態(同期維持、同期離脱)を格納する領域である。同期対象タスク識別情報406は、任意のケース分の実行待ちタスクの識別情報を格納する領域である。
データ種別情報408は、タスクスイッチ同期データ401、タイマ実行タスク同期データ402、システムコール同期データ403のデータ種別を識別するための情報である。チェックサム値407は、タスクスイッチ同期データ401〜システムコール同期データ403の領域内データのサム値を格納する。
図5にタスク状態遷移図及びタスク生成処理図を示す。図5Aはタスク(プロセス)状態遷移図501、図5Bはタスク生成処理を示すフローチャートである。まず、図5Aに示すタスク(プロセス)状態遷移図501において、タスクは、無存在状態(ステップS1)から、タスク生成処理102により生成され、プロセス生成状態(ステップS2)を経てプロセス実行可能状態(ステップS3)に遷移する。
タスクは、プロセス実行可能状態(ステップS3)から、タスク選択処理115により図1に示した実行待ちキュー105で保持され、CPUコア上で次に実行されるタスクが選択され、プロセス実行状態(ステップS4)となる。
プロセス実行状態(ステップS4)から、実行待ち処理114によりCPUコア上で動作中のタスクが実行中タスクよりも優先レベルが高いタスクにCPUコアを明け渡す場合には、実行中タスクの状態は、プロセス実行可能状態(ステップS3)となる。
また、CPUコア上で動作中のタスクが任意の資源が獲得されない場合や、任意の時間、実行時間間隔を空けてから実行する場合には、タスクは、CPUコアを明け渡し、プロセス休止解除状態(ステップS5)となる。
プロセス休止状態(ステップS5)となる場合には、休止処理501−1が実行され、また、タスクは休止解除処理501−2により、プロセス休止状態(ステップS5)からプロセス実行可能状態(ステップS3)となる。図1に示したタイマ割込み処理118は、任意の時間プロセス休止状態(ステップS5)となったタスクに対し、休止解除処理501−2を実行してプロセス実行可能状態(ステップS3)とする処理である。
次に、図5Bに示すタスク生成処理102について説明する。まず、図1に示したOS101は、タスクのためにタスク制御テーブルを確保する(ステップS502)。次に、OS101は、タスクに対するタスク識別IDを割当てる(ステップS503)。また、OS101は、プログラム実行オブジェクトより命令、データ、スタック部をメモリに割当てる(ステップS504)。このメモリは、図2に示した第1〜第4のサーバ211〜214のメモリ211−3〜214−3である。
そして、OS101は、タスク状態をプロセス生成状態とする(ステップS505)。これは、図5Aに示したプロセス生成状態(ステップS2)である。次に、OS101は、実行オブジェクトをメモリへコピーし(ステップS506)、タスク状態をプロセス生成状態とする(ステップS507)。そして、OS101は、実行待ちキューにTCB情報を接続する(ステップS508)。すなわち、図1に示した実行待ちキュー105にTCB情報104を格納する。
図6は、実行待ち処理及びタスク選択処理を示すフローチャートである。図6Aは実行待ち処理114、図6Bはタスク選択処理115である。
図6に示す実行待ち処理114において、OS101は、前の動作タスクのタスク制御テーブルより実行待ちキューIDを取得し(ステップS601)、実行待ちキューIDの実行待ちキューより次の動作タスクを選択する(ステップS602)。
次に、実行させるタスクがあるか否かを判断する(ステップS603)。
判断ステップS603で、実行させるタスクが存在する場合には、OS101は、優先レベルが低い実行中タスクを実行待ちキューに接続する(ステップS604)。この処理を、キューイング処理という。判断ステップS603で、実行させるタスクが存在しない場合は、処理を終了する。この場合、OS101は、アイドルタスクやアイドル処理を実行する。
次に、OS101は、実行中のタスク状態をプロセス実行可能状態に設定する(ステップS605)。そして、OS101は、図1に示したタスク選択処理115を実行する(ステップS606)。ここで、OS101は、タスク選択処理が選択したタスクを実行待ちキューからプロセッサへ割当てる実行待ちタスクを取り外す(ステップS607)。この処理をデキューイング処理という。そして、OS101は、当該プロセッサのプロセッサ状態情報のプロセッサ実行状態、実行タスクIDに次の実行タスク情報を記録し、待ちタスクを実行させる(ステップS608)。この処理をプロセッサ処理という。
続いて、図6Bに示すタスク選択処理115について説明する。まず、OS101は、前の動作タスクのタスク制御テーブルより実行待ちキューIDを取得する(ステップS609)。次に、OS101は、実行待ちキューIDの実行待ちキューより次の動作タスクを選択する(ステップS610)。OS101は、次の動作タスクのスケジューリングIDを取得する(ステップS611)。
ここで、OS101は、実行待ちキューIDの動作対象コアID,プロセッサID, CPUボードIDを取得する(ステップS612)。次に、OS101は、コアIDに対するスケジュールIDが次の動作タスクのスケジューリングIDと等しく、スケジュールIDは、タスク同期であるか否かを判断する(ステップS613)。
判断ステップS613で、タスク同期である場合には、OS101は、図1に示したタスク同期処理116を実行する(ステップS614)。そして、OS101は、タスク同期処理が決定した次の実行タスク識別IDをタスク選択処理により呼び出し元へ返す(ステップS615)。判断ステップS613で、タスク同期でない場合は、処理を終了する。
図7に、タスク同期処理116のフローチャートを示す。図7に示すタスク同期処理116では、OS101は、タスクスイッチ同期データを下記手順にて生成する(ステップS701)。
まず、第1に、前回送信のシーケンス番号に1を加算し、今回送信のシーケンス番号を生成し、データの先頭に格納する。
第2に、同期状態情報に現在の自ブレード内、コアの同期状態を格納する。
第3に、同期対象タスク情報にTCB内識別IDを格納する。次に動作させるタスクの識別IDのみでなく、実行待ちキューに接続されている実行待ちタスクの起動順から任意のタスク数のTCB内識別IDを格納する。
第4に、データ識別情報にタスクスイッチ同期データの識別情報を格納する。
第5に、前回送信のシーケンス番号に1を加算し、今回送信のシーケンス番号を生成する。
第6に、タスクスイッチ同期データ全体のサム値を格納する。
次に、OS101は、タスクスイッチ同期データの転送要求をCPU情報交換ドライバに発行する(ステップS702)。OS101は、他CPUボードのタスクスイッチ同期データのCPU情報交換ドライバを介した更新を同データ内シーケンス番号の更新を判定して待つ(ステップS703)。
ここで、OS101は、タイムアウト設定テーブル内タイムアウト時間内に他CPUボードのタスクスイッチ同期データが更新されたか否かを判断する(ステップS704)。
判断ステップS704で、タスクスイッチ同期データが未更新の場合には、本処理を終了する。
判断ステップS704で、タスクスイッチ同期データが更新された場合には、OS101は、次に動作させるタスク識別IDが全CPUボードにおいて同一かを判定し、YESの場合は、次の動作対象タスク識別IDを一致したタスク識別IDとする(ステップS705)。
ステップS705の判定にてNOの場合には、OS101は、プロセッサ状態情報内スケジューリングIDに対応する同期論理IDを同期論理設定テーブルより検索し、スケジュール判定情報をもとに次動作対象タスク識別IDを決定する(ステップS706)。
図8に割込み処理117、タイマ割込み処理118及びタスク同期処理119のフローチャートを示す。図8Aは割込み処理117、図8Bはタイマ割込み処理118、図8Cはタスク同期処理119である。
図8Aに示す割込み処理117では、OS101は、割込み種別を読み出し(ステップS801)、次に、割込み種別を判定し、割込み種別毎の割込み処理を実行する(ステップS802)。
図8Bに示すタイマ割込み処理118は、図8Aに示した割込み処理117において割込み種別がタイマ割込みの場合に実行される処理である。図8Bに示すタイマ割込み処理118では、OS101は、前回割込み処理からのタイマの経過時間を算出する(ステップS803)。OS101は、タイマ管理テーブルを参照し、待ち時間が経過したタスクの識別IDを検索する(ステップS804)。
OS101は、タイムアップしたタスクのスケジューリングIDを取得し、同期対象か、否かを判定する(ステップS805)。同期対象でないときは処理を終了する。OS101は、タイムアップしたタスクの動作対象コアID,プロセッサID,CPUボードIDを取得する(ステップS806)。
コアIDに対するスケジュールIDが次動作タスクのスケジューリングIDと等しく、スケジュールIDは、タスク同期である場合か否かを判断する(ステップS807)。判断ステップS807で、タスク同期である場合には、OS101は、図1に示した同期待ち合わせ処理119を実行する(ステップS808)。
判断ステップS807で、タスク同期でない場合、又はステップS808の後にステップS809に移行する。
すなわち、同期待ちキューにタイムアップタスクのタスク識別IDが登録されている場合に、OS101は、他CPUボードのタスクスイッチ同期データの更新を同データ内シーケンス番号の更新を確認する。そして、同期待ちキューに接続されているタスクと同一タスクが全CPUボードにてタイムアップした場合に、OS101は、同期待ちキューからはずし、実行待ちキューに登録する(ステップS809)。
図8Bに示す同期待ち合わせ処理119では、OS101は、遅延実行タスク同期データを下記手順にて生成する(ステップS810)。この処理は、図7AのステップS701に示した第1〜第6の処理から一定時間経過後に実行されるため、連続番号で示す。
まず、第7に、前回送信のシーケンス番号に1を加算し、今回送信のシーケンス番号を生成し、データの先頭に格納する。
第8に、同期状態情報に現在の自ブレード内、コアの同期状態を格納する。
第9に、同期対象タスク情報にタイムアップしたタスクのTCB内識別IDを格納する。
第10に、データ識別情報に遅延実行タスク同期データの識別情報を格納する。
第11に、前回送信のシーケンス番号に1を加算し、今回送信のシーケンス番号を生成する。
第12に、タスクスイッチ同期データ全体のサム値を格納する。
次に、OS101は、遅延実行タスク同期データの転送要求をCPU情報交換ドライバに発行する(ステップS811)。OS101は、他のCPUボードのタスクスイッチ同期データのCPU情報交換ドライバを介した更新を同データ内シーケンス番号の更新として確認する(ステップS812)。
そして、OS101は、遅延実行タスク同期データのタスク識別IDが全CPUボードにおいて同一かを判定し、YESの場合は、実行待ちキューにタイムアップタスクのタスク識別IDを登録する。NOの場合は、同期待ちキューにタイムアップタスクのタスク識別IDを登録する(ステップS813)。
図9に同期システムコール実行処理120のフローチャートを示す。図9に示す同期システムコール実行処理120において、OS101は、本処理の呼び出し引数であるシステムコールID, 同期ポイントが同期システムコール設定テーブルに登録されているかを確認する(ステップS901)。
次に、OS101は、タスクの動作対象コアID,プロセッサID,CPUボードIDを取得し、同期システムコール設定テーブルと比較する(ステップS902)。そして、OS101は、コアIDに対するスケジュールIDが次動作タスクのスケジューリングIDと等しく、スケジュールIDは、タスク同期であるか否かを判断する(ステップS903)。判断ステップS903で、タスク同期である場合には、OS101は、図1に示した同期待ち合わせ処理119を実行する(ステップS904)。
そして、OS101は、同期待ちキューにタイムアップタスクのタスク識別IDが登録されている場合に他CPUボードのタスクスイッチ同期データの更新を同データ内シーケンス番号の更新を確認する。そして、同期待ちキューに接続されているタスクと同一タスクが全CPUボードにてタイムアップした場合に同期待ちキューからはずし、実行待ちキューに登録する(ステップS905)。
図10は、CPU情報交換処理121の処理フローを示すフローチャートである。図10AはCPU情報交換処理(送信部)、図10BはCPU情報交換処理(受信部)である。図10Aに示すCPU情報交換処理(121)の送信部においては、OS101は、送信パラメータよりCPUボードNO.を取得し、タスク同期CPU間交換情報の更新対象CPUボードNO.の情報位置を特定する(ステップS1001)。
次に、OS101は、特定したCPUボードNO.に対応したタスク同期CPU間交換情報を更新する(ステップS1002)。そして、OS101は、CPU間交換情報交換ドライバ間の通信ヘッダに送信元CPUボードNO.及び送信先CPUボードNO.等の情報を格納し、送信先CPUボードNO.に対し、データをブロードキャストする(ステップS1003)。
図10Bに示すCPU情報交換処理(121)の受信部においては、OS101は、CPU間交換情報交換ドライバ間の通信ヘッダを参照し、送信元CPUボードNO.及びタスク同期CPU間交換情報の更新対象CPUボードNO.の情報位置を特定する(ステップS1004)。そして、OS101は、特定したCPUボードNO.に対応したタスク同期CPU間交換情報を更新する(ステップS1005)。
図11に、タスクスイッチ同期データ及び動作チャートを示す。図11Aは第1〜第4のCPUボードのタスクスイッチ同期データA−1、A−2〜A−5を示し、図11Bは第1〜第4のCPUボードに対応する計算機で動作するタスクのタイムチャートB1〜4を示す。タスクスイッチ同期データA−1、A−2〜A−5は、図4に示したタスクスイッチ同期データ401に対応する。
図11Aにおいて、A−1に示す同期対象タスク同期データに格納されているタスク識別情報が、A−2〜A−5に示す第1〜第4のCPUボードに対応する計算機において、識別ID:30010、30005の順でタスクが実行可能状態となり実行待ちキューに接続されたことを示す。
このデータを第1〜第4のCPUボードに対応する計算機においてネットワークを介して交換した場合、図1に示したOS101内タスク選択処理115、タスク同期処理116によりタスク動作は、図11Bに示すタイムチャートとなる。
図11Bに示すタイムチャートでは、タスク識別ID:30004のタスクが動作中であり、この処理を中断して次の実行タスクがOS101に選択されるまでの動作を示している。Ta期間でタスク識別ID 30004が動作し、Tb期間でOS処理(タスク選択処理、タスク同期処理等)が実行され、Tc期間でOS101はタスクスイッチ同期データを待ち合わせをする。そして、任意の時間内にタスクスイッチ同期データが更新され、OS101はタスク同期処理により次にCPUコアで実行させるタスクを選択し、Td期間でタスク識別ID 30010が動作することを示している。第1〜第4のCPUボードのタスクのタイムチャートB−1〜B−4は同様となる。
図12にタイマ同期データ及び動作チャートを示す。図12Aは第1〜第4のCPUボードのタイマ同期タスク同期データA−1、A−2〜A−5を示し、図12Bは第1〜第4のCPUボードに対応する計算機で動作するタスクのタイムチャートB−1〜4を示す。タイマ同期タスク同期データA−1、A−2〜A−5は、図4に示したタイマ同期タスク同期データ402に対応する。
図12Aにおいて、A−1に示すタイマ同期タスク同期データに格納されているタスク識別情報が、A−2〜A−5に示す第1〜第4のCPUボードに対応する計算機において、識別ID:30010のタスクが任意の時間経過後にタイムアップのため、実行可能状態となったことを示す。
このデータを第1〜第4のCPUボードに対応する計算機においてネットワークを介して交換した場合、図1に示したOS101内タイマ割込み処理118、同期待ち合わせ処理119によりタスク動作は、図12Bに示すタイムチャートとなる。
図12Bに示すタイムチャートでは、タスク識別ID:30004のタスクが動作中であり、この処理を中断して次の実行タスクがOS101に選択されるまでの動作を示している。Ta期間でタスク識別ID:30004が動作し、Tb期間でOS処理(割込み処理、タイマ割込み処理、同期待ち合わせ処理等)が実行され、Tc期間でタイマ同期タスク同期データを待ち合わせをする。そして、任意の時間内にタイマ同期タスク同期データが更新され、同期待ち合わせ処理により全計算機においてタイマ起動タスク(識別ID:30010)が実行可能状態のため、実行待ちキュー105に登録される。
そして、Td期間でOS処理(タスク選択処理、タスク同期処理等)が実行され、Te期間でタスクスイッチ同期データを待ち合わせし、任意の時間内にタスクスイッチ同期データが更新される。その後、OS101はタスク同期処理により次にCPUコアで実行させるタスクを選択し、Tf期間でタスク識別ID 30010が動作することを示している。Te期間においては、図11と同様のタスクスイッチデータがCPUボード1〜4に対応する計算機間で交換されたことを前提としている。第1〜第4のCPUボードのタスクのタイムチャートB−1〜B−4は同様となる。
図13にシステムコール同期データ及び動作チャートを示す。図13Aは第1〜第4のCPUボードのシステムコール同期データA−1、A−2〜A−5を示し、図13Bは第1〜第4のCPUボードに対応する計算機で動作するタスクのタイムチャートB−1〜4を示す。システムコール同期データA−1、A−2〜A−5は、図4に示したシステムコール同期データ403に対応する。
図13Aにおいて、A−1に示すシステムコール同期データに格納されているタスク識別情報が、A−2〜A−5に示す第1〜第4のCPUボードに対応する計算機において、識別ID:30004のタスクがシステムコールID:10のシステムコールを実行する。そして、このシステムコールが図1に示した同期システムコール設定テーブル108に設定されており、システムコール実行時に同期システムコール実行処理から記録されたことを示す。
このデータを第1〜第4のCPUボードに対応する計算機においてネットワークを介して交換した場合、図1に示した同期システムコール実行処理120、同期待ち合わせ処理119によりタスク動作は、図13Bに示すタイムチャートとなる。
図13Bに示すタイムチャートでは、タスク識別ID:30004のタスクが動作中であり、システムコールID:10のシステムコールを実行し、第1〜第4のCPUボードに対応する計算機において、同期してシステムコールID:10のシステムコールが実行されることを示している。
Ta期間でタスク識別ID:30004が動作し、Tb期間でOS処理(システムコール同期処理、同期待ち合わせ処理等)が実行され、Tc期間でOS101はシステムコール同期データを待ち合わせをする。そして、任意の時間内にシステムコール同期データが更新され、同期待ち合わせ処理により全計算機において識別ID:30004のタスクのシステムコール同期データの一致が確認される。そして、Td期間でシステムコールID:10のシステムコールが実行され、Te期間でタスク識別ID:30004が動作することを示している。
図14は、タスクスイッチ同期データ、タスク識別IDの動作レベル及びスケジュール判定情報による次動作タスクIDを示す図である。図14Aは第1〜第4のCPUボードのタスクスイッチ同期データ401、図14Bはタスクスイッチ同期データ内のタスク識別IDの動作レベル、図14Cは図1に示した同期論理テーブル112内のスケジュール判定情報に従い、タスク選択処理115が次に動作させるタスクIDを選択した例を示す。
図1に示した同期論理テーブル112内のスケジュール判定情報は、下記の第1〜第6に基づいて設定される。
第1に、全計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機内で一番早く実行可能待ちとなったタスクを実行させる。
第2に、全計算機、又は2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機、又は2つ以上の計算機において一番早く実行可能待ちとなったタスクを実行させる。
第3に、全計算機においてタイムアウト時間内に同一タスクが実行可能状態となった場合にのみ計算機内で一番早く実行可能待ちとなったタスクを実行させる。
第4に、全計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機内で実行可能待ちとなったタスクのうち一番優先レベルが高いタスクを実行させる。
第5に、全計算機、又は2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ全計算機、又は2つ以上の計算機において実行可能待ちとなったタスクのうち一番優先レベルが高いタスクを実行させる。
第6に、全計算機内で一番早く実行可能待ちとなったタスクのうち優先レベルが一番高いタスクを実行させる。
なお、上述した本実施の形態例に限らず、本発明の要旨を逸脱しない限り、適宜変更しうることは言うまでもない。
本発明のOS(オペレーティングシステム)内のタスク同期構成の説明図である。 本発明の前提となるシステム構成と本発明のシステム構成を示す図であり、図2Aは前提となるシステム構成、図2Bはシステム構成である。 本発明におけるデータ構造を示す図であり、図3AはTCB、図3Bは実行待ちキュー、図3Cは同期待ちキュー、図3Dはプロセッサ状態情報、図3Eは同期システムコール設定テーブル、図3Fは実行コア割当てテーブル、図3GはCPUタスク同期状態情報、図3Hはタイムアウト設定テーブル、図3Iは同期論理設定テーブルである。 タスク同期CPU間交換情報113の構成を示す図である。 タスク状態遷移図及びタスク生成処理図を示す図であり、図5Aはタスク(プロセス)状態遷移図、図5Bはタスク生成処理を示すフローチャートである。 実行待ち処理及びタスク選択処理を示すフローチャートであり、図6Aは実行待ち処理、図6Bはタスク選択処理である。 タスク同期処理を示すフローチャートである。 割込み処理、タイマ割込み処理及びタスク同期処理のフローチャートを示し、図8Aは割込み処理、図8Bはタイマ割込み処理、図8Cはタスク同期処理である。 同期システムコール実行処理を示すフローチャートである。 CPU情報交換処理を示すフローチャートであり、図10AはCPU情報交換処理(送信部)、図10BはCPU情報交換処理(受信部)である。 タスクスイッチ同期データ及び動作チャートを示し、図11Aは第1〜第4のCPUボードのタスクスイッチ同期データA−1、A−2〜A−5を示し、図11Bは第1〜第4のCPUボードに対応する計算機で動作するタスクのタイムチャートB−1〜B−4を示す。 タイマ同期データ及び動作チャートを示し、図12Aは第1〜第4のCPUボードのタイマ同期タスク同期データA−1、A−2〜A−5を示し、図12Bは第1〜第4のCPUボードに対応する計算機で動作するタスクのタイムチャートB−1〜B−4を示す。 システムコール同期データ及び動作チャートを示し、図13Aは第1〜第4のCPUボードのシステムコール同期データA−1、A−2〜A−5を示し、図13Bは第1〜第4のCPUボードに対応する計算機で動作するタスクのタイムチャートB−1〜B−4を示す。 タスクスイッチ同期データ、タスク識別IDの動作レベル及びスケジュール判定情報による次動作タスクIDを示し、図14Aはタスクスイッチ同期データ、図14Bはタスク識別IDの動作レベル、図14Cはスケジュール判定情報による次動作タスクIDを示す。
符号の説明
101…オペレーティング・システム、102…タスク生成処理、103…タスク、104…タスク制御ブロック(TCB)、105…実行待ちキュー、106…同期待ちキュー、107…プロセッサ状態情報、108…同期システムコール設定テーブル、109…実行コア割当テーブル、110…CPUタスク同期状態情報、111…タイムアウト設定テーブル、112…同期論理設定テーブル、113…タスク同期CPU間交換情報、114…実行待ち処理、115…タスク選択処理、116…タスク同期処理、117…割込み処理、118…タイマ割込み処理、119…同期待ち合わせ処理、120…同期システムコール実行処理、121…CPU情報交換処理

Claims (13)

  1. 複数の計算機がネットワーク接続される計算機システムにおけるマルチプログラミングOSを実装した各計算機が、
    前記ネットワークを介して、同一プログラムの実行を識別するプログラム識別情報を、任意の時間範囲にて交換する情報交換処理部と、
    前記プログラム識別情報の一致あるいは不一致の状態を判定する判定部と、
    次に動作させるプログラムを選択して実行する選択実行部と
    を備えるものである計算機システム。
  2. 前記情報交換処理部は、動作プログラムがCPUを明け渡すタスクスイッチング時に、プログラム識別情報を交換することを特徴とする請求項1に記載の計算機システム。
  3. 前記情報交換処理部は、任意の時間経過後にプログラムを動作させる際に、プログラム識別情報を交換することを特徴とする請求項1に記載の計算機システム。
  4. 前記情報交換処理部は、任意のシステムコールを実行する際に、プログラム識別情報を交換することを特徴とする請求項1に記載の計算機システム。
  5. 前記選択実行部は、次に動作させるプログラムを任意に選択する際に、少なくとも2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ、2つ以上の計算機において一番早く実行可能待ちとなったタスクを実行させることを特徴とする請求項1に記載の計算機システム。
  6. 前記選択実行部は、次に動作させるプログラムを任意に選択する際に、少なくとも2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ、2つ以上の計算機において実行可能待ちとなったタスクのうち一番優先レベルが高いタスクを実行させることを特徴とする請求項1に記載の計算機システム。
  7. 複数の計算機がネットワーク接続される計算機システムにおけるマルチプログラミングOSを実装する各計算機の処理が、
    前記ネットワークを介して、同一プログラムの実行を識別するプログラム識別情報を、任意の時間範囲にて交換する情報交換処理ステップと、
    前記プログラム識別情報の一致あるいは不一致の状態を判定する判定ステップと、
    次に動作させるプログラムを選択して実行する選択実行ステップと
    を含むものである計算機制御方法。
  8. 前記情報交換処理ステップは、動作プログラムがCPUを明け渡すタスクスイッチング時に、プログラム識別情報を交換することを特徴とする請求項7に記載の計算機制御方法。
  9. 前記情報交換処理ステップは、任意の時間経過後にプログラムを動作させる際に、プログラム識別情報を交換することを特徴とする請求項7に記載の計算機制御方法。
  10. 前記情報交換処理ステップは、任意のシステムコールを実行する際に、プログラム識別情報を交換することを特徴とする請求項7に記載の計算機制御方法。
  11. 前記選択実行ステップは、次に動作させるプログラムを任意に選択する際に、少なくとも2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ、2つ以上の計算機において一番早く実行可能待ちとなったタスクを実行させることを特徴とする請求項7に記載の計算機制御方法。
  12. 前記選択実行ステップは、次に動作させるプログラムを任意に選択する際に、少なくとも2つ以上の計算機においてタイムアウト時間内に同一タスクが同一順序に実行可能状態となった場合にのみ、2つ以上の計算機において実行可能待ちとなったタスクのうち一番優先レベルが高いタスクを実行させることを特徴とする請求項7に記載の計算機制御方法。
  13. 複数の計算機がネットワーク接続され、各計算機がマルチプログラミングOSを実装する計算機システムにおける各計算機に、
    前記ネットワークを介して、同一プログラムの実行を識別するプログラム識別情報を、任意の時間範囲にて交換する情報交換処理機能と、
    前記プログラム識別情報の一致あるいは不一致の状態を判定する判定機能と、
    次に動作させるプログラムを選択して実行する選択実行機能と、
    を実現させるための計算機制御プログラム。
JP2008060016A 2008-03-10 2008-03-10 計算機システム、計算機制御方法及び計算機制御プログラム Active JP5176230B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008060016A JP5176230B2 (ja) 2008-03-10 2008-03-10 計算機システム、計算機制御方法及び計算機制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008060016A JP5176230B2 (ja) 2008-03-10 2008-03-10 計算機システム、計算機制御方法及び計算機制御プログラム

Publications (2)

Publication Number Publication Date
JP2009217503A true JP2009217503A (ja) 2009-09-24
JP5176230B2 JP5176230B2 (ja) 2013-04-03

Family

ID=41189286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008060016A Active JP5176230B2 (ja) 2008-03-10 2008-03-10 計算機システム、計算機制御方法及び計算機制御プログラム

Country Status (1)

Country Link
JP (1) JP5176230B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090553A (ja) * 2009-10-23 2011-05-06 Nec System Technologies Ltd 情報処理装置、同期制御方法およびプログラム
CN102073538A (zh) * 2009-11-23 2011-05-25 倍福自动化有限公司 实时运转时间系统以及此运转时间系统功能性模块
WO2012032572A1 (ja) * 2010-09-08 2012-03-15 株式会社日立製作所 計算機
WO2012056487A1 (ja) * 2010-10-25 2012-05-03 株式会社日立製作所 計算機システム
WO2012127652A1 (ja) 2011-03-23 2012-09-27 株式会社日立製作所 計算機システム、データ処理方法、及びデータ処理プログラム
WO2013051067A1 (ja) * 2011-10-07 2013-04-11 株式会社日立製作所 計算機および計算機制御方法
JP2013186509A (ja) * 2012-03-06 2013-09-19 Hitachi Ltd 複数サーバにおける同期方法
WO2016088414A1 (ja) * 2014-12-05 2016-06-09 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02139633A (ja) * 1988-11-19 1990-05-29 Fujitsu Ltd プロセス同期制御方式
JPH0922369A (ja) * 1995-07-07 1997-01-21 Fujitsu Ltd マルチタスキング方式のカーネルにおける不正動作検出方法
JPH1083379A (ja) * 1996-09-09 1998-03-31 Fujitsu Ltd 並列計算機システム
JP2000010806A (ja) * 1998-06-25 2000-01-14 Hitachi Ltd 分散プログラム実行方法及び複数コンピュータ立ち上げ方法
JP2005084707A (ja) * 2003-09-04 2005-03-31 Fuji Xerox Co Ltd 情報処理装置および情報処理プログラム
JP2006519432A (ja) * 2003-02-27 2006-08-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の処理要素を有するデータ処理システム、複数の処理要素を有するデータ処理システムを制御する方法
WO2007110906A1 (ja) * 2006-03-27 2007-10-04 Hitachi, Ltd データ処理装置
JP2007264770A (ja) * 2006-03-27 2007-10-11 Fujitsu Ltd データベースアクセス方法及び装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02139633A (ja) * 1988-11-19 1990-05-29 Fujitsu Ltd プロセス同期制御方式
JPH0922369A (ja) * 1995-07-07 1997-01-21 Fujitsu Ltd マルチタスキング方式のカーネルにおける不正動作検出方法
JPH1083379A (ja) * 1996-09-09 1998-03-31 Fujitsu Ltd 並列計算機システム
JP2000010806A (ja) * 1998-06-25 2000-01-14 Hitachi Ltd 分散プログラム実行方法及び複数コンピュータ立ち上げ方法
JP2006519432A (ja) * 2003-02-27 2006-08-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数の処理要素を有するデータ処理システム、複数の処理要素を有するデータ処理システムを制御する方法
JP2005084707A (ja) * 2003-09-04 2005-03-31 Fuji Xerox Co Ltd 情報処理装置および情報処理プログラム
WO2007110906A1 (ja) * 2006-03-27 2007-10-04 Hitachi, Ltd データ処理装置
JP2007264770A (ja) * 2006-03-27 2007-10-11 Fujitsu Ltd データベースアクセス方法及び装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090553A (ja) * 2009-10-23 2011-05-06 Nec System Technologies Ltd 情報処理装置、同期制御方法およびプログラム
CN102073538A (zh) * 2009-11-23 2011-05-25 倍福自动化有限公司 实时运转时间系统以及此运转时间系统功能性模块
JP2011134310A (ja) * 2009-11-23 2011-07-07 Beckhoff Automation Gmbh リアルタイム・ランタイムシステムおよびそのようなランタイムシステムのための機能モジュール
US8984131B2 (en) 2009-11-23 2015-03-17 Beckhoff Automation Gmbh Real-time run-time system with an administrative module to configure functional modules of the system
WO2012032572A1 (ja) * 2010-09-08 2012-03-15 株式会社日立製作所 計算機
JP5707409B2 (ja) * 2010-09-08 2015-04-30 株式会社日立製作所 計算機
JPWO2012056487A1 (ja) * 2010-10-25 2014-02-24 株式会社日立製作所 計算機システム
WO2012056487A1 (ja) * 2010-10-25 2012-05-03 株式会社日立製作所 計算機システム
US9942107B2 (en) 2010-10-25 2018-04-10 Hitachi, Ltd. Computer system including plural computer nodes synchronized with each other
JP5596793B2 (ja) * 2010-10-25 2014-09-24 株式会社日立製作所 計算機システム
EP2690557A4 (en) * 2011-03-23 2014-08-20 Hitachi Ltd COMPUTER SYSTEM, DATA PROCESSING METHOD, AND DATA PROCESSING PROGRAM
JP5416863B2 (ja) * 2011-03-23 2014-02-12 株式会社日立製作所 計算機システム、データ処理方法、及びデータ処理プログラム
EP2690557A1 (en) * 2011-03-23 2014-01-29 Hitachi, Ltd. Computer system, data processing method, and data processing program
CN103180832A (zh) * 2011-03-23 2013-06-26 株式会社日立制作所 计算机系统、数据处理方法、以及数据处理程序
CN103180832B (zh) * 2011-03-23 2016-01-13 株式会社日立制作所 计算机系统和数据处理方法
WO2012127652A1 (ja) 2011-03-23 2012-09-27 株式会社日立製作所 計算機システム、データ処理方法、及びデータ処理プログラム
WO2013051067A1 (ja) * 2011-10-07 2013-04-11 株式会社日立製作所 計算機および計算機制御方法
JP2013186509A (ja) * 2012-03-06 2013-09-19 Hitachi Ltd 複数サーバにおける同期方法
WO2016088414A1 (ja) * 2014-12-05 2016-06-09 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理方法

Also Published As

Publication number Publication date
JP5176230B2 (ja) 2013-04-03

Similar Documents

Publication Publication Date Title
JP5176230B2 (ja) 計算機システム、計算機制御方法及び計算機制御プログラム
US10764125B2 (en) Method and device for training model in distributed system
Tan et al. Coupling task progress for mapreduce resource-aware scheduling
US8453151B2 (en) Method and system for coordinating hypervisor scheduling
WO2019160030A1 (ja) サービス提供システム、資源割り当て方法、及び資源割り当てプログラム
JP2007172334A (ja) 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム
JP5136550B2 (ja) 情報処理装置及び情報処理装置の再構成方法
JPWO2007072544A1 (ja) 情報処理装置、計算機、リソース割り当て方法及びリソース割り当てプログラム
US20090183153A1 (en) Method and computer for synchronous scheduling of multiple virtual CPUs
JPWO2011117987A1 (ja) マルチコアシステムおよび起動方法
JP5994601B2 (ja) 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP6610398B2 (ja) 並列処理装置及び通信制御方法
WO2013145199A1 (ja) 仮想計算機のスケジュール方法
CN105577310B (zh) 一种时间触发以太网络中任务分区与通信调度的同步方法
EP2615548B1 (en) Computing device
JP2008009797A (ja) 無中断メモリレプリケーション方法
JP2010113667A (ja) 情報処理装置
JP5590032B2 (ja) 計算装置および並列計算機システム
US20220261298A1 (en) Computer system and program execution method
JP5493880B2 (ja) 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法
JP5449471B2 (ja) 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム
WO2016038788A1 (ja) 通信装置、通信リクエスト処理システム、通信リクエスト処理方法および通信リクエスト処理プログラム
JP2010244129A (ja) 計算機システム
JP2002312333A (ja) マルチプロセッサ初期化/並行診断方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120427

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: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121221

R150 Certificate of patent or registration of utility model

Ref document number: 5176230

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150