(57)【要約】【課題】アプリケーションプログラムの処理性能の低下を抑制できる情報処理装置、プログラムおよび記憶領域獲得方法を提供する。【解決手段】判定部８１は、サイズが指定されてＯＳ６０が使用するデータを格納する記憶領域の獲得が要求された場合、各ビルディングブロックに備えられたメモリ２１をグルーピングした各グループのメモリ２１に、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。獲得部８２は、アプリケーションプログラム用の空きがあると判定されたグループのメモリ２１から記憶領域を獲得する。【選択図】図５
2014178889.tif 000002
【特許請求の範囲】
【請求項１】
各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置であって、
サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する判定部と、
前記判定部により記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する獲得部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記各ノードに備えられたメモリは、前記各ノードのプロセッサに対してそれぞれアクセスレイテンシーの最も低いメモリがそれぞれ別のグループとしてグループ分けされている
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定部は、記憶領域を確保できるグループのメモリが無い場合、アプリケーションプログラム用に確保する記憶領域のサイズを減らして判定を再度行う
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記判定部は、オペレーシングシステムの起動において、記憶領域の獲得が要求される毎に、記憶領域を確保できるか否かを判定し、
前記獲得部は、前記判定部によりアプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行った結果、記憶領域を確保できると判定されたグループのメモリが無い場合、記憶領域の獲得を中止し、オペレーシングシステムの起動を停止させる
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記判定部は、プロセッサを含まないグループについてはアプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行う
ことを特徴とする請求項１〜４の何れか１つに記載の情報処理装置。
【請求項６】
各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置に、
サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定し、
判定の結果、記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する
処理を実行させるプログラム。
【請求項７】
各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置における記憶領域獲得方法であって、
サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定し、
判定の結果、記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する
処理を前記プロセッサのいずれかにより実行することを特徴とする記憶領域獲得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラムおよび記憶領域獲得方法に関する。
【背景技術】
【０００２】
プロセッサとメモリなどを備えたノードを複数接続して大規模なコンピュータシステムが構成される。例えば、複数のノードを接続し、各ノードのプロセッサが各ノードのメモリを共有するＮＵＭＡ（Non  Uniform  Memory  Access）アーキテクチャが知られている。
【０００３】
ＮＵＭＡアーキテクチャを採用したＮＵＭＡ型のコンピュータシステムは、プロセッサとメモリの位置に応じてメモリへのアクセス性能が異なる。ＮＵＭＡ型のコンピュータシステムは、プロセッサから近いメモリには最も低いレイテンシーでアクセスし、プロセッサから遠いメモリには比較的高いレイテンシーでアクセスする。このようなＮＵＭＡ型のコンピュータシステムのＯＳ（Operating  System）では、なるべくアプリケーションプログラムが動作するプロセッサに近いメモリに、アプリケーションプログラムが使用するデータを配置することが望ましい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１４０２２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、アプリケーションプログラムが動作するプロセッサに近いメモリに、アプリケーションプログラムが使用するデータを配置できない場合がある。例えば、アプリケーションプログラムが動作するプロセッサに近いメモリに、ＯＳやＯＳが使用する各種のデータなどが記憶されて記憶領域に空きがなくなり、アプリケーションプログラムが使用するデータを配置できない場合がある。例えば、ＮＵＭＡ型のコンピュータシステムでは、各ノードのプロセッサが、共有する全てのメモリにアクセスできる。このため、ＮＵＭＡ型のコンピュータシステムでは、メモリ空間のサイズが大きくなり、例えば、ページテーブルなどのＯＳが使用する管理用のデータのサイズも大きくなる。ＮＵＭＡ型のコンピュータシステムでは、この管理用のデータが特定のメモリの記憶領域に記憶されて空き領域がなくなり、アプリケーションプログラムが使用するデータを配置できない場合がある。この場合は、アプリケーションプログラムが動作するプロセッサから遠いメモリに、アプリケーションプログラムが使用するデータを配置することになり、アプリケーションプログラムの処理性能が低下してしまう。
【０００６】
本発明は、１つの側面では、アプリケーションプログラムの処理性能の低下を抑制できる情報処理装置、プログラムおよび記憶領域獲得方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの側面では、情報処理装置は、各々プロセッサとメモリとを備えたノードが接続され、各ノードのプロセッサが各ノードのメモリを共有する情報処理装置であって、判定部と、獲得部とを有する。判定部は、サイズが指定されてオペレーシングシステムが使用するデータを格納する記憶領域の獲得が要求された場合、次の判定を行う。すなわち、判定部は、各ノードに備えられたメモリをグルーピングした各グループのメモリに、指定されたサイズとアプリケーションプログラム用に確保する所定のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。獲得部は、判定部により記憶領域を確保できると判定されたグループのメモリから記憶領域を獲得する。
【発明の効果】
【０００８】
１実施形態によれば、アプリケーションプログラムの処理性能の低下を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、情報処理装置の全体構成を示す図である。
【図２】図２は、ビルディングブロックの機能構成の一例を示す図である。
【図３】図３は、ＣＰＵＣｈｉｐの構成の一例を概略的に示した図である。
【図４】図４は、サイズ情報のデータ構成の一例を示す図である。
【図５】図５は、情報処理装置におけるハードウェアとソフトウェアとの関係を説明するための図である。
【図６】図６は、情報処理装置におけるアクセスレイテンシーを説明するための図である。
【図７】図７は、ハイパーバイザから取得される構成情報の一例を示す図である。
【図８】図８は、グループの各メモリの記憶領域の使用状況の一例を示す図である。
【図９】図９は、ＯＳの起動の流れの一例を概略的に示した図である。
【図１０】図１０は、記憶領域獲得処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる情報処理装置、プログラムおよび記憶領域獲得方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
実施例１に係る情報処理装置１０について説明する。図１は、情報処理装置の全体構成を示す図である。情報処理装置１０は、複数のビルディングブロック１１と、サービスプロセッサ（ＳＰ）１２とを有する。このビルディングブロック１１は、「システムボード」、「ノード」とも称される。本実施例に係る情報処理装置１０は、ＮＵＭＡアーキテクチャを採用している。複数のビルディングブロック１１と、サービスプロセッサ１２は、後述のグローバルクロスバースイッチやＬＡＮ（Local  Area  Network）などにより接続され、互いにアクセスが可能とされている。図１の例では、簡略化するため、３個のビルディングブロック１１（１１ａ、１１ｂ、１１ｃ）を接続した場合を示したが、ビルディングブロック１１の個数はこれに限定されるものではない。ビルディングブロック１１は、コンピュータシステムの規模に応じて変更可能であり、例えば、１６個や３２個接続される。
【００１２】
各ビルディングブロック１１は、それぞれ独立してＯＳを動作させることが可能なハードウェアを有する。各ビルディングブロック１１は、複数のＣＰＵＣｈｉｐ２０と、複数のメモリ２１と、ディスクユニット２２と、通信Ｉ／Ｆ（インタフェース）２３と、不揮発性メモリ２４とをそれぞれ有し、略同様のハードウェア構成とされている。図１の例では、簡略化するため、ビルディングブロック１１がＣＰＵＣｈｉｐ２０とメモリ２１をそれぞれ２個ずつ有する場合を示したが、ＣＰＵＣｈｉｐ２０とメモリ２１の個数は、これに限定されるものではない。
【００１３】
ここで、図２を用いて、ビルディングブロック１１の構成について説明する。図２は、ビルディングブロックの機能構成の一例を示す図である。図２に示す例では、ビルディングブロック１１は、複数のＣＰＵＣｈｉｐ２０と、複数のメモリ２１と、ローカルＸＢ（クロスバー）３０と、ＰＣＩｅ（Peripheral  Component  Interconnect  Express）スイッチ３１とを有する。また、ビルディングブロック１１は、ＬＡＮと接続するための通信Ｉ／Ｆ２３と、ＳＡＳ（Serial  Attached  SCSI）３２と、ディスクユニット２２と、不揮発性メモリ２４とを有する。
【００１４】
ＣＰＵＣｈｉｐ２０は、互いに接続されている。なお、図２の例では、ＣＰＵＣｈｉｐ２０が２つの場合を示しているが、例えば、ＣＰＵＣｈｉｐ２０が４個の場合、それぞれのＣＰＵＣｈｉｐ２０が他のＣＰＵＣｈｉｐ２０とそれぞれ相互に直接接続される。なお、図２ではそれぞれのＣＰＵＣｈｉｐ２０が直接接続される例となっているが、例えばローカルＸＢ３０を介してＣＰＵＣｈｉｐ２０どうしが接続される構成であってもよい。
【００１５】
ＣＰＵＣｈｉｐ２０は、それぞれ個別にメモリ２１と接続されている。なお、図２の例では、ＣＰＵＣｈｉｐ２０は、それぞれ１つのメモリ２１と接続されているものとしたが、それぞれ複数のメモリと接続されてもよい。また、各ＣＰＵＣｈｉｐ２０は、バスを介して不揮発性メモリ２４と接続されている。また、各ＣＰＵＣｈｉｐ２０は、ローカルＸＢ３０と接続されている。このローカルＸＢ３０は、グローバルクロスバースイッチ３３と接続されている。また、各ＣＰＵＣｈｉｐ２０は、ＰＣＩｅスイッチ３１と接続されている。ＰＣＩｅスイッチ３１は、通信Ｉ／Ｆ２３と接続されている。また、ＰＣＩｅスイッチ３１は、ＳＡＳ３２を介してディスクユニット２２と接続されている。
【００１６】
例えば、図２に示す例では、ＣＰＵＣｈｉｐ２０は、演算処理を実行する演算処理装置（プロセッサ）である。ＣＰＵＣｈｉｐ２０は、複数のＣＰＵコアを有しており各ＣＰＵコアがＣＰＵ４０として機能する。図２の例では、ＣＰＵＣｈｉｐ２０は、それぞれ４つのＣＰＵ４０を有する。なお、図２の例では、簡略化するため、ＣＰＵＣｈｉｐ２０が４つのＣＰＵ４０を有する場合を示したが、ＣＰＵ４０の個数はこれに限定されるものではない。また、ＣＰＵＣｈｉｐ２０の各ＣＰＵコアにおいて複数のスレッドを動作させ、それぞれのスレッドがＣＰＵとして機能する場合は、各スレッドがＣＰＵ４０に対応する。
【００１７】
図３は、ＣＰＵＣｈｉｐの構成の一例を概略的に示した図である。ＣＰＵＣｈｉｐ２０は、４つのＣＰＵコア４１を有している。図３の例では、各ＣＰＵコア４１に、ハードウェア的にそれぞれ演算処理を実行可能な２つのスレッド４２が設けられている。このスレッド４２は、「ストランド」とも称される。このスレッド４２がそれぞれＣＰＵとして機能する場合、各スレッド４２がＣＰＵ４０に対応する。
【００１８】
図２に戻り、各ＣＰＵ４０は、ローカルＸＢ３０、グローバルクロスバースイッチ３３を介して他のビルディングブロック１１のＣＰＵ４０とインターコネクトで接続され、各メモリ２１や、他のビルディングブロック１１のメモリ２１を共有メモリとして利用する。例えば、各ＣＰＵ４０は、物理アドレスと、物理アドレスが割り振られたメモリと接続されたＣＰＵの識別子であるＣＰＵＩＤ（identification）とを対応付けたノードマップを有する。ＣＰＵ４０は、アクセス対象の物理アドレスのＣＰＵＩＤが異なるビルディングブロック１１のＣＰＵ４０を示す場合、ローカルＸＢ３０、グローバルクロスバースイッチ３３を介して他のビルディングブロック１１にメモリアクセスのリクエストを送信する。また、ＣＰＵ４０は、アクセス対象の物理アドレスに対応するＣＰＵＩＤが自身のビルディングブロック１１の他のＣＰＵ４０を示す場合、ＣＰＵ間の直接接続を介して、メモリアクセスのリクエストを送信する。すなわち、ＣＰＵ４０は、アクセス対象の物理アドレスに対応するＣＰＵＩＤが自身以外のＣＰＵ４０であって、自身と同じビルディングブロック１１に存在するＣＰＵを示す場合、ＣＰＵ間の直接接続を介して、メモリアクセスのリクエストを送信する。
【００１９】
また、ＣＰＵ４０は、自身と接続されたメモリ２１に対するリクエストを他のビルディングブロック１１から受信した場合、リクエストの対象となるデータを自身と接続されたメモリ２１から読出し、リクエスト元へ送信する。
【００２０】
メモリ２１は、ＯＳやアプリケーションが利用するデータを記憶するメモリであり、例えば、ＤＩＭＭ（Dual  In-Line  Memory  Module）である。各ビルディングブロック１１が有するメモリ２１は、同一の物理アドレス空間にマッピングされる物理アドレスを振分けられ、ＣＰＵ４０から共用して使用される。すなわち、情報処理装置１０が有する全てのメモリには、重複しない値の物理アドレスが割当てられている。なお、メモリ２１は、記憶領域の一部を、情報処理装置１０が有する全てのＣＰＵ４０で共用する共有領域としてもよい。
【００２１】
ローカルＸＢ３０は、他のビルディングブロック１１が有するＣＰＵ４０との間を送受信するパケットを転送するためのスイッチである。グローバルクロスバースイッチ３３は、各ビルディングブロック１１間でパケットを転送するためのスイッチである。グローバルクロスバースイッチ３３は、各ビルディングブロック１１間でやり取りされるデータの経路を動的に選択するとともに、データを転送する。ローカルＸＢ３０は、ＣＰＵ４０が、他のビルディングブロック１１のＣＰＵ４０を宛先として発行したパケットを、グローバルクロスバースイッチ３３を介して、宛先のビルディングブロック１１のＣＰＵ４０に送信する。
【００２２】
ＰＣＩｅスイッチ３１は、各ＣＰＵＣｈｉｐ２０からＰＣＩｅスロットを介して接続されるＩ／Ｏ装置等へのアクセスを制御するスイッチである。通信Ｉ／Ｆ２３は、ＬＡＮとビルディングブロック１１とを接続するＬＡＮアダプタである。ＳＡＳ３２は、ＰＣＩｅスロットに搭載されたＬＡＮやＳＡＳ用のアダプタであり、ディスクユニット２２と各ＣＰＵ４０との接続を中継する。なお、本実施例では、ビルディングブロック１１は、ディスクユニット２２を有するものとしているが、実施例はこれに限定されるものではなく、ＳＡＮ（Storage  Area  Network）等の技術を適用し、ビルディングブロック１１の外部に設置してもよい。
【００２３】
ディスクユニット２２は、ＨＤＤ（Hard  Disk  Drive）を内蔵し、各種の情報を記憶するデバイスである。本実施例では、ディスクユニット２２は、それぞれ２つのＨＤＤ２５を有する場合を示しているが、ＨＤＤ２５の個数は、これに限定されるものではない。ディスクユニット２２は、ＯＳや、ハイパーバイザ、ファームウェアなど各種プログラムを記憶する。
【００２４】
不揮発性メモリ２４は、情報処理装置１０を起動させる際に参照されるメモリである。不揮発性メモリ２４には、ＯＳの起動を制御する起動制御プログラムが記憶されている。この起動制御プログラムとしては、例えば、ＯＢＰ（Open  Boot  PROM）が挙げられる。例えば、ＯＢＰは、外部記憶装置またはネットワークからＯＳを起動、構成する機能を有する。
【００２５】
また、不揮発性メモリ２４は、起動の際の記憶領域の獲得の制御に用いる各種データを記憶する。例えば、不揮発性メモリ２４は、アプリ用サイズ情報５０と、設定情報５１とを記憶する。
【００２６】
アプリ用サイズ情報５０は、アプリケーションプログラム用に確保する記憶領域のサイズを記憶したデータである。図４は、アプリ用サイズ情報のデータ構成の一例を示す図である。図４に示すように、アプリ用サイズ情報５０は、「グループ」、「アプリ用に残すメモリサイズ」の各項目を有する。グループの項目は、メモリをグルーピングしたグループ番号を記憶する領域である。アプリ用に残すメモリサイズの項目は、グループ番号のグループのメモリにアプリケーションプログラム用として確保する記憶領域のサイズを記憶する領域である。本実施例では、アプリケーションプログラム用の記憶領域を確保できるグループのメモリが無い場合、アプリケーションプログラム用の記憶領域のサイズを減らして３回判定を行う。アプリ用に残すメモリサイズの項目は、３回の判定に用いるアプリケーションプログラム用の記憶領域のサイズをそれぞれ記憶するため、「１回目」、「２回目」、「３回目」と分かれている。図４の例では、グループ「１」のメモリは、アプリケーションプログラム用に確保する記憶領域のサイズが１回目、３２ＧＢであり、２回目、１６ＧＢであり、３回目、０ＧＢであることを示している。
【００２７】
設定情報５１は、ＣＰＵ４０を含まないグループについて、アプリケーションプログラム用に記憶領域を確保するか否かに関する設定を記憶したデータである。
【００２８】
ここで、ＣＰＵ４０が存在しないグループは、アプリケーションプログラムが動作するＣＰＵ４０も無く、処理性能の低下を抑制するためにアプリケーションプログラム用に記憶領域を確保しなくてもよい。しかし、情報処理装置１０は、論理ドメインが変更されたり、あるいは、ＤＲ（Dynamic  Reconfiguration）の機能を使用して、ＣＰＵ４０を含まないグループに動的にＣＰＵ４０を追加される可能性がある。情報処理装置１０は、ＣＰＵ４０が存在しないグループでも、当該グループに動的にＣＰＵ４０を追加される場合、アプリケーションプログラム用に記憶領域を確保しておくことが好ましい。そこで、情報処理装置１０は、ＣＰＵ４０を含まないグループについて、アプリケーションプログラム用に記憶領域を確保するか否かを設定情報５１に設定できるようにしている。これにより、システムの管理者は、システムの運用によってアプリケーションプログラム用に記憶領域を確保するかを変更できる。例えば、ＣＰＵ４０が存在しないグループについてもアプリケーションプログラム用に記憶領域を確保する場合、管理者は、アプリ用サイズ情報５０のＣＰＵ４０が存在しないグループについても確保する記憶領域のサイズを設定する。また、管理者は、設定情報５１にアプリケーションプログラム用に記憶領域を確保する設定を行う。これにより、情報処理装置１０は、ＣＰＵ４０が存在しないグループについてもアプリケーションプログラム用に記憶領域を確保することができる。また、ＣＰＵ４０が存在しないグループにＣＰＵ４０を追加されない場合、管理者は、設定情報５１に記憶領域を確保しない設定とすることにより、ＣＰＵ４０が存在しないグループにアプリケーションプログラム用に記憶領域が確保されることを防止できる。
【００２９】
図１に戻り、サービスプロセッサ１２は、ＣＰＵ７０と、メモリ７１と、通信Ｉ／Ｆ７２とを有し、情報処理装置１０全体の管理制御を行う。例えば、サービスプロセッサ１２は、各ビルディングブロック１１の電源管理、リセット、動作モードの変更、ノードの追加や削除の設定、エラーログの収集等を行う。
【００３０】
実施例１に係る情報処理装置１０は、リソースを論理グループに分けて論理ドメインを設定することが可能とされている。例えば、図１の例では、ビルディングブロック１１ａと、ビルディングブロック１１ｂの「ＣＰＵＣｈｉｐ２」、「メモリ２」、「メモリ３」および「ディスクユニット」とにより論理ドメイン０が設定されている。各ビルディングブロック１１では、メモリ２１に各種のプログラムがロードされて動作する。例えば、各ビルディングブロック１１では、メモリ２１にハイパーバイザがロードされて動作する。ハイパーバイザは、論理ドメインを仮想化マシンとして動作させ、仮想化マシン毎にＯＳを動作させる。図１の例では、論理ドメイン０で１つのＯＳが動作する。ＯＳは、マルチプロセッサ構成に対応しており、論理ドメイン内の何れのＣＰＵ４０でも動作する。このように論理ドメインが設定された場合は、論理ドメイン内の各メモリ２１に対して同一の物理アドレス空間にマッピングされる物理アドレスを振分けられ、論理ドメイン内のＣＰＵ４０から共用して使用が可能とされる。
【００３１】
次に、図５を用いて、情報処理装置１０におけるハードウェアとソフトウェアとの関係について説明する。図５は、情報処理装置におけるハードウェアとソフトウェアとの関係を説明するための図である。なお、図５に示す例では、情報処理装置１０のハードウェアが論理ドメイン０〜論理ドメイン３に分けられているものとしている。また、図５の例では、各論理ドメインのハードウェアを簡略化して示しており、論理ドメイン０〜論理ドメイン３のハードウェアとしてそれぞれ４つのＣＰＵ４０とメモリ２１とディスクユニット２２のみを図示している。また、図５に示す例では、ソフトウェアとして、ハイパーバイザ６１と、ＯＳ６０とが示されている。
【００３２】
ハイパーバイザ６１は、論理ドメイン０〜論理ドメイン３をそれぞれ仮想化マシンとして動作させる。ＯＳ６０は、ハイパーバイザ６１を介して自身が動作する論理ドメインのハードウェハにアクセスする。ＯＳ６０は、カーネル６３と、設定部６５とを有する。なお、メモリ管理部６４は、カーネル６３の一部とはせずに別のプログラムとしてもよい。カーネル６３は、ＯＳ６０の中核となるプログラムであり、割り込み処理部、プロセス管理部、メモリ管理部６４、ファイル管理部などを有し、ＯＳ６０としての基本機能を提供する。メモリ管理部６４は、共有されるメモリ２１のメモリ空間を管理しており、要求に応じて記憶領域の割り当てを行う。設定部６５は、サイズ情報５０および設定情報５１を設定するためのプログラムである。システムの管理者は、設定部６５を用いて、サイズ情報５０に、各グループにアプリケーションプログラム用に確保する記憶領域のサイズを設定する。また、システムの管理者は、設定部６５を用いて、設定情報５１に、ＣＰＵ４０を含まないグループについて、アプリケーションプログラム用に記憶領域を確保するか否かを設定する。
【００３３】
ハイパーバイザ６１は、情報処理装置１０のリソース構成を把握しており、論理ドメインとされたリソース構成からＣＰＵＣｈｉｐ２０に対する各メモリ２１のアクセスレイテンシーを把握できる。例えば、ＣＰＵＣｈｉｐ２０は、当該ＣＰＵＣｈｉｐ２０に接続されたメモリ２１に直接アクセスできる。このため、直接接続されたメモリ２１は、アクセスレイテンシーが低い。一方、ＣＰＵＣｈｉｐ２０は、他のビルディングブロック１１のＣＰＵＣｈｉｐ２０に接続されたメモリ２１へローカルＸＢ３０およびグローバルクロスバースイッチ３３を介してアクセスする。このため、他のビルディングブロック１１のメモリ２１は、アクセスレイテンシーが高い。一方、ＣＰＵＣｈｉｐ２０は、同じビルディングブロック１１内の他のＣＰＵＣｈｉｐ２０に接続されたメモリ２１へは他のＣＰＵＣｈｉｐ２０を介してアクセスする。このため、同じビルディングブロック１１内の他のＣＰＵＣｈｉｐ２０に接続されたメモリ２１は、アクセスレイテンシーが中程度となる。
【００３４】
図６は、情報処理装置におけるアクセスレイテンシーを説明するための図である。なお、図６の例では、図１に示した情報処理装置１０のビルディングブロック１１ａの「ＣＰＵＣｈｉｐ０」からのアクセスレイテンシーが示されている。「ＣＰＵＣｈｉｐ０」のＣＰＵＣｈｉｐ２０は、「メモリ０」のメモリ２１へ直接アクセス可能であるため、レイテンシーが低い。一方、「ＣＰＵＣｈｉｐ０」のＣＰＵＣｈｉｐ２０は、ビルディングブロック１１ｂの「メモリ２」や「メモリ３」のメモリ２１へローカルＸＢ３０、グローバルクロスバースイッチ３３を介してアクセスするため、レイテンシーが高い。一方、「ＣＰＵＣｈｉｐ０」のＣＰＵＣｈｉｐ２０は、ビルディングブロック１１ａの「メモリ１」のメモリ２１へ他のＣＰＵＣｈｉｐ２０を介してアクセスするため、レイテンシーが中程度となる。
【００３５】
図５に戻り、ハイパーバイザ６１は、論理ドメイン内の各メモリ２１をグルーピングしたグループ毎のリソースの構成情報を通知することが可能とされている。例えば、ハイパーバイザ６１は、グループ毎のリソースの構成情報を通知する通知部６２を有する。ハイパーバイザ６１は、論理ドメイン内の各メモリ２１をグルーピングしたグループ毎にリソースの構成情報を管理する。例えば、ハイパーバイザ６１は、各ＣＰＵＣｈｉｐ２０に対してそれぞれアクセスレイテンシーの最も低いメモリ２１をそれぞれ別のグループとしてリソースの構成情報を管理する。図１の例では、各ＣＰＵＣｈｉｐ２０に直接接続されたメモリ２１がそれぞれ別のグループとしてグルーピングされる。また、ハイパーバイザ６１は、論理ドメインにおいて、接続されたＣＰＵＣｈｉｐ２０が存在しないメモリ２１をそれぞれ別のグループとしてリソースの構成情報を管理する。例えば、図１の例では、「ＣＰＵＣｈｉｐ０」と「メモリ０」がグループ０とされている。また、「ＣＰＵＣｈｉｐ１」と「メモリ１」がグループ１とされている。また、「ＣＰＵＣｈｉｐ２」と「メモリ２」がグループ２とされている。また、「メモリ３」がグループ３とされている。通知部６２は、要求に応じて、グループ毎のリソースの構成情報として、グループのグループ番号、グループに含まれるＣＰＵ４０、メモリ２１の開始アドレス、メモリ２１のサイズを通知する。
【００３６】
本実施例において、各ビルディングブロック１１のメモリ２１を共有する情報処理装置１０では、実行されるＯＳ６０にＭＰＯ（Memory  Placement  Optimization）が実装される。ここで、ＭＰＯは、アプリケーションプログラムが使用するデータのメモリ上への配置を最適化する機能をいう。ＭＰＯを実装しているＯＳは、なるべくアプリケーションプログラムが動作するプロセッサに近いメモリに、アプリケーションプログラムが使用するデータを配置する。これにより、アプリケーションプログラムは、低いレイテンシーでアクセス可能なメモリにデータが配置されるため、メモリアクセス性能が向上する。
【００３７】
ＭＰＯが実装されたＯＳ６０は、何れかのメモリ２１にアプリケーションプログラムを展開して動作させる場合、なるべくアプリケーションプログラムが動作するプロセッサに近いメモリ２１に、アプリケーションプログラムが使用するデータを配置する。例えば、ＯＳ６０は、ハイパーバイザ６１に対してグループの構成情報を要求して、ハイパーバイザ６１からグループの構成情報を取得する。図７は、ハイパーバイザから取得される構成情報の一例を示す図である。図７の例では、構成情報として、グループのグループ番号、グループに含まれるＣＰＵ４０、メモリ２１の開始アドレス、メモリ２１のサイズを取得している。ＯＳ６０は、取得した構成情報に基づき、アプリケーションプログラムが動作するＣＰＵ４０が属するグループのメモリ２１にアプリケーションプログラムが使用するデータを配置する。例えば、図１において、アプリケーションプログラムが「ＣＰＵ１」で動作する場合、ＯＳ６０は、「ＣＰＵ１」が動作する「ＣＰＵＣｈｉｐ０」が属するグループ０の「メモリ０」にデータを配置する。これにより、アプリケーションプログラムは、低いレイテンシーでデータにアクセスできる。
【００３８】
次に、情報処理装置１０におけるＯＳの起動の流れについて簡単に説明する。ＯＳ６０を起動する際、不揮発性メモリ２４に記憶された起動制御プログラムは、メモリ２１にロードされ、実行される。起動制御プログラムは、ディスクユニット２２などに格納されたＯＳ６０のカーネルモジュール、ドライバモジュールなどをメモリ２１にロードして実行する。カーネル６３は、実行されると、必要に応じて、サイズを指定してＯＳ６０で使用するデータを格納するための記憶領域の獲得をメモリ管理部６４に順次要求し、メモリ管理部６４により獲得された記憶領域にデータを格納する。ＯＳ６０の起動では、このような記憶領域の獲得が多数行われる。
【００３９】
ところで、実施例１に係る情報処理装置１０は、メモリ２１を共有しているため、メモリ空間のサイズが大きい。また、情報処理装置１０は、多数のＣＰＵ４０を有する。例えば、情報処理装置１０が、３２個のビルディングブロック１１により構成され、各ビルディングブロック１１が４個のＣＰＵＣｈｉｐ２０を有し、各ＣＰＵＣｈｉｐ２０が１６個のコアを備え、各コアが２つのスレッドをＣＰＵ４０として機能させるものとする。この場合、ＣＰＵ４０は、３２×４×１６×２＝４０９６個となる。このように、実施例１に係る情報処理装置１０は、メモリ空間のサイズが大きく、多数のＣＰＵ４０が動作するため、ＯＳが使用する管理用のデータのサイズも大きくなる。このため、情報処理装置１０は、特定のメモリ２１に記憶領域の獲得が集中して特定のメモリ２１に管理用のデータが集中する場合がある。ＯＳ６０は、この特定のメモリ２１でアプリケーションプログラムを実行している場合、特定のメモリ２１にアプリケーションプログラムが使用するデータを配置しようとする。しかし、ＯＳ６０は、特定のメモリ２１に記憶領域を確保できない場合、アプリケーションプログラムが使用するデータをアプリケーションプログラムが動作するプロセッサから遠いメモリ２１に配置する。この場合、アプリケーションプログラムは、データのアクセスにコストがかかるため、処理性能が低下する。
【００４０】
そこで、本実施例に係るＯＳ６０は、ＯＳ６０の起動の際に、アプリケーションプログラム用の空きがあるメモリ２１から領域を獲得する機能を有する。ＯＳ６０のメモリ管理部６４は、判定部８１と、獲得部８２とを有する。
【００４１】
起動中のカーネル６３がサイズを指定して、ＯＳ６０が使用するデータを格納する記憶領域の獲得を判定部８１に要求した場合、判定部８１は、各グループのメモリ２１に、アプリケーションプログラム用の空きがあるか否か判定する。例えば、判定部８１は、ハイパーバイザ６１から図７に示したグループの構成情報を取得する。なお、判定部８１は、ＯＳ６０がグループの構成情報を予め取得している場合、予め取得した構成情報を用いればよい。判定部８１は、各グループのメモリ２１に、指定されたサイズとアプリケーションプログラム用に確保するサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。例えば、判定部８１は、アプリ用サイズ情報５０に記憶された各グループの１回目のアプリ用に残すメモリサイズを読み出す。そして、判定部８１は、各グループのメモリ２１に、指定されたサイズと１回目のアプリ用に残すメモリサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。判定部８１は、記憶領域を確保できるグループのメモリ２１が無い場合、アプリ用に残すメモリサイズを減らして判定を再度行う。例えば、判定部８１は、１回目の判定で記憶領域を確保できるメモリ２１が無い場合、アプリ用サイズ情報５０から各グループの２回目のアプリ用に残すメモリサイズを読み出して再度判定を行う。また、判定部８１は、２回目の判定で記憶領域を確保できるメモリ２１が無い場合、アプリ用サイズ情報５０から各グループの３回目のアプリ用に残すメモリサイズを読み出して再度判定を行う。
【００４２】
なお、本実施例では、アプリケーションプログラム用に確保する記憶領域のサイズをアプリ用サイズ情報５０にデータ量として規定しているが、比率で規定してもよい。例えば、アプリ用サイズ情報５０にアプリケーションプログラム用に確保する記憶領域のサイズをメモリ２１の５０％と規定してもよい。図４では、括弧により比率で規定する場合を示している。また、本実施例では、アプリ用サイズ情報５０に３回分の確保する記憶領域のサイズを記憶させているが、２回分、４回分以上の記憶領域のサイズを記憶させてもよい。また、アプリ用サイズ情報５０に各グループの確保する記憶領域のサイズをそれぞれ１つ記憶させ、判定部８１は、記憶領域を確保できない場合、段階的に確保する記憶領域のサイズを減らして判定を繰り返してもよい。また、アプリケーションプログラム用に確保する記憶領域のサイズは、アプリ用サイズ情報５０に必ずしも規定していなくてもよい。例えば、判定部８１は、アプリケーションプログラム用に確保するサイズをメモリ２１の５０％として、アプリケーションプログラム用に確保するサイズを求めて判定を行う。そして、判定部８１は、記憶領域を確保できない場合、アプリケーションプログラム用に確保するサイズをメモリ２１の４０％、３０％・・・と段階的に比率を減らして判定を繰り返して行うものとしてもよい。
【００４３】
獲得部８２は、判定部８１の判定結果に基づいて記憶領域を獲得する。例えば、獲得部８２は、判定部８１により記憶領域を確保できると判定されたグループのメモリ２１から記憶領域を獲得する。例えば、獲得部８２は、判定部８１により記憶領域を確保できると判定されたグループのメモリ２１から、指定されたサイズの記憶領域を獲得する。この獲得された記憶領域には、ＯＳ６０が使用するデータが格納される。
【００４４】
一方、獲得部８２は、判定部８１による判定の結果、記憶領域を確保できると判定されたグループのメモリが無い場合、記憶領域の獲得を中止して所定のエラー処理を行う。このエラー処理としては、例えば、ブート失敗のログを残すや、管理者への通知などが挙げられる。これにより、管理者は、アプリ用サイズ情報５０に設定したアプリケーションプログラム用に確保する記憶領域のサイズの変更や、論理ドメインの変更、物理的にメモリ２１を増設するなどの作業を行い、再度、ＯＳ６０の起動を行う。
【００４５】
次に、具体的な例を挙げて説明する。図８は、グループの各メモリの記憶領域の使用状況の一例を示す図である。図８の例では、グループ０のメモリ２１は、実装メモリサイズが６４ＧＢであり、使用中のメモリサイズが１４ＧＢであり、空きのメモリサイズが５０ＧＢであるものとする。また、グループ１のメモリ２１は、実装メモリサイズが６４ＧＢであり、使用中のメモリサイズが４ＧＢであり、空きのメモリサイズが６０ＧＢであるものとする。また、グループ２のメモリ２１は、実装メモリサイズが３２ＧＢであり、使用中のメモリサイズが２ＧＢであり、空きのメモリサイズが３０ＧＢであるものとする。また、グループ３のメモリ２１は、実装メモリサイズが３２ＧＢであり、使用中のメモリサイズが２ＧＢであり、空きのメモリサイズが３０ＧＢであるものとする。
【００４６】
メモリ管理部６４は、例えば、獲得する記憶領域のサイズとして２０ＧＢが指定されて記憶領域の獲得の要求を受け付けたものとする。判定部８１は、アプリ用サイズ情報５０に記憶された各グループの１回目の確保する記憶領域のサイズを読み出す。例えば、アプリ用サイズ情報５０に設定されたデータが図４に示す状態である場合、グループ０とグループ１は、１回目のアプリ用に残すメモリサイズが３２ＧＢである。グループ２とグループ３は、１回目のアプリ用に残すメモリサイズが１６ＧＢである。
【００４７】
判定部８１は、グループ０〜３の各メモリ２１に対して、順に指定されたサイズとアプリケーションプログラム用に確保する記憶領域のサイズとを加算したサイズの記憶領域を確保できるか否かを判定する。図８の例では、グループ０は、指定された２０ＧＢと、１回目のアプリ用に残すメモリサイズ３２ＧＢを加算した５２ＧＢの空きがないため、記憶領域を確保できないと判定される。一方、グループ１は、指定された２０ＧＢと、１回目のアプリ用に残すメモリサイズ３２ＧＢを加算した５２ＧＢの空きがあるため、記憶領域を確保できると判定される。
【００４８】
獲得部８２は、記憶領域を確保できると判定されたグループ１のメモリ２１から、指定されたサイズの記憶領域を獲得する。この獲得された記憶領域には、ＯＳ６０が使用するデータが格納される。これにより、図８の例では、グループ１のメモリ２１の使用中のメモリサイズが４ＧＢから２４ＧＢに変化している。
【００４９】
情報処理装置１０は、このようにアプリケーションプログラム用の記憶領域を確保しつつＯＳ６０を起動させることにより、ＯＳ６０が使用するデータが特定のメモリ２１に集中することが抑制される。これにより、ＯＳ６０は、アプリケーションプログラムが動作するＣＰＵ４０に近いメモリ２１に、アプリケーションプログラムが使用するデータを配置できるため、アプリケーションプログラムの処理性能の低下を抑制できる。
【００５０】
次に、本実施例に係る情報処理装置１０におけるＯＳ６０の起動の流れを説明する。図９は、ＯＳの起動の流れの一例を概略的に示した図である。
【００５１】
図９に示すように、起動制御プログラムは、不揮発性メモリ２４などに記憶されたカーネル６３、メモリ管理部６４などＯＳ６０をメモリ２１にロードし（Ｓ１０）、ＯＳ６０を実行する（Ｓ１１）。
【００５２】
ＯＳ６０は、実行されると、起動を開始し（Ｓ２０）、トライ回数カウンタＭに「１」にセットする（Ｓ２１）。そして、ＯＳ６０は、起動処理を継続し、ＯＳ６０で使用するデータの記憶領域が必要となる毎に、データのサイズを指定して記憶領域の獲得をメモリ管理部６４に要求する（Ｓ２２）。メモリ管理部６４は、獲得が要求される毎に、後述の記憶領域獲得処理（図１０）を実行する。
【００５３】
ＯＳ６０は、記憶領域の獲得を要求する毎に、記憶領域の獲得が成功したか否か判定し（Ｓ２３）、獲得が成功した場合（Ｓ２３肯定）、獲得した記憶領域にＯＳ６０で使用するデータを格納する。ＯＳ６０は、起動処理が完了していない場合（Ｓ２４否定）、記憶領域の獲得する際にＳ２２から処理を繰り返し行い、起動処理が完了すると（Ｓ２４肯定）、起動が成功として処理を終了する（Ｓ２５）。
【００５４】
一方、ＯＳ６０は、記憶領域の獲得が失敗した場合（Ｓ２３否定）、所定のエラー処理を行い、起動が失敗として処理を終了する（Ｓ２６）。
【００５５】
管理者は、ＯＳ６０の起動が失敗した場合、アプリ用サイズ情報５０に設定したアプリケーションプログラム用に確保する記憶領域のサイズの変更や、論理ドメインの変更、物理的にメモリ２１を増設するなどの作業を行い、再度、ＯＳ６０の起動を行う。
【００５６】
次に、本実施例に係る情報処理装置１０が記憶領域の獲得を行う記憶領域獲得処理の流れを説明する。図１０は、記憶領域獲得処理の手順を示すフローチャートである。この記憶領域獲得処理は、例えば、記憶領域の獲得が要求されたタイミングで実行される。
【００５７】
図１０に示すように、判定部８１は、ハイパーバイザ６１からグループの構成情報を取得する（Ｓ５０）。判定部８１は、グループ数カウンタＮに「０」をセットする（Ｓ５１）。
【００５８】
判定部８１は、グループ数カウンタＮ番目のグループにＣＰＵ４０があるか否かを判定する（Ｓ５２）。ＣＰＵ４０がある場合（Ｓ５２肯定）、判定部８１は、アプリ用サイズ情報５０からグループ数カウンタＮ番目のグループのトライ回数カウンタＭ回目の確保する記憶領域のサイズを読み出し（Ｓ５３）、後述のＳ５６の処理へ移行する。
【００５９】
一方、ＣＰＵ４０がない場合（Ｓ５２否定）、判定部８１は、設定情報５１においてＣＰＵ４０を含まないグループについて、アプリケーションプログラム用に記憶領域を確保する設定であるか否かを判定する（Ｓ５４）。記憶領域を確保する設定である場合（Ｓ５４肯定）、処理は、上述のＳ５３へ移行する。すなわち、ＣＰＵ４０を含まないグループについてもアプリ用サイズ情報５０から確保する記憶領域のサイズを読み出す。これにより、ＣＰＵ４０を含まないグループについても記憶領域のサイズが設定されていれば、設定されたサイズがアプリケーション用として確保される。
【００６０】
一方、記憶領域を確保する設定ではない場合（Ｓ５４否定）、判定部８１は、アプリケーションプログラム用に確保する記憶領域のサイズをゼロとして（Ｓ５５）、後述のＳ５６の処理へ移行する。
【００６１】
判定部８１は、グループ数カウンタＮ番目のグループのメモリ２１に、指定されたサイズとアプリケーションプログラム用に確保するサイズとを加算したサイズの記憶領域を確保できるか否かを判定する（Ｓ５６）。記憶領域を確保できる場合（Ｓ５６肯定）、獲得部８２は、判定部８１により記憶領域を確保できると判定されたグループのメモリ２１から指定されたサイズの記憶領域を獲得し（Ｓ５７）、処理を終了する。
【００６２】
一方、記憶領域を確保できない場合（Ｓ５６否定）、判定部８１は、全てのグループについて記憶領域を確保できるか否かの確認が完了したか否かを判定する（Ｓ５８）。本実施例では、判定部８１は、グループ数カウンタＮの値が「３」であるか否かにより、全てのグループについて確認が完了したか否かを判定する。確認が完了していない場合（Ｓ５８否定）、判定部８１は、グループ数カウンタＮの値に「１」を加算して（Ｓ５９）、Ｓ５２の処理へ移行する。
【００６３】
一方、確認が完了した場合（Ｓ５８肯定）、判定部８１は、トライ回数カウンタＭの値が「３」であるか否かを判定する（Ｓ６０）。トライ回数カウンタＭの値が「３」ではない場合（Ｓ６０否定）、判定部８１は、グループ数カウンタＮに「０」をセットし、トライ回数カウンタＭの値に「１」を加算して（Ｓ６１）、Ｓ５２の処理へ移行する。
【００６４】
一方、トライ回数カウンタＭの値が「３」である場合（Ｓ６０肯定）、判定部８１は、アプリ用サイズ情報５０に記憶された３回分の確認判定を行ったため、記憶領域の獲得を失敗として（Ｓ６２）、処理を終了する。
【００６５】
このように、情報処理装置１０は、ＯＳ６０が使用するデータを格納する記憶領域の獲得が要求された場合、各ビルディングブロック１１のメモリ２１をグルーピングした各グループのメモリ２１に、アプリケーションプログラム用の空きがあるか否か判定する。情報処理装置１０は、アプリケーションプログラム用の空きがあると判定されたグループのメモリから記憶領域を獲得する。これにより、情報処理装置１０は、アプリケーションプログラムの処理性能の低下を抑制できる。
【００６６】
また、情報処理装置１０では、ビルディングブロック１１に備えられたメモリ２１は、ＣＰＵ４０に対してそれぞれアクセスレイテンシーの最も低いメモリ２１がそれぞれ別のグループとしてグループ分けされる。これにより、情報処理装置１０は、アクセスレイテンシーの低いメモリ２１毎のグループを構成できる。
【００６７】
また、情報処理装置１０は、記憶領域を確保できるグループのメモリ２１が無い場合、アプリケーションプログラム用に確保する記憶領域のサイズを減らして判定を再度行う。これにより、情報処理装置１０は、記憶領域の空きが少なく、アプリケーションプログラム用に確保する記憶領域を多く確保できない場合でも、アプリケーションプログラム用の記憶領域をより多く確保しつつ、ＯＳ６０を起動できる。
【００６８】
また、情報処理装置１０は、ＯＳ６０の起動において、記憶領域の獲得が要求される毎に、記憶領域を確保できるか否かを判定する。そして、情報処理装置１０は、アプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行った結果、記憶領域を確保できると判定されたグループのメモリ２１が無い場合、記憶領域の獲得を中止してＯＳ６０の起動を停止する。これにより、情報処理装置１０は、アプリケーションプログラム用に確保する記憶領域を確保できない場合、管理者による再設定を行わせることで、アプリケーションプログラム用に記憶領域を確保してＯＳ６０を起動させることができる。
【００６９】
また、情報処理装置１０は、ＣＰＵ４０を含まないグループについてはアプリケーションプログラム用に確保する記憶領域のサイズをゼロとして判定を行う。これにより、情報処理装置１０は、ＣＰＵ４０を含まないグループについて、アプリケーションプログラム用の記憶領域が確保されることを抑制できる。
【実施例２】
【００７０】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００７１】
例えば、上記の実施例では、ＯＳ６０において記憶領域の獲得の制御を行わせる場合について説明したが、開示の装置はこれに限定されない。例えば、ＯＢＰに図５のメモリ管理部６４の機能を持たせることで、ＯＢＰが記憶領域の獲得・解放の制御を行ってもよい。また、ＯＳ６０の起動において、ＯＳ６０が記憶領域の獲得の制御が行えるまで、ＯＢＰが記憶領域の獲得の制御を行い、その後、ＯＳ６０が記憶領域の獲得の制御を行ってもよい。
【００７２】
また、上記の実施例では、記憶領域の獲得を行い際に、アプリ用に残すメモリサイズを確保できない場合、それ以降の記憶領域の獲得においてアプリ用に残すメモリサイズを減らす場合について説明したが、開示の装置はこれに限定されない。例えば、アプリ用に残すメモリサイズを確保できない場合、アプリ用に残すメモリサイズを減らして、再度、起動を最初から行ってもよい。例えば、情報処理装置１０は、１回目のアプリ用に残すメモリサイズを確保できない場合、２回目のアプリ用に残すメモリサイズで起動を最初から行う。また、情報処理装置１０は、２回目のアプリ用に残すメモリサイズを確保できない場合、３回目のアプリ用に残すメモリサイズで起動を最初から行うものとしてもよい。
【００７３】
また、上記の実施例では、ＯＳ６０の起動する際に適用した場合について説明したが、開示の装置はこれに限定されない。例えば、起動後にＯＳ６０がＯＳ６０で使用するデータを格納する記憶領域の獲得する際に適用してもよい。
【００７４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示す判定部８１および獲得部８２の各処理部が適宜統合または分割されてもよい。
【符号の説明】
【００７５】
１０      情報処理装置
１１、１１ａ〜１１ｃ  ビルディングブロック
２０      ＣＰＵＣｈｉｐ
２１      メモリ
２２      ディスクユニット
５０      サイズ情報
５１      設定情報
６０      ＯＳ
６１      ハイパーバイザ
６５      設定部
８１      判定部
８２      獲得部
【図１】
2014178889.tif 000003
【図２】
2014178889.tif 000004
【図３】
2014178889.tif 000005
【図４】
2014178889.tif 000006
【図５】
2014178889.tif 000007
【図６】
2014178889.tif 000008
【図７】
2014178889.tif 000009
【図８】
2014178889.tif 000010
【図９】
2014178889.tif 000011
【図１０】
2014178889.tif 000012