(57)【要約】【課題】複数のコマンドに対する応答性能の向上を図ること。【解決手段】情報処理装置１００は、文字列１１０の入力を受け付ける。情報処理装置１００は、入力された文字列１１０を解析してコマンドを取得する。情報処理装置１００は、複数のコマンド１２０を取得した場合、記憶部１０１を参照し、取得した複数のコマンド１２０の一括処理が可能であるか否かを判定する。情報処理装置１００は、一括処理が可能であると判定した場合、取得した複数のコマンド１２０に対応する１つの処理を生成して、生成した１つの処理を実行する。【選択図】図１
2019028942.tif 000002
【特許請求の範囲】
【請求項１】
入力された文字列を解析してコマンドを取得し、
複数のコマンドを取得した場合、複数のコマンドの一括処理の可否を示す管理情報を記憶する記憶部を参照し、取得した前記複数のコマンドの一括処理が可能であるか否かを判定し、
一括処理が可能であると判定した場合、取得した前記複数のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、
制御部を有することを特徴とする情報処理装置。
【請求項２】
前記制御部は、
一括処理が可能であると判定した場合、取得した前記複数のコマンドに対応する１つの処理を生成して、生成した前記１つの処理を１つのスレッドに割り当てて実行する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
複数のコマンドを示す文字列の入力を受け付ける、ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記制御部は、
入力された文字列を解析してコマンドを取得する都度、取得した前記コマンドと、記憶領域に蓄積されたコマンドとの一括処理が可能であるか否かを判定し、
前記記憶領域に蓄積されたコマンドとの一括処理が可能であると判定した場合、取得した前記コマンドを前記記憶領域に追加し、
前記記憶領域の最後のコマンドの追加からの経過時間が閾値を超えた場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記制御部は、
前記記憶領域が空であり、入力された文字列を解析してコマンドを取得した場合、取得した前記コマンドを前記記憶領域に追加する、ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記制御部は、
前記記憶領域に蓄積されたコマンドとの一括処理が可能ではないと判定した場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行し、取得した前記コマンドを新たな記憶領域に追加する、ことを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記制御部は、
過去に、前記記憶領域の最後のコマンドに次いで、前記記憶領域の最後のコマンドと一括処理が可能であるコマンドを取得したことがあるか否かを判定し、
取得したことがないと判定した場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、ことを特徴とする請求項４〜６のいずれか一つに記載の情報処理装置。
【請求項８】
前記制御部は、
前記記憶領域の最後のコマンドと、前記記憶領域の最後のコマンドに次いで取得されたコマンドとの、過去の取得時点の間隔が閾値を超えるか否かを判定し、
過去の取得時点の間隔が閾値を超えたと判定した場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１以上の処理を実行する、ことを特徴とする請求項４〜７のいずれか一つに記載の情報処理装置。
【請求項９】
コンピュータに、
入力された文字列を解析してコマンドを取得し、
複数のコマンドを取得した場合、複数のコマンドの一括処理の可否を示す管理情報を記憶する記憶部を参照し、取得した前記複数のコマンドの一括処理が可能であるか否かを判定し、
一括処理が可能であると判定した場合、取得した前記複数のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータのユーザインターフェースとして、キーボードなどの入力装置からコマンドを示す文字列を入力することにより、コンピュータを操作することができるＣＬＩ（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ）がある。
【０００３】
先行技術としては、例えば、続けて実行されることが多い２つのコマンドをコマンドファイルに書き込み、複合コマンドとして登録するものがある。また、例えば、コマンド文字列を逐次記憶媒体に蓄積しておき、当該コマンド文字列の処理と同様の処理を再び実行したい場合に、蓄積されているコマンド文字列を読み出して処理を実行する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−１３９７１４号公報
【特許文献２】特開昭６３−１４７２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、入力された文字列を解析して複数のコマンドを取得した場合、複数のコマンドに対応する複数の処理が終了するまでにかかる時間が長くなり、複数のコマンドに対する応答性能の低下を招くことがある。例えば、それぞれのコマンドに対応する処理を順番にスレッドに割り当てて実行するため、複数のコマンドに対応する複数の処理が終了するまでにかかる時間が、コマンド数に比例して長くなる。
【０００６】
１つの側面では、本発明は、複数のコマンドに対する応答性能の向上を図ることができる情報処理装置、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、入力された文字列を解析してコマンドを取得し、複数のコマンドを取得した場合、複数のコマンドの一括処理の可否を示す管理情報を記憶する記憶部を参照し、取得した前記複数のコマンドの一括処理が可能であるか否かを判定し、一括処理が可能であると判定した場合、取得した前記複数のコマンドに対応する１つの処理を生成して実行する情報処理装置、および情報処理プログラムが提案される。
【発明の効果】
【０００８】
一態様によれば、複数のコマンドに対する応答性能の向上を図ることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。
【図２】図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、一括処理可否表３００の記憶内容の一例を示す説明図である。
【図４】図４は、実行履歴テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、情報処理装置１００の機能的構成例を示すブロック図である。
【図６】図６は、実施例１における情報処理装置１００の動作例を示す説明図（その１）である。
【図７】図７は、実施例１における情報処理装置１００の動作例を示す説明図（その２）である。
【図８】図８は、実施例１における一括処理手順の一例を示すフローチャートである。
【図９】図９は、実施例２における情報処理装置１００の動作例を示す説明図（その１）である。
【図１０】図１０は、実施例２における情報処理装置１００の動作例を示す説明図（その２）である。
【図１１】図１１は、実施例２における一括処理手順の一例を示すフローチャートである。
【図１２】図１２は、実施例２における待機処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる情報処理装置、および情報処理プログラムの実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる情報処理方法の一実施例）
図１は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置１００は、ＣＬＩが実装されたコンピュータである。情報処理装置１００は、例えば、アプライアンス装置、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。アプライアンス装置は、例えば、ストレージ装置やネットワーク装置である。
【００１２】
ここで、ＣＬＩを利用するユーザは、所望の機能を実現するコマンドが予め実装されていない場合、所望の機能を実現するために、複数のコマンドを組み合わせて用いようとすることがある。ユーザは、例えば、所望の機能を実現するために、それぞれのコマンドを示す文字列を、１つずつ順番にＣＬＩの入力欄に入力する。
【００１３】
しかしながら、従来では、入力された文字列を入力された順番に１つずつ処理していく傾向があるため、複数のコマンドに対応する複数の処理が終了するまでにかかる時間が長くなりやすく、複数のコマンドに対する応答性能や処理効率の低下を招くことがある。
【００１４】
例えば、複数の処理を一括して処理可能であっても、複数の処理を１つずつ順番にスレッドに割り当てて実行することになり、処理ごとに、スレッドの生成や処理の前準備などの事前処理と、処理の後始末やスレッドの削除などの事後処理が行われることになる。結果として、複数の処理が終了するまでの時間は、コマンド数に比例する回数分の事前処理や事後処理の時間を含み、コマンド数に比例して長くなってしまう。
【００１５】
これに対し、テキストファイルなどに、複数のコマンドを示す文字列を予め記述しておき、記述しておいた文字列をＣＬＩの入力欄にコピー＆ペーストすることにより、記述しておいた文字列をＣＬＩの入力欄に入力可能にすることが考えられる。
【００１６】
しかしながら、複数のコマンドを示す文字列をＣＬＩの入力欄に入力しても、入力された文字列を解析し、複数のコマンドを１つずつ取得することになるため、依然として、複数の処理を１つずつ順番にスレッドに割り当てて実行することになる。結果として、複数のコマンドに対応する複数の処理が終了するまでにかかる時間が長くなりやすく、複数のコマンドに対する応答性能や処理効率の低下を招いてしまう。
【００１７】
これに対し、複数のコマンドの組み合わせに対応する、種々のパラメータを指定可能な、所望の機能を実現する１つのコマンドを実装することが考えられる。しかしながら、複数のコマンドの組み合わせに対応する１つのコマンドの構文は複雑化しやすく、ユーザの負担の増大化を招き、ＣＬＩの利便性の低下を招いてしまう。また、複数のコマンドの組み合わせに対応する１つのコマンドの実装は難しい場合がある。
【００１８】
そこで、本実施の形態では、一括処理が可能である複数のコマンドを取得した場合、複数のコマンドに対応する１つの処理を生成して実行することができる情報処理方法について説明する。これにより、本実施の形態は、コマンドの構文の複雑化を防ぎ、コマンドの実装の容易化を図ることができ、複数のコマンドに対する応答性能や処理効率の向上を図ることができ、ＣＬＩの利便性の向上を図ることができる。
【００１９】
（１−１）情報処理装置１００は、文字列１１０の入力を受け付ける。情報処理装置１００は、例えば、ＣＬＩの入力欄に入力された文字列１１０を受け付ける。文字列１１０は、例えば、改行で区切られた、複数のコマンド１２０のそれぞれのコマンドを示す文字列を含み、複数のコマンド１２０を一括して示す。コマンドは、処理を要求する命令文である。コマンドは、所定の処理をキックする命令文であってもよい。
【００２０】
情報処理装置１００は、入力された文字列１１０を解析してコマンドを取得する。情報処理装置１００は、例えば、入力された文字列１１０のうち改行で区切られた文字列を、コマンドとして取得する。これにより、情報処理装置１００は、複数のコマンド１２０を一括して取得することができる。
【００２１】
（１−２）情報処理装置１００は、複数のコマンド１２０を取得した場合、記憶部１０１を参照し、取得した複数のコマンド１２０の一括処理が可能であるか否かを判定する。記憶部１０１は、複数のコマンドの一括処理の可否を示す管理情報を記憶する。記憶部１０１の記憶内容は、例えば、情報処理装置１００の製造者によって設定される。記憶部１０１は、例えば、図３に後述する一括処理可否表３００である。これにより、情報処理装置１００は、取得した複数のコマンド１２０が一括処理しても問題がない組み合わせであるか否かを判定することができる。
【００２２】
（１−３）情報処理装置１００は、一括処理が可能であると判定した場合、取得した複数のコマンド１２０に対応する１つの処理を生成して、生成した１つの処理を実行する。１つの処理は、例えば、スレッドに割り当てる単位であり、スレッドへの命令群である。スレッドは、演算装置の処理単位である。スレッドは、例えば、図２に後述するＣＰＵ２０１の処理単位である。
【００２３】
情報処理装置１００は、例えば、一括処理が可能であると判定した場合、取得した複数のコマンド１２０に対応する１つの処理を生成する。情報処理装置１００は、１つのスレッド１３０を生成し、生成した１つの処理を、生成した１つのスレッド１３０に割り当てて実行する。以下の説明では、スレッドに割り当てる単位である１つの処理を「内部処理」と表記する場合がある。
【００２４】
これにより、情報処理装置１００は、実装されるコマンドの構文の複雑化を防ぎ、コマンドの実装の容易化を図ることができ、複数のコマンド１２０に対する応答性能や処理効率の向上を図ることができ、ＣＬＩの利便性の向上を図ることができる。情報処理装置１００は、例えば、コピー＆ペーストにより複数のコマンド１２０を一括して示す文字列１１０が入力された場合、複数のコマンド１２０に対する応答性能や処理効率の向上を図ることができる。
【００２５】
また、情報処理装置１００は、比較的複雑な構文のコマンドを実装せず、比較的単純な構文のコマンドの組み合わせによって、ユーザが所望の機能を実現するような場合でも、所望の機能にかかる時間の低減化を図ることができる。このため、情報処理装置１００は、ユーザの負担の増大化を抑制し、ＣＬＩの利便性の低下を抑制することができる。
【００２６】
また、情報処理装置１００は、コマンドごとに事前処理や事後処理が行われる場合に比べて、複数のコマンド１２０について事前処理や事後処理を１回行えばよくすることができ、複数のコマンド１２０に対する応答性能や処理効率の向上を図ることができる。情報処理装置１００は、例えば、アプライアンス装置として製造され、設定変更のためのコマンドを１０００個単位で取得するような場合でも、膨大なコマンドについて事前処理や事後処理を１回行えばよくすることができる。
【００２７】
ここでは、情報処理装置１００が、複数のコマンドを一括して示す文字列の入力を受け付ける場合について説明したが、これに限らない。例えば、情報処理装置１００が、複数のコマンドのそれぞれのコマンドを示す文字列の入力を連続して受け付ける場合があってもよい。
【００２８】
情報処理装置１００が、複数のコマンドを一括して示す文字列の入力を受け付ける場合についての具体例は、例えば、図６および図７を用いて、実施例１として後述する。また、情報処理装置１００が、複数のコマンドのそれぞれのコマンドを示す文字列の入力を連続して受け付ける場合についての具体例は、例えば、図９および図１０を用いて、実施例２として後述する。
【００２９】
ここでは、情報処理装置１００が、文字列が一括して示す複数のコマンドに対応する１つの処理を生成する場合について説明したが、これに限らない。例えば、情報処理装置１００が、文字列が一括して示す複数のコマンドの一部である２以上のコマンドに対応する１つの処理を生成する場合があってもよい。
【００３０】
（情報処理装置１００のハードウェア構成例）
次に、図２を用いて、情報処理装置１００のハードウェア構成例について説明する。
【００３１】
図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。図２において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３２】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００３３】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３４】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、情報処理装置１００から着脱可能であってもよい。
【００３５】
情報処理装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を複数有していてもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３６】
（一括処理可否表３００の記憶内容）
次に、図３を用いて、一括処理可否表３００の記憶内容について説明する。一括処理可否表３００は、例えば、図２に示した情報処理装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００３７】
図３は、一括処理可否表３００の記憶内容の一例を示す説明図である。図３に示すように、一括処理可否表３００は、コマンドの組み合わせに対応する可否フラグのフィールドを有する。一括処理可否表３００は、それぞれの行に設定されたコマンドと、それぞれの列に設定されたコマンドとの組み合わせごとに、各フィールドに情報を設定することにより、一括処理可否情報がレコードとして記憶される。
【００３８】
可否フラグのフィールドには、行に設定されたコマンドと、列に設定されたコマンドとの組み合わせの、一括処理の可否を示す可否フラグが設定される。可否フラグは、一括処理が可能であれば「可能」であり、一括処理が可能でなければ空欄である。「可能」は、例えば、値１により表現され、空欄は、例えば、値０により表現されてもよい。
【００３９】
図３の例では、例えば、１行目に設定されたコマンド「ｖｏｌｕｍｅ  ｃｒｅａｔｅ」と、１列目に設定されたコマンド「ｖｏｌｕｍｅ  ｃｒｅａｔｅ」とに対応する可否フラグが「可能」に設定される。これにより、一括処理可否表３００は、コマンド「ｖｏｌｕｍｅ  ｃｒｅａｔｅ」と、コマンド「ｖｏｌｕｍｅ  ｃｒｅａｔｅ」との組み合わせの一括処理が可能であることを示している。
【００４０】
一括処理可否表３００の行には、例えば、実装されたコマンドをすべて設定することが好ましい。一括処理可否表３００の列には、例えば、同様に、実装されたコマンドをすべて設定することが好ましい。このように、一括処理可否表３００は、実装されたコマンドのすべての組み合わせについて、一括処理が可能であるか否かを記憶するようにすることが好ましい。
【００４１】
一括処理可否表３００は、さらに、複数のコマンドの一括処理が可能である順序を示してもよい。例えば、一括処理可否表３００が、それぞれの行に設定されたコマンドが先行のコマンドであり、それぞれの列に設定されたコマンドが後続のコマンドであるとして、可否フラグを記憶する場合があってもよい。
【００４２】
（実行履歴テーブル４００の記憶内容）
次に、図４を用いて、実行履歴テーブル４００の記憶内容について説明する。実行履歴テーブル４００は、例えば、図２に示した情報処理装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４３】
図４は、実行履歴テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、実行履歴テーブル４００は、コマンドと、前回の取得時刻と、実行処理時間と、次に取得されたコマンドと、次に取得されたコマンドの取得時刻と、前回取得時の一括処理の有無とのフィールドを有する。実行履歴テーブル４００は、各フィールドに情報を設定することにより、実行履歴情報がレコードとして記憶される。
【００４４】
コマンドのフィールドには、コマンドの識別情報が設定される。コマンドの識別情報は、例えば、コマンドの名称である。前回の取得時刻のフィールドには、コマンドのフィールドの識別情報が示すコマンドの前回の取得時刻が設定される。取得時刻は、例えば、時、分、秒、ミリ秒を含む。取得時刻は、日付を含んでもよい。実行処理時間のフィールドには、コマンドのフィールドの識別情報が示すコマンドに対応する処理にかかる時間が設定される。
【００４５】
次に取得されたコマンドのフィールドには、コマンドのフィールドの識別情報が示すコマンドの次に取得されたコマンドの識別情報が設定される。コマンドの識別情報は、例えば、コマンドの名称である。次に取得されたコマンドの取得時刻のフィールドには、コマンドのフィールドの識別情報が示すコマンドの次に取得されたコマンドの前回の取得時刻が設定される。取得時刻は、例えば、時、分、秒、ミリ秒を含む。取得時刻は、日付を含んでもよい。
【００４６】
前回取得時の一括処理の有無のフィールドには、コマンドのフィールドの識別情報が示すコマンドが、前回取得時に一括処理されたか否かを示すフラグ情報が設定される。フラグ情報は、前回取得時に一括処理されていれば「有」であり、前回取得時に一括処理されていなければ「無」である。
【００４７】
ここで、実行履歴テーブル４００のそれぞれのフィールドの情報は、過去にコマンドを取得した際の情報の１回分に基づいて設定される。また、実行履歴テーブル４００のそれぞれのフィールドの情報は、過去にコマンドを取得した際の情報の複数回分に基づいて統計的に設定されてもよい。
【００４８】
統計的に設定される場合、例えば、実行処理時間は、過去にコマンドに対応する処理にかかった時間の統計値である。統計値は、例えば、平均値、中央値、最頻値、最大値、最小値などである。統計的に設定される場合、例えば、次に取得されたコマンドのフィールドには、複数のコマンドが設定されてもよい。統計的に設定される場合、例えば、次に取得されたコマンドのフィールドには、過去に最も多く取得されたコマンドが設定されてもよい。
【００４９】
統計的に設定される場合、例えば、前回の取得時刻と、次に取得されたコマンドの取得時刻とに代わり、過去のコマンドの取得時刻と、次に取得されたコマンドの取得時刻との間隔の統計値が、実行履歴テーブル４００に記憶されてもよい。統計値は、例えば、平均値、中央値、最頻値、最大値、最小値などである。
【００５０】
ここで、実行履歴テーブル４００は、コマンドごとに用意されることが好ましい。実行履歴テーブル４００は、他のコマンドとの一括処理が可能ではないコマンドについて用意されない場合があってもよい。ここで、ユーザごとに文字列を入力する順序や速度は異なり、情報処理装置１００で文字列が示すコマンドを取得する順序や速度も異なる傾向があるため、実行履歴テーブル４００は、ＣＬＩを利用するユーザごとに用意されてもよい。
【００５１】
（情報処理装置１００の機能的構成例）
次に、図５を用いて、情報処理装置１００の機能的構成例について説明する。
【００５２】
図５は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部５００と、取得部５０１と、判定部５０２と、翻訳部５０３と、実行部５０４と、出力部５０５とを含む。
【００５３】
記憶部５００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。取得部５０１〜出力部５０５は、制御部となる機能である。取得部５０１〜出力部５０５は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００５４】
記憶部５００は、複数のコマンドの一括処理の可否を示す管理情報を記憶する。管理情報は、例えば、情報処理装置１００の製造者によって設定される。管理情報は、さらに、複数のコマンドの一括処理が可能である順序を示してもよい。記憶部５００は、例えば、図３に示した一括処理可否表３００を記憶する。これにより、記憶部５００は、複数のコマンドが一括処理しても問題がない組み合わせであるか否かを判定部５０２が判定可能にすることができる。
【００５５】
取得部５０１は、文字列の入力を受け付ける。文字列は、例えば、改行で区切られた、複数のコマンドを示す文字列を含み、複数のコマンドを一括して示す。文字列は、１つのコマンドを示してもよい。取得部５０１は、例えば、複数のコマンドを示す文字列の入力を受け付ける。取得部５０１は、具体的には、ＣＬＩの入力欄に対する文字列のコピー＆ペーストにより、文字列の入力を受け付ける。
【００５６】
取得部５０１は、入力された文字列を解析してコマンドを取得する。取得部５０１は、例えば、入力された文字列のうち改行で区切られた文字列を、コマンドとして取得する。これにより、取得部５０１は、実行が要求された、コマンドに対応する処理を特定可能にすることができる。
【００５７】
判定部５０２は、複数のコマンドを取得した場合、記憶部５００を参照し、取得した複数のコマンドの一括処理が可能であるか否かを判定する。判定部５０２は、例えば、複数のコマンドを一括して取得した場合、一括処理可否表３００を参照し、複数のコマンドにおいて連続する２つのコマンドの組み合わせごとに、一括処理が可能であるか否かを判定する。判定部５０２は、すべての組み合わせについて一括処理が可能であると判定した場合、複数のコマンドの一括処理が可能であると判定する。これにより、判定部５０２は、取得した複数のコマンドが一括処理しても問題がない組み合わせであるか否かを判定することができる。
【００５８】
ここでは、判定部５０２が、一括して取得した複数のコマンドの一括処理が可能であるか否かを判定する場合について説明したが、これに限らない。例えば、判定部５０２が、連続して取得した複数のコマンドの一括処理が可能であるか否かを判定する場合があってもよい。以下の説明では、判定部５０２が、連続して取得した複数のコマンドの一括処理が可能であるか否かを判定する場合について説明する。
【００５９】
判定部５０２は、バッファになる記憶領域を用意する。バッファは、一括処理が可能である１以上のコマンドを記憶する一時記憶領域である。バッファは、例えば、図２に示したメモリ２０２内の記憶領域である。判定部５０２は、バッファが空であり、入力された文字列を解析してコマンドを取得した場合、取得したコマンドをバッファに追加する。
【００６０】
判定部５０２は、バッファが空ではない場合、入力された文字列を解析してコマンドを取得する都度、取得したコマンドと、バッファに蓄積されたコマンドとの一括処理が可能であるか否かを判定する。判定部５０２は、例えば、取得したコマンドと、バッファに最後に追加されたコマンドとの一括処理が可能であるか否かを判定する。
【００６１】
判定部５０２は、取得したコマンドと、バッファに蓄積されたコマンドとの一括処理が可能であると判定した場合、取得したコマンドをバッファに追加する。判定部５０２は、例えば、取得したコマンドと、バッファに最後に追加されたコマンドとの一括処理が可能であると判定した場合、取得したコマンドをバッファに追加する。これにより、判定部５０２は、バッファに一括処理が可能である１以上のコマンドを蓄積していくことができる。
【００６２】
判定部５０２は、過去に、バッファの最後のコマンドに次いで、バッファの最後のコマンドと一括処理が可能であるコマンドを取得したことがあるか否かを判定する。判定部５０２は、例えば、図４に示した実行履歴テーブル４００を参照し、過去に、バッファの最後のコマンドと同一のコマンドに次いで、バッファの最後のコマンドと同一のコマンドと一括処理が可能であるコマンドを取得したことがあるか否かを判定する。
【００６３】
これにより、判定部５０２は、次に取得されるコマンドが、現在バッファに蓄積された１以上のコマンドとの一括処理が可能なコマンドである確率が高いと考えられる状態であるか否かを判定することができる。そして、判定部５０２は、確率が高いと考えられる状態であれば、次のコマンドの取得を待ち、バッファに蓄積する一括処理が可能なコマンドの数の増大化を図り、コマンドに対応する処理の処理効率の向上を図ることができる。一方で、判定部５０２は、確率が高いと考えられる状態でなければ、バッファに対するコマンドの追加を一区切りすることができる。
【００６４】
判定部５０２は、バッファの最後のコマンドと、バッファの最後のコマンドに次いで取得されたコマンドとの、過去の取得時点の間隔が閾値を超えるか否かを判定する。閾値は、可変である。閾値は、例えば、バッファの最後のコマンドの過去の処理時間に基づいて設定される値である。閾値は、例えば、バッファの最後のコマンドの過去の処理時間の１／５０の値が設定される。閾値は、固定値であってもよい。閾値は、例えば、情報処理装置１００の製造者によって設定される。
【００６５】
判定部５０２は、例えば、図４に示した実行履歴テーブル４００を参照し、バッファの最後のコマンドと同一のコマンドを取得した過去の取得時点を特定する。また、判定部５０２は、バッファの最後のコマンドと同一のコマンドに次いでコマンドを取得した過去の取得時点を特定する。判定部５０２は、特定した取得時点の間隔が閾値を超えるか否かを判定する。
【００６６】
これにより、判定部５０２は、次のコマンドが比較的短時間で取得される確率が高いと考えられる状態であるか否かを判定することができる。そして、判定部５０２は、確率が高いと考えられる状態であれば、次のコマンドの取得を待ち、バッファに蓄積する一括処理が可能なコマンドの数の増大化を図り、コマンドに対応する処理の処理効率の向上を図ることができる。一方で、判定部５０２は、確率が高いと考えられる状態でなければ、バッファに対するコマンドの追加を一区切りすることができる。
【００６７】
翻訳部５０３は、取得した複数のコマンドの一括処理が可能であると判定した場合、取得した複数のコマンドに対応する１つの処理を生成する。１つの処理は、例えば、スレッドに割り当てる単位であり、スレッドへの命令群である。命令群は、例えば、処理内容やパラメータを示す、実行可能なバイナリデータである。
【００６８】
翻訳部５０３は、バッファの最後のコマンドの追加からの経過時間が閾値を超えた場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成する。閾値は、可変である。閾値は、例えば、バッファの最後のコマンドの過去の処理時間に基づいて設定される値である。閾値は、例えば、バッファの最後のコマンドの過去の処理時間の１／５０の値が設定される。閾値は、固定値であってもよい。閾値は、例えば、情報処理装置１００の製造者によって設定される。
【００６９】
これにより、翻訳部５０３は、次のコマンドの取得を待ち続けると、バッファに蓄積されたコマンドの応答性能が、次のコマンドをバッファに追加することができた場合に比べても低下してしまうと判断される状態であるか否かを判定することができる。
【００７０】
そして、翻訳部５０３は、応答性能が低下してしまうと判断される状態でなければ、次のコマンドの取得を待ち、バッファに蓄積する一括処理が可能なコマンドの数の増大化を図り、コマンドに対応する処理の処理効率の向上を図ることができる。一方で、翻訳部５０３は、応答性能が低下してしまうと判断される状態であれば、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成し、コマンドの応答性能の低下を抑制することができる。
【００７１】
翻訳部５０３は、取得したコマンドと、バッファに蓄積されたコマンドとの一括処理が可能ではないと判定した場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成する。翻訳部５０３は、取得したコマンドを新たなバッファに追加する。新たなバッファは、例えば、バッファに蓄積されたコマンドを消去した後のバッファであってもよい。
【００７２】
これにより、翻訳部５０３は、一括処理が可能である１以上のコマンドが一旦蓄積され切った場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成し、バッファに蓄積された１以上のコマンドの応答性能や処理効率の向上を図ることができる。
【００７３】
翻訳部５０３は、バッファの最後のコマンドと一括処理が可能であるコマンドを取得したことがないと判定した場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成する。翻訳部５０３は、例えば、過去に、バッファの最後のコマンドと同一のコマンドと一括処理が可能であるコマンドを取得したことがないと判定した場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成する。
【００７４】
これにより、翻訳部５０３は、次に取得されるコマンドが、現在バッファに蓄積された１以上のコマンドとの一括処理が可能なコマンドである確率が高いと考えられる状態でなければ、１以上のコマンドに対応する１つの処理を生成することができる。このため、情報処理装置１００は、次のコマンドの取得を待たず、コマンドの応答性能の低下を抑制することができる。
【００７５】
翻訳部５０３は、過去の取得時点の間隔が閾値を超えたと判定した場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成する。これにより、翻訳部５０３は、次のコマンドが比較的短時間で取得される確率が高いと考えられる状態でなければ、１以上のコマンドに対応する１つの処理を生成することができる。このため、情報処理装置１００は、次のコマンドの取得を待たず、コマンドの応答性能の低下を抑制することができる。
【００７６】
実行部５０４は、生成した１つの処理を実行する。実行部５０４は、例えば、生成した１つの処理を１つのスレッドに割り当てて実行する。スレッドは、例えば、図２に後述するＣＰＵ２０１の処理単位である。実行部５０４は、生成した命令群をスレッドに割り当てて、生成した命令群に応じた処理を実行する。実行部５０４は、生成した１つの処理を、他のコンピュータのスレッドに実行させる場合があってもよい。
【００７７】
これにより、実行部５０４は、コマンドに対応する処理ごとに事前処理や事後処理を行わず、複数のコマンドに対応する複数の処理について事前処理と事後処理とを一括して行うことができる。このため、実行部５０４は、複数のコマンドに対する応答性能や処理効率の向上を図ることができる。
【００７８】
出力部５０５は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。これにより、出力部５０５は、各機能部の処理結果をユーザに把握させることができる。ユーザは、各機能部の処理結果を、情報処理装置１００の管理や運用に利用することができる。
【００７９】
（実施例１における情報処理装置１００の動作例）
次に、図６および図７を用いて、実施例１における情報処理装置１００の動作例について説明する。実施例１は、情報処理装置１００が、複数のコマンドを一括して示す文字列の入力を受け付ける場合についての具体例である。実施例１では、情報処理装置１００は、実行履歴テーブル４００を有していなくてもよい。
【００８０】
図６および図７は、実施例１における情報処理装置１００の動作例を示す説明図である。図６において、情報処理装置１００は、ＣＬＩの入力欄６１０に対する、複数のコマンドを一括して示す文字列６００の入力を受け付ける。
【００８１】
文字列６００は、文字列６０１「ｐｏｏｌ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｓｓｄ  −ｃａｐａｃｉｔｙ  １００ｔｂ  −ｎａｍｅ  ｍｙｐｏｏｌ」を含む。文字列６０１は、記憶領域を確保するｐｏｏｌ  ｃｒｅａｔｅコマンドを示し、確保する記憶領域のタイプやサイズや識別名などを指定するパラメータを示す。
【００８２】
文字列６００は、文字列６０２「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｎ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  １０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ１」を含む。文字列６０２は、論理ボリュームを作成するｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１を示し、論理ボリュームのタイプや作成場所やサイズや識別名を示す。
【００８３】
文字列６００は、同様の文字列６０３「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｎ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  ２０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ２」を含む。文字列６００は、同様の文字列６０４「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｎ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  ５０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ３」を含む。
【００８４】
文字列６００は、同様の文字列６０５「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｃｋ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  ３０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ４」を含む。次に、図７の説明に移行し、文字列６００の入力を受け付けた場合における、情報処理装置１００の動作例について説明する。
【００８５】
図７において、情報処理装置１００は、一括処理が可能である１以上のコマンドを蓄積するコマンドバッファを用意する。コマンドバッファは、例えば、図２に示したメモリ２０２内の記憶領域である。情報処理装置１００は、入力された文字列６００の先頭から改行までの文字列６０１を抽出し、抽出した文字列６０１が示すｐｏｏｌ  ｃｒｅａｔｅコマンドを取得する。情報処理装置１００は、ｐｏｏｌ  ｃｒｅａｔｅコマンドをコマンドバッファに追加する。
【００８６】
次に、情報処理装置１００は、入力された文字列６００の次の改行までの文字列６０２を抽出し、抽出した文字列６０２が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１を取得する。情報処理装置１００は、一括処理可否表３００の可否フラグ７０１を参照し、コマンドバッファのｐｏｏｌ  ｃｒｅａｔｅコマンドと、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１との一括処理が可能であるか否かを判定する。
【００８７】
情報処理装置１００は、一括処理が可能ではないため、コマンドバッファのｐｏｏｌ  ｃｒｅａｔｅコマンドに対応する１つの内部処理を生成し、１つのスレッドに割り当てて実行する。情報処理装置１００は、コマンドバッファの記憶内容を消去し、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１をコマンドバッファに追加する。
【００８８】
次に、情報処理装置１００は、入力された文字列６００の次の改行までの文字列６０３を抽出し、抽出した文字列６０３が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２を取得する。情報処理装置１００は、一括処理可否表３００の可否フラグ７０２を参照し、コマンドバッファのｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１と、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２との一括処理が可能であるか否かを判定する。
【００８９】
情報処理装置１００は、一括処理が可能であるため、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２をコマンドバッファに追加する。これにより、情報処理装置１００は、コマンドバッファに一括処理が可能である１以上のコマンドを蓄積していくことができる。
【００９０】
情報処理装置１００は、文字列６０３と同様に、入力された文字列６００の次の改行までの文字列６０４を抽出し、抽出した文字列６０４が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド３を取得し、コマンドバッファに追加する。
【００９１】
情報処理装置１００は、文字列６０３と同様に、入力された文字列６００の次の改行までの文字列６０５を抽出し、抽出した文字列６０５が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド４を取得し、コマンドバッファに追加する。そして、情報処理装置１００は、コマンドバッファに蓄積された４つのコマンドに対応する１つの内部処理を生成し、スレッドに割り当てて実行する。
【００９２】
ここで、従来では、４つのコマンドのそれぞれのコマンドに対応する処理を、順番にスレッドに割り当てて実行する場合が考えられる。この場合、それぞれのコマンドに対応する処理を割り当てたスレッドごとに、ＩＯを一旦停止するなどの事前処理や事後処理が行われることになる。ここで、事前処理や事後処理は、論理ボリュームを作成する処理よりも相対的に時間がかかる傾向がある。このため、スレッドごとにＩＯを一旦停止するなどの事前処理や事後処理が行われると、４つのコマンドに対応する４つの処理が終了するまでにかかる時間が、コマンド数に比例して膨大化してしまう。
【００９３】
これに対し、情報処理装置１００は、４つのコマンドに対応する１つの内部処理を生成し、スレッドに割り当てて実行するため、ＩＯを一旦停止するなどの事前処理や事後処理を１回行えばよくすることができる。結果として、情報処理装置１００は、４つのコマンドに対する応答性能や処理効率の向上を図ることができる。情報処理装置１００は、例えば、従来では４回事前処理や事後処理が行われたのに対し、１回事前処理や事後処理を行えばよくして、４つのコマンドに対する応答性能を４倍程度に向上することができる。
【００９４】
ここでは、情報処理装置１００が、コマンドバッファのｐｏｏｌ  ｃｒｅａｔｅコマンドと、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１との順不同の組み合わせの、一括処理が可能であるか否かを判定する場合などについて説明したが、これに限らない。
【００９５】
例えば、一括処理可否表３００が、さらに、複数のコマンドの一括処理が可能である順序を示している場合がある。この場合、情報処理装置１００は、コマンドバッファのｐｏｏｌ  ｃｒｅａｔｅコマンドと、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１とが、一括処理が可能な組み合わせ、かつ、一括処理が可能な順序であるか否かなどを判定するようにしてもよい。
【００９６】
（実施例１における一括処理手順の一例）
次に、図８を用いて、実施例１における一括処理手順の一例について説明する。
【００９７】
図８は、実施例１における一括処理手順の一例を示すフローチャートである。図８において、情報処理装置１００は、文字列の入力を受け付ける（ステップＳ８０１）。
【００９８】
次に、情報処理装置１００は、入力された文字列のうち改行までの文字列を取得する（ステップＳ８０２）。そして、情報処理装置１００は、取得した文字列をコマンドとして解析し、コマンドを取得する（ステップＳ８０３）。
【００９９】
次に、情報処理装置１００は、コマンドバッファが空であるか否かを判定する（ステップＳ８０４）。ここで、コマンドバッファが空である場合（ステップＳ８０４：Ｙｅｓ）、情報処理装置１００は、ステップＳ８１０の処理に移行する。
【０１００】
一方で、コマンドバッファが空ではない場合（ステップＳ８０４：Ｎｏ）、情報処理装置１００は、一括処理可否表３００から、取得したコマンドと、コマンドバッファに記憶されたコマンドとを検索する（ステップＳ８０５）。
【０１０１】
次に、情報処理装置１００は、検索した結果に基づいて、取得したコマンドと、コマンドバッファに記憶されたコマンドとの一括処理が可能であるか否かを判定する（ステップＳ８０６）。ここで、一括処理が可能である場合（ステップＳ８０６：Ｙｅｓ）、情報処理装置１００は、ステップＳ８１０の処理に移行する。
【０１０２】
一方で、一括処理が可能ではない場合（ステップＳ８０６：Ｎｏ）、情報処理装置１００は、コマンドバッファに記憶された１以上のコマンドを１つの内部処理に翻訳する（ステップＳ８０７）。そして、情報処理装置１００は、翻訳した１つの内部処理を１つのスレッドに割り当てて実行する（ステップＳ８０８）。
【０１０３】
次に、情報処理装置１００は、コマンドバッファの記憶内容を消去する（ステップＳ８０９）。そして、情報処理装置１００は、ステップＳ８１０の処理に移行する。
【０１０４】
ステップＳ８１０では、情報処理装置１００は、取得したコマンドをコマンドバッファに追加する（ステップＳ８１０）。次に、情報処理装置１００は、改行を含む未処理の文字列が存在するか否かを判定する（ステップＳ８１１）。ここで、改行を含む未処理の文字列が存在する場合（ステップＳ８１１：Ｙｅｓ）、情報処理装置１００は、ステップＳ８０２の処理に戻る。
【０１０５】
一方で、改行を含む未処理の文字列が存在しない場合（ステップＳ８１１：Ｎｏ）、情報処理装置１００は、コマンドバッファに記憶された１以上のコマンドを１つの内部処理に翻訳する（ステップＳ８１２）。そして、情報処理装置１００は、翻訳した１つの内部処理を１つのスレッドに割り当てて実行する（ステップＳ８１３）。
【０１０６】
次に、情報処理装置１００は、コマンドバッファの記憶内容を消去する（ステップＳ８１４）。そして、情報処理装置１００は、一括処理を終了する。これにより、情報処理装置１００は、複数のコマンドに対応する１つの内部処理を生成することができ、複数のコマンドに対する応答性能や処理効率の向上を図ることができる。
【０１０７】
（実施例２における情報処理装置１００の動作例）
次に、図９および図１０を用いて、実施例２における情報処理装置１００の動作例について説明する。実施例２は、実施例１とは異なり、情報処理装置１００が、コマンドを示す文字列の入力を連続して受け付ける場合についての具体例である。
【０１０８】
図９および図１０は、実施例２における情報処理装置１００の動作例を示す説明図である。図９において、情報処理装置１００は、時刻ｔ１に、ＣＬＩの入力欄９１０に対する、コマンドを示す文字列９０１の入力を受け付ける。文字列９０１は、「ｐｏｏｌ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｓｓｄ  −ｃａｐａｃｉｔｙ  １００ｔｂ  −ｎａｍｅ  ｍｙｐｏｏｌ」である。文字列９０１は、記憶領域を確保するｐｏｏｌ  ｃｒｅａｔｅコマンドを示し、確保する記憶領域のタイプやサイズや識別名などを指定するパラメータを示す。
【０１０９】
情報処理装置１００は、時刻ｔ２に、ＣＬＩの入力欄９１０に対する、コマンドを示す文字列９０２の入力を受け付ける。文字列９０２は、「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｎ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  １０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ１」を含む。文字列９０２は、論理ボリュームを作成するｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１を示し、論理ボリュームのタイプや作成場所やサイズや識別名を示す。
【０１１０】
情報処理装置１００は、時刻ｔ３に、ＣＬＩの入力欄９１０に対する、コマンドを示す文字列９０３の入力を受け付ける。文字列９０３は、文字列９０２と同様の「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｎ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  ２０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ２」を含む。
【０１１１】
情報処理装置１００は、時刻ｔ４に、ＣＬＩの入力欄９１０に対する、コマンドを示す文字列９０４の入力を受け付ける。文字列９０４は、文字列９０２と同様の「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｎ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  ５０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ３」を含む。
【０１１２】
情報処理装置１００は、時刻ｔ５に、ＣＬＩの入力欄９１０に対する、コマンドを示す文字列９０５の入力を受け付ける。文字列９０５は、文字列９０２と同様の「ｖｏｌｕｍｅ  ｃｒｅａｔｅ  −ｔｙｐｅ  ｔｈｉｃｋ  −ｐｏｏｌ  ｍｙｐｏｏｌ  −ｓｉｚｅ  ３０ｔｂ  −ｎａｍｅ  ｖｏｌｕｍｅ４」を含む。次に、図１０の説明に移行し、それぞれの時刻ｔ１〜ｔ５における情報処理装置１００の動作例について説明する。
【０１１３】
図１０において、情報処理装置１００は、一括処理が可能である１以上のコマンドを蓄積するコマンドバッファを用意する。情報処理装置１００は、時刻ｔ１において、入力された文字列９０１が示すｐｏｏｌ  ｃｒｅａｔｅコマンドを取得する。情報処理装置１００は、ｐｏｏｌ  ｃｒｅａｔｅコマンドをコマンドバッファに追加する。ここで、情報処理装置１００は、次のコマンドの取得を待つか否かを決定する。
【０１１４】
情報処理装置１００は、例えば、取得したｐｏｏｌ  ｃｒｅａｔｅコマンドに対応する実行履歴テーブル４００を取得する。情報処理装置１００は、実行履歴テーブル４００の前回取得時の一括処理の有無のフィールドの情報１００１を抽出する。情報処理装置１００は、抽出した情報１００１に基づいて、ｐｏｏｌ  ｃｒｅａｔｅコマンドに次いで、ｐｏｏｌ  ｃｒｅａｔｅコマンドと一括処理が可能なｐｏｏｌ  ｃｒｅａｔｅコマンドが取得されたことがあると判定する。これにより、情報処理装置１００は、次のコマンドの取得を待ってもよいと判定する。
【０１１５】
また、情報処理装置１００は、実行履歴テーブル４００の前回の取得時刻のフィールドの情報１００２と、次に取得されたコマンドの取得時刻のフィールドの情報１００３とを抽出する。情報処理装置１００は、抽出した情報１００２，１００３に基づいて、ｐｏｏｌ  ｃｒｅａｔｅコマンドの過去の取得時刻と、ｐｏｏｌ  ｃｒｅａｔｅコマンドに次いで取得されたｐｏｏｌ  ｃｒｅａｔｅコマンドの過去の取得時刻との間隔を算出する。情報処理装置１００は、算出した間隔が、閾値以下であると判定する。閾値は、例えば、前回処理時間「６．２７０ｓｅｃ」の１／５０が設定される。これにより、情報処理装置１００は、次のコマンドの取得を待ってもよいと判定する。
【０１１６】
情報処理装置１００は、次のコマンドの取得を待ってもよいと判定したため、経過時間が閾値を超えるまで、次のコマンドの取得を待つ。情報処理装置１００は、経過時間が閾値を超えても、次のコマンドが取得されなければ、コマンドバッファのｐｏｏｌ  ｃｒｅａｔｅコマンドに対応する１つの内部処理を生成し、１つのスレッドに割り当てて実行する。
【０１１７】
ここでは、情報処理装置１００は、時刻ｔ２に、経過時間が閾値を超える前に、入力された文字列９０２が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１を取得する。情報処理装置１００は、一括処理可否表３００の可否フラグ７０１を参照し、コマンドバッファのｐｏｏｌ  ｃｒｅａｔｅコマンドと、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１との一括処理が可能であるか否かを判定する。
【０１１８】
情報処理装置１００は、一括処理が可能ではないため、コマンドバッファのｐｏｏｌ  ｃｒｅａｔｅコマンドに対応する１つの内部処理を生成し、１つのスレッドに割り当てて実行する。情報処理装置１００は、コマンドバッファの記憶内容を消去し、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１をコマンドバッファに追加する。
【０１１９】
ここで、情報処理装置１００は、新たに閾値を設定し、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１に対応する実行履歴テーブル４００に基づいて、次のコマンドの取得を待つか否かを決定する。閾値は、例えば、ｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１に対応する前回処理時間の１／５０が設定される。
【０１２０】
情報処理装置１００は、次のコマンドの取得を待ってもよいと判定した後、時刻ｔ３に、入力された文字列９０３が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２を取得する。情報処理装置１００は、一括処理可否表３００の可否フラグ７０２を参照し、コマンドバッファのｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド１と、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２との一括処理が可能であるか否かを判定する。
【０１２１】
情報処理装置１００は、一括処理が可能であるため、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２をコマンドバッファに追加する。これにより、情報処理装置１００は、コマンドバッファに、一括処理が可能である１以上のコマンドを蓄積していくことができる。
【０１２２】
ここで、情報処理装置１００は、新たに閾値を設定し、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２に対応する実行履歴テーブル４００に基づいて、次のコマンドの取得を待つか否かを決定する。閾値は、例えば、ｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド２に対応する前回処理時間の１／５０が設定される。
【０１２３】
情報処理装置１００は、次のコマンドの取得を待ってもよいと判定した後、時刻ｔ４に、入力された文字列９０４が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド３を取得し、コマンドバッファに追加する。
【０１２４】
ここで、情報処理装置１００は、新たに閾値を設定し、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド３に対応する実行履歴テーブル４００に基づいて、次のコマンドの取得を待つか否かを決定する。閾値は、例えば、ｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド３に対応する前回処理時間の１／５０が設定される。
【０１２５】
情報処理装置１００は、次のコマンドの取得を待ってもよいと判定した後、時刻ｔ５に、入力された文字列９０５が示すｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド４を取得し、コマンドバッファに追加する。
【０１２６】
ここで、情報処理装置１００は、新たに閾値を設定し、取得したｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド３に対応する実行履歴テーブル４００に基づいて、次のコマンドの取得を待つか否かを決定する。閾値は、例えば、ｖｏｌｕｍｅ  ｃｒｅａｔｅコマンド４に対応する前回処理時間の１／５０が設定される。
【０１２７】
情報処理装置１００は、次のコマンドの取得を待ってもよいと判定した後、経過時間が閾値を超えたため、コマンドバッファに蓄積された４つのコマンドに対応する１つの内部処理を生成し、スレッドに割り当てて実行する。
【０１２８】
ここで、従来では、４つのコマンドのそれぞれのコマンドに対応する処理を、順番にスレッドに割り当てて実行する場合が考えられる。この場合、それぞれのコマンドに対応する処理を割り当てたスレッドごとに、ＩＯを一旦停止するなどの事前処理や事後処理が行われることになる。ここで、事前処理や事後処理は、論理ボリュームを作成する処理よりも相対的に時間がかかる傾向がある。このため、スレッドごとにＩＯを一旦停止するなどの事前処理や事後処理が行われると、４つのコマンドに対応する４つの処理が終了するまでにかかる時間が、コマンド数に比例して膨大化してしまう。
【０１２９】
これに対し、情報処理装置１００は、４つのコマンドに対応する１つの内部処理を生成し、スレッドに割り当てて実行するため、ＩＯを一旦停止するなどの事前処理や事後処理を１回行えばよくすることができる。結果として、情報処理装置１００は、４つのコマンドに対する応答性能や処理効率の向上を図ることができる。情報処理装置１００は、例えば、従来では４回事前処理や事後処理が行われたのに対し、１回事前処理や事後処理を行えばよくして、４つのコマンドに対する応答性能を４倍程度に向上することができる。
【０１３０】
情報処理装置１００は、一括して複数のコマンドを取得せず、連続して複数のコマンドを取得するような場合でも、取得された複数のコマンドに対する応答性能や処理効率の向上を図ることができる。そして、情報処理装置１００は、ユーザの入力の仕方によらず、複数のコマンドに対する応答性能や処理効率の向上を図り、ＣＬＩの利便性の向上を図ることができる。
【０１３１】
情報処理装置１００は、１つのコマンドに対応する処理にかかる時間が、次のコマンドの取得を待つ時間に比べて長くなりやすいような状況に適用することができる。そして、情報処理装置１００は、次のコマンドの取得を待つことにより、取得したコマンドに対応する処理の実行開始を遅らせても、複数のコマンド全体に対する応答性能や処理効率を向上することができる。
【０１３２】
情報処理装置１００は、次のコマンドを待つ時間を固定せず、最後に取得したコマンドごとに異なる値を設定するため、次のコマンドの取得を待つことによる、最後に取得したコマンドに対する応答性能や処理効率の低下を抑制することができる。また、情報処理装置１００は、次のコマンドを待つ方が好ましい場合は、次のコマンドを待つことができるようになる。
【０１３３】
また、情報処理装置１００は、コマンドバッファに蓄積される一括処理が可能なコマンドの数が、効率よく増加するようにすることができる。このため、情報処理装置１００は、より多くのコマンドに対応する処理が１つの処理にまとめられる確率の向上を図り、ＣＬＩにおけるコマンド全体での応答性能や処理効率の向上を図ることができる。
【０１３４】
実施例２において、情報処理装置１００は、統計的に情報が設定された実行履歴テーブル４００を参照すれば、さらに精度よく、次のコマンドを待つか否かを判定可能にすることができる。このため、情報処理装置１００は、さらに効率よく、ＣＬＩにおけるコマンド全体での応答性能や処理効率の向上を図ることができる。
【０１３５】
実施例２において、情報処理装置１００は、ユーザごとに異なる実行履歴テーブル４００を参照すれば、さらに精度よく、次のコマンドを待つか否かを判定可能にすることができる。このため、情報処理装置１００は、さらに効率よく、ＣＬＩにおけるコマンド全体での応答性能や処理効率の向上を図ることができる。
【０１３６】
（実施例２における一括処理手順の一例）
次に、図１１を用いて、実施例２における一括処理手順の一例について説明する。
【０１３７】
図１１は、実施例２における一括処理手順の一例を示すフローチャートである。実施例２における一括処理手順の一例は、ステップＳ１１０１の処理を除き、図８に示した実施例１における一括処理手順の一例と同様である。このため、図１１の例では、図８に示した実施例１における一括処理手順の一例における処理と同様の処理については、図８と同じ符号を付して説明を省略する。
【０１３８】
図１１において、情報処理装置１００は、図８に示したステップＳ８１０の処理と同様の処理を実行した後、ステップＳ１１０１の処理に移行する。ステップＳ１１０１では、情報処理装置１００は、図１１に後述する待機処理を実行する（ステップＳ１１０１）。そして、情報処理装置１００は、図８に示したステップＳ８１１の処理と同様の処理に移行する。
【０１３９】
（実施例２における待機処理手順の一例）
次に、図１２を用いて、実施例２における待機処理手順の一例について説明する。
【０１４０】
図１２は、実施例２における待機処理手順の一例を示すフローチャートである。情報処理装置１００は、改行を含む未処理の文字列が存在するか否かを判定する（ステップＳ１２０１）。ここで、改行を含む未処理の文字列が存在する場合（ステップＳ１２０１：Ｙｅｓ）、情報処理装置１００は、待機処理を終了する。
【０１４１】
一方で、改行を含む未処理の文字列が存在しない場合（ステップＳ１２０１：Ｎｏ）、情報処理装置１００は、コマンドバッファに最後に記憶されたコマンドを抽出する（ステップＳ１２０２）。次に、情報処理装置１００は、抽出したコマンドに対応する実行履歴テーブル４００を取得する（ステップＳ１２０３）。
【０１４２】
そして、情報処理装置１００は、取得した実行履歴テーブル４００を参照し、過去に、抽出したコマンドに次いで、抽出したコマンドと一括処理が可能であるコマンドが取得されたことがあるか否かを判定する（ステップＳ１２０４）。ここで、取得されたことがない場合（ステップＳ１２０４：Ｎｏ）、情報処理装置１００は、待機処理を終了する。
【０１４３】
一方で、取得されたことがある場合（ステップＳ１２０４：Ｙｅｓ）、情報処理装置１００は、抽出したコマンドと、抽出したコマンドに次いで取得されたコマンドとの、過去の取得時刻の間隔が、閾値以下であるか否かを判定する（ステップＳ１２０５）。
【０１４４】
閾値は、可変である。閾値は、例えば、抽出したコマンドの過去の処理時間に基づいて設定される値である。閾値は、例えば、抽出したコマンドの過去の処理時間の１／５０の値が設定される。閾値は、固定値であってもよい。閾値は、例えば、情報処理装置１００の製造者によって設定される。
【０１４５】
ここで、閾値以下ではない場合（ステップＳ１２０５：Ｎｏ）、情報処理装置１００は、待機処理を終了する。一方で、閾値以下である場合（ステップＳ１２０５：Ｙｅｓ）、情報処理装置１００は、コマンドを抽出してからの経過時間が閾値を超えたか否かを判定する（ステップＳ１２０６）。ここで、閾値を超えた場合（ステップＳ１２０６：Ｙｅｓ）、情報処理装置１００は、待機処理を終了する。
【０１４６】
一方で、閾値を超えていない場合（ステップＳ１２０６：Ｎｏ）、情報処理装置１００は、改行を含む未処理の文字列の入力を待ち、改行を含む未処理の文字列の入力を受け付けたか否かを判定する（ステップＳ１２０７）。ここで、受け付けていない場合（ステップＳ１２０７：Ｎｏ）、情報処理装置１００は、ステップＳ１２０６の処理に戻る。
【０１４７】
一方で、受け付けた場合（ステップＳ１２０７：Ｙｅｓ）、情報処理装置１００は、待機処理を終了する。これにより、情報処理装置１００は、次のコマンドの取得を待つことによる、現在取得済みのコマンドに対応する処理の応答性能や処理効率への悪影響を抑制しつつ、一括処理が可能な１以上のコマンドをまとめることができる。このため、情報処理装置１００は、ＣＬＩにおけるコマンド全体での応答性能や処理効率の向上を図ることができる。
【０１４８】
以上説明したように、情報処理装置１００によれば、入力された文字列を解析して複数のコマンドを取得した場合、取得した複数のコマンドの一括処理が可能であるか否かを判定することができる。情報処理装置１００によれば、一括処理が可能であると判定した場合、取得した複数のコマンドに対応する１つの処理を生成し、生成した１つの処理を実行することができる。
【０１４９】
これにより、情報処理装置１００は、実装されるコマンドの構文の複雑化を防ぎ、コマンドの実装の容易化を図ることができ、複数のコマンドに対する応答性能や処理効率の向上を図ることができ、ＣＬＩの利便性の向上を図ることができる。
【０１５０】
情報処理装置１００によれば、一括処理が可能であると判定した場合、取得した複数のコマンドに対応する１つの処理を生成して、生成した１つの処理を１つのスレッドに割り当てて実行することができる。これにより、情報処理装置１００は、複数のコマンドに対して、スレッドの生成や事前処理、および、スレッドの削除や事後処理を、１回にまとめることができ、複数のコマンドに対する応答性能や処理効率の向上を図ることができる。
【０１５１】
情報処理装置１００によれば、複数のコマンドを示す文字列の入力を受け付けることができる。これにより、情報処理装置１００は、コピー＆ペーストなどにより、複数のコマンドを一括して示す文字列の入力を受け付けることができ、ユーザが複数のコマンドを示す文字列を入力しやすくすることができる。
【０１５２】
情報処理装置１００によれば、入力された文字列を解析してコマンドを取得する都度、取得したコマンドと、バッファに蓄積されたコマンドとの一括処理が可能であるか否かを判定することができる。情報処理装置１００によれば、バッファに蓄積されたコマンドとの一括処理が可能であると判定した場合、取得したコマンドをバッファに追加することができる。情報処理装置１００によれば、バッファの最後のコマンドの追加からの経過時間が閾値を超えた場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成することができる。
【０１５３】
これにより、情報処理装置１００は、次のコマンドの取得を待ち続けると、バッファに蓄積されたコマンドの応答性能が、次のコマンドをバッファに追加することができた場合に比べても低下してしまうと判断される状態であるか否かを判定することができる。そして、情報処理装置１００は、応答性能が低下してしまうと判断される状態でなければ、次のコマンドの取得を待ち、バッファに蓄積する一括処理が可能なコマンドの数の増大化を図り、コマンドに対応する処理の処理効率の向上を図ることができる。一方で、情報処理装置１００は、応答性能が低下してしまうと判断される状態であれば、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成し、コマンドの応答性能の低下を抑制することができる。
【０１５４】
情報処理装置１００によれば、バッファが空であり、入力された文字列を解析してコマンドを取得した場合、取得したコマンドをバッファに追加することができる。これにより、情報処理装置１００は、バッファが空であれば、すぐにコマンドに対応する処理を実行せず、コマンドと一括処理が可能なコマンドの入力を待つことができ、ＣＬＩにおけるコマンド全体での応答性能や処理効率の向上を図ることができる。
【０１５５】
情報処理装置１００によれば、バッファに蓄積されたコマンドとの一括処理が可能ではないと判定した場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成し、取得したコマンドを新たなバッファに追加することができる。これにより、情報処理装置１００は、一括処理が可能な１以上のコマンドごとにまとめることができる。そして、情報処理装置１００は、現時点で一括処理が可能である１以上のコマンドに対応する１つの処理を生成し、バッファに蓄積された１以上のコマンドの応答性能や処理効率の低下を抑制することができる。
【０１５６】
情報処理装置１００によれば、過去に、バッファの最後のコマンドに次いで、バッファの最後のコマンドと一括処理が可能であるコマンドを取得したことがあるか否かを判定することができる。情報処理装置１００によれば、取得したことがないと判定した場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成することができる。
【０１５７】
これにより、情報処理装置１００は、次に取得されるコマンドが、現在バッファに蓄積されたコマンドとの一括処理が可能なコマンドである確率が高いと考えられる状態であるか否かを判定することができる。そして、情報処理装置１００は、確率が高いと考えられる状態であれば次のコマンドの取得を待ち、バッファに蓄積する一括処理が可能なコマンドの数の増大化を図り、コマンドに対応する処理の処理効率の向上を図ることができる。
【０１５８】
情報処理装置１００によれば、バッファの最後のコマンドと、バッファの最後のコマンドに次いで取得されたコマンドとの、過去の取得時点の間隔が閾値を超えるか否かを判定することができる。情報処理装置１００によれば、過去の取得時点の間隔が閾値を超えたと判定した場合、バッファに蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した１以上の処理を実行することができる。
【０１５９】
これにより、情報処理装置１００は、次のコマンドが比較的短時間で取得される確率が高いと考えられる状態であるか否かを判定することができる。そして、情報処理装置１００は、確率が高いと考えられる状態であれば、次のコマンドの取得を待ち、バッファに蓄積する一括処理が可能なコマンドの数の増大化を図り、コマンドに対応する処理の処理効率の向上を図ることができる。
【０１６０】
情報処理装置１００によれば、さらに、複数のコマンドの一括処理が可能である順序を示す管理情報を参照し、取得した複数のコマンドの一括処理が可能であるか否かを判定することができる。これにより、情報処理装置１００は、所定の順序で一括処理が可能である複数のコマンドを、誤った順序で一括処理してしまうことを防止し、ユーザが複数のコマンドにより所望する機能を実現することができる。
【０１６１】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６３】
（付記１）入力された文字列を解析してコマンドを取得し、
複数のコマンドを取得した場合、複数のコマンドの一括処理の可否を示す管理情報を記憶する記憶部を参照し、取得した前記複数のコマンドの一括処理が可能であるか否かを判定し、
一括処理が可能であると判定した場合、取得した前記複数のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、
制御部を有することを特徴とする情報処理装置。
【０１６４】
（付記２）前記制御部は、
一括処理が可能であると判定した場合、取得した前記複数のコマンドに対応する１つの処理を生成して、生成した前記１つの処理を１つのスレッドに割り当てて実行する、ことを特徴とする付記１に記載の情報処理装置。
【０１６５】
（付記３）前記制御部は、
複数のコマンドを示す文字列の入力を受け付ける、ことを特徴とする付記１に記載の情報処理装置。
【０１６６】
（付記４）前記制御部は、
入力された文字列を解析してコマンドを取得する都度、取得した前記コマンドと、記憶領域に蓄積されたコマンドとの一括処理が可能であるか否かを判定し、
前記記憶領域に蓄積されたコマンドとの一括処理が可能であると判定した場合、取得した前記コマンドを前記記憶領域に追加し、
前記記憶領域の最後のコマンドの追加からの経過時間が閾値を超えた場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、ことを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
【０１６７】
（付記５）前記制御部は、
前記記憶領域が空であり、入力された文字列を解析してコマンドを取得した場合、取得した前記コマンドを前記記憶領域に追加する、ことを特徴とする付記４に記載の情報処理装置。
【０１６８】
（付記６）前記制御部は、
前記記憶領域に蓄積されたコマンドとの一括処理が可能ではないと判定した場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行し、取得した前記コマンドを新たな記憶領域に追加する、ことを特徴とする付記４または５に記載の情報処理装置。
【０１６９】
（付記７）前記制御部は、
過去に、前記記憶領域の最後のコマンドに次いで、前記記憶領域の最後のコマンドと一括処理が可能であるコマンドを取得したことがあるか否かを判定し、
取得したことがないと判定した場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、ことを特徴とする付記４〜６のいずれか一つに記載の情報処理装置。
【０１７０】
（付記８）前記制御部は、
前記記憶領域の最後のコマンドと、前記記憶領域の最後のコマンドに次いで取得されたコマンドとの、過去の取得時点の間隔が閾値を超えるか否かを判定し、
過去の取得時点の間隔が閾値を超えたと判定した場合、前記記憶領域に蓄積された１以上のコマンドに対応する１つの処理を生成し、生成した前記１以上の処理を実行する、ことを特徴とする付記４〜７のいずれか一つに記載の情報処理装置。
【０１７１】
（付記９）前記管理情報は、さらに、複数のコマンドの一括処理が可能である順序を示す、ことを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
【０１７２】
（付記１０）コンピュータに、
入力された文字列を解析してコマンドを取得し、
複数のコマンドを取得した場合、複数のコマンドの一括処理の可否を示す管理情報を記憶する記憶部を参照し、取得した前記複数のコマンドの一括処理が可能であるか否かを判定し、
一括処理が可能であると判定した場合、取得した前記複数のコマンドに対応する１つの処理を生成し、生成した前記１つの処理を実行する、
処理を実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０１７３】
１００  情報処理装置
１０１，５００  記憶部
１１０，６００〜６０５，９０１〜９０５  文字列
１２０  複数のコマンド
１３０  スレッド
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
３００  一括処理可否表
４００  実行履歴テーブル
５０１  取得部
５０２  判定部
５０３  翻訳部
５０４  実行部
５０５  出力部
６１０，９１０  入力欄
【図１】
2019028942.tif 000003
【図２】
2019028942.tif 000004
【図３】
2019028942.tif 000005
【図４】
2019028942.tif 000006
【図５】
2019028942.tif 000007
【図６】
2019028942.tif 000008
【図７】
2019028942.tif 000009
【図８】
2019028942.tif 000010
【図９】
2019028942.tif 000011
【図１０】
2019028942.tif 000012
【図１１】
2019028942.tif 000013
【図１２】
2019028942.tif 000014