【手続補正書】
【提出日】平成24年2月23日(2012.2.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ以上の物理プロセッサを有する物理計算機と、仮想計算機モニタと、前記仮想計算機モニタにより１つ以上の物理プロセッサを時分割して構築された１以上の仮想プロセッサを有する仮想計算機とを備える計算機システムにおいて、
仮想計算機モニタは、
前記物理プロセッサ及び仮想プロセッサのスケジューリングとして、前記物理プロセッサの通常動作状態または休止状態の切り替えと、前記仮想プロセッサの仮想的な通常動作状態または仮想的な休止状態の切り替えを制御し、
前記仮想的な休止状態にある仮想プロセッサを、前記仮想的な休止状態を解除して通常動作状態に切り替えるスケジューリングをするとき、
前記仮想プロセッサが動作していた前記物理プロセッサに留まり前記仮想的な休止状態が解除されるまで繰り返し調べるビジー待ち方法と、前記仮想プロセッサの実行を停止させて動作していた前記物理プロセッサを譲り渡し、前記仮想的な休止状態が解除されるまで該仮想プロセッサを物理プロセッサへの割り当て対象から外し、その間前記物理プロセッサ上では他の仮想プロセッサを動作させるブロック待ち方法とのいずれか一方を、前記仮想プロセッサ休止時間の情報に基づいて選択する
ことを特徴とする計算機システム。
【請求項２】
前記仮想計算機モニタは、
前記仮想プロセッサが仮想的な通常動作状態にあるときは、前記仮想プロセッサが通常動作状態の物理プロセッサに割り当てられているならば、該仮想プロセッサ上のプログラムを実行可とし、
前記仮想プロセッサが仮想的な休止状態にあるときは、前記仮想プロセッサ上のプログラムを実行不可とする
ことを特徴とする請求項１記載の計算機システム。
【請求項３】
仮想計算機モニタは、
前記物理プロセッサ及び仮想プロセッサのスケジューリングとして、前記物理プロセッサの通常動作状態または休止状態の切り替えと、前記仮想プロセッサの仮想的な通常動作状態または仮想的な休止状態の切り替えを独立に制御するものであり、
前記通常動作状態の物理プロセッサに割り当てた仮想プロセッサの休止状態への切り替え要求を、ハードウェアに直接実行させずに検出し該要求を受けて仮想プロセッサを仮想的な休止状態に切り替え、
前記仮想プロセッサへの仮想的な休止状態から仮想的な通常状態への切り替え要求を、ハードウェアに直接実行させずに検出し該要求を受けて仮想プロセッサを仮想的な通常動作状態に切り替える
ことを特徴とする請求項２記載の計算機システム。
【請求項４】
前記ビジー待ち方法と前記ブロック待ち方法とのいずれか一方の選択は、前記仮想的な休止状態にある仮想プロセッサが前記仮想的な休止状態の解除を待つ度に実行される
ことを特徴とする請求項３記載の計算機システム。
【請求項５】
前記仮想計算機モニタは、
前記ビジー待ち方法方法を選択した場合、
該仮想プロセッサの仮想プロセッサ休止解除通知フラグが真に設定されるまで繰り返し調べ、
前記仮想プロセッサ休止解除フラグが真に設定されたことを検出すると、前記仮想プロセッサの仮想的な休止状態から仮想的な通常動作状態への切り替え方法を実行して、前記仮想プロセッサ上のプログラムの実行を許可し、
前記ブロック待ち方法を選択した場合、
前記仮想プロセッサの実行を停止させて動作していた物理プロセッサを譲り渡し、
前記仮想プロセッサの仮想プロセッサ休止解除通知フラグが真に設定されるまで前記仮想プロセッサを物理プロセッサへの割り当て対象から外し、
その間前記物理プロセッサ上では他の仮想プロセッサを動作させ、
前記待ち状態の仮想プロセッサに対する仮想的な休止状態から仮想的な通常動作状態への切り替え要求を検出すると、該仮想プロセッサの仮想プロセッサ休止解除通知フラグを真に設定し、
前記仮想プロセッサを物理プロセッサへの割り当て対象に戻し、
さらに前記仮想プロセッサが選択され、物理プロセッサに割り当てられると、該仮想プロセッサの仮想プロセッサ休止解除フラグが真に設定されたことを検出して、前記仮想プロセッサの仮想的な休止状態から仮想的な通常動作状態への切り替え方法を実行して、前記仮想プロセッサ上のプログラムの実行を許可する
ことを特徴とする請求項４記載の計算機システム。
【請求項６】
仮想プロセッサが該仮想プロセッサの前記仮想プロセッサ休止解除通知フラグが真にされるのを待ち始めてから、該仮想プロセッサ休止解除通知フラグが真に設定されるまでの間の時間を仮想プロセッサ休止時間とし、
仮想プロセッサの直近のＮ回の前記仮想プロセッサ休止時間の平均値を該仮想プロセッサの仮想プロセッサ休止時間の予測値とし、
１つ前の仮想プロセッサ休止時間予測値に、新たな仮想プロセッサ休止時間をＮで割った値を加算し、最も古い仮想プロセッサ休止時間をＮで割った値を除いて次回仮想プロセッサが休止するときの該仮想プロセッサの仮想プロセッサ休止時間予測値を算出し、
仮想プロセッサが仮想的な休止状態の解除を待つときに、現在時刻に該仮想プロセッサの前記プロセッサ休止時間予測値を加算して該仮想プロセッサの仮想プロセッサ休止解除時刻予測値を算出する
ことを特徴とする請求項５記載の計算機システム。
【請求項７】
仮想プロセッサの休止解除を待つ方法として前記ブロック待ち方法を選択すると、前記算出した仮想プロセッサ休止解除時刻予測値を物理プロセッサごとの仮想プロセッサ休止解除時刻管理キューに期限が近い順に昇順でソートして挿入することで、物理プロセッサごとに複数の仮想プロセッサの休止解除時刻予測値を管理し、該仮想プロセッサの仮想的な休止状態が解除されるときに、前記仮想プロセッサ休止解除時刻管理キューから前記仮想プロセッサ休止解除時刻予測値を取り出し、
前記仮想プロセッサ休止時間より算出される前記複数の予測値を用いて、仮想プロセッサの仮想的な休止状態の解除を待つ方法、前記ビジー待ち方法と前記ブロック待ち方法の２つの方法から１つの方法を動的に選択して実行する
ことを特徴とする請求項６記載の計算機システム
【請求項８】
前記仮想プロセッサの仮想プロセッサ休止時間予測値が、所定のブロック待ち方法処理時間コスト未満であるならば、ビジー待ち方法を選択する
ことを特徴とする請求項６記載の計算機システム。
【請求項９】
前記仮想プロセッサの仮想プロセッサ休止時間予測値が、前記ブロック待ち方法処理時間コスト以上であり、かつ動作中の物理プロセッサへの割り当て対象の仮想プロセッサが存在するならば、ブロック待ち方法を選択する
ことを特徴とする請求項６記載の仮想計算機システム
【請求項１０】
１つ以上の物理プロセッサを有する物理計算機を時分割して１以上の仮想プロセッサを有する仮想計算機を構築し、前記物理プロセッサの通常動作状態または休止状態の切り替えと、前記仮想プロセッサの仮想的な通常動作状態または仮想的な休止状態の切り替えを制御する仮想計算機モニタであって、
前記仮想的な休止状態にある仮想プロセッサを、前記仮想的な休止状態を解除して通常動作状態に切り替えるスケジューリングをするとき、
前記仮想プロセッサが動作していた前記物理プロセッサに留まり前記仮想的な休止状態が解除されるまで繰り返し調べるビジー待ち方法と、前記仮想プロセッサの実行を停止させて動作していた前記物理プロセッサを譲り渡し、前記仮想的な休止状態が解除されるまで該仮想プロセッサを物理プロセッサへの割り当て対象から外し、その間前記物理プロセッサ上では他の仮想プロセッサを動作させるブロック待ち方法とのいずれか一方を、前記仮想プロセッサ休止時間の情報に基づいて選択する
ことを特徴とする仮想計算機モニタ。
【請求項１１】
前記ビジー待ち方法方法を選択した場合、
該仮想プロセッサの仮想プロセッサ休止解除通知フラグが真に設定されるまで繰り返し調べ、
前記仮想プロセッサ休止解除フラグが真に設定されたことを検出すると、前記仮想プロセッサの仮想的な休止状態から仮想的な通常動作状態への切り替え方法を実行して、前記仮想プロセッサ上のプログラムの実行を許可し、
前記ブロック待ち方法を選択した場合、
前記仮想プロセッサの実行を停止させて動作していた物理プロセッサを譲り渡し、
前記仮想プロセッサの仮想プロセッサ休止解除通知フラグが真に設定されるまで前記仮想プロセッサを物理プロセッサへの割り当て対象から外し、
その間前記物理プロセッサ上では他の仮想プロセッサを動作させ、
前記待ち状態の仮想プロセッサに対する仮想的な休止状態から仮想的な通常動作状態への切り替え要求を検出すると、該仮想プロセッサの仮想プロセッサ休止解除通知フラグを真に設定し、
前記仮想プロセッサを物理プロセッサへの割り当て対象に戻し、
さらに前記仮想プロセッサが選択され、物理プロセッサに割り当てられると、該仮想プロセッサの仮想プロセッサ休止解除フラグが真に設定されたことを検出して、前記仮想プロセッサの仮想的な休止状態から仮想的な通常動作状態への切り替え方法を実行して、前記仮想プロセッサ上のプログラムの実行を許可する
ことを特徴とする請求項１０記載の仮想計算機モニタ。
【請求項１２】
仮想プロセッサが該仮想プロセッサの前記仮想プロセッサ休止解除通知フラグが真にされるのを待ち始めてから、該仮想プロセッサ休止解除通知フラグが真に設定されるまでの間の時間を仮想プロセッサ休止時間とし、
仮想プロセッサの直近のＮ回の前記仮想プロセッサ休止時間の平均値を該仮想プロセッサの仮想プロセッサ休止時間の予測値とし、
１つ前の仮想プロセッサ休止時間予測値に、新たな仮想プロセッサ休止時間をＮで割った値を加算し、最も古い仮想プロセッサ休止時間をＮで割った値を除いて次回仮想プロセッサが休止するときの該仮想プロセッサの仮想プロセッサ休止時間予測値を算出し、
仮想プロセッサが仮想的な休止状態の解除を待つときに、現在時刻に該仮想プロセッサの前記プロセッサ休止時間予測値を加算して該仮想プロセッサの仮想プロセッサ休止解除時刻予測値を算出する
ことを特徴とする請求項１１記載の仮想計算機モニタ。
【請求項１３】
１つ以上の物理プロセッサを有する物理計算機を時分割して１以上の仮想プロセッサを有する仮想計算機を構築し、前記物理プロセッサの通常動作状態または休止状態の切り替えと、前記仮想プロセッサの仮想的な通常動作状態または仮想的な休止状態の切り替えを制御する仮想計算機モニタのスケジューリング方法であって、
前記仮想的な休止状態にある仮想プロセッサを、前記仮想的な休止状態を解除して通常動作状態に切り替えるスケジューリングをするとき、
前記仮想プロセッサが動作していた前記物理プロセッサに留まり前記仮想的な休止状態が解除されるまで繰り返し調べるビジー待ち方法と、前記仮想プロセッサの実行を停止させて動作していた前記物理プロセッサを譲り渡し、前記仮想的な休止状態が解除されるまで該仮想プロセッサを物理プロセッサへの割り当て対象から外し、その間前記物理プロセッサ上では他の仮想プロセッサを動作させるブロック待ち方法とのいずれか一方を、前記仮想プロセッサ休止時間の情報に基づいて選択する
ことを特徴とするスケジューリング方法。