(57)【要約】【課題】トラフィック（処理量）の変動に応じた共用リソースの待ち制御を自動的に行う。【解決手段】待ち制御部１０５は、待ち制御処理を開始する時、リトライ間隔保存領域１０６のリトライ間隔値をリトライ間隔変数値１０７に設定する。共用リソース１０９を利用できない場合、待ち制御部１０５は、待ち要求を発行し、リトライ間隔変数値１０７で指定されるリトライ間隔が経過するまで中央処理装置１０１に処理プログラム１０４の実行を中断させるとともに、リトライ間隔変数値１０７を増加させる。待ち制御部１０５は、リトライ間隔が経過するまで待ち、再度共用リソース１０９にアクセスする。共用リソース１０９が利用できる場合、待ち制御部１０５は、中央処理装置１０１に処理プログラム１０４の実行を再開させるとともに、待ち要求の発行回数に応じて、リトライ間隔保存領域１０６に保存されているリトライ間隔値を増加または減少させる。【選択図】図１
2011191842.tif 000002
【特許請求の範囲】
【請求項１】
共用リソースを利用する情報処理装置であって、
リトライ間隔値を保存するリトライ間隔保存手段と、
リトライ間隔変数値を記憶するリトライ間隔変数記憶手段と、
前記共用リソースにアクセスし、前記共用リソースを利用できるか否か判別する利用判別手段と、
前記利用判別手段によって前記共用リソースを利用できないと判別されたことに応答して、待ち要求を発行して前記リトライ間隔変数記憶手段によって記憶されているリトライ間隔変数値によって指定されるリトライ間隔が経過するまで中央処理装置にプログラムの実行を中断させる待ち要求発行手段と、
前記待ち要求発行手段によって最初の待ち要求が発行されるとき、前記リトライ間隔保存手段によって保存されているリトライ間隔値を、前記リトライ間隔変数値として設定するリトライ間隔変数初期設定手段と、
前記待ち要求発行手段によって待ち要求が発行された時から前記リトライ間隔変数値に応じたリトライ間隔が経過すると、前記利用判別手段に再び前記共用リソースを利用できるか否か判別させる再判別手段と、
前記待ち要求発行手段によって待ち要求が発行されたとき、再び待ち要求が発行される前に前記リトライ間隔変数記憶手段によって記憶されているリトライ間隔変数値を増加させるリトライ間隔変数変更手段と、
前記利用判別手段によって前記共用リソースを利用できると判別されたことに応答して、前記中央処理装置にプログラムを実行させるとともに、前記待ち要求の発行回数に応じて前記リトライ間隔保存手段によって保存されている前記リトライ間隔値を増加または減少させるリトライ間隔変更手段と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トラフィック（処理量）が変動する情報システムにおいて、リトライ間隔を変えることにより中央処理装置に負担をかけずに待ち制御を行い、トラフィックを低く抑えることができる情報処理装置に関する。
【背景技術】
【０００２】
情報システムでは、複数の処理プログラムが、マスタファイルなどの情報システム内にただ一つだけ存在し共用するリソース（以下、共用リソースと呼ぶ）を利用する場合がある。このような場合に、マスタファイルの内容を同時に更新することにより処理プログラム間で情報の整合性を失わないよう、共用リソースを占有利用するための待ち制御を行う。
【０００３】
一般的に採用されている待ち制御として、共用リソースを利用できるかどうか、一定間隔ごとにチェックし、利用できるようになるまでリトライにより待ちあわせを行う方式がある。このとき、１回の待ち要求により待ちあわせる時間をリトライ間隔と呼ぶ。
待ち要求は、中央処理装置（ＣＰＵ、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に対して発行されるため、待ち要求が多発すると情報システムのトラフィックは高くなる。従って、リトライ間隔が短い（すなわち、待ち要求が多い）と応答時間は向上するが中央処理装置を多く消費し、リトライ間隔が長い（すなわち、待ち要求が少ない）と中央処理装置の消費は抑えられるが応答時間が低下するという一長一短の関係がある。
【０００４】
一方、共用リソース毎にリトライ回数とリトライ間隔を予め設定する技術が知られている（例えば、特許文献１と特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１３６４８５号公報
【特許文献２】特開平８−１１５２２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
トラフィックが変動する情報システムでは、トラフィックが高いとき、リトライ間隔が短い待ちを行うと、中央処理装置を消費しトラフィックをさらに高く悪化させる。一方、トラフィックが低いとき、リトライ間隔が長い待ちを行うと、応答時間が低下する。そこで、このような情報システムでは、トラフィックに応じてリトライ間隔を設定することが望ましい。
【０００７】
しかし、トラフィックが変動する情報システムでは、処理プログラムの実行数や、共用リソースを利用できるまでの待ち時間が随時変わる。このため、特許文献１や特許文献２に記載の技術では、トラフィックに応じてリトライ間隔に最適な値を設定するためには、何度もチューニングを重ねなければならず、コストがかかる。
【０００８】
本発明の目的は、リトライ間隔に最適な値を予め設定しなくても、トラフィックの変動に応じて共用リソースの待ち制御を自動的に行うことができる情報処理装置を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の情報処理装置は、
共用リソースを利用する情報処理装置であって、
リトライ間隔値を保存するリトライ間隔保存手段と、
リトライ間隔変数値を記憶するリトライ間隔変数記憶手段と、
前記共用リソースにアクセスし、前記共用リソースを利用できるか否か判別する利用判別手段と、
前記利用判別手段によって前記共用リソースを利用できないと判別されたことに応答して、待ち要求を発行して前記リトライ間隔変数記憶手段によって記憶されているリトライ間隔変数値によって指定されるリトライ間隔が経過するまで中央処理装置にプログラムの実行を中断させる待ち要求発行手段と、
前記待ち要求発行手段によって最初の待ち要求が発行されるとき、前記リトライ間隔保存手段によって保存されているリトライ間隔値を、前記リトライ間隔変数値として設定するリトライ間隔変数初期設定手段と、
前記待ち要求発行手段によって待ち要求が発行された時から前記リトライ間隔変数値に応じたリトライ間隔が経過すると、前記利用判別手段に再び前記共用リソースを利用できるか否か判別させる再判別手段と、
前記待ち要求発行手段によって待ち要求が発行されたとき、再び待ち要求が発行される前に前記リトライ間隔変数記憶手段によって記憶されているリトライ間隔変数値を増加させるリトライ間隔変数変更手段と、
前記利用判別手段によって前記共用リソースを利用できると判別されたことに応答して、前記中央処理装置にプログラムを実行させるとともに、前記待ち要求の発行回数に応じて前記リトライ間隔保存手段によって保存されている前記リトライ間隔値を増加または減少させるリトライ間隔変更手段と、
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、リトライ間隔に最適な値を予め設定しなくても、トラフィックの変動に応じて共用リソースの待ち制御を自動的に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る情報処理装置の構成の一例を示す図である。
【図２】待ち制御における待ち回数とリトライ間隔の変動と待ち時間の累計例である。
【図３】待ち制御におけるリトライ間隔の初期値とリトライ間隔の変動例である。
【図４】待ち制御部における待ち制御処理のフローチャートの一例を示す図である。
【図５】情報システム起動処理のフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態に係る情報処理装置について図面を参照しながら説明する。
【００１３】
図１は、本発明の実施形態に係る情報処理装置１００の構成の一例を示す。
図１において、情報システムは情報処理装置１００と記憶装置１０３で構成される。情報処理装置１００は、中央処理装置１０１とメモリ１０２を含む。
メモリ１０２は、処理プログラム１０４を記憶しており、リトライ間隔保存領域１０６を含む。処理プログラム１０４は、待ち制御部１０５を含む。待ち制御部１０５は待ち制御を実行する。メモリ１０２は、待ち制御部１０５の変数（パラメータ）の一つとして、リトライ間隔変数値１０７を記憶している。
記憶装置１０３は、ハードディスクや光ディスク等で構成される。記憶装置１０３は、リトライ間隔初期値１０８が格納された設定ファイルと、共用リソース（マスタファイル）１０９とを記憶している。
【００１４】
リトライ間隔初期値１０８は、後述するように、リトライ間隔の初期値であり、リトライ間隔初期値１０８は情報処理装置１００の起動時にリトライ間隔保存領域１０６に設定される。リトライ間隔変数値１０７は、待ち制御部１０５で使用される変数であり、後述するように、処理プログラム１０４の実行を開始する際にリトライ間隔保存領域１０６に格納されているリトライ間隔値が設定される。
【００１５】
処理プログラム１０４は、中央処理装置１０１によって実行される。処理プログラム１０４が共用リソース１０９にアクセスした際に共用リソース１０９を利用することができない場合、待ち制御部１０５は、中央処理装置１０１に対し、リトライ間隔変数値１０７で指定されるリトライ間隔の待ち要求を発行する。待ち要求が発行されると、中央処理装置１０１は処理プログラム１０４の実行を中断する。待ち制御部１０５は、リトライ間隔が経過するまで待ち、リトライ間隔が経過すると、再度共用リソース１０９にアクセスする。このときにも共用リソース１０９を利用することができない場合、待ち制御部１０５は、中央処理装置１０１に対し、再度待ち要求を発行する。共用リソース１０９が利用できるようになると、中央処理装置１０１は処理プログラム１０４の実行を再開する。
待ち制御部１０５は、後述するアルゴリズムにより、共用リソース１０９を利用することができたか否かに応じて、リトライ間隔変数値１０７を増加させ、リトライ間隔保存領域１０６に保存されているリトライ間隔値を増加または減少させる。
【００１６】
図２は、待ち制御における待ち回数とリトライ間隔の変動と待ち時間の累計例である。
図２において、２０１は待ち回数、２０２はリトライ間隔、２０３は待ち時間の累計を示す。
共用リソース１０９にアクセスした際に共用リソース１０９を利用できない場合、処理プログラム１０４の待ち制御では、共用リソース１０９を利用できるまで、徐々にリトライ間隔を増加させながら待ちあわせる。例えば、リトライ間隔が1ミリ秒である場合、待ち制御は、待ち回数２０１が１回目では１ミリ秒、２回目では２ミリ秒、３回目では４ミリ秒と、リトライ間隔を２倍に加算しながら待ちを繰り返す。この場合、待ち時間の累計２０３は、それぞれ１回目は1ミリ秒、２回目は３ミリ秒、３回目は７ミリ秒となる。これにより、共用リソースを利用できるようになるまで、待ち時間が長くなる場合でも、一定時間当たりの中央処理装置への待ち要求の発行は少なくなる。
【００１７】
図３は、待ち制御におけるリトライ間隔の初期値とリトライ間隔の変動例である。
図３において、３０１は待ち回数、３０２はリトライ間隔の初期値が１ミリ秒の場合のリトライ間隔、３０３はリトライ間隔の初期値が２ミリ秒の場合のリトライ間隔、３０４はリトライ間隔の初期値が４ミリ秒の場合のリトライ間隔を示す。
共用リソース１０９を利用できない場合、待ち制御では、これまでに行った待ち制御の結果を反映したリトライ間隔を待ち制御の初期値として使用する。図３の例によれば、リトライ間隔の初期値が1ミリ秒である場合、待ち制御は、待ち回数３０１が1回目では1ミリ秒、２回目では２ミリ秒、３回目では４ミリ秒と変動するが、リトライ間隔の初期値が２ミリ秒の場合、待ち制御は1回目は２ミリ秒、２回目は４ミリ秒、３回目は８ミリ秒となるため、リトライ間隔の初期値が1ミリ秒の場合に比べて中央処理装置１０１への待ち要求の発行は少なくなる。同様に、リトライ間隔の初期値が４ミリ秒の場合は、リトライ間隔の初期値が1ミリ秒および２ミリ秒の場合に比べて中央処理装置１０１への待ち要求の発行は少なくなる。
【００１８】
図４は、待ち制御部における待ち制御処理のフローチャートの一例を示す。
待ち制御では、最初に、共用リソース１０９を利用できるかどうかチェックを行い、共用リソース１０９を利用できる場合は処理を終了する（ステップ４０１：ＹＥＳ）。共用リソースを利用できない場合（ステップ４０１：ＮＯ）は、リトライ間隔保存領域１０６の値を初期値として、処理プログラム内の変数であるリトライ間隔変数１０７に設定する（ステップ４０２）。
【００１９】
次に、待ち制御部１０５は、リトライ間隔変数値１０７をリトライ間隔として、中央処理装置１０１に対して待ち要求を発行する（ステップ４０３）。待ち制御部１０５は、待ち要求を発行した時からリトライ間隔が経過するまで待って、リトライ間隔が経過すると、再度共用リソース１０９にアクセスし、共用リソース１０９を利用できるかどうかのチェックを行う（ステップ４０４）。待ち制御部１０５は、共用リソース１０９を利用できない場合（ステップ４０４：ＮＯ）、リトライ間隔変数値１０７を加算し、例えば２倍にする（ステップ４０５）。待ち制御部１０５は、共用リソース１０９を利用できるまで、リトライ間隔変数値１０７の加算、待ち要求の発行、共用リソース１０９を利用できるかどうかチェックを繰り返す（ステップ４０３〜４０５）。
【００２０】
リトライ間隔変数値１０７の加算と待ち要求を繰り返した結果、共用リソース１０９を利用できるようになった場合（ステップ４０５：ＹＥＳ）、リトライ間隔変数値１０７を加算したかどうかを判定する（ステップ４０６）。このとき、リトライ間隔変数値１０７を加算しなかった場合（ステップ４０６：ＮＯ）、つまり１回の待ち要求しか発行しなかった場合は、以前に待ち制御を行った時よりトラフィックが低くなったと判断できる。このため、待ち制御部１０５は、リトライ間隔保存領域１０６に格納されている値を減算し、例えば１／２にする（ステップ４０７）。
【００２１】
ただし、減算すると、リトライ間隔保存領域１０６に格納されている値がリトライ間隔初期値１０８より小さくなる場合がある。そこで、ステップ４０７において、リトライ間隔保存領域１０６に格納されている値がリトライ間隔初期値１０８以下になるか否かを判別し、減算してもリトライ間隔保存領域１０６に格納されている値がリトライ間隔初期値１０８より大きい場合に限り、リトライ間隔保存領域１０６に格納されているリトライ間隔値を減算し、例えば１／２にすることとしてもよい。
【００２２】
一方、リトライ間隔変数値１０７を加算した場合（ステップ４０６：ＹＥＳ）、つまり２回以上の待ち要求を発行した場合は、以前に待ち制御を行った時よりトラフィックが高くなったと判断できる。このため、待ち制御部１０５は、リトライ間隔保存領域１０６に格納されている値を加算し、例えば２倍にする（ステップ４０８）。
以上のような待ち制御処理を継続的に行うことによって、トラフィックの変動に合わせてリトライ間隔を変え、トラフィックを低く抑えることが可能になる。
【００２３】
図５は、情報システム起動処理のフローチャートの一例を示す。
情報システムの起動時には、まだ待ち制御処理を実行しておらず、待ち制御部１０５はリトライ間隔変数値１０７を持っていないため、リトライ間隔の仮値をリトライ間隔保存領域１０６に読み込む必要がある。そこで、記憶装置１０３に保存されている設定ファイルのリトライ間隔初期値１０８をリトライ間隔保存領域１０６に読み込む（ステップ５０１）。
【００２４】
なお、上記実施形態では共有リソース１０９がマスタファイルである例を示したが、共有リソースが例えばプリンタや通信回線であっても本発明を適用することができる。
また、共用リソース１０９は、複数の情報処理装置１００によって共通に利用されるものであってもよいし、１台の情報処理装置１００で実行されている複数の処理プログラム１０４によって共通に利用されるものであってもよい。
【００２５】
以上説明したように、本発明によれば、リトライ間隔に最適な値を予め設定しなくても、トラフィックの変動に応じて共用リソースの待ち制御を自動的に行うことができる。
【００２６】
以上、本発明の実施形態について説明したが、設計上の都合やその他の要因によって必要となる様々な修正や組み合わせは、請求項に記載されている発明や発明の実施形態に記載されている具体例に対応する発明の範囲に含まれると理解されるべきである。
【符号の説明】
【００２７】
１００…情報処理装置、１０１…中央処理装置、１０２…メモリ、１０３…記憶装置、１０４…処理プログラム、１０５…待ち制御部、１０６…リトライ間隔保存領域、１０７…リトライ間隔変数値、１０８…リトライ間隔初期値、１０９…共用リソース
【図１】
2011191842.tif 000003
【図２】
2011191842.tif 000004
【図３】
2011191842.tif 000005
【図４】
2011191842.tif 000006
【図５】
2011191842.tif 000007