(57)【要約】【課題】従来の計算機資源調停システムでは、複数の計算機資源による相互作用を考慮に入れていなかった。また、割当保証正当性も１種類の資源に対してのみ評価されていた。【解決手段】複数の計算機資源の割当結果から誤差値を計算する割当誤差算出手段と、誤差値を最小にするために、パラメータ変更を繰り返しながら適正なパラメータを探索する割当変更決定手段とを備え、実際の影響を観測しながら、パラメータを微調整することで課題を解決する。【選択図】図１
2010224772.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機資源と、
前記複数の計算機資源のそれぞれに対する負荷の割当てを制御する複数の計算機資源管理手段と、
前記計算機資源の使用状況を計測する複数の資源負荷計測手段とを備え、
論理区画を実現し、該論理区画それぞれの使用状況をモニタリングする計算機資源制御システムに加え、
前記複数の計算機資源それぞれに対する負荷の割当て値を示す第１のパラメータ集合を記憶する資源設定記憶手段と、
前記第１のパラメータ集合が示す割当て値と前記資源負荷計測手段において計測された前記計算機資源の使用状況の値とに基づき、前記割当て値と前記使用状況の値との差である誤差値を計算する割当誤差算出手段と、
前記複数の計算機資源管理手段にそれぞれ設定されている値であって該計算機資源管理手段が制御する前記計算機資源の負荷の割当て値を示す第２のパラメータ集合と前記割当誤差算出手段で計算された誤差値とを記憶する微変更結果記憶手段と、
前記資源設定記憶手段に記憶されている第１のパラメータ集合から、前記複数の計算機資源管理手段に設定する第２のパラメータ集合を計算し設定する機能と、該第２のパラメータ集合における、任意の１個以上の前記計算機資源管理手段に対する負荷の割当て値であるパラメータを変更して、該変更後の第２のパラメータ集合を前記複数の計算機資源管理手段へ設定する機能と、前記変更された後に前記割当誤差算出手段で計算された誤差値に基づいて、前記第２のパラメータ集合を変更する機能を持つ割当変更決定手段と
を備え、
前記第２のパラメータ集合の変更を繰り返しながら前記誤差値を小さくすることを特徴とする計算機資源調停システム。
【請求項２】
前記割当誤差算出手段は、前記資源設定記憶手段が記憶している第１のパラメータ集合も使用して前記誤差値を計算する手段をさらに備えたことを特徴とする請求項１に記載の計算機資源調停システム。
【請求項３】
前記資源設定記憶手段は、前記第２のパラメータ集合を基準値として記憶する手段をさらに備え、
前記微変更結果記憶手段は、記憶情報をクリアする手段をさらに備え、
前記割当変更決定手段は、前記第２のパラメータ集合を変更するときに、前記資源設定記憶手段が記憶している第２のパラメータ集合に対して、１個以上の前記計算機資源管理手段に対する負荷の割当て値であるパラメータを変更することで新たな第２のパラメータ集合を作成する手段をさらに備え、
前記割当変更決定手段は、１回以上の前記第２のパラメータ集合の変更をした後に、複数の第２のパラメータ集合のそれぞれに対応する複数の前記誤差値の中から最小の誤差値を決定し、該最小の誤差値に対応する前記第２のパラメータ集合を前記資源設定記憶手段に記憶させるとともに、前記微変更結果記憶手段に記憶情報をクリアさせる手段をさらに備えることを特徴とする請求項１または２に記載の計算機資源調停システム。
【請求項４】
前記資源設定記憶手段は、前記第１のパラメータ集合と、前記誤差値の計算で使用される値であって、前記資源負荷計測手段において計測された各計算機資源の使用状況の値それぞれの重み付けの値である注目度合いとを記憶し、
前記割当誤差算出手段は、前記注目度合いも活用して誤差値を計算する手段をさらに備え、
前記誤差値の計算における各計算機資源の使用状況の値の影響を自由に設定できることを特徴とする請求項１から３のいずれかに記載の計算機資源調停システム。
【請求項５】
前記注目度合いは、各タスク群に対して設定されており、
タスク群ごとに評価の方法を変更できることを特徴とする請求項４に記載の計算機資源調停システム。
【請求項６】
前記割当変更決定手段は、前記第２のパラメータ集合を変更する機能を使用して、前記計算機資源の遊休状態を増加させる機能をさらに備え、
前記割当誤差算出手段は、前記計算機資源の遊休状態の大きさを判定する手段をさらに備え、
注目する第１の計算機資源の利用率を保持しつつも、第１の計算機資源以外の計算機資源の遊休状態を増加させることを特徴とする請求項１から５のいずれかに記載の計算機資源調停システム。
【請求項７】
複数の計算機資源それぞれに対する負荷の割当を制御することと前記計算機資源の使用状況を計測することで、論理区画を実現する方法に加え、
前記複数の計算機資源それぞれに対する負荷の割当て値を示す第１のパラメータ集合を記憶するステップと、
前記第１のパラメータ集合が示す割当て値と前記計測された使用状況の値とに基づき、前記割当て値と前記使用状況の値との差である誤差値を計算するステップと、
計算機資源管理手段が制御する前記計算機資源の負荷の割当て値を示す第２のパラメータ集合と、前記計算するステップで計算された誤差値とを組として記憶するステップと、
前記記憶するステップで記憶された第１のパラメータ集合から、計算機資源割当て制御のための第２のパラメータ集合を計算して該第２のパラメータ集合に基づいて前記計算機資源のそれぞれに対する負荷の割当を制御するとともに、前記計算された第２のパラメータ集合の中から任意の１個以上のパラメータを変更しながら前記負荷の割当を制御するステップと、
少なくとも、前記誤差値を計算するステップおよび前記負荷の割当を制御するステップを繰り返して、前記誤差値を小さくすることを特徴とする計算機資源調停方法。
【請求項８】
前記第１のパラメータ集合を記憶するステップは、前記第２のパラメータ集合を基準値として記憶するステップをさらに有し、
前記第２のパラメータ集合と、前記計算するステップで計算された誤差値とを組として記憶するステップは、記憶情報をクリアするステップをさらに有し、
前記負荷の割当を制御するステップは、前記第２のパラメータ集合を変更するときに、前記第１のパラメータ集合を記憶するステップで記憶された第２のパラメータ集合に対して、１個以上の前記負荷の割当て値であるパラメータを変更することで新たな第２のパラメータ集合を作成するステップをさらに有し、
前記負荷の割当を制御するステップは、１回以上の前記第２のパラメータ集合の変更をした後に、複数の第２のパラメータ集合のそれぞれに対応する複数の前記誤差値の中から最小の誤差値を決定し、該最小の誤差値に対応する前記第２のパラメータ集合を前記第１のパラメータ集合を記憶するステップを使用して記憶させるとともに、前記記憶情報をクリアするステップを使用して前記クリアさせるステップをさらに有することを特徴とする請求項７に記載の計算機資源調停方法。
【請求項９】
前記第１のパラメータ集合を記憶するステップは、前記第１のパラメータ集合と、前記誤差値の計算で使用される値であって、前記計算機資源のそれぞれについて計測された各計算機資源それぞれの使用状況を示す値に対するそれぞれの重み付けの値である注目度合いとを記憶するステップをさらに有し、
前記負荷の割当を制御するステップは、前記注目度合いも活用して誤差値を計算するステップをさらに有し、
前記誤差値の計算における各計算機資源の使用状況の値の影響を自由に設定できることを特徴とする請求項７または８に記載の計算機資源調停方法。
【請求項１０】
前記負荷の割当を制御するステップは、前記第２のパラメータ集合を変更する処理を使用して、前記計算機資源の遊休状態を増加させる処理をさらに有し、
前記負荷の割当を制御するステップは、前記計算機資源の遊休状態の大きさを判定するステップをさらに有し、
注目する第１の計算機資源の利用率を保持しつつも、第１の計算機資源以外の計算機資源の遊休状態を増加させることを特徴とする請求項７から９のいずれかに記載の計算機資源調停方法。
【請求項１１】
複数の計算機資源それぞれに対する負荷の割当を制御する処理と、
前記計算機資源の使用状況を計測する処理と、
前記複数の計算機資源それぞれに対する負荷の割当て値を示す第１のパラメータ集合を記憶する処理と、
前記第１のパラメータ集合が示す割当て値と前記計測された使用状況の値とに基づき、前記割当て値と前記使用状況の値との差である誤差値を計算する処理と、
計算機資源管理手段が制御する前記計算機資源の負荷の割当て値を示す第２のパラメータ集合と、前記計算する処理で計算された誤差値とを組として記憶する処理と、
前記記憶するステップで記憶された第１のパラメータ集合から、計算機資源割当て制御のための第２のパラメータ集合を計算して該第２のパラメータ集合に基づいて前記計算機資源のそれぞれに対する負荷の割当を制御するとともに、前記計算された第２のパラメータ集合の中から任意の１個以上のパラメータを変更しながら前記負荷の割当を制御する処理と、
少なくとも、前記誤差値を計算する処理および前記負荷の割当を制御する処理を繰り返して、前記誤差値を小さくする処理と
をコンピュータに実行させるプログラム。
【請求項１２】
前記第１のパラメータ集合を記憶する処理は、前記第２のパラメータ集合を基準値として記憶する処理をさらに有し、
前記第２のパラメータ集合と、前記計算する処理で計算された誤差値とを組として記憶する処理は、記憶情報をクリアする処理をさらに有し、
前記負荷の割当を制御する処理は、前記第２のパラメータ集合を変更するときに、前記第１のパラメータ集合を記憶する処理で記憶された第２のパラメータ集合に対して、１個以上の前記負荷の割当て値であるパラメータを変更することで新たな第２のパラメータ集合を作成する処理をさらに有し、
前記負荷の割当を制御する処理は、１回以上の前記第２のパラメータ集合の変更をした後に、複数の第２のパラメータ集合のそれぞれに対応する複数の前記誤差値の中から最小の誤差値を決定し、該最小の誤差値に対応する前記第２のパラメータ集合を前記第１のパラメータ集合を記憶する処理を使用して記憶させるとともに、前記記憶情報をクリアする処理を使用して前記クリアさせる処理をさらに有することを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記第１のパラメータ集合を記憶する処理は、前記第１のパラメータ集合と、前記誤差値の計算で使用される値であって、前記計算機資源のそれぞれについて計測された各計算機資源それぞれの使用状況を示す値に対するそれぞれの重み付けの値である注目度合いとを記憶する処理をさらに有し、
前記負荷の割当を制御する処理は、前記注目度合いも活用して誤差値を計算する処理をさらに有し、
前記誤差値の計算における各計算機資源の使用状況の値の影響をコンピュータが自由に設定できるようにコンピュータに実行させることを特徴とする請求項１１または１２に記載のプログラム。
【請求項１４】
前記負荷の割当を制御する処理は、前記第２のパラメータ集合を変更する処理を使用して、前記計算機資源の遊休状態を増加させる処理をさらに有し、
前記負荷の割当を制御する処理は、前記計算機資源の遊休状態の大きさを判定する処理をさらに有し、
注目する第１の計算機資源の利用率を保持しつつも、第１の計算機資源以外の計算機資源の遊休状態を増加させることをコンピュータに実行させることを特徴とする請求項１１から１３のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機資源調停システム、計算機資源調停方法および計算機資源調停用プログラムに関し、特に、資源設定を自動的に調停することできる計算機資源調停システム、計算機資源調停方法および計算機資源調停用プログラムに関するものである。
【背景技術】
【０００２】
近年、仮想化技術による仮想計算機(Virtual Machine;VM)環境および論理区画に分割するパーティショニング技術、タスク群を１つの仮想計算機環境として扱い、１つのＯＳ上に複数の空間を扱えるようにするコンテナ技術などが開発されている。このような計算機の利用は、複数の計算機環境を仮想化および抽象化して１つの物理計算機に統合することで、サーバ台数を抑えるのに役立っている。
【０００３】
このような仮想化および抽象化した複数の計算機環境を統合する計算機環境下では、物理的な計算機資源を、時間で分割する時分割、および、使用できる機器または記憶装置の領域を分割する領域分割などを用いて、複数の仮想的な計算機環境を作り出し提供している。このとき、各計算機資源には、時分割または領域分割による資源活用状況を制御する制御装置が各計算機資源ごとまたは種類ごとに存在する。
【０００４】
それ以外にも、プログラム、プロセスまたはスレッドといった単位での計算機資源の制御装置もＯＳに導入されるなど、資源を制御する仕組みが導入されている。
【０００５】
現在、このような資源分配においては、各資源に対して独立して設定値を与えている。例えば、「ＣＰＵは、７０％と３０％に性能を配分する。メモリは２ＧＢと１ＧＢに配分する。」といったように設定することになる。
【０００６】
しかしながら、仮想計算機環境上のプログラムはどのように動作するか実行してみないと分からないため、設定された値が常に正しいとは限らない。
【０００７】
このような問題を解決する従来の計算機資源調停システムの一例が、下記の特許文献１、特許文献２および特許文献３に記載されている。
【０００８】
特許文献１記載の計算機資源調停システムは、主記憶とシステム記憶とを分離して制御する。それぞれの記憶領域は制御テーブルにより制限している。この制御テーブルの領域変更による資源管理方法において、スケジュール表による時間に対する管理および外部ページに書き出す量に応じて、設定範囲を変更することにより動的な資源管理を実現している。
【０００９】
特許文献２記載の計算機資源調停システムにおいても、特許文献１記載の計算機資源調停システムと同様のことをプロセッサ資源に対して行っている。各ＯＳに対して、指定時刻による割当量変更、およびプロセッサ使用状況の計測に基づく割当量変更などである。
【００１０】
特許文献３記載の計算機資源調停システムは、特許文献２記載の計算機資源調停システムを改善する方法である。ＣＰＵの使用時間では計算機システムの負荷を知ることが困難であるため、システムの負荷を計測することとシステム上で実行されるワークロードに関する少量の知識から資源配分比率を計算し、資源配分変更を行っている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特許第３８７５３５８号明細書
【特許文献２】特開平０９‐２６８８９号公報
【特許文献３】特許第４０１８９００号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来の発明においては、個々の資源に注目した制御になっていることが問題である。前述の通り、複数の計算機資源、もしくは、計算機資源の種類ごとに資源配分制御装置が導入されている。また、これらの計算機資源の使用の仕方、すなわち、分割された仮想計算機環境上のプログラムの動作およびユーザ操作によって資源使用の特性は変化し、各計算機資源の相互作用の結果、各計算機資源の活用の程度が変わってくる。
【００１３】
特許文献３記載の計算機資源調停システムでは、ワークロードにより修正された負荷から資源の配分比率を変更する。しかし、特許文献３記載の計算機資源調停システムは、上記に述べたように、実際の資源の変更に対する資源活用が、各計算機資源の相互作用を発生させるために、配分比例を計算すればうまく動作するというわけではない。また、特許文献３では特定の資源の負荷の計測を基に、各計算機資源を変更することが記載されているが、異種資源に対する変更の仕方などが不明瞭である。
【００１４】
［発明の目的］
本発明の目的は、複数の計算機資源を自動的に調整することのできる計算機資源調停システムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明は、上述の課題を解決すべくなされたもので、複数の計算機資源と、前記複数の計算機資源のそれぞれに対する負荷の割当てを制御する複数の計算機資源管理手段と、前記計算機資源の使用状況を計測する複数の資源負荷計測手段とを備え、論理区画を実現し、該論理区画それぞれの使用状況をモニタリングする計算機資源制御システムに加え、前記複数の計算機資源それぞれに対する負荷の割当て値を示す第１のパラメータ集合を記憶する資源設定記憶手段と、前記第１のパラメータ集合が示す割当て値と前記資源負荷計測手段において計測された前記計算機資源の使用状況の値とに基づき、前記割当て値と前記使用状況の値との差である誤差値を計算する割当誤差算出手段と、前記複数の計算機資源管理手段にそれぞれ設定されている値であって該計算機資源管理手段が制御する前記計算機資源の負荷の割当て値を示す第２のパラメータ集合と前記割当誤差算出手段で計算された誤差値とを記憶する微変更結果記憶手段と、前記資源設定記憶手段に記憶されている第１のパラメータ集合から、前記複数の計算機資源管理手段に設定する第２のパラメータ集合を計算し設定する機能と、該第２のパラメータ集合における、任意の１個以上の前記計算機資源管理手段に対する負荷の割当て値であるパラメータを変更して、該変更後の第２のパラメータ集合を前記複数の計算機資源管理手段へ設定する機能と、前記変更された後に前記割当誤差算出手段で計算された誤差値に基づいて、前記第２のパラメータ集合を変更する機能を持つ割当変更決定手段とを備え、前記第２のパラメータ集合の変更を繰り返しながら前記誤差値を小さくすることを特徴とする計算機資源調停システムである。
【００１６】
また本発明は、複数の計算機資源それぞれに対する負荷の割当を制御することと前記計算機資源の使用状況を計測することで、論理区画を実現する方法に加え、前記複数の計算機資源それぞれに対する負荷の割当て値を示す第１のパラメータ集合を記憶するステップと、前記第１のパラメータ集合が示す割当て値と前記計測された使用状況の値とに基づき、前記割当て値と前記使用状況の値との差である誤差値を計算するステップと、計算機資源管理手段が制御する前記計算機資源の負荷の割当て値を示す第２のパラメータ集合と、前記計算するステップで計算された誤差値とを組として記憶するステップと、前記記憶するステップで記憶された第１のパラメータ集合から、計算機資源割当て制御のための第２のパラメータ集合を計算して該第２のパラメータ集合に基づいて前記計算機資源のそれぞれに対する負荷の割当を制御するとともに、前記計算された第２のパラメータ集合の中から任意の１個以上のパラメータを変更しながら前記負荷の割当を制御するステップと、少なくとも、前記誤差値を計算するステップおよび前記負荷の割当を制御するステップを繰り返して、前記誤差値を小さくすることを特徴とする計算機資源調停方法である。
【００１７】
また本発明は、複数の計算機資源それぞれに対する負荷の割当を制御する処理と、前記計算機資源の使用状況を計測する処理と、前記複数の計算機資源それぞれに対する負荷の割当て値を示す第１のパラメータ集合を記憶する処理と、前記第１のパラメータ集合が示す割当て値と前記計測された使用状況の値とに基づき、前記割当て値と前記使用状況の値との差である誤差値を計算する処理と、計算機資源管理手段が制御する前記計算機資源の負荷の割当て値を示す第２のパラメータ集合と、前記計算するステップで計算された誤差値とを組として記憶する処理と、前記記憶するステップで記憶された第１のパラメータ集合から、計算機資源割当て制御のための第２のパラメータ集合を計算して該第２のパラメータ集合に基づいて前記計算機資源のそれぞれに対する負荷の割当を制御するとともに、前記計算された第２のパラメータ集合の中から任意の１個以上のパラメータを変更しながら前記負荷の割当を制御する処理と、少なくとも、前記誤差値を計算する処理および前記負荷の割当を制御する処理を繰り返して、前記誤差値を小さくする処理とをコンピュータに実行させるプログラムである。
【発明の効果】
【００１８】
本発明によれば、複数の計算機資源管理部の設定を自動的に計算機利用状況に合わせて調停できることになる。その理由は、各計算機資源の負荷設定の変更を複数回試みて、各変更において各計算機資源の割当て値と前記使用状況の値との差である誤差値を算出して記憶するので、前記誤差値が小さくなるように前記割当て値を変更することができるためである。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態の構成を示すブロック図である。
【図２】本発明の実施形態の動作を示す流れ図である。
【図３】本発明の実施形態におけるユーザ設定処理を示す流れ図である。
【図４】本発明の実施形態におけるパラメータ微調整処理を示す流れ図である。
【図５】従来の計算機システムの動作の具体例を示す図である。
【図６】本発明の実施形態の動作の第１具体例を示す図である。
【図７】本発明の実施形態の動作の第２具体例を示す図である。
【図８】本発明の実施形態の動作の第３具体例を示す図である。
【発明を実施するための形態】
【００２０】
次に、発明を実施するための形態について図面を参照して詳細に説明する。
【００２１】
図1を参照すると、本発明の第１の実施形態は、各計算機資源１００ｉ（ｉ＝１〜ａ）と、各計算機資源群を制御する計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）と、各計算機資源群の利用状況を監視する資源負荷計測部１２０ｉ（ｉ＝１〜ｃ）とを有する計算機資源調停システムにおいて、資源設定記憶部２１０と、割当誤差算出部２２０と、微変更結果記憶部２３０と、割当変更決定部２４０とをさらに有するシステムとして構成されている。
【００２２】
本発明の実施形態に係る計算機資源調停システムの構成要素について、次に説明する。
【００２３】
各計算機資源１００ｉ（ｉ＝１〜ａ）は、計算機を構成する資源（部品）である。計算機資源１００ｉの構成例としては、演算処理装置（ＣＰＵ、ＭＰＵ、ＧＰＵ、ＧＰＧＰＵなど）、主記憶装置（メモリ）、補助記憶装置（ＨＤＤ装置、ＣＤ装置、ＤＶＤ装置、ＳＤＤ装置など）、通信装置（ＥＴＨＥＲ装置、モデム装置など）などが挙げられる。
【００２４】
計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）は、１つ以上の計算機資源１００への配分の仕方を制御する。配分の仕方は、各計算機資源群に対して様々な方法が存在し、それぞれの方法に対するパラメータが存在する。ここで、各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）の設定パラメータ集合をＲＰｉ（ｉ＝１〜ｂ）として表現する。以後の説明を、より具体化していくために、計算機資源の配分について次に詳細に説明する。 
【００２５】
計算機資源の配分の方法として、時分割と領域分割が存在する。
【００２６】
時分割とは、ある計算機資源を時間で分割して割り当てる方法である。時分割は、主に、演算処理装置の割り当て、または補助記憶装置およびネットワーク装置へのリクエスト発行操作などで使用される。
【００２７】
時分割の設定方法、割当方法および負荷評価の仕方としても様々な方法が存在する。その一例をここで挙げるが、本発明は任意の設定、割当方法、負荷評価方法を用いて構わない。
【００２８】
時分割の設定として、基本サイクル（基本時間）当りの割り当てる時間で設定することができる。また、全体に対する割合、割合を計算できるようにする重み値、優先度値などで設定することができる。これらの設定以外にスケジューリングを行う際に使用するパラメータなども設定項目として存在する。パラメータの例としては、例えば、スケジューリングの基本単位時間、アイドル（遊休）扱いにする資源使用間隔などが存在する。
【００２９】
時分割の割当方法として、上記の設定パラメータを基にスケジューリングすることができる。例えば、最も早く実行できるタスクを選択するＥＴＦ（Earliest Task First）スケジューリング、最も終了設定時間が早いタスクを選択するＥＤＦ(Early Deadline First)スケジューリング、割り当て可能量をクレジット（credit）として登録しておき、クレジットの余剰があるタスクから割り当てるクレジット・スケジューリングなどがある。
【００３０】
時分割の負荷評価方法として、実経過時間に対する資源の使用時間を比率で表現する相対表現、および実際に実行した時間で評価する絶対表現を使用することができる。
【００３１】
領域分割とは、ある計算機資源、もしくは、計算機資源群に対して、機器ごとまたは機器の使用領域ごとに分割して割り当てる方法である。主に、主記憶装置および補助記憶装置などで使用される。
【００３２】
領域分割も時分割と同様に、設定方法、割当方法および負荷評価の仕方としても様々な方法が存在する。その一例をここで挙げるが、時分割のときと同様に本発明は任意の設定、割当方法、負荷評価方法を用いて構わない。
【００３３】
領域分割の設定として、装置単位で設定することができる。また、主記憶装置や補助記憶装置はアドレスと呼ばれる記憶場所を示す識別子を使用して範囲指定することや、モジュール（装置の物理的分離単位）の識別子を使用して機器指定することができる。また、割り当てられる量（以下、割当量）を設定することができる。
【００３４】
領域分割の割当方法は、各要求元へ必要な情報のみを伝達することによって実現できる。例えば、装置単位の設定および記憶場所の範囲指定などに対しては、その装置・範囲に関する情報のみを伝達する。各要求元は、それ以外の情報を持たないため、通常、限られた範囲のみを操作することになる。また、領域分割の別の割当方法として、アクセス許可を制限することによって実現できる。例えば、装置単位の設定および記憶場所の範囲指定などに対しては、設定された装置・範囲に権利があるタスクからの要求が来たときのみアクセスを許可する。割当量に対しては、通常参照される頻度が最も低い資源から非活性化していくＬＲＵ（Least Recently Used）スケジューリングなどを用いて割り当てるが、アカウンティング技術などにより、指定量以上の割り当てを行うときに不許可にする。
【００３５】
領域分割の負荷評価方法として、同種の全計算機資源量に対する使用資源量、または、使用可能資源量の比率で表現する相対表現、並びに、実際に使用した、または使用可能な資源やアドレスで表現する絶対表現を使用することができる。
【００３６】
この時分割と領域分割を行う装置が計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）であり、そのスケジューラおよび割当器、または各タスクに対して設定するパラメータの集合が、ＲＰｉ（ｉ＝１〜ｂ）である。
【００３７】
資源負荷計測部１２０ｉ（ｉ＝１〜ｃ）は、１つ以上の計算機資源１００ｉ（ｉ∈[１〜ａ]）の負荷状況を計測する。資源負荷計測部１２０ｉは、計測する負荷として、前述の時分割または領域分割の負荷評価方法で表現された形で計測することができる。また、それ以外にも、スワッピングが生じた回数およびスワッピングしたデータ量などの操作に関する情報も計測することができる。１つの計算機資源１００ｉに対して、２つ以上の資源負荷計測部１２０が存在してもよい。このときに資源負荷計測部１２０ｉで計測される負荷をＬｉで表記することにする。
【００３８】
資源設定記憶部２１０は、ユーザ（管理者）から計算機資源群に対して設定されたパラメータと、各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に設定されているパラメータとを記憶する。
【００３９】
前者、すなわちユーザ（管理者）から計算機資源群に対して設定されたパラメータは、ユーザの意図が入っているパラメータである。このときの計算機資源群をユーザ視点計算機資源群ＵＣＲｉ（ｉ＝１〜ｇ）と呼ぶことにする。ｈ個のタスク群Ｔｊ（ｊ＝１〜ｈ）が存在するとき、タスク群Ｔｊに対するユーザ視点計算機資源群ＵＣＲｉに設定しているパラメータ集合をＵＣＲＰｉｙと表記する。また、どのユーザ視点計算機資源群ＵＣＲｉに対して注目するかなどの設定も行う。この注目度合いをＲＵＣＲｉとして表現する。タスクごとに注目度合いが異なる場合は、タスク群Ｔｊに対するユーザ視点計算機資源群ＵＣＲｉの注目度合いをＲＵＣＲｉｊとして表現する。
【００４０】
後者、すなわち各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に設定されているパラメータは、各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に対して、割当変更決定部２４０が決定した制御パラメータである。この制御パラメータは基準値として記憶され、微変更を与える際の基盤情報として用いられる。
【００４１】
割当誤差算出部２２０は、上記ユーザ視点計算機資源群のパラメータ集合ＵＣＲＰｉ（ｉ＝１〜ｇ）と各資源負荷計測部１２０ｉ（ｉ＝１〜ｃ）の計測結果から、計算機資源群の設定状況と利用状況とのずれを値として算出する。これを割当誤差（エラー）と呼ぶことにする。このとき、全資計算機資源を用いず、特定の計算機資源群および特定のタスクに対する特定の計算機資源群だけ、または、それらの組み合わせを用いてもよい。また、値の表現としてはベクトル方式でもよい。ここで、１つのスカラー値を取る割当誤差をＥＶと表記することとする。ベクトル値になる場合は、＜ＥＶ１，ＥＶ２，…，ＥＶｎ＞＝Ｅ＜Ｖ１，Ｖ２，…，Ｖｎ＞＝Ｅ＜Ｖｉ＞（ｉ＝１〜ｎ）と表記することとする。ＥＶｎは、特定の側面から計算された割当誤差をＥＶのことであり、前記のベクトルはｎ個の誤差視点が存在することを意味する。スラカラー値でも、１要素のベクトル値と捉えることができるので、後者の表現を一般的に用いる。また、ベクトル表現において、大小の決定方法を２つ定義づけることができる。第１は、ユーグリッド距離などを用いて、ベクトルの大きさで表現する方法である。第２は、ベクトルの特定の要素で大小を決定し、同じときに別の要素で比較する方法である。本実施形態では、特に記述がない限り、後者で説明する。また、ベクトル要素において、最左要素から重要度が高いものとする。
【００４２】
割当誤差ＥＶは、ＥＶ＝ｆ（ＵＣＲＰｉ，Ｌｉ）で表現することができる。ｆは、ユーザ視点計算機資源群のパラメータ集合ＵＣＲＰｉ（ｉ＝１〜ｇ）と資源負荷計測部１２０ｉ（ｉ＝１〜ｃ）で計測される負荷Ｌｉ（ｉ＝１〜ｃ）から、ずれを計算する関数式である。
【００４３】
微変更結果記憶部２３０は、資源設定記憶部２１０が記憶している各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に設定されているパラメータＲＰｉ（ｉ＝１〜ｂ’）から割当変更決定部２４０が微変更量調査をしたときのパラメータＲＰｉ’（ｉ＝１〜ｂ’）と割当誤差Ｅ＜Ｖｉ＞（ｉ＝１〜ｎ）を記憶する。また、割当変更決定部２４０が計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に設定されているパラメータの変更を指示するときに、記憶している割当誤差Ｅ＜Ｖｉ＞（ｉ＝１〜ｎ）を消去する。
【００４４】
割当変更決定部２４０は、各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）へのパラメータ集合を決定する。
【００４５】
割当変更決定部２４０は、資源設定記憶部２１０にユーザ（管理者）から計算機資源群に対して設定されたパラメータが登録されたとき、各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）の初期パラメータＲＰｉ（ｉ＝１〜ｂ）を決定し、初期設定する。
【００４６】
割当変更決定部２４０は、さらに、任意のタイミングで、現在設定されているパラメータＲＰｉ（ｉ＝１〜ｂ）を基に、１つ、または、任意個のパラメータを変更させたＲＰｉ’（ｉ＝１〜ｂ’）を作成し、変更させ、微変更調査を行う。パラメータの変更方法、タイミングについては後述する。変更させたパラメータＲＰｉ’（ｉ＝１〜ｂ’）を微変更結果記憶部２３０に伝達し、パラメータを微変更させたときの割当誤差Ｅ＜Ｖｉ＞（ｉ＝１〜ｎ）を記憶させる。
【００４７】
割当変更決定部２４０は、さらに、１回、数回、もしくは、全パターンの微変更調査を実行した後、微変更結果記憶部２３０が記憶している割当誤差Ｅ＜Ｖｉ＞（ｉ＝１〜ｎ）のうち、最小となるパラメータＲＰｉ’（ｉ＝１〜ｂ’）を選択し、修正パラメータとして設定する。各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に修正パラメータＲＰｉ’（ｉ＝１〜ｂ’）を設定するとともに、資源設定記憶部２１０に設定したパラメータを記憶させる。以後、微変更調査を実行する回数を指定回数と呼んで説明する。
【００４８】
ここで、パラメータの変更方法について説明する。
【００４９】
パラメータの変更方法としては、パラメータの微変更方法をあらかじめ定義する方法、ランダムに変更対象および微変更量を決定する方法、前回の微変更方法から傾向を分析し、学習しながら変更対象および微変更量を決定する方法などが挙げられる。
【００５０】
パラメータの微変更方法をあらかじめ定義する方法の一例をあげる。変更対象は、例えば、ＣＰＵ群、メモリ群、ＨＤＤ群といった資源が存在したときに、「１番目にＣＰＵ群のパラメータＲＰＣＰＵを変更し、２番目にメモリ群のパラメータＲＰｍｅｍを変更し、３番目にＨＤＤ群のパラメータＲＰＨＤＤを変更する。」といった定義をしておき、１回１回順番通りに変更していく方法である。また、ＣＰＵ群のパラメータＲＰＣＰＵに対して、タスクごとに変更していくといった範囲の指定で、より、細かくしていくことができる。さらに、注目度合いＲＵＣＲｉ、ＲＵＣＲｉｙから、パラメータ変更順序を飛ばすことができる。例えば、先の例で、注目がＣＰＵ使用状況であったときは、ＣＰＵの設定は通常正しいものと考えられる。この場合、ＣＰＵ群のパラメータＲＰＣＰＵの微変更を飛ばすことができる。微変更量としては、各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に対して、スケジューラなどのパラメータの最小値、もしくは、一定値を決めておくことができる。例えば、ＣＰＵスケジューリングが重み付け方式だった場合に、重みを１足す、もしくは、１引くといった方式である。また、これらは割当誤差の結果から加減の方向を一意に決めることができる。例えば、ＣＰＵが３０％使用したいタスクに対して、２５％しか使用できていないという割当誤差が計測された場合は、重みの価値を高める方向のみを行う。通常のスケジューラは、大抵、重みを増す、すなわち、重みを足す方向になる。
【００５１】
ランダムに変更対象、微変更量を決定する方法は、パラメータの微変更方法をあらかじめ定義する方法に対して、変更の対象および微変更量をランダムで決定する方法である。このとき、パラメータの微変更方法をあらかじめ定義する方法と同様に、注目度合いＲＵＣＲｉ、ＲＵＣＲｉｙから、パラメータ決定の対象外にしたり、割当誤差の結果から加減の方向を一意に決めたりすることが可能である。
【００５２】
前回の微変更方法から傾向を分析し、学習しながら変更対象、微変更量を決定する方法は、前記２手法にさらに付加処理を加えた形になる。１度目のパラメータの変更が正式に決定される前の変更調査は、前記２手法で決定する。そして、その後数回、もしくは、割当誤差の改善が一定値以内に入るまでは、同一の変更、もしくは、同一種の変更を行うという方式である。例えば、１度目で、メモリ群の微変更が一番効果があると判定できた場合は、しばらくは、メモリ群の微変更、すなわち、チューニングを行った方が効果が高い。そのため、メモリ群の微変更に注目するという方法である。このとき、変更量を変更させたり、学習的変更を行ったりすることができる。学習的変更とは、変更量に対する割当誤差の変化を計測し、次の変更量を計算、もしくは、経験的手法により求める方法のことを指す。
【００５３】
次にパラメータ変更のタイミングについて説明する。
【００５４】
パラメータ変更のタイミングは、微変更を開始するタイミングと、微変更調査間隔とに分割することができる。
【００５５】
微変更を開始するタイミングは、ユーザが設定したパラメータ集合、もしくは、微変更が決定したパラメータ集合に変更してからの時間である。これは、設定してから経微変更調査が行われると、システム不安定期が長く続くが、設定してから微変更調査までが長すぎると調停が全然行われず、効果がほとんど表れないという結果になる。通常、ユーザが設定したパラメータ集合に変更してからは、ユーザの意図を反映した設定動作を計測するため、ある程度長い時間間隔を取る。そして、微変更が決定したパラメータ集合に変更してからの時間間隔は、パラメータ変更が生じた場合には、調整の余地があるため短い時間間隔に、パラメータ変更が生じなかった場合には、調整の余地が乏しいため少し長い時間間隔にするとよい。
【００５６】
微変更調査間隔は、１つの微変更調査とその影響を計測する時間間隔である。短いとパラメータ微変化における効果の計測の相関が低くなるが、長いと１回のパラメータ変更を決定するための時間が長くなるため、適度の時間間隔で計測することが望ましい。
【００５７】
次に、図１及び図２から図４のフローチャートを参照して本実施形態の全体の動作について詳細に説明する。
【００５８】
図２のフローチャートは、本実施形態に係る計算機資源調停システムが起動したときにパラメータ調停処理を開始する基本的な動作を示している。
【００５９】
本実施形態の計算機資源調停システムが起動したとき、ユーザ設定処理により設定の初期化が行われる（図２ステップＡ１）。続いて、パラメータ微調整処理が繰り返し行われ、常に計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）のパラメータ集合ＲＰｉ（ｉ＝１〜ｂ）が微調整され、割当誤差を最小にするように動作する（図２ステップＡ２）。
【００６０】
次に図３のフローチャートを用いて、ユーザ設定処理による設定の初期化の動作について詳細に説明する。本動作によれば、システム起動時以外に、任意のタイミングでユーザが設定処理を行うことで設定の初期化ができ、パラメータ微調整処理のやり直しを行うことができる。ここで、やり直しと表現していることは、実際には処理が再起動するわけでなく、設定値が初期化されるため、再度、一から動作した結果と同一視できることを意味している。
【００６１】
ユーザは資源設定記憶部２１０へ、ユーザ視点計算機資源群ＵＣＲｉ（ｉ＝１〜ｇ）のパラメータ集合ＵＣＲＰｉｙ（ｉ＝１〜ｇ，ｊ＝１〜ｈ）とまたは、ＲＵＣＲｉｊを記憶する（図３スタート）。資源設定記憶部２１０は、割当変更決定部２４０へ、ユーザからの入力が生じたことと、設定されたパラメータ集合、および、度合いを通知する。割当変更決定部２４０は、通知されたパラメータ集合ＵＣＲＰｉｙ（ｉ＝１〜ｇ，ｊ＝１〜ｈ）と注目度合いＲＵＣＲｉ、または、ＲＵＣＲｉｊから、各計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）に与える初期設定パラメータ集合ＲＰｉ（ｉ＝１〜ｂ）を計算する（図３ステップＢ１）。計算で求められたパラメータ集合ＲＰｉ（ｉ＝１〜ｂ）は、対応する計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）へ通知され、設定される。また、資源設定記憶部２１０へ現在の設定として記憶させる（図３ステップＢ２）。これにより、各計算機資源１００ｉ（ｉ＝１〜ａ）は設定されたパラメータを基にスケジューリングおよび割り当てを行い、資源配分を行いながら動作する。割当変更決定部２４０は、微変更結果記憶部２３０に、記憶されている情報をクリアさせる。最後に、割当変更決定部２４０は、微変更結果記憶部２３０へ、設定したパラメータ集合ＲＰｉ（ｉ＝１〜ｂ）を伝達し、標準設定における割当誤差の登録を開始させる（図３ステップＢ３）。
【００６２】
以上の動作により、ユーザ設定処理による設定の初期化の動作が完了する。
【００６３】
次に、図４のフローチャートを用いて、パラメータ微調整処理の動作について詳細に説明する。
【００６４】
パラメータ微調整処理は、前記ユーザ設定処理直後から繰り返し実行される。微変更結果記憶部２３０は、ユーザ設定直後、割当変更決定部２４０から設定したパラメータ集合ＲＰｉ（ｉ＝１〜ｂ）を伝達されたときから、割当誤差算出部２２０で計算された割当誤差Ｅ＜Ｖｉ＞（ｉ＝１〜ｎ）をパラメータ集合ＲＰｉ（ｉ＝１〜ｂ）と組にして記憶する（図４ステップＣ１）。これは定期的に記憶動作が繰り返される（図４ステップＣ２のnoによる繰り返しに相当）。割当変更決定部２４０は、ユーザ設定からの時間経過を計測し、微変更開始のタイミングに達したと判断したとき、微調整処理を開始する（図４ステップＣ２のyes）。割当変更決定部２４０は、資源設定記憶部２１０から現在のパラメータ集合ＲＰｉ（ｉ＝１〜ｂ）を取得し、設定されている微変更処理に基づいて微変更したパラメータＲＰ’ｉ（ｉ＝１〜ｂ）を計算する（図４ステップＣ３）。割当変更決定部２４０は、パラメータ集合ＲＰ’ｉ（ｉ＝１〜ｂ）を対応する計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）へ通知し、設定する（図４ステップＣ４）。割当変更決定部２４０は、微変更結果記憶部２３０へパラメータ集合ＲＰ’ｉ（ｉ＝１〜ｂ）を伝達し、微変更状態における割当誤差の登録を開始させる。微変更結果記憶部２３０は、パラメータ集合ＲＰ’ｉ（ｉ＝１〜ｂ）を伝達されたときから、割当誤差算出部２２０で計算された割当誤差Ｅ’＜Ｖｉ＞（ｉ＝１〜ｎ）をパラメータ集合ＲＰ’ｉ（ｉ＝１〜ｂ）と組にして記憶する（図４ステップＣ５）。割当変更決定部２４０は、一定時間経過したら、パラメータ集合ＲＰ’ｉ（ｉ＝１〜ｂ）に対する調査の終了に入る。割当変更決定部２４０は、指定回数以上の微変更調査を行っていないと判断したとき、次の微変更パラメータ集合ＲＰ” ｉ（ｉ＝１〜ｂ）を決定し微変更調査に入る動作に移る（図４ステップＣ６のno）。指定回数以上の微変更調査を行ったら、最良の微変更に値するパラメータ集合ＢＲＰｉ（ｉ＝１〜ｂ）選定の処理に入る（図４ステップＣ６のyes）。割当変更決定部２４０は、大元のパラメータ集合ＲＰｉ（ｉ＝１〜ｂ）に対する割当誤差Ｅ＜Ｖｉ＞（ｉ＝１〜ｎ）（＝Ｅ0＜Ｖｉ＞（ｉ＝１〜ｎ）とする）と、微変更調査を行ったパラメータ集合ＲＰ（ｊ）ｉ（ｉ＝１〜ｂ）（ｊ＝１〜ｋ、（ｊ）はｊ個のパラメータ集合ＲＰ’を表していることとし、ｋは、指定回数がｋ回であったことを意味する。以下同様。）に対する割当誤差Ｅ（ｊ）＜Ｖｉ＞（ｉ＝１〜ｎ）（ｊ＝１〜ｋ、）のうち、最小となる割当誤差Ｅ（ｊ）＜Ｖｉ＞（ｉ＝１〜ｎ）（ｏ∈［０〜ｋ］）となるパラメータ集合ＲＰ（ｏ）ｉ（ｉ＝１〜ｂ）（ｏ∈［０〜ｋ］）を選択する（図４ステップＣ７）。割当変更決定部２４０は、選択したパラメータ集合ＲＰ（ｏ）ｉ（ｉ＝１〜ｂ）（ｏ∈［０〜ｋ］）を対応する計算機資源管理部１１０ｉ（ｉ＝１〜ｂ）へ通知し設定すると同時に、資源設定記憶部２１０へ現在の設定として記憶させる（図４ステップＣ８）
【００６５】
以上の動作により、パラメータ微調整処理による資源配分の調整の動作が完了する。このパラメータ微調整処理が繰り返されることにより、徐々に適したパラメータ集合が設定されることとなる。
【００６６】
次に、本実施形態の効果について説明する。
【００６７】
本実施形態では、実際に割り当てられたパラメータ集合から、特定の計算機資源管理部に対するパラメータを微変更させたときの実測を介して、割当誤差の最小化を図るように構成されているため、複数の計算機資源管理部が存在する計算機資源調停システムにおける、複数の計算機資源管理部のパラメータ最適化調整を行うことができる。ここで、最適とはユーザが定義した割当誤差が最小になることを意味する。
【００６８】
次に、具体的な実施例を用いて、本発明の実施形態の動作を説明する。
【００６９】
２つのタスク群Ｔ１、Ｔ２に対して、計算機資源を配分する例で説明する。タスク群Ｔ１は２基本サイクルでメモリユニット１つ分を、タスク群Ｔ２は１基本サイクルでメモリユニット１つ分を、ダーティ（dirty）にする。また、タスク群Ｔ１、Ｔ２は、割り当てられているメモリユニットがダーティになるごとにＩ／Ｏを発行して、メモリユニットをダーティ状態から開放する。２サイクル分Ｉ／Ｏが処理されたとき、ダーティ状態から解放されることとする。
ここで、ダーティ状態とは、メモリユニットに格納されるべきデータが該メモリユニットに書き込まれていない状態をいう。また、ダーティ状態から解放されるとは、メモリユニットに格納されるべきデータが該メモリユニットに書き込まれることをいう。また、メモリユニットが未使用である状態をフリー状態という。
【００７０】
各計算機資源群として、ＣＰＵ群、メモリ群、ＨＤＤ群が存在し、それぞれの負荷は、ＣＰＵ群使用率（Ｌｃｐｕ）、メモリ割り当てユニット数（Ｌｍｅｍ）、Ｉ／Ｏ命令処理発行数（ＬＩ／Ｏ）とする。割り当て手法に関しては、ＣＰＵ群、ＨＤＤ群は、割当基本サイクルで表現される。Ｔ１：Ｔ２＝１：１とは、Ｔ１、Ｔ２はそれぞれ１サイクル単位で割り当てることを意味する。メモリ群は割り当てユニット数に関して同様に表現される。すなわち、Ｔ１：Ｔ２＝２：２とは、ユニット数を各タスク群に２個ずつ割り当てることを意味する。また、他のタスク群が使用していない場合は、遊休資源群は別のタスク群に割り当てが可能であるとする。メモリ資源群は、４個のメモリユニットＭ１、Ｍ２、Ｍ３、Ｍ４が存在する。
【００７１】
さらに、再構成処理の際は、各計算機資源群のスケジューリングはクリアされるとともに、メモリユニットにおいて、ダーティの場合には、Ｉ／Ｏ処理により優先的に解放されるものとする。
【００７２】
ここで、図５にＣＰＵ群にＴ１：Ｔ２＝１：１、メモリ群にＴ１：Ｔ２＝２：２、ＨＤＤ群に１：１を割り当てたときの動作例を表現するメモリ状態の状態遷移図を示す。本例は、割当調停機能、すなわち、本実施形態が導入されていない場合である。縦軸は時間経過であり、基本サイクル番号が左に記載されている。図中の「Ｃ」はＣＰＵ資源が割り当てられていることを表しており、「Ｉ」はＨＤＤ資源が割り当てられ、Ｉ／Ｏが発行、処理されていることを表している。図中の斜め線マス(i)はタスク群によりメモリユニットがダーティにされている途中であること、灰色マス(ii)はタスク群によりメモリユニットが完全にダーティにされたこと、斜め格子マス(iii)はＩ／Ｏによりメモリユニットがダーティ状態から解放中であること、薄い灰色マス(iV)はＩ／Ｏによりメモリユニットがダーティ状態から解放中されたことをそれぞれ表現している。
【００７３】
最初に、タスク群Ｔ１、Ｔ２に対して、計算機資源群が割り当てられる。メモリユニットＭ１、Ｍ２がタスク群Ｔ１に、メモリユニットＭ３、Ｍ４がタスク群Ｔ２に割り当てられる。タスク群Ｔ１は１サイクル目でＣＰＵ資源が割り当てられ、メモリユニットＭ１をダーティ状態に変更し始める（サイクル１）。ＣＰＵスケジューラによりＣＰＵ資源の割り当てがタスク群Ｔ２に割り当てられる。そして、タスク群Ｔ２はメモリユニットＭ３をダーティ状態にする（サイクル２）。サイクル２終了時に、タスク群Ｔ２に割り当てられたメモリユニットＭ３がダーティ状態になったため、タスク群Ｔ２は、ＨＤＤ資源を使用してメモリユニットＭ３をクリーンにし始める。これにより、サイクル３では、タスク群Ｔ１がＣＰＵ資源を使用いてメモリユニットＭ1をダーティ状態にし続け、タスク群Ｔ２がＨＤＤ資源を使用してメモリユニットＭ３をクリーン化し始める。
【００７４】
サイクル８では、タスク群Ｔ２はメモリユニットＭ３がダーティ状態であり、かつ、メモリユニットＭ４はダーティ状態解放のためのＩ／Ｏ処理中であるため、ＣＰＵ資源を必要としない。そのため、ＣＰＵ資源は別のタスク群であるタスク群Ｔ１に割り当てられる。
【００７５】
サイクル１３では、上記の状態がタスク群Ｔ１、Ｔ２に対して発生するため、ＣＰＵ資源の利用が起きない。タスク群Ｔ２がスケジューリングの結果によりＨＤＤ資源を使用している。このことにより、タスク群Ｔ１は、メモリユニットがクリーンになってないうえに、ＨＤＤ資源を使用できないために待機状態となる。図５は、５０サイクル分繰り返した状態を表現している。この状態では、ＣＰＵ使用率は、Ｔ１：Ｔ２＝２６サイクル：１４サイクル＝６５％：３５％、ＨＤＤ使用率は、Ｔ１：Ｔ２＝２４サイクル：２４サイクル＝５０％：５０％となる。資源を均等に配分するように設定したが、ＣＰＵ使用率は均等になっていない。このことから、実際は、資源配分がタスク群の動作によって異なることが分かる。
【００７６】
次に、図６を参照いて、本発明の実施形態の動作を説明する。
【００７７】
ここで、ユーザ視点計算機資源群のパラメータ集合ＵＣＲＰｉ、注目度合いをＲＵＣＲｉとして、ＵＣＲＰＣＰＵをＴ１：Ｔ２＝５０％：５０％、ＲＵＣＲＣＰＵ＝１とする。そのほかは、デフォルトの設定として、割当変更決定部２４０に任せる。今回は、均等配分とするが、割り当て方法自体は自由に決めておくことができる。割当誤差ＥＶは、
【００７８】
【数１】
2010224772.tif 000003
【００７９】
とする。数１において、ＡＢＳ（）は、絶対値をとることを意味する。また、微変更開始タイミングおよび微変更調査タイミングは１０サイクルとする。微変更調査としては、メモリの変更（ＣＰＵ資源が活用できていないタスク群への融通）、Ｉ／Ｏの変更（ＣＰＵ資源が活用できていないタスク群への増加）のみとする。また、各資源負荷計測部１２０ＣＰＵ、１２０ＭＥＭ、１２０ＨＤＤも直前１０サイクルで負荷監視しているとする。微変更調査の指定回数は２回とする。
【００８０】
計算機資源調停システムが起動し、ユーザ設定処理が開始される（図２ステップＡ１）。ユーザは資源設定記憶部２１０へ、ユーザ視点計算機資源群のパラメータ集合ＵＣＲＰＣＰＵ、注目度合いＲＵＣＲＣＰＵ＝１を設定する（図３スタート）。資源設定記憶部２１０は、ユーザ視点計算機資源群パラメータ集合ＵＣＲＰＣＰＵ、注目度合いＲＵＣＲＣＰＵ＝１および設定初期化のメッセージを、割当変更決定部２４０へ通知する。割当変更決定部２４０は、ユーザ視点計算機資源群ＵＣＲＣＰＵ、注目度合いＲＵＣＲＣＰＵ＝１から、ＣＰＵ群にＴ１：Ｔ２＝１：１を計算し、その他の資源に対してデフォルトの割り当て方法（均等割り当て）により、メモリ群にＴ１：Ｔ２＝２：２、ＨＤＤ群にＴ１：Ｔ２＝１：１と割り当てることを決定する（図３ステップＢ１）。計算により求められたパラメータ集合ＲＰ＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝２：２、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝を各計算機資源管理部１１０ＣＰＵ、１１０ＭＥＭ、１１０ＨＤＤにそれぞれ、設定する。これにより、メモリ資源は、メモリユニットＭ１、Ｍ２がタスク群Ｔ１に、メモリユニットＭ３、Ｍ４がタスク群Ｔ２に割り当てられる。また、割当変更決定部２４０は、設定記憶部２１０へ現在の設定として、パラメータ集合ＲＰを記憶させる（図３ステップＢ２）。割当変更決定部２４０は、微変更結果記憶部２３０に、記憶されている情報をクリアさせた後、設定したパラメータ集合ＲＰを伝達し、標準設定における割当誤差の登録を開始させる（図３ステップＢ３）。
【００８１】
次に、計算機資源調停システムは、パラメータ微調整処理を行いながら、タスク群を実行する。最初は、図５の例と同様に、サイクル１０まで、タスクの実行が行われる。各資源負荷計測部１２０ＣＰＵ、１２０ＭＥＭ、１２０ＨＤＤは、それぞれの資源を監視している。資源負荷計測部１２０ＣＰＵは、Ｔ１：Ｔ２＝６サイクル：４サイクル＝６０％：４０％となる。資源負荷計測部１２０ＭＥＭは、Ｔ１：Ｔ２＝２ユニット：２ユニット＝５０％：５０％となる。資源負荷計測部１２０ＨＤＤは、Ｔ１：Ｔ２＝４サイクル：４サイクル＝５０％：５０％を抽出している。割当誤差算出部２２０は、これらの負荷計測から、ＥＶ＝ＡＢＳ（０．５−０．６）＋ＡＢＳ（０．５−０．４）＝０．２となる。微変更結果記憶部２３０は、割当変更決定部２４０から設定したパラメータ集合ＲＰを伝達されているので、＜ＲＰ，０．２＞の組として割当誤差を記憶する（図４ステップＣ１）。
【００８２】
割当変更決定部２４０は、ユーザ設定からの時間経過として１０サイクル経過したので、微変更開始のタイミングに達したと判断し、微調整処理を開始する（図４ステップＣ２のyes）。
【００８３】
割当変更決定部２４０は、資源設定記憶部２１０から現在のパラメータ集合ＲＰを取得し、設定されている微変更処理に基づいて微変更したパラメータＲＰ’を計算する。最初にメモリに対する微変更処理について計測するため、ＲＰから微変更したＲＰ’＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝１：３、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝を求める（図４ステップＣ３）。割当変更決定部２４０は、パラメータ集合ＲＰ’を対応する計算機資源管理部１１０ＣＰＵ、１１０ＭＥＭ、１１０ＨＤＤへそれぞれ通知し、設定する（図４ステップＣ４）。これにより、メモリユニットの割り当ての再構築が行われる。メモリユニットＭ２が融通されるが、メモリページがダーティでないため、解放処理は必要とせず、サイクル１１ではすぐに再構成された状態となる。次に、割当変更決定部２４０は、微変更結果記憶部２３０へパラメータ集合ＲＰ’を伝達し、微変更状態における割当誤差の登録を開始させる（図４ステップＣ５）。
【００８４】
サイクル１１から再構築された計算機環境下で、処理が継続される。この間、割当誤差算出部２２０は常に割当誤差ＥＶを計算しつつ、微変更結果記憶部２３０はパラメータ集合ＲＰ’と再構築された計算機環境の割当誤差として、＜ＲＰ’，ＥＶ＞の組を更新し続ける。サイクル２０が終了した時点では、資源負荷計測部１２０ＣＰＵは、Ｔ１：Ｔ２＝３サイクル：３サイクル＝５０％：５０％となる。資源負荷計測部１２０ＭＥＭは、Ｔ１：Ｔ２＝１ユニット：３ユニット＝２５％：７５％となる。資源負荷計測部１２０ＨＤＤは、Ｔ１：Ｔ２＝４サイクル：６サイクル＝４０％：６０％を抽出している。割当誤差算出部２２０は、これらの負荷計測から、ＥＶ＝ＡＢＳ（０．５−０．５）＋ＡＢＳ（０．５−０．５）＝０となる。微変更結果記憶部２３０は、＜ＲＰ’，０＞を記憶する。ここで、微変更調査開始から１０サイクル目であるので、メモリ資源の微変更調査に関する調査は終了する。しかし、ＨＤＤ資源に関する微変更調査がまだ終了していないので、次の微変更調査に入る（図４ステップＣ６のno）。
【００８５】
割当変更決定部２４０は、資源設定記憶部２１０から現在のパラメータ集合ＲＰを取得し、設定されている微変更処理に基づいて微変更したパラメータＲＰ”を計算する。メモリに対する微変更処理は終了しているので、ＨＤＤ資源に対する微変更処理となり、ＲＰから微変更したＲＰ”＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝２：２、ＨＤＤ群Ｔ１：Ｔ２＝１：２｝を求める（図４ステップＣ３）。再び、再構成によりメモリユニットＭ２が融通され、メモリの微変更のときと同様に調査が進み、サイクル３０で、資源負荷計測部１２０ＣＰＵがＴ１：Ｔ２＝５サイクル：３サイクル＝６２．５％：３７．５％、資源負荷計測部１２０ＭＥＭがＴ１：Ｔ２＝２ユニット：２ユニット＝５０％：５０％、資源負荷計測部１２０ＨＤＤは、Ｔ１：Ｔ２＝３サイクル：７サイクル＝３０％：７０％となる。これらの負荷から、ＥＶ＝ＡＢＳ（０．５−０．６２５）＋ＡＢＳ（０．５−０．３７５）＝０.２５となり、微変更結果記憶部２３０は、＜ＲＰ”，０.２５＞を記憶する。ここで、割当変更決定部２４０は、指定回数以上の調査が終了したため、最良な微変更の決定に入る（図４ステップＣ６のyes）。
【００８６】
割当変更決定部２４０は、＜ＲＰ，０．２＞、＜ＲＰ’，０＞、＜ＲＰ”，０.２５＞から、割当誤差が一番小さいＲＰ’を選択する（図４ステップＣ７）。割当変更決定部２４０は、選択したパラメータ集合ＲＰ’ を対応する計算機資源管理部１１０ＣＰＵ、１１０ＭＥＭ、１１０ＨＤＤへ通知し設定すると同時に、資源設定記憶部２１０へ現在の設定としてＲＰ’を記憶させる（図４ステップＣ８）。これにより、サイクル３１では、再構成のためのメモリユニットＭ２の融通処理を行うためのメモリ解放処理としてＩ／Ｏ処理が行われる。そして、サイクル３２では、１度目のパラメータ微調整処理が終了し、次のサイクルから、同様の動作が繰り返されることになる（図２ステップＡ２のサイクル）。
【００８７】
本図では、効果を示すために２度目以降のパラメータ微調整処理を行わず、サイクル５０まで繰り返した結果を図示している。３２サイクルからのＣＰＵの使用は、Ｔ１：Ｔ２＝６サイクル：６サイクル＝５０％：５０％となり、本発明の実施形態を実施することにより、ユーザの意図であるＣＰＵ動作時間が５０％ずつに近づいていることが分かる。
【００８８】
次に、複数の資源に対して割当誤差を用いる例と資源の使用率を向上させる例を図７および表１を参照して説明する。表１は、本発明の実施形態に係る動作の第２具体例である割当誤差を示す表である。
【００８９】
【表１】
2010224772.tif 000004
【００９０】
図７は、図６とほぼ同様の条件で微調整動作させた場合の例を示している。ただし、今回は、最初にＣＰＵの微調整としてパラメータ集合｛ＣＰＵ群Ｔ１：Ｔ２＝２：１、メモリ群Ｔ１：Ｔ２＝２：２、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝の動作（ＣＰＵを多く使いそうなタスク群への付与）を行っている。
【００９１】
この結果、デフォルトの設定ＲＰ＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝２：２、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝の結果（サイクル１〜１０）が、ＬＣＰＵ＝Ｔ１：Ｔ２＝６サイクル：４サイクル＝６０％：４０％、ＬＭＥＭ＝Ｔ１：Ｔ２＝２ユニット：２ユニット＝５０％：５０％、ＬＨＤＤ＝Ｔ１：Ｔ２＝４サイクル：４サイクル＝５０％：５０％となる。
【００９２】
同様に、ＣＰＵ資源微調整設定ＲＰＣＰＵ＝｛ＣＰＵ群Ｔ１：Ｔ２＝２：１、メモリ群Ｔ１：Ｔ２＝２：２、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝の結果（サイクル１１〜２０）が、ＬＣＰＵＣＰＵ＝Ｔ１：Ｔ２＝６サイクル：２サイクル＝７５％：２５％、ＬＣＰＵＭＥＭ＝Ｔ１：Ｔ２＝２ユニット：２ユニット＝５０％：５０％、ＬＣＰＵＨＤＤ＝Ｔ１：Ｔ２＝４サイクル：６サイクル＝４０％：６０％となる。
【００９３】
同様に、メモリ資源微調整設定ＲＰＭＥＭ＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝１：３、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝の結果（サイクル２３〜３２）が、ＬＭＥＭＣＰＵ＝Ｔ１：Ｔ２＝３サイクル：４サイクル≒４２．９％：５７．１％、ＬＭＥＭＭＥＭ＝Ｔ１：Ｔ２＝１ユニット：３ユニット＝２５％：７５％、ＬＭＥＭＨＤＤ＝Ｔ１：Ｔ２＝４サイクル：６サイクル＝４０％：６０％となる。
【００９４】
最後に、ＨＤＤ資源微調整設定ＲＰＨＤＤ＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝２：２、ＨＤＤ群Ｔ１：Ｔ２＝１：２｝の結果（サイクル３５〜４４）が、ＬＨＤＤＣＰＵ＝Ｔ１：Ｔ２＝５サイクル：４サイクル≒５５．６％：４４．４％、ＬＨＤＤＭＥＭ＝Ｔ１：Ｔ２＝２ユニット：２ユニット＝５０％：５０％、ＬＨＤＤＨＤＤ＝Ｔ１：Ｔ２＝３サイクル：７サイクル＝３０％：７０％となる。
【００９５】
これらについて、ユーザ視点計算機資源群のパラメータ集合ＵＣＲＰｉｙ（ｉ＝１〜ｇ，ｊ＝１〜ｈ）と注目度合いＲＵＣＲｉｊ、割当誤差関数ＥＶ＝ｆ（ＵＣＲｉ，Ｌｉ）を決定することで、上記の２例を実現できる。
【００９６】
複数の資源に対して割当誤差を用いる例を、最初に説明する。例えば、下記の数２
【００９７】
【数２】
2010224772.tif 000005
【００９８】
で、割当誤差を決定することで実現できる。タスク群Ｔ１はオフィスワークを想定してＣＰＵ性能を重視し、７０％の利用率を保ちたい、タスク群Ｔ２はバックアップを想定してＨＤＤ性能を重視し、８０％の利用率を保ちたいとする。このとき、ＵＣＲＰＣＰＵ１＝７０％、ＲＵＣＲＣＰＵ１＝１、ＵＣＲＰＨＤＤ２＝８０％、ＲＵＣＲＣＰＵ２＝１として、それ以外のパラメータを０とすることで表現できる。すなわち、この例の割当誤差Ｅ１は、Ｅ１＝ＡＢＳ（０．７−ＬＣＰＵ１）−ＡＢＳ（０．８−ＬＨＤＤ２）となる。この評価結果を表１に示す。誤差が一番少ないのは、ＨＤＤ資源の配分を変更したパラメータ集合ＲＰＨＤＤであることが分かる。これに従い、パラメータ集合ＲＰＨＤＤで設定を変更すればよいことが判定できる。
【００９９】
また、先の例で、ＣＰＵ性能を特に重視する場合は、下記の数３のように、
【０１００】
【数３】
2010224772.tif 000006
【０１０１】
式を変形すればよい。すなわち、割当誤差Ｅ２は、Ｅ２＝Ｅ＜Ｖｉ＞（ｉ＝ＣＰＵ，ＭＥＭ、ＨＤＤ）＝、＜ＥＶＣＰＵ，ＥＶＭＥＭ，ＥＶＨＤＤ＞、ただし、ＥＶＣＰＵ＝（０．７−ＬＣＰＵ１）、ＥＶＭＥＭ＝０、ＥＶＨＤＤ＝ＡＢＳ（０．８−ＬＨＤＤ２）となる。この結果も表１に示す。誤差が一番少ないのは、ＣＰＵ資源の配分を変更したパラメータ集合ＲＰＣＰＵであることが分かる。これに従い、パラメータ集合ＲＰＣＰＵで設定を変更すればよいことが判定できる。同様に、Ｉ／Ｏを重視する場合は、ＥＶＨＤＤを最初に表現する形式、すなわち、今回は、ベクトルの最初に移動させればよい。
【０１０２】
次に、資源の使用率を向上させる例を説明する。これは、割当誤差として資源未使用率を計算する関数で表現すればよい。例えば、下記の数４
【０１０３】
【数４】
2010224772.tif 000007
【０１０４】
で割当誤差を決定することで実現できる。例えば、先の例で、ＣＰＵ使用率、ＨＤＤ使用率で求める場合は、ＲＵＣＲＣＰＵ＝１、ＲＵＣＲＨＤＤ＝１とし、このときの割当誤差Ｅ３は、Ｅ３＝（１−ＬＣＰＵ１−ＬＣＰＵ２）＋（１−ＬＨＤＤ１−ＬＨＤＤ２）となる。この結果も表１に示す。誤差が一番少ないのは、ＨＤＤ資源の配分を変更したパラメータ集合ＲＰＨＤＤであることが分かる。これに従い、パラメータ集合ＲＰＨＤＤで設定を変更すればよいことが判定できる。
【０１０５】
次に、割当資源を縮小することで、遊休資源の確保する例を図８および表２を参照して説明する。表２は、本発明の実施形態に係る動作の第３具体例である割当誤差を示す表である。
【０１０６】
【表２】
2010224772.tif 000008
【０１０７】
図８に、今までと同様の微変更調査を行った実施例を示す。ここで、微変更資源対象としてメモリのみとし、資源を削除するように調査をすることとする。具体的には、最初の微変更調査は、タスク群Ｔ１対して１メモリユニットを削除する、次の微変更調査はタスク群Ｔ２に対して１メモリユニットを削除することとする。すななち、この図の例では、最初の設定であるパラメータ集合ＲＰ＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝２：２、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝、最初の微変更調査を行うパラメータ集合ＲＰＭＥＭＴ１＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝１：２、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝、次の微変更調査を行うパラメータ集合ＲＰＭＥＭＴ２＝｛ＣＰＵ群Ｔ１：Ｔ２＝１：１、メモリ群Ｔ１：Ｔ２＝２：１、ＨＤＤ群Ｔ１：Ｔ２＝１：１｝で動作させている。
【０１０８】
このとき、割当資源を縮小することで、遊休資源の確保する割当誤差の例として、前述の保証したいユーザ視点計算機資源群のパラメータ集合ＵＣＲＰｉｙとそれに対する誤差に加え、計算機資源の絶対的な使用量を用いた誤差関数を加えればよい。
【０１０９】
例えば、Ｉ／Ｏの比率を保証しながら、メモリ資源を最小に抑えるためには、誤差関数として、ＥＶ＝＜Ｅ１，Ｅ２＞とする。ここで、
【０１１０】
【数５】
2010224772.tif 000009
【０１１１】
とする。ＬＭＥＭｉは、前述までのように比率でなく、割り当てメモリユニット数とする。これにより、割当資源を縮小する割当誤差を実現できる。
【０１１２】
図８の各調査に対する資源理療状況と割当誤差を表２に示す。デフォルトのパラメータ集合ＲＰとタスク群Ｔ２を縮小させる微変更調査を行うパラメータ集合ＲＰＭＥＭＴ２では最初のＥ１において０で等しいが、次のＥ２においてパラメータ集合ＲＰＭＥＭＴ２の方が小さいため、パラメータ集合ＲＰＭＥＭＴ２を選択することとなる。これにより、メモリユニットＭ３は使用状態から解放され、遊休資源として保有されることになる。
【０１１３】
遊休資源を確保する割当誤差の効果として、資源割り当ての再構成処理や新たな論理区画作成のときの速度向上につながる。これは、遊休資源をすぐに割り当てることができるためである。また、遊休資源がないと割り当てられないような計算機資源調停システムでは、より多くの論理区画の割り当てが可能になることにつながる。
【０１１４】
また、遊休資源を作成するさらなる効果は、資源無使用による省電力化である。資源は一般的に使用状態より待機状態、無使用状態の方が消費電力は少ない。また、遊休時に電源をオフにすることが可能であれば、その効果は一層得ることが可能である。
【産業上の利用可能性】
【０１１５】
本発明は、ＶＭ技術、パーティショニング技術、コンテナ技術を用いたデータセンタ、ホスティング、クラウドコンピューティング基盤の自動運営といった用途に適用できる。また、本発明は、携帯端末のアプリケーション分離における資源活用の最適化といった用途にも適用である。また、本発明は、個人ＰＣにおけるＱｏＥ向上機構としても適用可能である。
【０１１６】
なお、上述した本発明の各実施形態に係る計算機資源調停システムの動作および処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されていることとしてもよい。このプログラムをコンピュータが読み出して実行することによって、上記処理が行われることとしてもよい。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【符号の説明】
【０１１７】
２１０  資源設定記憶部
２２０  割当誤差算出部
２３０  微変更結果記憶部
２４０  割当変更決定部
【図１】
2010224772.tif 000010
【図２】
2010224772.tif 000011
【図３】
2010224772.tif 000012
【図４】
2010224772.tif 000013
【図５】
2010224772.tif 000014
【図６】
2010224772.tif 000015
【図７】
2010224772.tif 000016
【図８】
2010224772.tif 000017