(57)【特許請求の範囲】
【請求項１】
実計算機で複数のオペレーティングシステムを同時実行可能な仮想計算機システムであって、
前記実計算機が備える記憶装置に割り当てられる、前記複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが主記憶メモリとして使用する主メモリ、および前記複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが仮想ストレージのキャッシュとして使用するキャッシュ領域と、
停止したオペレーティングシステム用の主メモリとして割り当てられていた領域を、稼働中のオペレーティングシステム用のキャッシュ領域に割り当てるキャッシュ割当手段と、
稼働中のオペレーティングシステム用のキャッシュ領域におけるクリーン領域を、起動するオペレーティングシステム用の主メモリに割り当てる主メモリ割当手段とを備える
ことを特徴とする仮想計算機システム。
【請求項２】
キャッシュ領域におけるクリーン領域のサイズを監視し、クリーン領域のサイズが、複数のオペレーティングシステムのうち１つのオペレーティングシステムが起動時に必要とする主メモリ量よりも少ない場合に、キャッシュクリーン化処理を実行し、前記複数のオペレーティングシステムのうち１つのオペレーティングシステムが起動時に必要とする主メモリ量以上のクリーン領域を確保するクリーン領域確保手段を備える
請求項１に記載の仮想計算機システム。
【請求項３】
クリーン領域確保手段は、複数のオペレーティングシステムのうち停止中の各オペレーティングシステムが起動時に必要とする主メモリ量のうちの最大量のクリーン領域を確保する
請求項２に記載の仮想計算機システム。
【請求項４】
実計算機で複数のオペレーティングシステムを同時実行可能であり、前記複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが主記憶メモリとして使用する主メモリ、および前記複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが仮想ストレージのキャッシュとして使用するキャッシュ領域とが割り当てられる記憶装置を備える仮想計算機システムで実行されるメモリ管理方法であって、
キャッシュ割当手段が、停止したオペレーティングシステム用の主メモリとして割り当てられていた領域を、稼働中のオペレーティングシステム用のキャッシュ領域に割り当て、
主メモリ割当手段が、稼働中のオペレーティングシステム用のキャッシュ領域におけるクリーン領域を、起動するオペレーティングシステム用の主メモリに割り当てる
ことを特徴とするメモリ管理方法。
【請求項５】
クリーン領域確保手段が、キャッシュ領域におけるクリーン領域のサイズを監視し、クリーン領域のサイズが、複数のオペレーティングシステムのうち１つのオペレーティングシステムが起動時に必要とする主メモリ量よりも少ない場合に、キャッシュクリーン化処理を実行し、前記複数のオペレーティングシステムのうち１つのオペレーティングシステムが起動時に必要とする主メモリ量以上のクリーン領域を確保する
請求項４に記載のメモリ管理方法。
【請求項６】
複数のオペレーティングシステムを同時実行可能であり、前記複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが主記憶メモリとして使用する主メモリ、および前記複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが仮想ストレージのキャッシュとして使用するキャッシュ領域とが割り当てられる記憶装置を備えるコンピュータに、
キャッシュ割当手段が、停止したオペレーティングシステム用の主メモリとして割り当てられていた領域を、稼働中のオペレーティングシステム用のキャッシュ領域に割り当てる処理と、
主メモリ割当手段が、稼働中のオペレーティングシステム用のキャッシュ領域におけるクリーン領域を、起動するオペレーティングシステム用の主メモリに割り当てる処理とを実行させる
ためのメモリ管理プログラム。
【請求項７】
コンピュータに、
クリーン領域確保手段が、キャッシュ領域におけるクリーン領域のサイズを監視し、クリーン領域のサイズが、複数のオペレーティングシステムのうち１つのオペレーティングシステムが起動時に必要とする主メモリ量よりも少ない場合に、キャッシュクリーン化処理を実行し、前記複数のオペレーティングシステムのうち１つのオペレーティングシステムが起動時に必要とする主メモリ量以上のクリーン領域を確保する処理を実行させる
ための請求項６に記載のメモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム上で実現される仮想計算機システム、仮想計算機システムのメモリ管理方法およびメモリ管理プログラムに関する。
【背景技術】
【０００２】
仮想計算機システムにおいて、仮想計算機システム上で動作するオペレーティングシステム（ＯＳ）（以下、ゲストＯＳという。）が複数存在する場合には、主記憶メモリを有効利用するために、停止しているゲストＯＳ用の主記憶メモリを、稼動しているゲストＯＳが使用する主記憶メモリに割り当てる。停止中のゲストＯＳ用の主記憶メモリを稼動中のゲストＯＳに主記憶メモリとして割り当てる場合には、ゲストＯＳを起動させる際に主記憶メモリの取り戻し（再配分）を行う。しかし、主記憶メモリを解放するゲストＯＳにおいて主記憶メモリ解放処理に伴うページアウト／スワップアウト処理による性能低下が発生する。また、起動しようとしているゲストＯＳにおいても主記憶メモリ解放処理待ちのため、起動に時間を要する。
【０００３】
ゲストＯＳに割り当て可能なメモリに管理権と利用権とを設定し、管理権と利用権とが与えられたゲストＯＳにメモリを割り当てる方法が提案されている（例えば、特許文献１参照。）。特許文献１に記載された方法では、メモリ再構築時に管理権の移譲により見かけ上のメモリ再構築を行い、実際に管理権が移譲されたメモリ領域へのアクセスがあったときにメモリ解放を行う。よって、メモリ再構築時における負荷が分散される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２６１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された方法では、メモリ再構築時における負荷が分散されるが、ページアウト／スワップアウト処理の発生は防止されない。よって、ページアウト／スワップアウト処理による性能低下、およびゲストＯＳの起動に時間を要するという課題が残る。
【０００６】
そこで、本発明は、稼動中のゲストＯＳの性能を低下させず、かつ、高速でゲストＯＳを起動させることができる仮想計算機システム、仮想計算機システムのメモリ管理方法およびメモリ管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明による仮想計算機システムは、実計算機で複数のオペレーティングシステムを同時実行可能な仮想計算機システムであって、実計算機が備える記憶装置に割り当てられる、複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが主記憶メモリとして使用する主メモリ、および複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが仮想ストレージのキャッシュとして使用するキャッシュ領域と、停止したオペレーティングシステム用の主メモリとして割り当てられていた領域を、稼働中のオペレーティングシステム用のキャッシュ領域に割り当てるキャッシュ割当手段と、稼働中のオペレーティングシステム用のキャッシュ領域におけるクリーン領域を、起動するオペレーティングシステム用の主メモリに割り当てる主メモリ割当手段とを備えることを特徴とする。
【０００８】
本発明による仮想計算機システムのメモリ管理方法は、実計算機で複数のオペレーティングシステムを同時実行可能であり、複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが主記憶メモリとして使用する主メモリ、および複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが仮想ストレージのキャッシュとして使用するキャッシュ領域とが割り当てられる記憶装置を備える仮想計算機システムで実行されるメモリ管理方法であって、キャッシュ割当手段が、停止したオペレーティングシステム用の主メモリとして割り当てられていた領域を、稼働中のオペレーティングシステム用のキャッシュ領域に割り当て、主メモリ割当手段が、稼働中のオペレーティングシステム用のキャッシュ領域におけるクリーン領域を、起動するオペレーティングシステム用の主メモリに割り当てることを特徴とする。
【０００９】
本発明による仮想計算機システムのメモリ管理プログラムは、複数のオペレーティングシステムを同時実行可能であり、複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが主記憶メモリとして使用する主メモリ、および複数のオペレーティングシステムのうち稼働中のオペレーティングシステムが仮想ストレージのキャッシュとして使用するキャッシュ領域とが割り当てられる記憶装置を備えるコンピュータに、キャッシュ割当手段が、停止したオペレーティングシステム用の主メモリとして割り当てられていた領域を、稼働中のオペレーティングシステム用のキャッシュ領域に割り当てる処理と、主メモリ割当手段が、稼働中のオペレーティングシステム用のキャッシュ領域におけるクリーン領域を、起動するオペレーティングシステム用の主メモリに割り当てる処理とを実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、稼動中のゲストＯＳの性能を低下させず、かつ、高速でゲストＯＳを起動させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明が適用されるコンピュータシステム１００の第１の実施形態の構成を示すブロック図である。
【図２】第１の実施形態における主記憶メモリ１６０の構成を示す説明図である。
【図３】第１の実施形態におけるゲストＯＳ用メモリ管理情報２２０の一例を示す説明図である。
【図４】第１の実施形態においてオペレータからゲストＯＳの停止要求があった場合の仮想計算機システムの動作を示すフローチャートである。
【図５】第１の実施形態においてゲストＯＳ管理システム２００がクリーン状態のキャッシュ量をゲストＯＳの起動時に必要な主記憶メモリ量以上確保する処理を示すフローチャートである。
【図６】第１の実施形態においてオペレータからゲストＯＳの起動要求があった場合の仮想計算機システムの動作を示すフローチャートである。
【図７】第１の実施形態においてゲストＯＳから仮想ストレージにアクセスした場合の仮想計算機システムの動作を示すフローチャートである。
【図８】第１の実施形態におけるキャッシュ管理手段２１０で使用されるキャッシュのクリーン化処理の動作を示すフローチャートである。
【図９】本発明が適用されるコンピュータシステム１００の第２の実施形態の構成を示すブロック図である。
【図１０】第２の実施形態におけるゲストＯＳ用メモリ管理情報２２０の一例を示す説明図である。
【図１１】第２の実施形態においてオペレータからゲストＯＳの起動要求があった場合の仮想計算機システムの動作を示すフローチャートである。
【図１２】第２の実施形態においてオペレータからゲストＯＳの停止要求があった場合の仮想計算機システムの動作を示すフローチャートである。
【図１３】本発明の仮想計算機システムの主要部を示すブロック図である。
【発明を実施するための形態】
【００１２】
実施形態１．
以下、本発明の第１の実施形態を図面を参照して説明する。
【００１３】
図１は、本発明による仮想計算機システムの第１の実施形態を示すブロック図である。図１には、仮想計算機システムを実現するコンピュータシステム１００が示されている。図２は、第１の実施形態における主記憶メモリ（主メモリ）１６０の構成を示す説明図である。図３は、第１の実施形態におけるゲストＯＳ用メモリ管理情報２２０の一例を示す説明図である。
【００１４】
図１に示すコンピュータシステム１００は、ゲストＯＳ１２０ｉ（ｉ＝１〜ｎ）と、仮想ストレージ１５０ｉ（ｉ＝１〜ｎ）と、管理コンソール１３０と、ホストＯＳ１１０と、主記憶メモリ１６０と、ストレージ１７０と、仮想化ソフトウェアであるゲストＯＳ管理システム２００とを含む。
【００１５】
ホストＯＳ１１０、ゲストＯＳ１２０ｉ、管理コンソール１３０およびゲストＯＳ管理システム２００は、コンピュータシステム１００が備えるプログラムに従って動作するＣＰＵ等で実現可能である
【００１６】
ホストＯＳ１１０は、コンピュータシステム１００上で動作するＯＳ（実計算機のＯＳ）である。
【００１７】
ゲストＯＳ１２０ｉは、ゲストＯＳ管理システム２００上で動作するＯＳである。ゲストＯＳ１２０ｉは、仮想ストレージ１５０ｉに対してアクセスを行うストレージアクセス機能１２１ｉを有する。
【００１８】
管理コンソール１３０は、オペレータの入力操作を受け付ける入出力インタフェースである。
【００１９】
仮想ストレージ１５０ｉは、ストレージ１７０上に論理的に定義された仮想ストレージである。本実施例においては、キャッシュ管理手段２１０およびストレージ１７０によって実現される。
【００２０】
主記憶メモリ１６０は、例えば、ＲＡＭなどの主記憶装置である。図２に示すように、主記憶メモリは、ホストＯＳ１１０が使用する領域であるホストＯＳ用メモリ１６１と、ゲストＯＳ１２０ｉが使用する領域であるゲストＯＳ用メモリ１６２とを含む。また、ゲストＯＳ用メモリ１６２は、稼動中のゲストＯＳ１２０ｉが主記憶メモリとして使用すゲストＯＳ使用メモリ１６２１と、稼動中のゲストＯＳ１２０ｉが仮想ストレージのキャッシュとして使用する即時割当不可メモリ１６２２および即時割当可能メモリ１６２３とを含む。即時割当不可メモリ１６２２は、仮想ストレージのキャッシュのうちダーティ状態にある領域に相当し、即時割当可能メモリ１６２３は、仮想ストレージのキャッシュのうちクリーン状態にある領域（クリーン領域）に相当する。ダーティ状態とは、キャッシュが更新されている状態をいい、クリーン状態とは、キャッシュが更新されていない状態をいう。
【００２１】
ストレージ１７０は、例えば、ハードディスクなどの補助記憶装置である。
【００２２】
ゲストＯＳ管理システム２００は、ゲストＯＳ停止手段２０１と、メモリ解放手段２０２と、ゲストＯＳ起動手段２０３と、メモリ割当手段２０４と、キャッシュ量変更通知手段２０５と、閾値チェック手段２０６と、キャッシュ解放手段２０７と、キャッシュ用メモリ状態変更手段２０８と、キャッシュ管理手段２１０と、ゲストＯＳ用メモリ管理情報２２０とを備える。
【００２３】
キャッシュ管理手段２１０は、キャッシュアクセス機能２１１と、キャッシュ量変更機能２１２と、キャッシュクリーン化機能２１３と、キャッシュ状態更新依頼機能２１４とを有する。
【００２４】
ゲストＯＳ用メモリ管理情報２２０は、図３に示すように、即時割当不可メモリ１６２２のメモリ量を示す即時割当不可メモリ量２２１と、即時割当可能メモリ１６２３のメモリ量を示す即時割当可能メモリ量２２２と、ゲストＯＳ起動時に必要な主記憶メモリ量であり、キャッシュ使用時におけるクリーン状態の最低確保キャッシュ量である割当閾値２２３とを含む。
【００２５】
ゲストＯＳ停止手段２０１は、管理コンソール１３０がオペレータからゲストＯＳ１２０ｉの停止要求を受信した場合に呼び出される。ゲストＯＳ停止手段２０１は、停止対象となるゲストＯＳに割り当てられていたメモリを解放させるためにメモリ解放手段２０２を呼び出す。
【００２６】
メモリ解放手段２０２は、ゲストＯＳ用メモリ管理情報２２０の即時割当可能メモリ量２２２をメモリ解放後のメモリ量に更新し、キャッシュ量変更通知手段２０５を呼び出す。
【００２７】
ゲストＯＳ起動手段２０３は、管理コンソール１３０がオペレータからゲストＯＳ１２０ｉの起動要求を受信した場合に呼び出される。ゲストＯＳ起動手段２０３は、クリーン状態のキャッシュである即時割当可能メモリ１６２３を、起動するゲストＯＳに主記憶メモリとして割り当てるためにメモリ割当手段２０４を呼び出す。
【００２８】
メモリ割当手段２０４は、ゲスト用メモリ管理情報２２０の即時割当可能メモリ量２２２で表される量のうち、起動するゲストＯＳが主記憶メモリとして必要とする量を割り当てる。そして、即時割当可能メモリ量２２２をメモリ割り当て後のメモリ量に更新し、キャッシュ量変更通知手段２０５を呼び出す。
【００２９】
キャッシュ量変更通知手段２０５は、キャッシュ量変更機能２１２にキャッシュ管理手段２１０で使用されるキャッシュ量の変更を依頼する。キャッシュ管理手段２１０で使用されるキャッシュとは、即時割当不可メモリ１６２２および即時割当可能メモリ１６２３で示されるメモリをいう。
【００３０】
閾値チェック手段２０６は、ゲストＯＳ用メモリ管理情報２２０の即時割当不可メモリ量２２１が割当閾値２２３を下回っているか否かを確認する。ゲストＯＳ用メモリ管理情報２２０の即時割当可能メモリ量２２２が割当閾値２２３を下回っていた場合は、クリーン状態のキャッシュ量が不足していると判断して、キャッシュ解放手段２０７を呼び出す。
【００３１】
キャッシュ解放手段２０７は、キャッシュクリーン化機能２１３にキャッシュのクリーン化を依頼する。
【００３２】
キャッシュ用メモリ状態変更手段２０８は、キャッシュ状態更新依頼機能２１４からキャッシュ管理手段２１０で使用されるキャッシュの状態の変更通知を受けると、キャッシュ管理手段２１０で使用されるキャッシュの状態にもとづいて、ゲスト用メモリ管理情報２２０を更新する。
【００３３】
キャッシュアクセス機能２１１は、ゲストＯＳ１２０ｉのストレージアクセス機能１２１ｉからの仮想ストレージ１５０ｉに対するアクセス要求を受け付ける。
【００３４】
キャッシュ量変更機能２１２は、キャッシュ量変更通知手段２０５からキャッシュ量の変更依頼を受けつけると、変更依頼にもとづいて、ゲストＯＳ用メモリ１６２の管理を行う。
【００３５】
キャッシュクリーン化機能２１３は、キャッシュ解放手段２０７からキャッシュクリーン化要求を受け付けると、ゲストＯＳのキャッシュのクリーン化を行う。
【００３６】
キャッシュ状態更新依頼機能２１４は、キャッシュ管理手段２１０で使用されるキャッシュの状態に変更があった場合は、変更内容をキャッシュ用メモリ状態変更手段２０８に通知する。
【００３７】
次に、本実施形態の動作について説明する。
【００３８】
図４は、第１の実施形態においてオペレータからゲストＯＳの停止要求があった場合の仮想計算機システムの動作を示すフローチャートである。
【００３９】
図４を参照して、オペレータからゲストＯＳ１２０ｉのうちいずれかについて停止要求があった場合の仮想計算機システムの動作について説明する。なお、図４において、キャッシュ管理手段２１０の処理は破線で示されている。
【００４０】
管理コンソール１３０は、オペレータからのゲストＯＳ１２０ｉの停止要求を受け付けると、ゲストＯＳ管理システム２００のゲストＯＳ停止手段２０１を呼び出す（ステップＳ４０１）。ゲストＯＳ停止手段２０１は、停止対象となるゲストＯＳの主記憶メモリとして割り当てられているメモリを解放するためにメモリ解放手段２０２を呼び出す。
【００４１】
メモリ解放手段２０２は、ゲストＯＳ用メモリ管理情報２２０の即時割当可能メモリ量２２２を、割当閾値２２３を足した値に更新する。そして、メモリ解放手段２０２は、キャッシュ量変更通知手段２０５を呼び出す（ステップＳ４０２）。
【００４２】
キャッシュ量変更通知手段２０５は、キャッシュ量変更機能２１２に、キャッシュ管理手段２１０で使用されるキャッシュ量の変更を依頼する（ステップＳ４０３）。
【００４３】
キャッシュ量変更機能２１２は、キャッシュ量変更通知機能手段２０５の変更依頼に応じて、停止対象となるゲストＯＳ用に主記憶メモリとして割り当てられていたメモリを解放して、解放したメモリをキャッシュ用メモリに割り当てる（ステップＳ４０４）。
【００４４】
この結果、即時割当可能メモリ１６２３が即時割当可能メモリ量２２２で示される容量に拡張され、キャッシュ管理２１０で使用されるキャッシュのクリーン領域が拡張される。
【００４５】
図５は、第１の実施形態においてゲストＯＳ管理システム２００がクリーン状態のキャッシュ量をゲストＯＳの起動時に必要な主記憶メモリ量以上確保する処理を示すフローチャートである。なお、図５において、キャッシュ管理手段２１０の処理は破線で示されている。
【００４６】
閾値チェック手段２０６は、ゲストＯＳ用メモリ管理情報２２０の即時割当可能メモリ量２２２を監視して、即時割当可能メモリ量２２２がゲストＯＳ起動時に必要な主記憶メモリ量である割当閾値２２３以上であるか否かを確認する（ステップＳ５０１）。
【００４７】
閾値チェック手段２０６は、即時割当可能メモリ量２２２が割当閾値２２３以上であった場合は、クリーン状態のキャッシュ量は足りていると判断して、再び即時割当可能メモリ量２２２の監視を行う。
【００４８】
閾値チェック手段２０６は、即時割当可能メモリ量２２２が割当閾値２２３未満であった場合は、クリーン状態のキャッシュ量が不足していると判断して、不足しているクリーン状態のキャッシュ量を補充するために、キャッシュ解放手段２０７を呼び出す。
【００４９】
キャッシュ解放手段２０７は、ダーティ状態のキャッシュをクリーン状態にするために、キャッシュクリーン化機能２１３にキャッシュ管理手段２１０で使用されるキャッシュのクリーン化を依頼する（ステップＳ５０２）。
【００５０】
キャッシュクリーン化機能２１３は、キャッシュ管理３１０で使用されるキャッシュのクリーン化を実行する。具体的には、即時割当可能メモリ１６２３の容量が割当閾値２２３以上になるように、ダーティ状態にある即時割当不可メモリ１６２２の一部をクリーン化する。キャッシュ状態更新依頼機能２１４は、キャッシュクリーン化機能２１３によってキャッシュのクリーン化が実行されると、キャッシュ用メモリ状態変更手段２０８に、クリーン化後のキャッシュの状態を通知する（ステップＳ５０３）。
【００５１】
キャッシュ用メモリ状態変更手段２０８は、キャッシュ状態更新依頼機能２１４から通知を受けると、ゲストＯＳ用メモリ管理情報２０の即時割当不可メモリ量２２１および即時割当可能メモリ量２２２の値を更新する（ステップＳ５０４）。
【００５２】
この結果、ゲストＯＳの起動時に必要な主記憶メモリが即時割当可能メモリ１６２３に確保された状態が維持される。
【００５３】
図６は、第１の実施形態においてオペレータからゲストＯＳの起動要求があった場合の仮想計算機システムの動作を示すフローチャートである。なお、図６において、キャッシュ管理手段２１０の処理は破線で示されている。
【００５４】
管理コンソール１３０は、オペレータからゲストＯＳ１２０ｉの起動要求を受け付けると、ゲストＯＳ管理システム２００のゲストＯＳ起動手段２０３を呼び出す（ステップＳ６０１）ゲストＯＳ起動手段２０３は、起動するゲストＯＳの主記憶メモリとして即時割当可能メモリ１６２３の一部を割り当てるために、メモリ割当手段２０４を呼び出す。
【００５５】
メモリ割当手段２０４は、ゲストＯＳ用メモリ管理情報２２０の即時割当可能メモリ量２２２を、割当閾値２２３を引いた値に更新する。そして、メモリ割当手段２０４は、キャッシュ量変更通知手段２０５を呼び出す（ステップＳ６０2）。
【００５６】
キャッシュ量変更通知手段２０５は、キャッシュ量変更機能２１２に、キャッシュ管理手段２１０で使用されるキャッシュ量の変更を依頼する（ステップＳ６０３）。
【００５７】
キャッシュ量変更機能２１２は、起動するゲストＯＳ用に主記憶メモリとしてクリーン状態のキャッシュを割り当てる（ステップＳ６０４）。具体的には、即時割当可能メモリ１６２３から割当閾値２２３で示されるメモリ量分のメモリを起動するゲストＯＳの主記憶メモリとして割り当てる。
【００５８】
図７は、第１の実施形態においてゲストＯＳから仮想ストレージにアクセスした場合の仮想計算機システムの動作を示すフローチャートである。なお、図７において、キャッシュ管理手段２１０の処理は破線で示されている。
【００５９】
ゲストＯＳ１２０ｉのストレージアクセス機能１２１ｉから仮想ストレージ１５０ｉに対してアクセスが行われた場合（ステップＳ７０１）、キャッシュアクセス機能２１１に対してアクセス要求が通知される。つまり、仮想ストレージ１５０ｉに対するアクセスは、実際には、キャッシュアクセス機能２１１を介して、ストレージ１７０に対するアクセスとして処理される。
【００６０】
ステップＳ７０１におけるアクセス要求によって、キャッシュ管理手段２１０で使用されるキャッシュの一部がクリーン状態からダーティ状態に変更されると、キャッシュ状態更新依頼機能２１４は、キャッシュ状態の変更をキャッシュ用メモリ状態変更手段２０８に通知する（ステップＳ７０２）。
【００６１】
キャッシュ用メモリ状態変更手段２０８は、キャッシュ状態更新依頼機能２１４から通知を受けると、ゲストＯＳ用メモリ管理情報２２０の即時割当不可メモリ量２２１と、即時割当可能メモリ量２２２を変更する（ステップＳ７０３）。このとき、即時割当可能メモリ量２２２は閾値チェック手段２０６によって、監視されている。
【００６２】
図８は、第１の実施形態におけるキャッシュ管理手段２１０で使用されるキャッシュのクリーン化処理の動作を示すフローチャートである。なお、図８において、キャッシュ管理手段２１０の処理は破線で示されている。
【００６３】
ダーティ状態のキャッシュのストレージ１７０への書き出しやキャッシュの無効化など、ダーティ状態のキャッシュのクリーン化はキャッシュ管理手段２１０のキャッシュクリーン化機能２１３で実行され、キャッシュクリーン化機能２１３によるキャッシュのクリーン化によってキャッシュの状態が変更されると、キャッシュ状態更新依頼機能２１４が、キャッシュ状態の変更をキャッシュ用メモリ状態変更手段２０８へ通知する（ステップＳ８０１）。
【００６４】
キャッシュ用メモリ状態変更手段２０８は、キャッシュ状態更新依頼機能２１４から通知を受けると、ゲストＯＳ用メモリ管理情報２２０の即時割当不可メモリ量２２１および即時割当可能メモリ量２２２を更新する（ステップＳ８０２）。
【００６５】
以上に説明したように、本実施形態によれば、停止しているゲストＯＳの主記憶メモリを、他の稼動しているゲストＯＳの仮想ストレージのキャッシュ領域として使用しているので、稼動中のゲストＯＳの性能を向上させることができる。
【００６６】
また、停止していたゲストＯＳを起動させるときに、起動時に必要な主記憶メモリを稼動中のゲストＯＳのクリーン状態のキャッシュから確保しているので、ページイン／スワップインなどの処理を伴なわずに、待ち時間なく高速にゲストＯＳを起動させることができる。また、クリーン状態のキャッシュからメモリの確保を行っているので、稼動中のゲストＯＳに影響を与えることなく、ゲストＯＳを起動させることができる。
【００６７】
実施形態２．
以下、本発明の第２の実施形態を図面を参照して説明する。
【００６８】
図９は、本発明による仮想計算機システムの第２の実施形態を示すブロック図である。図９には、仮想計算機システムを実現するコンピュータシステム１０１が示されている。
本発明が適用されるコンピュータシステム１０１の第２の実施形態の構成を示すブロック図である。図１０は、第２の実施形態におけるゲストＯＳ用メモリ管理情報２２０の一例を示す説明図である。
【００６９】
図９に示す仮想計算機システムのゲストＯＳ管理システム２００は、閾値抽出手段２０９を備える。
【００７０】
ゲストＯＳ用メモリ管理情報２２０は、図１０に示すように、即時割当不可メモリ量２２１、即時割当可能メモリ量２２２および割当閾値２２３に加えて、ゲストＯＳ名２２４ｉ（ｉ＝１〜ｎ）と、ゲストＯＳ１２０ｉが起動時に必要とする主記憶メモリ量を示す必要メモリ量２２５ｉ（ｉ＝１〜ｎ）と、ゲストＯＳ１２０ｉが稼動中か否かの状態を示すゲストＯＳ状態２２６ｉ（ｉ＝１〜ｎ）とを含む。
【００７１】
なお、コンピュータシステム１０１におけるその他の構成は、第１の実施形態のコンピュータシステム１００における構成と同様なため説明を省略する。
【００７２】
次に、本実施形態の動作について説明する。
【００７３】
図１１は、第２の実施形態においてオペレータからゲストＯＳの起動要求があった場合の仮想計算機システムの動作を示すフローチャートである。なお、図１１において、キャッシュ管理手段２１０の処理は破線で示されている。
【００７４】
管理コンソール１３０は、オペレータからゲストＯＳ１２０ｉの起動要求を受け付けると、ゲストＯＳ管理システム２００のゲストＯＳ起動手段２０３を呼び出す（ステップＳ１１０１）。ゲストＯＳ起動手段２０３は、起動するゲストＯＳの主記憶メモリとして即時割当可能メモリ１６２３の一部を割り当てるために、メモリ割当手段２０４を呼び出す。
【００７５】
メモリ割当手段２０４は、起動するゲストＯＳ１２０ｉに対応するゲストＯＳ用メモリ管理情報２２０のゲストＯＳ状態２２６ｉを「稼動中」に更新し、さらに、即時割当可能メモリ量２２２を必要メモリ量２２５ｉを引いた値に更新する（ステップＳ１１０２）。そして、メモリ割当手段２０４は、閾値抽出手段２０９を呼び出す。
【００７６】
閾値抽出手段２０９は、ゲストＯＳ状態２２６ｉが「停止中」であるゲストＯＳの中から必要メモリ量２２５ｉが最大のものを抽出して、抽出した必要メモリ量２２５ｉで割当閾値２２３を更新する（ステップＳ１１０３）。そして、閾値抽出手段２０９は、キャッシュ量変更通知手段２０５を呼び出す。
【００７７】
キャッシュ量変更通知手段２０５は、キャッシュ量変更機能２１２に、キャッシュ管理手段２１０で使用されるキャッシュ量の変更を依頼する（ステップＳ１１０４）。
【００７８】
キャッシュ量変更機能２１２は、起動するゲストＯＳ用に主記憶メモリとしてクリーン状態のキャッシュを割り当てる。具体的には、即時割当可能メモリ１６２３から割当閾値２２３で示されるメモリ量分のメモリをゲストＯＳの主記憶メモリとして割り当てる。
【００７９】
図１２は、第２の実施形態においてオペレータからゲストＯＳの停止要求があった場合の仮想計算機システムの動作を示すフローチャートである。なお、図１２において、キャッシュ管理手段２１０の処理は破線で示されている。
【００８０】
管理コンソール１３０は、オペレータからのゲストＯＳ１２０ｉの停止要求を受け付けると、ゲストＯＳ管理システム２００のゲストＯＳ停止手段２０１を呼び出す（ステップＳ１２０１）。ゲストＯＳ停止手段２０１は、停止対象となるゲストＯＳの主記憶メモリとして割り当てられているメモリを解放するためにメモリ解放手段２０２を呼び出す。
【００８１】
メモリ解放手段２０２は、停止対象となるゲストＯＳに対応するゲストＯＳ用メモリ管理情報２２０のゲストＯＳ状態２２６ｉを「停止中」に更新し、さらに、即時割当可能メモリ量２２２を必要メモリ量２２５ｉを足した値に更新する（ステップＳ１２０２）。そして、閾値抽出手段２０９を起動する。
【００８２】
閾値抽出手段２０９は、ゲストＯＳ状態２２６ｉが「停止中」であるゲストＯＳの中から必要メモリ量２２５ｉが最大のものを抽出して、抽出した必要メモリ量２２５ｉで割当閾値２２３を更新する（ステップＳ１２０３）。そして、閾値抽出手段２０９は、キャッシュ量変更通知手段２０５を呼び出す。
【００８３】
キャッシュ量変更通知手段２０５は、キャッシュ量変更機能２１２に、キャッシュ管理手段２１０で使用されるキャッシュ量の変更を依頼する（ステップＳ１２０４）。
【００８４】
キャッシュ量変更機能２１２は、キャッシュ量変更通知機能手段２０５の変更依頼に応じて、停止対象となるゲストＯＳ用に主記憶メモリとして割り当てられていたメモリを解放して、解放したメモリをキャッシュ用メモリに割り当てる（ステップＳ１２０５）。
【００８５】
この結果、即時割当可能メモリ１６２３が即時割当可能メモリ量２２２で示される容量に拡張され、キャッシュ管理２１０で使用されるキャッシュのクリーン領域が拡張される。
【００８６】
以上に説明したように、本実施形態によれば、停止中のゲストＯＳの中で起動時に必要な主記憶メモリ量が最大のものをクリーン状態のキャッシュの最低確保量としているので、起動時に必要な主記憶メモリ量が各ゲストＯＳごとに異なる場合においても、第１の実施形態と同様の効果を得ることができる。
【００８７】
図１３は、本発明による仮想計算機システムの主要部を示すブロック図である。図１３に示すように、本発明による仮想計算機システムは、実計算機で複数のオペレーティングシステムを同時実行可能な仮想計算機システムであって、停止したオペレーティングシステム用の主メモリを、稼働中のオペレーティングシステム用のキャッシュ領域に割り当てるキャッシュ割当手段１１と、稼働中のオペレーティングシステム用のキャッシュ領域におけるクリーン領域を、起動するオペレーティングシステムの主メモリに割り当てる主メモリ割当手段１２とを備えることを特徴とする。
【００８８】
上記の実施形態には、以下のような仮想計算機システムも開示されている。
【００８９】
（１）オペレーティングシステムが必要とする主メモリ量以上のクリーン領域をあらかじめ確保するクリーン領域確保手段（図１に示す閾値チェック手段２０６およびキャッシュ解放手段２０７で実現される。）を備える仮想計算機システム。
【００９０】
（２）クリーン領域確保手段が、クリーン領域のサイズが、オペレーティングシステムが必要とする主メモリ量よりも少ない場合に、キャッシュクリーン化処理を実行するキャッシュ拡張手段（図１に示すキャッシュ解放手段で実現される。）を含む仮想計算機システム。
【００９１】
（３）クリーン領域確保手段は、停止中の各オペレーティングシステムが必要とする主メモリ量のうちの最大量のクリーン領域を確保する（図９に示す閾値抽出手段２０９の処理等で実現される。）仮想計算機システム。
【００９２】
（４）キャッシュ領域は、オペレーティングシステムによってアクセスされる仮想ストレージ（図１に示す仮想ストレージ１５０１〜１５０ｎに相当）のためのキャッシュ領域である（図１参照）仮想計算機システム。
【符号の説明】
【００９３】
１１  キャッシュ割当手段
１２  主メモリ割当手段
１００，１０１  コンピュータシステム
１１０  ホストＯＳ
１２０１〜１２０ｎ  ゲストＯＳ
１３０  管理コンソール
１５０１〜１５０ｎ  仮想ストレージ
１６０  主記憶メモリ
１６１  ホストＯＳ用メモリ
１６２  ゲストＯＳ用メモリ
１７０  ストレージ
２００  ゲストＯＳ管理システム
２０１  ゲストＯＳ停止手段
２０２  メモリ解放手段
２０３  ゲストＯＳ起動手段
２０４  メモリ割当手段
２０５  キャッシュ量変更通知手段
２０６  閾値チェック手段
２０７  キャッシュ解放手段
２０８  キャッシュ用メモリ状態変更手段
２０９  閾値抽出手段
２１０  キャッシュ管理手段
２１１  キャッシュアクセス機能
２１２  キャッシュ量変更機能
２１３  キャッシュクリーン化機能
２１４  キャッシュ状態更新依頼機能
２２０  ゲストＯＳ用メモリ管理情報
２２１  即時割当不可メモリ量
２２２  即時割当可能メモリ量
２２３  割当閾値
２２４１〜２２４ｎ  ゲストＯＳ名
２２５１〜２２５ｎ  必要メモリ量
２２６１〜２２６ｎ  ゲストＯＳ状態
１６２１  ゲストＯＳ使用メモリ
１６２２  即時割当不可メモリ
１６２３  即時割当可能メモリ
【図１】
0005673210.tif 000002
【図２】
0005673210.tif 000003
【図３】
0005673210.tif 000004
【図４】
0005673210.tif 000005
【図５】
0005673210.tif 000006
【図６】
0005673210.tif 000007
【図７】
0005673210.tif 000008
【図８】
0005673210.tif 000009
【図９】
0005673210.tif 000010
【図１０】
0005673210.tif 000011
【図１１】
0005673210.tif 000012
【図１２】
0005673210.tif 000013
【図１３】
0005673210.tif 000014