JP5624084B2 - 計算機、仮想化機構、及びスケジューリング方法 - Google Patents

計算機、仮想化機構、及びスケジューリング方法 Download PDF

Info

Publication number
JP5624084B2
JP5624084B2 JP2012127419A JP2012127419A JP5624084B2 JP 5624084 B2 JP5624084 B2 JP 5624084B2 JP 2012127419 A JP2012127419 A JP 2012127419A JP 2012127419 A JP2012127419 A JP 2012127419A JP 5624084 B2 JP5624084 B2 JP 5624084B2
Authority
JP
Japan
Prior art keywords
physical cpu
common
physical
common process
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012127419A
Other languages
English (en)
Other versions
JP2013250949A (ja
Inventor
裕功 井上
裕功 井上
周平 松本
周平 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012127419A priority Critical patent/JP5624084B2/ja
Priority to US13/908,609 priority patent/US9189293B2/en
Publication of JP2013250949A publication Critical patent/JP2013250949A/ja
Application granted granted Critical
Publication of JP5624084B2 publication Critical patent/JP5624084B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、複数の仮想計算機を実行する物理的な計算機等に関し、複数の仮想計算機の処理に共通する共通処理のスケジューリング技術に関する。
近年、高性能な計算機のハードウェアリソースを分割してVM(Virtual Machine)と称する単位のパーティションにし、このパーティションをそれぞれ1台のサーバとして運用するサーバ仮想化が実用化されている。サーバ仮想化は、VMの動作環境によって、ハイパバイザ型とホストOS型とに分類される。前者は、複数のVMをベアマシン上に存在する特殊な管理プログラム(ハイパバイザ)上で動作させる方法である。後者は、一般的なOS上(ホストOS)で管理プログラムを一つのアプリケーションとして稼動させ、その上でVMを動作させる方法である。何れの方法に関わらずサーバ分割には、VMM(Virtual Machine Monitor)と呼ばれる制御部(仮想計算機制御部)と、その上で動作するVMが存在する。VMは、「仮想計算機」と呼ばれ、その上で動作するOSは「ゲストOS」と呼ばれる。ゲストOSの動作は、サーバ分割していないサーバ上での動作と機能的に同じものとなる。
VMMは、主として「命令エミュレーション」、「メモリ管理」、「I/O制御」、「プロセススケジューリング」の処理を司る。VMは、物理計算機のリソースを共有して使用するので、VMMが司る処理には、各VMから必要とされる共通処理が存在する。一般に、このような共通処理は、各VMの処理よりも優先して処理しなければならない。共通処理を優先して処理するためのスケジューリング方法としては、イベントドリブン方法が一般的である。イベントドリブン方法では、共通処理は通常待ち状態にあり、イベント通知を受けて起動し、要求された処理を完了すると、再び待ち状態に戻る。
VMMが司る共通処理に対するスケジューリング方法においては、全ての物理CPUがVMやVMMの処理を実行中であるRUN状態にあるときに、共通処理を実行する物理CPUをどのように選択するのかという課題がある。物理CPUの選択を正しく行わないと、VMMの共通処理が、VM処理用に割り当てられている物理CPUのリソースを長時間独占してしまい、これによってVMの処理が続行できなくなってしまう可能性がある。
この問題を解決するための方法として、特許文献1には、VMMの共通処理にタイムシェアリング方式を導入し、さらに物理CPUを選択するための情報として、VMMの共通処理がRUN状態の物理CPUで走行した回数を使用することで、全ての物理CPUで均等にVMMの共通処理を実行する方法が示されている。なお、物理CPUで処理が実行されることは、処理が物理CPUで(走る)走行するともいう。
特開2008−186136号公報
ここで、図面を参照して、発明が解決しようとする課題について説明する。
図9は、VMMプロセスのスケジューリング動作を表した概念図である。図9(a1)は、特許文献1に示された、タイムシェアリング方式を導入するとともに、VMMプロセス(VMMの共通処理)がRUN状態の物理CPUで走行した回数情報を使用して物理CPUを選択するスケジューリング動作を示している。
ここで、図9においては、逆三角形は、VVMイベント通知(要求)を示し、逆三角形の上の数字は、VMMイベントの要求番号を示し、逆三角形内部の数字は、VMM処理の長さ(処理を実行するのに必要な時間の長さ)を示す。同図では、例えば、長さ1は、タイムシェアリングにおけるタイムスライスの1つ分であることを示す。また、SWが記載された矩形は、プロセス(処理)の切り替えを示す。網掛け矩形は、VMMイベントの要求に対する処理(共通処理)を示し、網掛け矩形中の数字は、要求番号を示す。また、同図においては、前提として、計算機には、3つの物理CPU(物理CPU0、物理CPU1、物理CPU2)が存在し、3つの物理CPUは、共にVMの処理を実行中であるRUN状態であり、物理CPU0で占有的に走行しているVMが、VMMプロセス(共通処理)のイベント通知を発行するものとする。
イベント通知800(要求1)に対するVMMの共通処理は、物理CPU0で実行され、タイムシェアリングの単位時間(タイムスライス)が経過すると、物理CPU0から物理CPU1に切り替えられて実行され、その後終了する。ここで、VMMの共通処理が物理CPU0から物理CPU1に切り替えて実行される場合には、物理CPU0においてVMMの共通処理からVMの処理への切り替えが発生するとともに、物理CPU1においてVMの処理からVMMの共通処理への切り替えが行われる。イベント通知801(要求2)に対するVMMの共通処理は、RUN状態の物理CPUの中の共通処理が走行した回数が最も少ない物理CPUで走行を開始するので、物理CPU2で実行が開始される。要求2に対するVMMの共通処理は、タイムシェアリングのタイムスライスが経過すると、物理CPU2から物理CPU1に切り替えられて実行され、同様にして、物理CPU1から物理CPU2に切り替えられて実行され、物理CPU2から物理CPU0に切り替えられて実行され、その後終了する。また、イベント通知802(要求3)に対するVMMの共通処理は、RUN状態の物理CPUの中の共通処理が走行した回数が最も少ない物理CPUで走行を開始するので、物理CPU1で実行が開始される。要求3に対するVMMの共通処理は、タイムシェアリングのタイムスライスが経過すると、物理CPU1から物理CPU2に切り替えられて実行され、同様にして、物理CPU2から物理CPU0に切り替えられて実行され、その後終了する。
共通処理を実行する物理CPUを切り替えるためには、切り替え前の物理CPUと、切り替え後の物理CPUとにおいて、VMの処理とVMMの共通処理との処理を切り替えるためのコストが発生する。タイムシェアリングにおいては、物理CPUで共通処理がタイムスライスだけ走行すると、切り替えが行われることとなるが、共通処理を次に走行する物理CPUに引き継ぐための選択のコスト、および処理の切り替えのコストがその都度発生してしまう。すなわち、特許文献1の技術では、優先度の高いVMMの共通処理がタイムシェアリングで中断されるので、VMの処理とVMMの共通処理とを切り替えるためのコストや、VMMの共通処理を次の物理CPUに引き継ぐためのコストが発生し、性能面で必ずしも有効な技術とはいえない。
本発明は、上記課題に鑑みなされたものであり、その目的は、複数の物理CPUがRUN状態にある状況において、VMMの共通処理がこれら物理CPUのリソースを使用する時間の均等性を保障しつつ、VMの処理とVMMの共通処理との切り替えのコストを抑えることのできる技術を提供することにある。
計算機は、複数の物理CPUと、複数の物理CPUのいずれかが割り当てられ、所定の処理を実行する複数の仮想計算機と、複数の仮想計算機を管理する仮想計算機制御部とを有し、複数の仮想計算機から必要とされる共通処理を、仮想計算機制御部によって複数の物理CPUに実行させることができる。
仮想計算機制御部は、(A)仮想計算機の処理が実行状態である物理CPUで、共通処理を実行させる場合に、物理CPUで共通処理を実行した実行時間を測定し、物理CPU毎に、実行時間を累積した累積実行時間を管理し、(B)(A)以降に、共通処理を実行させる場合において、累積実行時間が最小である物理CPUを、共通処理を実行する物理CPUとして選択する。
複数の物理CPUがRUN状態にある状況において、VMの処理よりも優先度の高いVMMの共通処理が、少ないコストで、複数の物理CPUで均等に実行される。これにより、物理CPUに割り当てられたVMの処理が長時間走行できなくなることを防ぐことができ、VMMの処理に関わる余分なコストを削減できる。
図1は、実施形態に係る計算機の構成図である。 図2は、実施形態に係るプロセス制御ブロックの構成図である。 図3は、実施形態に係るスケジューリング制御テーブルの構成図である。 図4は、実施形態に係るプロセススケジューリングのCPU占有モードを説明する図である。 図5は、実施形態に係るプロセススケジューリングのCPU共有モードを説明する図である。 図6は、実施形態に係るVMプロセスのVMM内部処理を表すフローチャートである。 図7は、実施形態に係るイベント通知処理を表すフローチャートである。 図8は、実施形態に係るイベント通知先VMMプロセスの処理を表すフローチャートである。 図9は、VMMプロセスのスケジューリング動作を表した概念図である。
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以下の説明では、「aaaテーブル」、「aaaブロック」の表現にて各種情報を説明することがあるが、各種情報は、テーブル、ブロック以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「aaaテーブル」、「aaaブロック」を「aaa情報」と呼ぶことができる。
また、以後の説明では、プログラム(又はその一部の機能部)を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えば物理CPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)、や通信制御装置(例えばポート)を用いながら行うため、処理の主語がプロセッサとされても良い。また、プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有するデバイス(例えば、計算機等)が行う処理としても良い。また、プログラムの一部又は全ては専用ハードウェアによって実現されても良い。また、コンピュータプログラムは、プログラムソースから各デバイスにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
まず、実施形態の概要について説明する。
実施形態においては、VMMの共通処理を走行させるための物理CPUのスケジューリング(選択)方法として、RUN状態の物理CPUで走行した回数ではなく、RUN状態の物理CPUで走行した累積の走行時間(累積奪い取り走行時間)を使用する。これにより、複数の物理CPUがRUN状態にある計算機において、VMの処理よりも優先度の高いVMMの共通処理が、少ないコストで、複数の物理CPUで均等に実行される。これにより、物理CPUに割り当てられたVMの処理が長時間走行できなくなることを防ぐことができ、VMMの処理に関わるコストを削減できる。
次に、更なる課題について図9(b1)を用いて説明する。
図9(b1)は、図9(a1)に示すスケジューリング動作に対して、物理CPUの選択、および処理の切り替えのコストを抑えるために、タイムシェアリング方式を用いない場合におけるスケジューリング動作を示している。なお、VMMの共通処理が物理CPUのリソースを使用する時間の均等性の確保するために、VMMの共通処理がRUN状態の物理CPUで走行した累積時間(累積奪い取り走行時間)が最も小さい物理CPUを、VMMの共通処理を実行する物理CPUとして選択するものとする。
イベント通知900(要求1)に対するVMMの共通処理は、物理CPU0で実行が開始され、処理が終了するまで継続して実行される。イベント通知901(要求2)に対するVMMの共通処理は、物理CPU1で実行が開始され、処理が終了するまで継続して実行される。イベント通知902(要求3)に対するVMMの共通処理は、物理CPU2で実行が開始され、処理が終了するまで継続して実行される。イベント通知903(要求4)に対するVMMの共通処理は、VMMの共通処理がRUN状態の物理CPUで走行した累積時間が最も小さい物理CPU0で実行が開始され、共通処理が終了するまで継続して実行される。
ここで、VMがイベント通知904(要求5)を発行すべきタイミングにおいて、物理CPU0では要求4に対するVMMの共通処理が実行中であるという状態が発生し得る。このとき、イベント通知904はVMが物理CPU0で再び走行するタイミングまで発行が遅れてしまい、結果的にイベントが処理されるまでの時間も間延びしてしまう。すなわち、VMMの共通処理がVMの処理のイベント通知を受けて起動する場合、VMMの共通処理がVMの処理を妨げることで、次のVMMの共通処理の要求の起動が遅れてしまい、性能の低下を招くこととなる。
そこで、本実施形態では、VMMの共通処理に対して、シリアル属性又はパラレル属性をそれぞれに付与し、属性によってVMMの共通処理を走行させるための物理CPU選択方法を変更するようにする。ここで、シリアル属性とは、通知元プロセスから一度のみイベント通知が発行されるVMMの共通処理や、定期的にタイマで起動されるVMMの共通処理であることを示し、パラレル属性とは、VMから連続してイベント通知が発行されるVMMの共通処理であることを示す。本実施形態では、パラレル属性のVMMの共通処理については、イベント通知を行うVMを実行する物理CPUと異なる物理CPUを当該共通処理を実行する物理CPUとして選択する。これにより、VMからのイベント通知を連続的に受けて起動されるVMMの共通処理について、複数の物理CPUでイベント通知と、VMMの共通処理とをパラレルに実行することができ、イベント通知の発行および共通処理の起動に遅れが生じないようにでき、性能の向上を図ることができる。
図1は、実施形態に係る計算機の構成図である。
計算機(物理計算機)400は、ハードウェア資源として、複数の物理CPU410〜413、メモリ420、I/Oデバイス430、及び外部記憶ディスク440を有する。物理CPU410〜413は、各種処理を実行する。メモリ420は、物理CPU410〜413に実行される各種プログラムや、各種プログラムの実行に使用されるデータを記憶する。メモリ420は、例えば、VMM300を記憶する。I/Oデバイス430は、情報を入力するためのキーボード、マウス等の入力デバイスと、各種情報を出力するためのディスプレイ等の出力デバイスとを含む。外部記憶ディスク440は、各種データを記憶する。
VMM300は、計算機400上で動作する、すなわち、物理CPU410〜413により実行されるソフトウェアである。VMM300は、物理計算機400のハードウェア資源を論理的に分割してVM100、200を構築し、それらを管理・制御する機能をもつ。VMM300は、主に命令エミュレーション部310、メモリ管理部320、I/O制御部330、プロセススケジューリング制御部340といった機能部を有する。これらの機能部を物理CPU410〜413が実行することによって、論理CPU120、121、220、221、VM用の論理メモリ130、230、論理I/Oデバイス140、141等のVM100、200の構成要素が構築される。これにより、各VM100、200上でゲストOS110、210が動作できる。VMM300は、いわゆる仮想化機構である。
ここで、物理CPUの論理的な分割とは、一つもしくは複数の物理CPUを、複数の論理CPUで共有し、その複数の論理CPU間で共有する物理CPUの使用を切り替えることである。
VMM300は、各論理CPU120、121、220、221、およびVMM300の共通処理をそれぞれ一つのプロセスとして扱い、このプロセス単位で、当該プロセスに物理CPUを割り当てるスケジューリングを行う。ここで、プロセスとは、物理CPUがプログラムを実行する処理単位である。このプロセスのスケジューリングを実現するために、VMM300のプロセススケジューリング制御部340は、プロセスごとにプロセス制御ブロック350、351、・・・を有するとともに、物理CPUごとに、スケジューリング制御テーブル360、361、・・・を有する。プロセス制御ブロック350、351、・・・及びスケジューリング制御テーブル360、361、・・・は、メモリ420におけるVMM用に確保されている領域に格納される。プロセススケジューリング処理部370は、これらのプロセス制御ブロック及びプロセススケジューリング制御テーブルを用いてプロセスのスケジューリングを制御する。
図2は、実施形態に係るプロセス制御ブロックの構成図である。
プロセス制御ブロック350、351、・・・は、それぞれ、プログラムを実行する処理単位であるプロセスに対応し、プロセスを具現化するデータ構造である。プロセスは、プログラムの実行に対して、アドレス空間と物理CPUとを提供する。プロセスには、仮想計算機のプログラムを実行し、VMの仮想的なCPUを具体化する論理CPUプロセス(350〜353)と、VMM300の共通処理を行うVMMプロセス(354〜356)とがある(図4及び図5参照)。
ここでは、プロセス制御ブロック350について説明するが、他のプロセス制御ブロック351等も同様な構成である。プロセス制御ブロック350は、プロセス識別情報350−1と、VMMイベント通知フラグ350−2と、動作状態350−3と、IDLEスケジュールフラグ350−4と、走行開始時刻350−5と、1以上の累積奪い取り走行時間350−6−0、350−6−1、・・・とのフィールドを含む。累積奪い取り走行時間350−6−0、350−6−1、・・・は、物理CPU毎に用意される。
プロセス識別情報350−1は、プロセスの種別を表す。プロセスの種別とは、大きくは、VMの論理CPUプロセスであるか、VMM300の共通処理を行うVMMプロセスであるかを示す種別である。VMMプロセスについては、更に、そのプロセスの動作の属性によって、シリアル属性と、パラレル属性とのいずれかの種別に分類される。
シリアル属性とパラレル属性とは、イベント通知に対し、このVMMプロセスが、通知元プロセスを実行する物理CPUとは別の物理CPUで同時に(並行して)走行する動作となるか否かを示す属性である。シリアル属性は、通知元プロセスから一度のみイベント通知が発行されるプロセスや、通知元プロセスが存在せずに、定期的にタイマで起動されるプロセスが該当する属性である。パラレル属性は、通知元プロセスから連続してイベント通知が発行されるプロセスが該当する属性である。例えば、VMの論理CPUプロセスがVGA描画のI/O命令を受けて、物理VGA描画処理を行うVMMプロセスに対して描画処理のイベント通知を発行する場合における、当該VMMプロセスがパラレル属性に該当する。
VMMイベント通知フラグ350−2は、VMMプロセスに対して、VMM処理要求のイベント通知がされたか否かを表す。
動作状態350−3は、プロセス制御ブロック350に対応するプロセスが、いずれかの物理CPU上で実行中であるか否かを表す。動作状態350−3は、プロセスがいずれかの物理CPU上で実行中である、すなわち、プロセスがRUN状態である場合には、RUNとなり、いずれの物理CPUでも実行中でない場合には、IDLEとなる。
IDLEスケジュールフラグ350−4は、プロセス制御ブロック350に対応するプロセスがIDLE状態の物理CPUにスケジュール(割り当て)されたか否かを表す。
走行開始時刻350−5は、プロセス制御ブロック350に対応するプロセスがスケジュールされて、その物理CPUで走行を開始した時刻を表す。この走行開始時刻350−5は、後述するように、プロセスの走行時間を算出する目的で使用される。
累積奪い取り走行時間350−6−0、350−6−1は、物理CPUごとに対するデータであり、プロセスがRUN状態の物理CPUを奪って走行した場合における、走行の開始から終了までの走行時間を、所定の時点から累積したものである。これら累積奪い取り走行時間350−6−0、350−6−1を参照することにより、物理CPU毎の当該プロセスがRUN状態の物理CPUを奪って走行した累積奪い取り走行時間を把握することができる。
図3は、実施形態に係るスケジューリング制御テーブルの構成図である。
スケジューリング制御テーブル360、361、・・・は、物理CPUごとに設けられ、物理CPUのスケジュールに関する情報を記憶する。ここでは、スケジューリング制御テーブル360について説明するが、他のスケジューリング制御テーブル361等も同様な構成である。
スケジューリングモード360−1は、VMの論理CPUプロセスを物理CPUに対してスケジュールするためのモードを表す。モードとしては、後述するCPU占有モードと、CPU共有モードとがある。
動作状態360−2は、物理CPU上でプロセスが実行中か否かを表す。物理CPUがプロセスを実行中である場合には、RUNとなり、物理CPUがプロセスを実行中でない場合には、IDLEとなる。スケジューリング要求フラグ360−3は、物理CPUに対して、プロセスを切り替えるための要求がセットされているか否かを表す。
次に、CPU占有モードと、CPU共有モードとを説明する。
図4は、実施形態に係るプロセススケジューリングのCPU占有モードを説明する図である。図5は、実施形態に係るプロセススケジューリングのCPU共有モードを説明する図である。
図4及び図5の説明において、VM1の論理CPU120、121に対応するプロセス350及び351は、CPU占有モードでスケジュールされるように設定され、VM2の論理CPU220、221に対応するプロセス352及び353は、CPU共有モードでスケジュールされるように設定されている。
CPU占有モードでスケジュールを行う場合には、論理CPUプロセスが、特定の一つの物理CPUに占有的にスケジュールされる。具体的には、図4に示すように、CPU占有モードのVM1の論理CPUプロセス350、351は、それぞれ物理CPU410、411に占有的にスケジュールされる。ただし、CPU占有モードでスケジュールされる場合であっても、VMMの共通処理を行うVMMプロセス354〜356は、物理CPUの占有状態に関係なく、論理CPUプロセスより優先的に物理CPU410、411にスケジュールされる。
一方、CPU共有モードでスケジュールを行う場合には、論理CPUプロセスは、CPU占有モードの論理CPUが排他的に使用する物理CPUを除く、物理CPUのうちのいずれか一つの物理CPUにスケジュールされる。ここで、図5においては、物理CPU410、411がCPU占有モードで使用され、物理CPU412、413がCPU共有モードとして使用されている。したがって、CPU共有モードのVM2の論理CPUプロセス352、353は、物理CPU412、413に動的にスケジュールされる。なお、CPU占有モードの場合と同じく、VMMの共通処理を行うVMMプロセス354〜356は、論理CPUプロセスより優先的に物理CPUにスケジュールされる。
次に、実施形態に係る計算機の処理動作について説明する。
図6は、実施形態に係るVMプロセスのVMM内部処理を表すフローチャートである。
VM(100又は200)の論理CPU上のゲストOSが、ハードウェアリソースを制御するような特権命令を発行した場合、物理CPU(410〜413のいずれか)の仮想化支援機構により、VMM300に制御が移る(VM−Exit)(ステップ500)。
VMM300の命令エミュレーション部310は、VM−Exitの要因を解析し(ステップ510)、その要因に対応する処理を実行する(ステップ520、530〜532)。要因に対応する処理とは、例えば、要因が論理CPUの動作を休止するHALT命令である場合(HALT命令)には、プロセススケジューリング処理部370が、プロセス切り替え処理を呼び出すことで、論理CPUプロセスのRUN状態を解除する(ステップ530)。また、例えば、要因がVGA描画のI/O命令である場合(VGA描画I/O命令)には、命令エミュレーション部310が物理VGA描画処理を行うVMMプロセスに対して描画処理のイベント通知を発行する(ステップ531)。
VM−Exit要因に対応する処理を終えると、プロセススケジューリング処理部370は、論理CPUプロセスが走行中の物理CPUに対して、スケジューリング制御テーブル360、361等のスケジューリング要求フラグ(360−3等)がオンであるか否かを確認し(ステップ540)、スケジューリング要求フラグ(360−3等)がオンである場合(ステップ540でY)には、スケジューリング要求フラグをクリアにして(ステップ550)、プロセス切り替え処理を呼び出し(ステップ560)、処理をステップ570に進める。一方、スケジューリング要求フラグがオフである場合(ステップ540でN)は、プロセススケジューリング処理部370は、何もせずに、処理をステップS570に進める。ここで、スケジューリング要求フラグがオンとなるのは、例えば、イベント通知処理(図7参照)のステップ660で、VMMプロセスを動作させる物理CPUとして選択された場合である。
ステップ570では、VMM300が、VMに制御を移す(VM−Entry)。
図7は、実施形態に係るイベント通知処理を表すフローチャートである。図7はVMM共通処理に対するイベント通知を発行するプロセスにおけるイベント通知処理を表している。例えば、図6のステップ531における物理VGAの描画処理のイベント通知を発行する処理がこのイベント通知処理に該当する。
プロセススケジューリング処理部370は、イベント通知先のVMMプロセス(VMMの共通処理のプロセス)に対応するアクセス制御ブロック350の動作状態350−3を参照し、動作状態350−3がRUN状態であるか否かを判定する(ステップ610)。この結果、動作状態350−3がRUN状態である場合(ステップ610でY)には、現在いずれかの物理CPUでVMMプロセスが走行中であるので、引き続きその物理CPU上で、イベント通知先のVVMプロセスの動作を継続できるように、イベント通知先のVMMプロセスに対応するアクセス制御ブロック350のVMMイベント通知フラグ350−2をオンにセットし(ステップ670)、イベント通知処理を終了する。
一方、動作状態350−3がRUN状態でなかった場合(ステップ610でN)には、プロセススケジューリング処理部370は、イベント通知先のVMMプロセスを走行させる物理CPUを選択する処理に移行する。すなわち、プロセススケジューリング処理部370は、全ての物理CPUのスケジューリング制御テーブル360、361、・・・から、スケジューリングモード(360−1等)と、動作状態(360−2等)とを参照し、動作状態がIDLE状態であり、且つ、CPU共有モードである物理CPUがあるか否かを判定する(ステップ620)。
この判定の結果、IDLE状態であり、且つCPU共有モードである物理CPUがある場合(ステップ620でY)には、プロセススケジューリング処理部370は、イベント通知先のVMMプロセスを走行させる物理CPUとして、IDLE状態であり、且つCPU共有モードの物理CPUの中から1つの物理CPUを選択し(ステップ621)、処理をステップ660に進める。
一方、IDLE状態であり、且つCPU共有モードである物理CPUがない場合(ステップ620でN)には、プロセススケジューリング処理部370は、IDLE状態であり、且つCPU占有モードである物理CPUがあるか否かを判定する(ステップ630)。
この判定の結果、IDLE状態であり、且つCPU占有モードの物理CPUがある場合(ステップ630でY)には、プロセススケジューリング処理部370は、イベント通知先のVMMプロセスを走行させる物理CPUとして、IDLE状態であり、且つCPU占有モードの物理CPUの中から1つの物理CPUを選択し(ステップ631)、処理をステップ660に進める。
ここで、CPU占有モードの物理CPUよりもCPU共有モードの物理CPUを、VMMプロセスを走行させる物理CPUとして優先して選択するのは、占有モードの物理CPU上でイベント通知先のVMMプロセスが走行することで、その物理CPUに占有的に割り付けられたVMの走行が妨げられないようにするためである。
一方、IDLE状態であり、且つCPU占有モードの物理CPUがない場合、すなわち、IDLE状態の物理CPUがない場合(ステップ630でN)には、RUN状態の物理CPUのいずれかからVMMプロセスを走行させる物理CPUを選択する必要があるので、プロセススケジューリング処理部370は、イベント通知先のVMMプロセスに対応するプロセス制御ブロック(350等)のプロセス識別情報(350−1等)を参照し、プロセス識別情報がシリアル属性であるか否かを判定する(ステップ640)。
この結果、プロセス識別情報がシリアル属性の場合(ステップ640でY)には、イベント通知が連続して発生する可能性がなく、あえて他の物理CPUにVMMの共通処理を依頼する必要はないので、プロセススケジューリング処理部370は、VMMプロセスにイベント通知を発行せずに、要求元プロセスがVMMの共通処理を実行するようにし(ステップ641)、処理を終了する(ステップ642)。これにより、VMMの共通処理を他の物理CPUに実行させることにより発生するプロセス切り替えのコストを削減できる。
一方、プロセス識別情報がパラレル属性の場合(ステップ640でN)には、プロセススケジューリング処理部370は、イベント通知先のVMMプロセスに対応するプロセス制御ブロック(350等)の各物理CPUに対する累積奪い取り走行時間(例えば、350−6−0、350−6−1等)を参照し、イベント通知先のVMMプロセスを走行させる物理CPUとして、累積奪い取り走行時間が最小である物理CPUを選択し(ステップ650)、処理をステップ660に進める。
ステップ660では、ここまでにVMMプロセスを走行させる物理CPUを選択しているので、プロセススケジューリング処理部370は、選択した物理CPUに対応するスケジューリング制御テーブル(360、361・・・のいずれか)のスケジューリング要求フラグ(360−3等)をオンにセットする。これにより、図6のステップ560で、プロセス切り替え処理が呼び出されることとなり、VMMプロセスが選択された物理CPUで走行を開始することとなる。
次いで、プロセススケジューリング処理部370は、イベント通知先のVMMプロセスに対応するプロセス制御ブロック(350等)のVMMイベント通知フラグ(350−2等)をオンにセットし(ステップ670)、イベント通知処理を終了する(ステップ680)。
図8は、実施形態に係るイベント通知先VMMプロセスにおける処理を表すフローチャートである。
図6のステップ530、ステップ560におけるプロセス切り替え処理の呼び出しによって、VMMプロセスが選択されて物理CPUで走行を開始する(700)と、プロセススケジューリング処理部370は、VMMプロセスに対応するプロセス制御ブロック(350等、以下、この処理では、350であるとして説明する)の走行開始時刻350−5に、その時点の現在時刻をセットする(ステップ710)。
次いで、プロセススケジューリング処理部370は、VMMプロセスが走行を開始した物理CPUのスケジューリング制御テーブル(360、361、・・のいずれか)の動作状態(360−2)を参照して、動作状態がIDLE状態であるか否かを判定し(ステップ720)、この判定の結果、動作状態がIDLE状態である場合(ステップ720でY)には、VMMプロセスに対応するプロセス制御ブロック350のIDLEスケジュールフラグ350−4をオンにセットする(ステップ721)、一方、動作状態がIDLE状態でない場合(ステップ720でN)には、プロセス制御ブロック350のIDLEスケジュールフラグ350−4をクリアする(ステップ722)。
次に、VMMプロセスは、自身のプロセス制御ブロック350のVMMイベント通知フラグ350−2がオンにセットされているか否かを判定し(ステップ730)、判定の結果、VMMイベント通知フラグ350−2がオンにセットされている場合(ステップ730でY)には、VMMイベント通知フラグ350−2をクリアして(ステップ731)、イベントに対応する処理を実行し(ステップ732)、ステップ730に処理を進める。ここで、VMMプロセスがパラレル属性である場合に、イベントに対応する処理を実行している間に、図7のステップ660の処理が実行されて、自身のプロセス制御ブロック350のVMMイベント通知フラグ350−2が再びオンにセットされることがある。したがって、VMMプロセスは、ステップ730の判定の結果、VMMイベント通知フラグ350−2がオンにセットされている場合には、ステップ731、732を繰り返し実行することとなる。
一方、ステップ730の判定の結果、VMMイベント通知フラグ350−2がオンにセットされていない場合(ステップ730でN)には、プロセススケジューリング処理部370は、VMMプロセスのプロセス制御ブロック350の走行開始時刻350−5と、現在時刻とから、VMMプロセスの走行時間を算出する(ステップ740)。
次いで、プロセススケジューリング処理部370は、VMMプロセスのプロセス制御ブロック350のIDLEスケジュールフラグ350−4を参照し、IDLEスケジュールフラグ350−4がオンであるか否かを判定し(ステップ750)、IDLEスケジュールフラグ350−4がオンの場合(ステップ750でY)には、VMMプロセスがRUN状態であった物理CPUで走行していないので、そのまま処理を終える(ステップ770)。一方、IDLEスケジュールフラグ350−4がオフの場合(ステップ750でN)には、VMMプロセスがRUN状態であった物理CPUで走行したとして、ステップ740で算出した走行時間を、走行した物理CPUに対応する累積奪い取り走行時間(350−6−0、350−6−1、・・のいずれか)に加算し(ステップ760)、処理を終える(ステップ770)。これにより、VMMプロセスがRUN状態であった物理CPUで走行した場合における走行時間を適切に累積奪い取り走行時間に加算することができる。
次に、本実施形態による効果を、図9を参照して説明する。
図9(a2)は、図9(a1)と同様にイベント要求が発生する場合において、本実施形態による、VMMの共通処理がRUN状態の物理CPUで走行した累積奪い取り走行時間に基づいて物理CPUを選択するスケジューリング動作を行った場合の例を示す。また、図9(b2)は、図9(b1)と同じイベント要求が発生する場合において、本実施形態による、VMMの共通処理の属性を利用して、VMMの共通処理が走行する物理CPUを選択するスケジューリング動作を行った場合の例を示す。
図9(a1)に示した、タイムシェアリング方式とVMMの共通処理がRUN状態の物理CPUで走行した回数情報を使用したスケジューリング動作では、物理CPUリソースを使用する時間の均等性は確保されるが、VMの処理とVMMの共通処理を切り替えるためのコストと、VMMの共通処理を次の物理CPUに引き継ぐためのコストが発生することを既に述べた。
これに対して、本実施形態に係るスケジューリング動作は、図9(a2)に示すようになる。
すなわち、イベント通知810(要求1)に対するVMMの共通処理は、物理CPU0で実行され、共通処理が終了するまで継続して実行される。また、イベント通知811(要求2)に対するVMMの共通処理は、累積奪い取り走行時間が最も小さい物理CPUで走行を開始するので、物理CPU1で実行が開始され、共通処理が終了するまで継続して実行される。また、また、イベント通知812(要求3)に対するVMMの共通処理は、累積奪い取り走行時間が最も小さい物理CPUで走行を開始するので、物理CPU2で実行が開始され、共通処理が終了するまで継続して実行される。また、また、イベント通知813(要求4)に対するVMMの共通処理は、累積奪い取り走行時間が最も少ない物理CPUで走行を開始するので、物理CPU0で実行が開始され、共通処理が終了するまで継続して実行される。また、イベント通知814(要求5)に対するVMMの共通処理は、累積奪い取り走行時間が最も少ない物理CPUで走行を開始するので、物理CPU2で実行が開始され、共通処理が終了するまで継続して実行される。
このように、本実施形態に係るスケジューリング動作によると、イベント通知810〜814を受けたVMMの共通処理は、累積奪い取り走行時間が最も少ない物理CPUで走行を開始し、処理が完了するまで走行を継続する。これにより図9(a1)で問題となるコストが削減される。なお、図9(a1)及び図9(a2)を比較すると、図9(a1)に示すスケジューリング動作の方が、物理CPUのリソースを使用する時間の均等性の観点では優れているように見えるが、これは、これら図が短い時間範囲しか示していないためであり、より長い時間範囲でみると、図9(a2)のスケジューリング動作によっても、図9(a1)と同等の効果を有する。
図9(b1)に示した、スケジューリング動作では、VMがイベント通知904を発行するタイミングで、物理CPU0でVMMの共通処理が実行中であるために、イベント通知の発行と、処理とが遅れてしまう状況が発生することを既に述べた。
これに対して、本実施形態に係るスケジューリング動作は、図9(b2)に示すようになる。
ここで、本実施形態では、イベント通知910〜912で要求されるVMMの共通処理のプロセスに対しては、シリアル属性が付加され、イベント通知913〜915で要求されるVMMの共通処理のプロセスに対しては、イベント通知が連続して発生するのでパラレル属性が付加されて管理される。
イベント通知910(要求1)に対するVMMの共通処理は、シリアル属性を持っているので、物理CPU0で実行され、共通処理が終了するまで継続して実行される。また、イベント通知911(要求2)に対するVMMの共通処理は、シリアル属性を持っているので、物理CPUを変更することなく、実行され、共通処理が終了するまで継続して実行される。また、イベント通知912(要求3)に対するVMMの共通処理は、シリアル属性を持っているので、物理CPUを変更することなく、実行され、共通処理が終了するまで継続して実行される。
その後、イベント通知913(要求4)に対するVMMの共通処理は、パラレル属性を持っているので、累積奪い取り走行時間が最も小さい物理CPUで走行を開始するので、物理CPU1で実行が開始され、共通処理が終了するまで継続して実行される。ここで、イベント通知914(要求5)を発行する物理CPU0は、VMMの共通処理を実行していないので、イベント通知914を遅滞なく発行することができる。イベント通知914(要求5)に対するVMMの共通処理は、その時点において物理CPU1で要求4に対応するVMMの共通処理が走行中であるので、要求4に対応する共通処理が終了した後、引き続きその物理CPU1上で走行を開始することとなる。さらに、イベント通知915(要求6)を発行する物理CPU0は、VMMの共通処理を実行していないので、イベント通知915を遅滞なく発行することができる。イベント通知915(要求6)に対するVMMの共通処理は、その時点において、物理CPU1で要求5に対応するVMMの共通処理が走行中であるので、要求5に対応する共通処理が終了した後、引き続きその物理CPU1上で走行を開始することとなる。
このように、本実施形態に係るスケジューリング動作によると、イベント通知913〜915のようにパラレル属性を持ったVMM共通処理に対しては、必ずイベント通知元とは別の物理CPUが選択され、イベントの発行とイベントに対する処理との並列実行が可能となる。また、イベント通知910〜912のようなシリアル属性を持ったVMMの共通処理に対しては、イベント通知元の物理CPUで処理が行われるので、VMの処理とVMM共通処理との切り替えのコストを削減することができる。
上記した実施形態によると、VMMの共通処理に関わるコストを削減することができる。特にネットワークやVGAなどのVMからのイベント通知を受けて起動し、パラレルで実行されるVMMの共通処理に対して、物理CPUのリソースの効率的な運用による性能の向上が期待でき、計算機の適応範囲の拡大が可能となる。
以上、実施形態を説明したが、本発明は、これらの実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
100,200 仮想計算機(VM)、110,210 ゲストオペレーティングシステム(OS)、120,121,220,221 論理CPU、130,230 論理メモリ、140,141 論理I/Oデバイス、300 仮想マシンモニタ(VMM)、310 命令エミュレーション部、320 メモリ管理部、330 I/O制御部、340 プロセススケジューリング制御部、350,351 プロセス制御ブロック、360,361 スケジューリング制御テーブル、370 プロセススケジューリング処理部、400 物理計算機、410〜413 物理CPU、420 物理メモリ、430 物理I/Oデバイス、440 外部記憶ディスク。

Claims (15)

  1. 複数の物理CPUと、前記複数の物理CPUのいずれかが割り当てられ、所定の処理を実行する複数の仮想計算機と、前記複数の仮想計算機を管理する仮想計算機制御部とを有し、複数の前記仮想計算機から必要とされる共通処理を、前記仮想計算機制御部によって前記複数の物理CPUに実行させることができる、計算機であって、
    前記仮想計算機制御部は、
    (A)前記仮想計算機の処理が実行状態である前記物理CPUで、前記共通処理を実行させる場合に、前記物理CPUで前記共通処理を実行した実行時間を測定し、前記物理CPU毎に、前記実行時間を累積した累積実行時間を管理し、
    (B)前記(A)以降に、前記共通処理を実行させる場合において、前記累積実行時間が最小である物理CPUを、前記共通処理を実行する物理CPUとして選択する
    計算機。
  2. 前記仮想計算機制御部は、
    前記共通処理に対して、前記共通処理が前記仮想計算機の処理から連続して要求される処理であるか、連続して要求されない処理であるかを示す識別情報を対応付けて管理し、
    (C)前記共通処理を実行させる場合において、前記共通処理に対応付けられた前記識別情報が、前記共通処理が前記仮想計算機の処理から連続して要求される処理であることを示している場合に、前記(B)を行う
    請求項1に記載の計算機。
  3. 前記仮想計算機制御部は、
    (D)前記共通処理を実行させる場合において、前記共通処理に対応付けられた前記識別情報が、前記共通処理が前記仮想計算機の処理から連続して要求されない処理であることを示している場合に、前記共通処理を要求した前記仮想計算機の処理を実行している物理CPUを、前記共通処理を実行する物理CPUとして選択する
    請求項2に記載の計算機。
  4. 前記仮想計算機制御部は、
    前記共通処理を実行させる場合において、前記共通処理がいずれかの物理CPUで実行中ではなく、且つ前記仮想計算機の処理を実行していない物理CPUが存在しない場合に、前記共通処理の前記識別情報に基づいて、前記(C)又は前記(D)を実行する
    請求項3に記載の計算機。
  5. 前記仮想計算機制御部は、
    前記共通処理を実行する物理CPUとして選択した前記物理CPUに、前記共通処理を実行させる
    請求項4に記載の計算機。
  6. 前記仮想計算機制御部は、
    前記共通処理を実行する物理CPUとして選択した前記物理CPUが、前記仮想計算機の処理を実行中であった場合に、前記物理CPUで前記共通処理を実行した実行時間を測定し、測定した前記実行時間を、前記物理CPUの前記累積実行時間に加算する
    請求項5に記載の計算機。
  7. 前記物理CPUは、1つの仮想記憶計算機が占有して利用できる占有モードと、複数の前記仮想計算機が共有して利用できる共有モードとのいずれかのモードに設定されており、
    前記仮想計算機制御部は、
    前記占有モードであって、前記仮想計算機の処理を実行していない物理CPUと、前記共有モードであって、前記仮想計算機の処理を実行していない物理CPUとが存在する場合に、前記共有モードであって、前記仮想計算機の処理を実行していない物理CPUを優先して、前記共通処理を実行する物理CPUとして選択する
    請求項6に記載の計算機。
  8. 複数の物理CPUと、前記複数の物理CPUのいずれかが割り当てられ、所定の処理を実行する複数の仮想計算機とを有し、複数の前記仮想計算機から必要とされる共通処理を前記複数の物理CPUに実行させることができる計算機に、
    (A)前記仮想計算機の処理が実行状態である前記物理CPUで、前記共通処理を実行させる場合に、前記物理CPUで前記共通処理を実行した実行時間を測定させ、前記物理CPU毎に、前記実行時間を累積した累積実行時間を管理させ、
    (B)前記(A)以降に、前記共通処理を実行させる場合において、前記累積実行時間が最小である物理CPUを、前記共通処理を実行する物理CPUとして選択させる
    コンピュータプログラム
  9. 前記計算機に、
    前記共通処理に対して、前記共通処理が前記仮想計算機の処理から連続して要求される処理であるか、連続して要求されない処理であるかを示す識別情報を対応付けて管理させ、
    (C)前記共通処理を実行させる場合において、前記共通処理に対応付けられた前記識別情報が、前記共通処理が前記仮想計算機の処理から連続して要求される処理であることを示している場合に、前記(B)を行わせる
    請求項8に記載のコンピュータプログラム
  10. 前記計算機に、
    前記共通処理を実行させる場合において、前記共通処理がいずれかの物理CPUで実行中ではなく、且つ前記仮想計算機の処理を実行していない物理CPUが存在しない場合に、前記共通処理の前記識別情報に基づいて、前記(C)又は前記(D)を実行させる
    請求項9に記載のコンピュータプログラム
  11. 前記計算機に、
    前記共通処理を実行する物理CPUとして選択された前記物理CPUが、前記仮想計算機の処理を実行中であった場合に、前記物理CPUで前記共通処理を実行した実行時間を測定させ、測定した前記実行時間を、前記物理CPUの前記累積実行時間に加算させる
    請求項10に記載のコンピュータプログラム
  12. 複数の物理CPUと、前記複数の物理CPUのいずれかが割り当てられ、所定の処理を実行する複数の仮想計算機とを有し、複数の前記仮想計算機から必要とされる共通処理を前記複数の物理CPUに実行させることができる、計算機におけるスケジューリング方法であって、
    (A)前記仮想計算機の処理が実行状態である前記物理CPUで、前記共通処理を実行させる場合に、前記物理CPUで前記共通処理を実行した実行時間を測定し、前記物理CPU毎に、前記実行時間を累積した累積実行時間を管理し、
    (B)前記(A)以降に、前記共通処理を実行させる場合において、前記累積実行時間が最小である物理CPUを、前記共通処理を実行する物理CPUとして選択する
    スケジューリング方法。
  13. 前記共通処理に対して、前記共通処理が前記仮想計算機の処理から連続して要求される処理であるか、連続して要求されない処理であるかを示す識別情報を対応付けて管理し、
    (C)前記共通処理を実行させる場合において、前記共通処理に対応付けられた前記識別情報が、前記共通処理が前記仮想計算機の処理から連続して要求される処理であることを示している場合に、前記(B)を行う
    請求項12に記載のスケジューリング方法。
  14. 前記共通処理を実行させる場合において、前記共通処理がいずれかの物理CPUで実行中ではなく、且つ前記仮想計算機の処理を実行していない物理CPUが存在しない場合に、前記共通処理の前記識別情報に基づいて、前記(C)又は前記(D)を実行する
    請求項13に記載のスケジューリング方法。
  15. 前記共通処理を実行する物理CPUとして選択した前記物理CPUが、前記仮想計算機の処理を実行中であった場合に、前記物理CPUで前記共通処理を実行した実行時間を測定し、測定した前記実行時間を、前記物理CPUの前記累積実行時間に加算する
    請求項14に記載のスケジューリング方法。
JP2012127419A 2012-06-04 2012-06-04 計算機、仮想化機構、及びスケジューリング方法 Expired - Fee Related JP5624084B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012127419A JP5624084B2 (ja) 2012-06-04 2012-06-04 計算機、仮想化機構、及びスケジューリング方法
US13/908,609 US9189293B2 (en) 2012-06-04 2013-06-03 Computer, virtualization mechanism, and scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012127419A JP5624084B2 (ja) 2012-06-04 2012-06-04 計算機、仮想化機構、及びスケジューリング方法

Publications (2)

Publication Number Publication Date
JP2013250949A JP2013250949A (ja) 2013-12-12
JP5624084B2 true JP5624084B2 (ja) 2014-11-12

Family

ID=49775581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012127419A Expired - Fee Related JP5624084B2 (ja) 2012-06-04 2012-06-04 計算機、仮想化機構、及びスケジューリング方法

Country Status (2)

Country Link
US (1) US9189293B2 (ja)
JP (1) JP5624084B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015031272A1 (en) * 2013-08-26 2015-03-05 Vmware, Inc. Cpu scheduler configured to support latency sensitive virtual machines
US9076017B2 (en) * 2013-11-27 2015-07-07 Cisco Technology, Inc. Hardware virtualization module for exclusive controlled access to CPU
JP6190471B2 (ja) * 2013-12-27 2017-08-30 株式会社日立製作所 パーティション実行制御装置、パーティション実行制御方法及び計算機に読み込み可能な記憶媒体
US11249777B2 (en) * 2014-07-10 2022-02-15 Red Hat Israel, Ltd. Virtual machine context management
US10310890B2 (en) * 2014-11-28 2019-06-04 Hitachi, Ltd. Control method for virtual machine system, and virtual machine system
US9411629B1 (en) * 2015-03-10 2016-08-09 International Business Machines Corporation Reducing virtual machine pre-emption in virtualized environment
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
CN109960565B (zh) * 2017-12-25 2021-06-04 航天信息股份有限公司 云平台、基于云平台的虚拟机调度方法及装置
JP7151530B2 (ja) * 2019-02-13 2022-10-12 日本電信電話株式会社 サーバ基盤および物理cpu割当プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522070A (en) * 1992-03-19 1996-05-28 Fujitsu Limited Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network
US20050160423A1 (en) * 2002-12-16 2005-07-21 Bantz David F. Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations
US7467381B2 (en) * 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
CN100472452C (zh) * 2006-06-23 2009-03-25 联想(北京)有限公司 一种虚拟机***及其硬件设备的切换方法
JP4705051B2 (ja) 2007-01-29 2011-06-22 株式会社日立製作所 計算機システム
US7865663B1 (en) * 2007-02-16 2011-01-04 Vmware, Inc. SCSI protocol emulation for virtual storage device stored on NAS device
CN102473118B (zh) * 2010-05-24 2016-10-12 松下电器(美国)知识产权公司 信息处理***
US8448006B2 (en) * 2010-10-19 2013-05-21 International Business Machines Corporation Performing virtual and/or physical resource management for power management
US8806487B2 (en) * 2011-01-14 2014-08-12 Nec Laboratories America, Inc. Calculating virtual machine resource utilization information
US20130268940A1 (en) * 2012-04-04 2013-10-10 Daniel Juergen Gmach Automating workload virtualization

Also Published As

Publication number Publication date
JP2013250949A (ja) 2013-12-12
US9189293B2 (en) 2015-11-17
US20130347000A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
JP5624084B2 (ja) 計算機、仮想化機構、及びスケジューリング方法
US11797327B2 (en) Dynamic virtual machine sizing
US9304803B2 (en) Cooperative application workload scheduling for a consolidated virtual environment
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US20050198633A1 (en) Method, apparatus and system for seamlessly sharing devices amongst virtual machines
JP6190471B2 (ja) パーティション実行制御装置、パーティション実行制御方法及び計算機に読み込み可能な記憶媒体
CN103514038B (zh) 一种虚拟***的平滑关闭方法及***
US9852008B2 (en) Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system
JP6029550B2 (ja) 計算機の制御方法及び計算機
WO2014032882A1 (en) Optimizing virtual machine deployment time
US10459773B2 (en) PLD management method and PLD management system
CN104461735B (zh) 一种虚拟化场景下分配cpu资源的方法和装置
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
US20170132044A1 (en) Storage management computer
US20190213033A1 (en) Optimizing Host CPU Usage Based on Virtual Machine Guest OS Power and Performance Management
KR20110094764A (ko) 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
JP2017538184A (ja) 入出力(i/o)割込みの改良型優先ルーティングを実施する方法、システムおよびプログラム
WO2018040845A1 (zh) 一种计算资源调度方法及装置
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
JP2012146105A (ja) 計算機システム
WO2014141419A1 (ja) 仮想計算機システムおよびスケジューリング方法
US20150186180A1 (en) Systems and methods for affinity dispatching based on network input/output requests
US10789082B2 (en) Execution of multiple operating systems without rebooting
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140916

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140925

R150 Certificate of patent or registration of utility model

Ref document number: 5624084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees