【手続補正書】
【提出日】平成29年4月27日(2017.4.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
少なくとも１つの物理プロセッサを含むハードウェア・プラットフォームと、
前記ハードウェア・プラットフォームに設けられた仮想化層と、
前記仮想化層により支援される仮想マシンとを
含むコンピュータシステムにおいて、
前記仮想マシンは、複数の仮想プロセッサを含み、
前記仮想プロセッサは、該仮想プロセッサ上で実行するゲストオペレーティングシステムを有し、
前記ゲストオペレーティングシステムは、前記仮想マシンによるプロセッサ要求に基づき、前記仮想マシンの仮想プロセッサの目標数が、前記仮想マシン用に活性化される仮想プロセッサの現在数よりも少ないことを判定するように構成され、
前記ゲストオペレーティングシステムはさらに、前記ゲストオペレーティングシステム内に優先プロセススレッドを立ち上げるように構成され、
前記優先プロセススレッドは、前記複数の仮想プロセッサのうちの第１の仮想プロセッサに関連付けられ、且つ停止命令を含み、
前記ゲストオペレーティングシステムはさらに、ゲストスケジューラの動作によって、前記複数の仮想プロセッサのうちの前記第１の仮想プロセッサを使用して前記優先プロセススレッドを実行するように構成され、
前記仮想化層は、前記仮想マシンの前記複数の仮想プロセッサの間のプロセッサの共有を管理するように構成され、前記仮想化層は、前記第１の仮想プロセッサが前記停止命令を実行していることを検知することに応答して、前記コンピュータシステムの前記物理プロセッサ上の前記第１の仮想プロセッサの実行をスケジュール解除するように構成される、コンピュータシステム。
【請求項２】
前記ゲストオペレーティングシステムはさらに、立ち上げられた優先プロセススレッドの量に基づき前記仮想マシン用に活性化された仮想プロセッサの前記現在数をディクリメントするように構成される、請求項１に記載のコンピュータシステム。
【請求項３】
前記優先プロセススレッドは、ＨＬＴ命令を有するカーネルスレッドを含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記ゲストオペレーティングシステムはさらに、前記仮想マシンの仮想プロセッサの第２の目標数が、前記仮想マシン用に活性化された仮想プロセッサの前記現在数よりも多いことを判定し、前記ゲストオペレーティングシステム内の前記優先プロセススレッドの実行を停止するように構成される、請求項１に記載のコンピュータシステム。
【請求項５】
仮想プロセッサの前記目標数は、前記仮想マシンの仮想プロセッサの要求数と前記仮想マシンの仮想プロセッサの付与数とのうち少ない方として決定される、請求項１に記載のコンピュータシステム。
【請求項６】
前記仮想マシン用の仮想プロセッサの前記要求数は、前記仮想マシンに割り振られた前記複数の仮想プロセッサに対する全要求と前記仮想マシンの予想利用率とに基づき決定される、請求項５に記載のコンピュータシステム。
【請求項７】
前記仮想マシンの仮想プロセッサの前記付与数は、前記仮想マシンに割り振られた仮想プロセッサの数と前記仮想マシンに関連付けられた準備時間の量とに基づき決定される、請求項５に記載のコンピュータシステム。
【請求項８】
前記ゲストオペレーティングシステムはさらに、バックドアコールを介し前記仮想化層から仮想プロセッサの前記目標数を受信するように構成されるデバイスドライバを含む、請求項１に記載のコンピュータシステム。
【請求項９】
ホストコンピュータシステムを管理する方法であって、該ホストコンピュータシステムは、前記ホストコンピュータシステム上で実行する仮想マシンを有し、前記仮想マシンは、少なくとも１つの物理プロセッサを含むハードウェア・プラットフォームにインストールされた仮想化層により支援され、前記仮想マシンには複数の仮想プロセッサが割り振られる、前記方法において、
前記仮想マシンによるプロセッサ要求に基づき、前記仮想マシン用の前記仮想プロセッサの目標数が、前記仮想マシン用に活性化された仮想プロセッサの現在数よりも少ないことを判定すること、
前記仮想マシンのゲストオペレーティングシステム内の優先プロセススレッドを立ち上げることであって、前記優先プロセススレッドは、前記複数の仮想プロセッサのうちの第１の仮想プロセッサに関連付けられ、且つ停止命令を含む、前記優先プロセススレッドを立ち上げること、
前記ゲストオペレーティングシステム内のゲストスケジューラの動作により、前記複数の仮想プロセッサのうちの前記第１の仮想プロセッサを使用して前記優先プロセススレッドを実行すること、
前記ホストコンピュータシステム内の仮想化層の動作により、前記第１の仮想プロセッサが前記停止命令を実行していることを検出することに応答して、前記ホストコンピュータシステムの１つまたは複数の物理プロセッサ上の前記第１の仮想プロセッサの実行をスケジュール解除することを備える、方法。
【請求項１０】
立ち上げられた優先プロセススレッドの量に基づき前記仮想マシン用に活性化された仮想プロセッサの前記現在数をディクリメントすることをさらに備える、請求項９に記載の方法。
【請求項１１】
前記優先プロセススレッドは、ＨＬＴ命令を有するカーネルスレッドを含む、請求項９に記載の方法。
【請求項１２】
前記仮想マシンの仮想プロセッサの第２の目標数が、前記仮想マシン用に活性化された仮想プロセッサの前記現在数よりも多いことを判定すること、
前記ゲストオペレーティングシステム内の前記優先プロセススレッドの実行を停止することをさらに備える、請求項９に記載の方法。
【請求項１３】
前記仮想マシンによるプロセッサ要求に基づき前記仮想マシンの仮想プロセッサの前記目標数を決定することはさらに、
仮想プロセッサの前記目標数を、前記仮想マシンの前記仮想プロセッサの要求数と前記仮想マシンの仮想プロセッサの付与数のうちの小さい方として決定することを含む、請求項９に記載の方法。
【請求項１４】
前記仮想マシンの仮想プロセッサの前記要求数は、前記仮想マシンに割り振られた前記複数の仮想プロセッサに対する全要求と前記仮想マシンの予想利用率とに基づき決定される、請求項１３に記載の方法。
【請求項１５】
前記仮想マシンの仮想プロセッサの前記付与数は、前記仮想マシンに割り振られた仮想プロセッサの数と前記仮想マシンに関連付けられた準備時間の量とに基づき決定される、請求項１３に記載の方法。
【請求項１６】
前記仮想マシンによるプロセッサ要求に基づき前記仮想マシンの仮想プロセッサの前記目標数を決定することはさらに、
前記ゲストオペレーティングシステムにおいて実行するデバイスドライバの動作により、バックドアコールを介しハイパーバイザから仮想プロセッサの前記目標数を受信することを含む、請求項９に記載の方法。
【請求項１７】
ホストコンピュータデバイスを管理するためのコンピュータ可読プログラムコードを格納した非一時的コンピュータ可読記憶媒体であって、該ホストコンピュータデバイスは、前記ホストコンピュータデバイス上で実行する仮想マシンを有し、前記仮想マシンは、少なくとも１つの物理プロセッサを含むハードウェア・プラットフォームにインストールされた仮想化層により支援され、前記仮想マシンには複数の仮想プロセッサが割り振られ、非一時的コンピュータ可読記憶媒体が、
前記仮想マシンによるプロセッサ要求に基づき、仮想マシン用の仮想プロセッサの目標数が、前記仮想マシン用に活性化された仮想プロセッサの現在数よりも少ないことを判定するコンピュータ可読プログラムコードと、
前記仮想マシンのゲストオペレーティングシステム内に優先プロセススレッドを立ち上げるコンピュータ可読プログラムコードであって、前記優先プロセススレッドは、前記複数の仮想プロセッサのうちの第１の仮想プロセッサに関連付けられ、且つ停止命令を含む、前記コンピュータ可読プログラムコードと、
前記ゲストオペレーティングシステム内のゲストスケジューラの動作により、前記複数の仮想プロセッサのうちの前記第１の仮想プロセッサを使用して前記優先プロセススレッドを実行するコンピュータ可読プログラムコードと、
前記ホストコンピュータデバイス内の仮想化層の動作により、前記第１の仮想プロセッサが前記停止命令を実行していることを検出することに応答して、前記ホストコンピュータデバイスの１つまたは複数の物理プロセッサ上の前記第１の仮想プロセッサの実行をスケジュール解除するコンピュータ可読プログラムコードとを備える、非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記非一時的コンピュータ可読記憶媒体は、
立ち上げられる優先プロセススレッドの量に基づき、前記仮想マシン用に活性化された仮想プロセッサの前記現在数をディクリメントするコンピュータ可読プログラムコードをさらに備える、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記優先プロセススレッドは、ＨＬＴ命令を有するカーネルスレッドを含む、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記非一時的コンピュータ可読記憶媒体は、
前記仮想マシンの仮想プロセッサの第２の目標数が、前記仮想マシン用に活性化された仮想プロセッサの前記現在数よりも多いことを判定するコンピュータ可読プログラムコードと、
前記ゲストオペレーティングシステムにおける前記優先プロセススレッドの実行を停止するコンピュータ可読プログラムコードとをさらに備える、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
前記仮想マシンによるプロセッサ要求に基づき前記仮想マシンの仮想プロセッサの前記目標数を決定する前記コンピュータ可読プログラムコードはさらに、
仮想プロセッサの前記目標数を、前記仮想マシンの前記仮想プロセッサの要求数と前記仮想マシンの仮想プロセッサの付与数のうちの小さい方として決定するコンピュータ可読プログラムコードを含む、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記仮想マシンの仮想プロセッサの前記要求数は、前記仮想マシンに割り振られた前記複数の仮想プロセッサに対する全要求と前記仮想マシンの予想利用率とに基づき決定される、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記仮想マシンの仮想プロセッサの前記付与数は、前記仮想マシンに割り振られた仮想プロセッサの数と前記仮想マシンに関連付けられた準備時間の量とに基づき決定される、請求項２１に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記仮想マシンによるプロセッサ要求に基づき前記仮想マシンの仮想プロセッサの前記目標数を決定する前記コンピュータ可読プログラムコードはさらに、
前記ゲストオペレーティングシステムにおいて実行するデバイスドライバの動作により、バックドアコールを介しハイパーバイザから仮想プロセッサの前記目標数を受信するコンピュータ可読プログラムコードを含む、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
図４Ｂは、４つのｖＣＰＵ１２２１〜１２２４を有するＶＭ１１８１のブロック図である。４つのｖＣＰＵ１２２１〜１２２４上では、ＶＭ１１８１がハイパーバイザ１１１により推奨されたｖＣＰＵ１２２の目標数よりも多くのｖＣＰＵ１２２を利用しているとバルーンドライバ１３１が判定した場合、プロセスはゲストスケジューラ１３３によりスケジュールされてｖＣＰＵ１２２１〜１２２４のうちの１つまたは複数へディスパッチされる。この例示では、バルーンドライバ１３１は、線４０８により描写するようにハイパーバイザ１１１と通信し（例えばバックドアコールを介し）、ＶＭ１１８１が利用すべきｖＣＰＵ１２２の目標数を受信する。バルーンドライバ１３１は、ｖＣＰＵ１２２のこの目標数と、ＶＭ１１８１により活性化され且つＶＭ１１８１による使用のために利用可能であるｖＣＰＵ１２２の現在数とを比較する。バルーンドライバ１３１は、使用中のｖＣＰＵ１２２の現在数がｖＣＰＵ１２２の目標数を超える場合、１つまたは複数のバルーンスレッド４０４を立ち上げる。示された例では、バルーンドライバ１３１は、ＶＭのｖＣＰＵの目標数が３つのｖＣＰＵである（ｖＣＰＵの現在数（例えば、初めに割り振られた「４」）よりも少ない）と判定し、１つのバルーンスレッド４０４を立ち上げる。