(57)【要約】【課題】異なる動作環境及び複写されるデータの特性要因に拘わらず、常に最大のスループットを発生させてデータを高速化複写処理できる情報処理装置を提供する。【解決手段】この情報処理装置（ホスト計算機１００）は、オペレーティングシステムOＳに従うコピープログラム１０５の実行によりデータを複写処理するとき、制御部１０６が異なる動作環境を示すプログラム領域サイズ、複写されるデータの特性要因を示すブロックサイズをプログラム領域情報１０３の参照により判断し、バッファ割当処理部１０７が判断結果に応じて算出した適切なバッファ領域数をプログラム実行領域１０４内に形成されるバッファ領域１１７に割り当て、データ入出力処理部１０８が割り当てられたバッファ領域数分のデータを一括して入出力制御する。【選択図】図１
2010140077.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムに従うプログラムの実行によりデータを複写処理するデータコピー方法において、異なる動作環境を示すプログラム領域サイズ、並びに複写されるデータの特性要因を示すブロックサイズを判断するサイズ判断ステップと、前記判断結果に応じて適切な記憶領域数としてのバッファ領域数を算出するバッファ領域数算出ステップと、前記算出されたバッファ領域数を前記プログラムの実行領域内に形成されるバッファ領域に割り当てるバッファ割当ステップと、前記バッファ割当手段により割り当てられた前記バッファ領域数分のデータを一括して入出力制御するデータ入出力制御ステップと、を有することを特徴とするデータコピー方法。
【請求項２】
オペレーティングシステムに従うプログラムの実行によりデータを複写処理する情報処理装置において、異なる動作環境を示すプログラム領域サイズ、並びに複写されるデータの特性要因を示すブロックサイズを判断するサイズ判断手段と、前記サイズ判断手段による前記判断結果に応じて適切な記憶領域数としてのバッファ領域数を算出すると共に、前記算出されたバッファ領域数を前記プログラムの実行領域内に形成されるバッファ領域に割り当てるバッファ割当手段と、前記バッファ割当手段により割り当てられた前記バッファ領域数分のデータを一括して入出力制御するデータ入出力手段と、を備えたことを特徴とする情報処理装置。
【請求項３】
オペレーティングシステムに従ってデータの複写処理を実行するデータコピープログラムであって、異なる動作環境を示すプログラム領域サイズ、並びに複写されるデータの特性要因を示すブロックサイズを判断した結果に応じて適切な記憶領域数としてのバッファ領域数を算出する第１の手順と、前記バッファ領域数をプログラムの実行領域内に形成されるバッファ領域に割り当てる第２の手順と、前記割り当てられたバッファ領域数分のデータを一括して入出力制御する第３の手順と、を情報処理装置に実行させることを特徴とするデータコピープログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データコピー方法、情報処理装置、及びコピープログラムに係り、ホストコンピュータシステム等における情報処理として、データの複写処理（コピー）を高速に行うことを可能にしたデータコピー方法、情報処理装置、及びコピープログラムに関する。
【背景技術】
【０００２】
従来、データの複写処理を目的としたプログラムを備える情報処理装置は、処理性能を向上させる手段として、データの読み出し（読込）用及び書き出し（書込）用のバッファを複数用意して構成されるのが一般的である。
【０００３】
用意されるバッファ数はプログラムの設計時に計算されている固定値とするか、或いはプログラムを利用する際に、プログラムの外部より与えられる方法（例えば特許文献１参照）が知られている。
【特許文献１】特開２００５−１２２２３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したデータの複写処理を実行する際に割り当てられるバッファは、その数がプログラムの設計時に計算された固定値、若しくはシステム管理者が設定した外部情報として与えられるようになっている。こうして与えられたバッファ数は、複写処理実行時の動作環境及び複写されるデータの特性要因（データの形式・要素レコード及びブロックのサイズ等）の関係が何等考慮されていないため、その時点において最大スループットを発生させられる適切な値であるとは限らないものとなっている。
【０００５】
前述した特許文献１記載の従来技術は、ストレージ管理装置から指定された予約バッファ数を割当てて使用するが、複写処理の実行時に利用可能なバッファ数に余裕があったとしても、指定された予約バッファ数を超えて利用する事ができないものであるため、処理効率の向上のためにさほど有効でないという問題がある。
【０００６】
本発明は、このような問題点を解決すべくなされたもので、その技術的課題（目的）は、異なる動作環境及び複写されるデータの特性要因に拘わらず、常に最大のスループットを発生させてデータを高速に複写することができるデータコピー方法、情報処理装置、及びコピープログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のデータコピー方法は、上記技術的課題を解決するため、オペレーティングシステムに従うプログラムの実行によりデータを複写処理するデータコピー方法において、異なる動作環境を示すプログラム領域サイズ、並びに複写されるデータの特性要因を示すブロックサイズを判断するサイズ判断ステップと、判断結果に応じて適切な記憶領域数としてのバッファ領域数を算出するバッファ領域数算出ステップと、算出されたバッファ領域数をプログラムの実行領域内に形成されるバッファ領域に割り当てるバッファ割当ステップと、バッファ割当手段により割り当てられたバッファ領域数分のデータを一括して入出力制御するデータ入出力制御ステップと、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、異なる動作環境及び複写されるデータの特性要因に拘わらず、常に最大のスループットを発生させてデータを高速に複写処理する事が可能となる。又、従来技術においてシステム管理者がバッファを過剰設定した際、複写されるデータの特性要因によっては動作不能となって発生していた障害を根本的に回避する事ができる。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明のデータコピー方法、情報処理装置、及びコピープログラムについて、図面を参照して詳細に説明する。
【００１０】
最初に、本発明のデータコピー方法の技術的概要を簡単に説明する。本発明のデータコピー方法は、オペレーティングシステムOＳに従うプログラムの実行によりデータを複写処理するものにおいて、異なる動作環境を示すプログラム領域サイズ、並びに複写されるデータの特性要因を示すブロックサイズを判断するサイズ判断ステップと、判断結果に応じて適切な記憶領域数としてのバッファ領域数を算出するバッファ領域数算出ステップと、算出されたバッファ領域数をプログラムの実行領域内に形成されるバッファ領域に割り当てるバッファ割当ステップと、バッファ割当手段により割り当てられたバッファ領域数分のデータを一括して入出力制御するデータ入出力制御ステップと、を有するものである。
【００１１】
なお、このようなデータコピー方法は、オペレーティングシステムOＳに従うプログラムの実行によりデータを複写処理する情報処理装置への適用が容易である。
【００１２】
図１は、本発明の一実施形態に係る情報処理装置であるホスト計算機１００（コピープログラムを含む）の基本構成を動作環境全体を含めて示した概要図である。
【００１３】
図示のホスト計算機１００は、よく知られているように、略図するが、ＣＰＵ、主メモリ、ＨＤＤ等による記憶装置、表示装置、キーボードマウス等の入出力装置を備えて構成されている。そして、主メモリには、オペレーティングシステムOＳのOＳシステムテーブル領域１０２にコンピュータ管理者によって設定されたプログラム実行情報パラメータ１０１の情報がプログラム領域情報１０３として格納されている。
【００１４】
プログラム実行領域１０４は、そのサイズがプログラム実行情報パラメータ１０１によって与えられ、分割されたコピープログラム１０５の格納領域とバッファ領域１１７とを持つ。コピープログラム１０５は、プログラム実行領域１０４内に呼び出されて実行され、プログラム実行領域１０４のコピープログラム１０５の格納領域以外の残り領域は、バッファ領域１１７として利用可能な部分となっている。
【００１５】
コピープログラム１０５は、例えば極小な固定サイズの約２０ＫＢ程度の容量を持ち、制御部１０６、バッファ割当処理部１０７、及びデータ入出力処理部１０８によって構成されている。
【００１６】
バッファ領域１１７は、入力ファイル用バッファ領域１１２と出力ファイル用バッファ領域１１５とに分割されて使用される。なお、コピープログラム１０５に基づいて入力ファイル１１１、出力ファイル１１２の間で行われるデータの複写処理の流れは、後述のデータ入出力処理部１０８の動作処理で説明する。
【００１７】
図２は、ホスト計算機１００に備えられる制御部１０６の動作処理を例示したフローチャートである。
【００１８】
（１）制御部１０６は、まず動作処理としてプログラムの開始時点において、オペレーティングシステムOＳのOＳシステムテーブル領域１０２からプログラム領域情報１０３を取得する。具体的には、異なる動作環境を示すＲＥＧＩＯＮ（プログラム実行領域サイズ）、複写されるデータの特性要因を示すＢＬＫＳＩＺＥ（入出力ブロックサイズ）を取得する（ステップＳ２０１）。
【００１９】
（２）この後、制御部１０６は、バッファ割当処理部１０７を呼び出し、バッファ割当処理部１０７へ動作処理を引き渡す処理を実行する。なお、このバッファ割当処理の詳細は、図３により後述する（ステップＳ２０２）。
【００２０】
（３）さらに、制御部１０６は、入力ファイル１１１のＯＰＥＮによりその使用宣言を行うと共に、入力バッファ領域の確保を行う。すなわち、ここではバッファ割当処理部１０７で算出されたバッファ数分、入力ファイル用バッファ領域１１２を確保する処理が行われる（ステップＳ２０３）。
【００２１】
（４）引き続き、制御部１０６は、出力ファイル１１６のＯＰＥＮによりその使用宣言を行うと共に、出力バッファ領域の確保を行う。すなわち、ここではバッファ割当処理部１０７で算出されたバッファ数分、出力ファイル用バッファ領域１１５を確保する処理が行われる（ステップＳ２０４）。
【００２２】
（５）この後、制御部１０６は、データ入出力処理部１０８を呼び出し、データ入出力処理部１０８へ動作処理を引き渡す処理を実行する。なお、このデータ入出力処理の詳細は、図４により後述する（ステップＳ２０５）。
【００２３】
（６）さらに、制御部１０６は、入力ファイル１１１のＣＬＯＳＥによりその使用の終了宣言を行う処理に移行した後、同様に出力ファイル１１６についても、ＣＬＯＳＥによりその使用の終了宣言を行う処理に移行する。制御部１０６の動作処理は、以上で終了する（ステップＳ２０６、Ｓ２０７）。
【００２４】
図３は、ホスト計算機１００に備えられるバッファ割当処理部１０７の動作処理を例示したフローチャートである。
【００２５】
（１）バッファ割当処理部１０７は、まずバッファ領域１１７に利用可能なサイズを求める処理を行う。バッファ領域１１７のサイズ（バッファ領域サイズ）は、プログラム領域情報１０３より求めたＲＥＧＩＯＮサイズからコピープログラム１０５の固定サイズ（２０ＫＢ）を減じた値として得られる（ステップＳ３０１）。
【００２６】
（２）次に、バッファ割当処理部１０７は、割当可能なバッファの総個数を求める処理を行う。バッファ総個数は、バッファ領域１１７のサイズ（バッファ領域サイズ）をプログラム領域情報１０３より求めたブロックサイズで除算した値として得られる。この結果、入出力ファイル各々のバッファ個数（すなわち、入力ファイル用バッファ領域１１２に割り当てる入力バッファ１１３、出力ファイル用バッファ領域１１５に割り当てる出力バッファ１１４）は、それぞれバッファ総個数の半分となる（ステップＳ３０２）。
【００２７】
（３）さらに、バッファ割当処理部１０７は、バッファ個数がオペレーティングシステムの制限値である２５５を超過するか否かの判定を行う。この結果、バッファ個数がオペレーティングシステムOＳ（ＶOＳ３）の制限値である２５５を超過する場合は、バッファ個数をオペレーティングシステムOＳの最大バッファ数（制限値２５５）に補正する処理を行う（ステップＳ３０３、Ｓ３０４）。
【００２８】
（４）ステップＳ３０３の後、ステップＳ３０４の判定で、バッファ個数が制限値２５５を超えていなかった場合、バッファ個数の確定として、入力ファイル１１１、出力ファイル１１６のＢＵＦＮO割当領域を算出されたバッファ個数に変更してここでの処理を終了する（ステップＳ３０５）。
【００２９】
これにより、上述した入力ファイル１１１についての入力バッファ領域の確保（ステップＳ２０３）、並びに出力ファイル１１６についての出力バッファ領域の確保（ステップＳ２０４）に備えることができる。
【００３０】
図４は、ホスト計算機１００に備えられるデータ入出力処理部１０８の動作処理を例示したフローチャートである。
【００３１】
（１）データ入出力処理部１０８は、まず入力ファイル１１１からデータを一回の読込み命令で入力ファイル用バッファ領域１１２へ入力バッファ１１３の個数分、連続的に読込みを行うことにより、入力ファイル読み込みの処理を行う（ステップＳ４０１）。
【００３２】
（２）次に、データ入出力処理部１０８は、入力ファイル１１１から読み込むべきデータが無くなったか否かの判定を行い、データが無くなった場合には動作処理を終了する（ステップＳ４０２）。
【００３３】
（３）ステップＳ４０２でデータが存在する場合、入力ファイル用バッファ領域１１２内の入力バッファ１１３が全て取り出されたか否かを判定することにより、バッファ全個数取出し完了であるか否かの判定を行う（ステップＳ４０３）。
【００３４】
（４）ステップＳ４０３で全て取り出された場合、出力ファイル用バッファ領域１１５の全部の出力バッファ１１４を一回の書込み命令でバッファ個数分、連続的に書込みを行うことにより、出力ファイル書き出しの処理を行う。その後は、入力ファイル読み込みの処理（ステップＳ４０１）の前にリターンして待機する（ステップＳ４０７）。
【００３５】
（５）ステップＳ４０３で全て取り出されていなければ、入力ファイル用バッファ領域１１２から入力バッファ１１３の１個をデータ入力領域１０９へ取出す処理を行う（ステップＳ４０4）。
【００３６】
（６）さらに、データ入出力処理部１０８は、データ入力領域１０９をデータ出力領域１１０へ転送する処理を行ってから、データ出力領域１１０から出力ファイル用バッファ領域１１５へ出力バッファ１１４の１個を格納する処理を行う。この後は、バッファ全個数取出し完了であるか否かの判定（ステップＳ４０３）の前にリターンする（ステップＳ４０５、Ｓ４０６）。
【００３７】
これにより、バッファ全個数の取出し完了に至るまでの間、上述した入力ファイル用バッファ領域１１２から入力バッファ１１３の１個をデータ入力領域１０９へ取出す処理（ステップＳ４０4）、データ入力領域１０９をデータ出力領域１１０へ転送する処理（ステップＳ４０５）、並びにデータ出力領域１１０から出力ファイル用バッファ領域１１５へ出力バッファ１１４の１個を格納する処理（ステップＳ４０６）が繰り返される。
【００３８】
図５（ａ）〜（ｃ）は、ホスト計算機１００によるデータの複写処理の前後で適用されるプログラム実行情報を例示したものである。
【００３９】
ここでは、プログラム実行情報パラメータ１０１が例えば図５（ａ）示されるように、丸数字１〜３で識別されるＲＥＧＩＯＮ、ＢＬＫＳＩＺＥ、ＢＵＦＮOなる項目名を含んでいる。そして、図５（ｂ）に示すように、ＲＥＧＩＯＮの項目内容はプログラム実行に割り当てる領域サイズを指定し、又ＢＬＫＳＩＺＥの項目内容は入出力ファイルのブロック長（１バッファ当りのサイズ）を指定し、さらにＢＵＦＮOの項目内容は入出力ファイルに確保するバッファの個数を指定することを示している。
【００４０】
図５（ｃ）に示すデータ例には、各項目内容における実行情報パラメータの指定値が異なる場合について、通常のコピープログラム（汎用的なもの）と本実施形態でのコピープログラム１０５とによるバッファ算出結果を対比して示している。
【００４１】
通常のコピープログラムについて云えば、バッファ領域のサイズはＢＬＫＳＩＺＥ×ＢＵＦＮOになっており、バッファ数は実行情報パラメータの指定値と同じであるため、バッファ領域の利用率が半分にも満たないまちまちな状態であることが多く、１００％超過では動作不能になってしまう。
【００４２】
これに対し、本実施形態でのコピープログラム１０５について云えば、バッファ領域のサイズはＢＬＫＳＩＺＥ×バッファ数になっており、バッファ数はＲＥＧＩＯＮ−２０/ＢＬＫＳＩＺＥ（但し、最大２５５迄）を自動算出するものであるため、バッファ領域の利用率を極めて高い状態とすることができ、１００％超過になって動作不能になることもない。すなわち、本実施形態によれば、異なる動作環境及び複写されるデータの特性要因に拘わらず、常に最大のスループットを発生させてデータを高速に複写処理する事ができ、しかも複写されるデータの特性要因によっては動作不可能となって発生していた障害を根本的に回避する事ができる。
【００４３】
なお、前述した本発明の実施形態での各処理は、プログラムにより構成し、本発明が備えるＣＰＵに実行させることができ、また、それらのプログラムは、ＦＤ、ＣＤＲＯＭ、ＤＶＤ等の記録媒体に格納して提供することができ、またネットワークを介してディジタル情報により提供することができる。
【００４４】
以上に説明した本実施形態に係るホスト計算機１００の技術的概要は、オペレーティングシステムOＳに従うコピープログラム１０５の実行によりデータを複写処理するものにおいて、異なる動作環境を示すプログラム領域サイズ、並びに複写されるデータの特性要因を示すブロックサイズをプログラム領域情報１０３の参照により判断するサイズ判断手段（制御部１０６が担う機能）と、このサイズ判断手段による判断結果に応じて適切な記憶領域数としてのバッファ領域数を算出すると共に、算出されたバッファ領域数をプログラム実行領域１０４内に形成されるバッファ領域１１７に自立的且つ動的に割り当てるバッファ割当手段（バッファ割当処理部１０７が担う機能）と、バッファ割当手段により割り当てられたバッファ領域数分のデータを一括して入出力制御するデータ入出力手段（データ入出力処理部１０８が担う機能）と、を備えるものである。
【００４５】
なお、本実施形態では、制御部１０６、バッファ割当処理部１０７、及びデータ入出力処理部１０８が協働して機能的にコピープログラム１０５を構築した場合を説明したが、バッファ割当処理部１０７及びデータ入出力処理部１０８の機能は制御部１０６に内蔵されるように組み込まれる形態であっても構わない。
【００４６】
こうした場合の制御部１０６は、同等な高速コピー機能を記憶装置等に格納されたデータコピープログラムのソフトウエアを読み出す形態で実行することができる。読み出されるデータコピープログラムは、オペレーティングシステムOＳに従ってデータの複写処理を実行することを前提とする。係るデータコピープログラムは、異なる動作環境を示すプログラム領域サイズ、並びに複写されるデータの特性要因を示すブロックサイズを判断した結果に応じて適切な記憶領域数としてのバッファ領域数を算出する第１の手順と、バッファ領域数をプログラムの実行領域内に形成されるバッファ領域に割り当てる第２の手順と、割り当てられたバッファ領域数分のデータを一括して入出力制御する第３の手順と、を情報処理装置（ホスト計算機１００）に実行させるものであれば良い。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態に係る情報処理装置であるホスト計算機の基本構成を動作環境全体を含めて示した概要図である。
【図２】図１に示すホスト計算機に備えられる制御部の動作処理を例示したフローチャートである。
【図３】図１に示すホスト計算機に備えられるバッファ割当処理部の動作処理を例示したフローチャートである。
【図４】図１に示すホスト計算機に備えられるデータ入出力処理部の動作処理を例示したフローチャートである。
【図５】（ａ）〜（ｃ）は、図１に示すホスト計算機によるデータの複写処理の前後で適用されるプログラム実行情報を例示したものである。
【符号の説明】
【００４８】
１００  ホスト計算機
１０１  プログラム実行情報パラメータ
１０２  OＳシステムテーブル領域
１０３  プログラム領域情報
１０４  プログラム実行領域
１０５  コピープログラム
１０６  制御部
１０７  バッファ割当処理部
１０８  データ入出力処理部
１０９  データ入力領域
１１０  データ出力領域
１１１  入力ファイル
１１２  入力ファイル用バッファ領域
１１３  入力バッファ
１１４  出力バッファ
１１５  出力ファイル用バッファ領域
１１６  出力ファイル
１１７  バッファ領域
【図１】
2010140077.tif 000003
【図２】
2010140077.tif 000004
【図３】
2010140077.tif 000005
【図４】
2010140077.tif 000006
【図５】
2010140077.tif 000007