Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5778296B2 - 仮想計算機システム、仮想化機構、及びデータ管理方法 - Google Patents
[go: Go Back, main page]

JP5778296B2 - 仮想計算機システム、仮想化機構、及びデータ管理方法 - Google Patents

仮想計算機システム、仮想化機構、及びデータ管理方法 Download PDF

Info

Publication number
JP5778296B2
JP5778296B2 JP2013549146A JP2013549146A JP5778296B2 JP 5778296 B2 JP5778296 B2 JP 5778296B2 JP 2013549146 A JP2013549146 A JP 2013549146A JP 2013549146 A JP2013549146 A JP 2013549146A JP 5778296 B2 JP5778296 B2 JP 5778296B2
Authority
JP
Japan
Prior art keywords
memory area
address
logical
size
memory
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
JP2013549146A
Other languages
English (en)
Other versions
JPWO2013088818A1 (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 JP2013549146A priority Critical patent/JP5778296B2/ja
Publication of JPWO2013088818A1 publication Critical patent/JPWO2013088818A1/ja
Application granted granted Critical
Publication of JP5778296B2 publication Critical patent/JP5778296B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

先行出願の相互参照
本出願が、2011年12月13日に出願された日本特許出願2011−272629号に関連しその出願の優先権の利益を主張するもので、その出願の全体の開示が参照により本明細書に援用される。
本発明は、仮想計算機を稼働する仮想計算機システムにおいて、ACPI(Advanced Configuration and Power Interface)テーブルのデータを管理する技術に関する。
近年、サーバ台数の増加と共に運用に関する複雑さが増加し、運用コストが問題化している。運用コストを低減する技術の一つとして、複数サーバを1台にまとめる仮想計算機システムが注目を集めている。論理分割(LPAR)方式の仮想化では、物理的な計算機資源(CPU、主記憶、I/Oなど)を分割し、分割した計算機資源を仮想計算機に対して割り当てる。そのため、LPAR方式では計算機資源の構成によって、仮想計算機の構成も変化する。一方、仮想計算機(VM)方式では物理的な計算機資源を抽象化して仮想計算機に見せる。そのため、VM方式では物理計算機の構成に依存せず、仮想計算機の構成は自由に定義できる。
OS(Operating System)が計算機の構成情報を得るための規格としてACPIがある。ACPIの仕様は非特許文献1において定義されている。非特許文献1においては、OSによってマザーボードデバイスの構成情報の取得を可能にするとともに、デバイスおよびシステム全体の電力管理を可能にするための業界共通のインターフェースが定義されている。
ACPIの機能は、静的なテーブルと、ACPIインタプリタによって実行可能な動的なテーブルとの2種類のACPIテーブルを用いて提供される。ACPIインタプリタによって実行可能なテーブルは、AML(ACPI Machine Language)によって記述されており、内部には制御メソッドが定義されている。この制御メソッドをACPIインタプリタが実行することで、OSがACPIの機能を使うことができる。
このAMLは、機械語であるため可読性が低く、プログラマがAMLを直接記述するのは困難である。そのため、ACPIではASL(ACPI Source Language)という可読性が高いソース言語を定義している。プログラマはASLで記述したソースコードをコンパイルしてAMLを作成することができる。
Advanced Configuration and PowerInterface Specification Revision 4.0a April 5, 2010, 1 Introduction (P21-32)
仮想化計算機上のOS(以下、ゲストOSとする)がACPI機能を使用する場合、仮想計算機に定義されたACPIテーブル(以下、論理ACPIテーブルとする)にアクセスする。論理ACPIテーブルは、仮想計算機が認識する論理的なハードウェアに依存し、仮想化の方式によって作られ方が異なる。
VM方式の仮想化の場合、仮想計算機は、仮想計算機システムの物理的な計算機資源を抽象化して作成される。そのため、仮想計算機が認識する論理ハードウェアと物理ハードウェアとの構造は異なり、論理ACPIテーブルは仮想計算機用に独自に定義される。
一方、LPAR方式の仮想化では、仮想計算機は、物理計算機資源を分割して作成される。そのため、仮想計算機が認識する論理ハードウェア構成と物理ハードウェア構成とは似ており、論理ACPIテーブルは、ファームウェアに定義されているACPIテーブル(以下、物理ACPIテーブルという)を基に作成される。物理ACPIテーブルから構成情報や、ACPI機能を使う制御メソッドを複製して、論理ACPIテーブルを作成する。これによって物理計算機と仮想計算機とでは、同じACPI機能を使用する制御メソッドが動作する。例えば、デバイスのバス番号は、物理計算機と、仮想計算機とで等しいため、バス番号を取得する制御メソッドは複製して使用することができる。次に、論理ACPIテーブルの仮想計算機と物理計算機とで構成が異なる部分を、仮想計算機の構成に合わせて編集する。例えば、仮想計算機に定義できる論理CPU数と物理計算機に搭載されている(物理ACPIテーブルに定義されている)物理CPU数が異なる場合、論理ACPIテーブルのCPU数定義の記述を変更する。
メモリ領域にアクセスする制御メソッドの場合には、制御メソッドを複製するだけでは、正常に動作しない。すなわち、制御メソッドがアクセスするメモリ領域にデータが存在しないと、正常なアクセスができない。
ACPIテーブルからメモリ領域にアクセスする制御メソッドとしては、Load関数を含む制御メソッドがある。Load関数は、論理ACPIテーブル内の制御メソッドで使用されるASL関数であり、アドレスとサイズとを指定してメモリ空間からデータをロードするための関数である。
ゲストOSが、Load関数を実行する際、引数として読み出すデータのアドレスとサイズとが必要となる。論理ACPIテーブルが、物理ACPIテーブルから複製して作成されている場合、Load関数が読み出すアドレスは物理ACPIテーブルに定義されたLoad関数と同じアドレスとなっている。ここで、仮想計算機からメモリ領域にアクセスした場合と、物理計算機上からメモリ領域にアクセスした場合では、同じアドレスにアクセスしても、異なる物理メモリのアドレスにアクセスすることになる。
仮想計算機システムでは、複数の仮想計算機が同時に稼動しており、各仮想計算機に対して物理メモリが分割されて割り当てられている。このため、各仮想計算機の物理メモリの開始アドレスは様々となる。一般的に、OSは、メモリ領域がアドレス0番地から始まることを想定して設計されている。そのため、仮想計算機システムでは、仮想計算機上のOSがメモリにアクセスする場合、アクセスするアドレスが変換され、物理メモリ上のこの仮想計算機に割り当てられたメモリ領域(論理メモリ領域)にアクセスする作りとなっている。例えば、仮想計算機がアドレス0x1000にアクセスする場合には、この仮想計算機に割り当てられたメモリ領域の開始アドレスが0x10000ならば、実際には、物理メモリの0x11000をアクセスすることとなる。このため、複製した制御メソッドのLoad関数がアドレス0x1000をアクセスするものである場合には、物理メモリの0x1000にあるデータと、同じデータが物理メモリの0x11000にないと、仮想計算機においては、正常にLoad関数を実行できない。このため、Load関数を実行するには、Load関数が読み出すデータを仮想計算機の論理メモリのメモリ領域に複製する必要がある。
しかし、Load関数が読み出すデータのアドレスとサイズとが変数で定義されている場合には、Load関数を実行する時点までLoad関数が読み出すデータのアドレスとサイズとが決定しない。このため、Load関数を実行する前に、固定的にデータを仮想計算機の対応するメモリ領域に複製することができず、Load関数を実行できないという問題がある。
本発明は、上記課題に鑑みなされたものであり、その目的は、関数の読み出し先のアドレスに対応する物理メモリのメモリ領域に格納されているデータを、仮想計算機により適切にアクセスすることのできる技術を提供することにある。
仮想計算機システムは、メモリと、メモリに接続されたプロセッサとを有し、複数の仮想計算機を稼働可能である。メモリは、物理ACPIテーブルを記憶する。プロセッサは、仮想計算機を管理する仮想計算機管理部(例えばハイパバイザ)と、仮想計算機の論理プロセッサとして動作する。仮想計算機管理部は、物理ACPIテーブルに基づいて、メモリ中の仮想計算機に割当てられるメモリ領域である論理メモリ領域に論理ACPIテーブルを作成し、論理プロセッサは、論理ACPIテーブルに含まれる制御メソッド中の所定の関数によるアクセス対象のメモリのメモリ領域のアドレス及びサイズを所定の交換用メモリ領域に格納し、仮想計算機管理部は、交換用メモリ領域からアドレス及びサイズを取得し、メモリからアドレス及びサイズに対応するメモリ領域のデータを取得し、取得したデータを仮想計算機に割当てられた論理メモリ領域に格納し、論理プロセッサは、メモリの論理メモリ領域のデータを取得する。
物理ACPIテーブルから論理ACPIテーブルを作成する仮想計算機システムにおいて、所定の関数で読み出すデータを物理ACPIテーブルから論理ACPIテーブル内に複製するので、関数の読み出すデータのアドレスとサイズとが変数で定義されていても、論理ACPIテーブルからデータを適切に読み出すことができる。
図1は、実施形態に係る仮想計算機システムの構成図である。 図2は、実施形態に係る仮想計算機システムにおけるACPIの概要を示す図である。 図3は、従来例に係るLoad関数を含む制御メソッドの一例を示す図である。 図4は、実施形態に係るLoad関数を含む制御メソッドの一例を示す図である。 図5は、実施形態に係るLoad関数実行時の処理概要を示す図である。 図6は、非仮想計算機システムでのメモリマップの一例を示すである。 図7は、実施形態に係る仮想計算機システムでのメモリマップの一例を示す図である。 図8は、実施形態に係る制御メソッド実行処理のフローチャートである。 図9は、実施形態に係る制御メソッド編集処理のフローチャートである。
一実施形態を、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以下の説明では、プログラム、又は、プログラムのモジュールを主語として処理を説明する場合があるが、プログラムやプログラムモジュールは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェースデバイスを用いながら行うため、処理の主語がプロセッサとされてもよい。プログラム、プログラムモジュールを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する装置やシステム(例えば、仮想計算機システム)が行う処理としても良い。プログラムは、プログラムソースからインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
図1は、実施形態に係る仮想計算機システムの構成図である。
仮想計算機システムは、物理資源100を備える。物理資源100は、1以上の物理CPU101、1以上の物理メモリ102を備える。仮想計算機システムでは、物理資源100を用いて、複数の仮想計算機105を定義し、稼働させることができる。仮想計算機105は、論理資源として、論理CPU106、論理メモリ107を備える。論理CPU106は、1以上の物理CPU101の能力が論理的に分割されたものである。論理メモリ107は、1以上の物理メモリ102の一部であり、1以上の物理メモリ102が論理的に分割して生成される。具体的には、論理メモリ107は、1以上の物理メモリ102の一部のアドレス空間に対応する記憶領域(論理メモリ領域)を有する。仮想計算機105においては、論理資源の上でゲストOS108が動作する。すなわち、論理CPU106がゲストOS108を実行する。
物理資源100上では、ハイパバイザ103が起動される。ハイパバイザ103は、物理CPU101が物理メモリ102のハイパバイザプログラムを実行することにより構成される。ハイパバイザ103は、仮想計算機105を管理する処理を実行する。本実施形態では、ハイパバイザ103は、Load関数が実行される際に、データの制御をするLoadデータ制御部104を備える。
図2は、実施形態に係る仮想計算機システムにおけるACPIの概要を示す図である。
仮想計算機105は、ゲストOS108、論理ACPIテーブル204を備える。ゲストOS108は、カーネル202、ACPIインタプリタ203を備える。ゲストOS108が制御メソッドを実行する場合には、カーネル202からACPIインタプリタ203に対して制御メソッドの実行を命令する。制御メソッドは、ゲストOS118がACPI機能を使うためのオブジェクトであり、ACPIインタプリタ203によって実行される。ACPIインタプリタ203は、論理ACPIテーブル204から該当する制御メソッドの処理内容を示す記述を読み出し、処理を実行する。
ハイパバイザ103は、ACPIインタプリタ206、物理ACPIテーブル207を備える。物理ACPIテーブル207は、制御メソッドを格納している。仮想計算機105の論理ACPIテーブル204は、物理ACPIテーブル207から複製され、仮想計算機105の構成に合わせて編集されることにより構成される。
図3は、従来例に係るLoad関数を含む制御メソッドの一例を示す図である。図3は、物理ACPIテーブル207に格納されている制御メソッドの一例である。
制御メソッドの1行目から3行目は、使用する変数を初期化させる記述である。制御メソッドの5行目から14行目は、IF、ELSE文で変数FLAGの値がZERO(整数の0)でなければ、7行目と8行目の処理を実行させ、変数FLAGの値がZEROであれば、12行目と13行目の処理を実行させる記述である。つまり、この間の記述に対応する処理では、変数FLAGの値によって、変数ADDRと変数SIZEの値が変わる。
制御メソッドの16行目は、Load関数で読み出すメモリの領域の宣言を行う記述である。制御メソッドの18行目は、Load関数を実行させ、開始アドレスADDRからSIZEバイト分のデータをメモリ領域から読み出させるための記述である。この制御メソッドにおいては、15行目以降の処理の実行まで進まないと、Load関数が読み出すデータのアドレス(変数ADDRの値)とサイズ(変数SIZEの値)が決定しない。
ここで、論理ACPIテーブル204は、物理ACPIテーブル207を基に作成される。このため、制御メソッドを単に複製しただけの場合には、物理ACPIテーブル207の制御メソッドに含まれるLoad関数が読み出すデータのアドレスとサイズとは、物理ACPIテーブル207の記述のままである。
仮想計算機105において、この制御メソッドを実行すると、Load関数は、論理メモリ107の論理ACPIテーブル204からデータを読み出すこととなるが、論理メモリ107の対応する領域に、読み出すべきデータが物理ACPIテーブル207から複製されていない場合には、データを正常に読み出せない。
そこで、本実施形態では、Load関数を適切に実行できるようにするために、ハイパバイザ103が、物理ACPIテーブル207から論理ACPIテーブル204へLoad関数で読み出すデータを複製できるようにしている。この複製処理を実行するために、本実施形態では、ハイパバイザ103に、制御メソッドの処理内容の記述を編集する機能と、データを複製する機能とを追加する。
具体的には、ハイパバイザ103は、Load関数の読み出す領域が宣言される前のステップ(例えば、1つ前のステップ)に、物理ACPIテーブル207から論理ACPIテーブル204へデータを複製するための処理の記述を追加する。ここで、Load関数が読み出すデータのアドレスとサイズとは、制御メソッドの実行している途中で変化する場合があるため、本実施形態では、Load関数の領域が宣言される1ステップ前に複製するための処理が実行されるような記述とする。例えば、図3に示すLoad関数を含む制御メソッドの場合には、14行目に対応する処理になるまで、Load関数が読み出すデータのアドレスとサイズとが決定しない。そこで、Load関数が読み出すデータの領域を宣言する1ステップ前の16行目に、Load関数が読み出すデータを複製するための処理の記述を追加する。
図4は、実施形態に係るLoad関数を含む制御メソッドの一例を示す図である。図4は、図3に示す制御メソッドに対してデータの複製するための処理の記述を追加する編集をした後の制御メソッドの例を示す。この制御メソッドは、仮想計算機105の論理メモリ107に格納される。
制御メソッドの1行目から14行目の記述は、図3の制御メソッドの1行目から14行目の記述と同じである。制御メソッドの16行目と17行目とは、Load関数が読み出すデータのメモリ領域のアドレスとサイズとの値を、仮想計算機105とハイパバイザ103との間でアドレスとサイズとを通知するためのメモリ領域(以下アドレス・サイズ通知用メモリ領域511(図5参照)という)に書き込む処理を行う記述である。アドレス・サイズ通知用メモリ領域511は、論理メモリ107に与えられたメモリ領域以外の物理メモリ102のメモリ領域である。このアドレス・サイズ通知用メモリ領域511は、仮想計算機105の論理CPU106によりアクセスできるようなっている。ハイパバイザ103は、アドレス・サイズ通知用メモリ領域511へのアドレスとサイズとの書き込みを受けて、物理ACPIテーブル207の対応する領域のデータを読み出す。次に、ハイパバイザ103は、読み出したデータを、論理ACPIテーブル204に書き込み、論理ACPIテーブル204内に書き込んだデータのアドレスとサイズとをアドレス・サイズ通知用メモリ領域511に書き込む。ここで、書き込むアドレスは、対応する仮想計算機105における論理メモリ107内におけるアドレスである。
制御メソッドの19行目と20行目の記述は、アドレス・サイズ通知用メモリ領域511から論理ACPIテーブル204に書き込まれたデータのアドレスとサイズとを制御メソッドが取得する処理を行う記述である。この19行目と20行目との記述に対応する処理を実行することによって、Load関数が読み出すアドレスとサイズが決定する。制御メソッドの22行目の記述は、Load関数が読み出すメモリ領域を宣言する記述である。制御メソッドの24行目の記述は、Load関数を実行させる記述である。
図5は、実施形態に係るLoad関数実行時の処理概要を示す図である。
仮想計算機105は、ゲストOS108と、論理ACPIテーブル204とを備える。ゲストOS108は、ACPIインタプリタ203を備える。論理ACPIテーブル204は、名前空間509と、データ領域510とを備える。名前空間509は、制御メソッドの処理内容の記述や、変数値などを保持する空間である。データ領域510は、Load関数で読み出されるデータを書き込むための領域である。
ハイパバイザ103は、アドレス・サイズ通知用メモリ領域511、Loadデータ制御部104、及び物理ACPIテーブル207を備える。アドレス・サイズ通知用メモリ領域511は、制御メソッド(仮想計算機105)と、ハイパバイザ103との間で、Load関数が呼び出すデータのアドレスとサイズとをやり取りするためのメモリ領域である。アドレス・サイズ通知用メモリ領域511は、物理メモリ102上の論理メモリ107に割当てられた領域以外の領域に、予め確保されている。このアドレス・サイズ通知用メモリ領域511は、仮想計算機105の論理CPU106によりアクセスできるようなっている。Loadデータ制御部104は、Load関数で呼び出すデータを制御する機能部であり、物理ACPIテーブル207からデータ領域510にデータを複製する処理等を行う。
ここで、図4に示す制御メソッドが名前空間509に格納されている場合に、当該制御メソッドを実行した際の処理の流れの概要を説明する。
仮想計算機105において、ACPIインタプリタ203が名前空間509から制御メソッドが読み出し(ステップ501)、読み出した制御メソッドを逐次的に処理する。ここで、図5では、Load関数を実行した例を説明するので、Load関数の実行と直接関係しない図4に示す制御メソッドの1行目から15行目の記述に対応する処理の説明は省略する。
ACPIインタプリタ203は、制御メソッドの16行目と17行目との記述に対応する処理を実行することにより、Load関数により読み出すデータのアドレスとサイズとをアドレス・サイズ通知用領域511に書き込む(ステップ502)。
このように、アドレスとサイズとがアドレス・サイズ通知用領域511に書き込まれると、ハイパバイザ103のLoadデータ制御部104が、アドレス・サイズ通知用領域511からLoad関数で読み出すデータのアドレスとサイズとを読み出す。ここでのアドレスとサイズとは、ステップ502で書き込まれた値である。
次いで、Loadデータ制御部104は、取得したアドレスとサイズとを用い、物理ACPIテーブル207からLoad関数で読み出すデータを読み出し(ステップ504)、読み出したデータを仮想計算機105のデータ領域510に書き込む(ステップ505)。ここで、データを書き込むデータ領域510の開始アドレスとサイズとの決定方法は後述する。
Loadデータ制御部104は、データ領域510に書き込んだデータのアドレスとサイズとをアドレス・サイズ通知用領域511に書き込む(ステップ506)。
ACPIインタプリタ203は、制御メソッドの19行目と20行目の記述を実行することにより、アドレス・サイズ通知用領域511に書き込まれたアドレスとサイズとを読み出す(ステップ507)。
次いで、ACPIインタプリタ203は、制御メソッドの22行目の処理を行うことにより、Load関数で読み出すメモリの領域の宣言を行い、制御メソッドの24行目の記述を実行することにより、ステップ507で取得したアドレスとサイズとに基づいて、Load関数が実行することにより、データ領域510に複製されたデータが読み出される(ステップ508)。
ここで、仮想計算機システムにおける物理メモリ102のメモリマップを説明するにあたり、まず、物理資源上に一つのOSが起動する非仮想計算機システムにおける物理メモリのメモリマップについて説明する。
図6は、非仮想計算機システムでのメモリマップの一例を示すである。
非仮想計算機システムでは、図6に示すように、物理ACPIテーブル207内のLoad関数データ601に、Load関数で読み出す対象となるデータが入っている。Load関数データ601は、「PhyLoadAddr」から「PhyLoadAddr+PhyLoadSize」までの領域に格納されているが、Load関数が実行されるまでは、「PhyLoadAddr」、「PhyLoadAddr+PhyLoadSize」は、一意に決定しない。「PhyLoadAddr」は、物理ACPIテーブル207内のLoad関数データ601の開始アドレスであり、「PhyLoadSize」は、物理ACPIテーブル207内のLoad関数データ601のサイズである。非仮想計算機システムのOS602がLoad関数を実行する際には、「PhyLoadAddr」及び「PhyLoadAddr+PhyLoadSize」が一意に決定されるので、当該値を用いて、Load関数データ601から直接データを読み出す。
次に、仮想計算機が稼働する仮想計算機システムでのメモリマップを説明する。
図7は、実施形態に係る仮想計算機システムでのメモリマップの一例を示す図である。
仮想計算機システムでは、物理ACPIテーブル207内のロード関数データ601に、Load関数で読み出す対象となるデータが入っている。Load関数データ601は、「PhyLoadAddr」から「PhyLoadAddr+PhyLoadSize」までの領域に格納されているが、Load関数が実行されるまでは、「PhyLoadAddr」、「PhyLoadAddr+PhyLoadSize」は、一意に決定しない。
仮想計算機105は、論理ACPIテーブル204内にデータ領域510、ゲストOS108の領域を持つ。論理ACPIテーブル204は、物理ACPIテーブル207を基に作成されているので、Load関数に記述されているデータのアドレスとサイズとは、それぞれ「PhyLoadAddr」と「PhyLoadSize」となっている。ここで、ゲストOS108がLoad関数を実行する際には、Load関数に記述されている「PhyLoadAddr」は、仮想計算機105上(つまり、論理メモリ107)のアドレス(以下、仮想アドレスという)であるため、実際にアクセスされる物理メモリ102のアドレスとは異なる。以下、仮想アドレスについて記載する場合のみ仮想アドレスと明記し、明記されていない場合は、物理メモリ102のアドレスとする。仮想アドレス「PhyLoadAddr」は、仮想計算機105に割り当てられた論理メモリ107の開始アドレスから「PhyLoadAddr」先のアドレスを指し、物理メモリ102のアドレスとしては、「0x70000+PhyLoadAddr」となる。なお、ここでは、論理メモリ107の開始アドレスを「0x70000」として説明する。
このため、データ領域510の開始アドレス「LogLoadAddr」は、「0x70000+PhyLoadAddr」となり、サイズ「LogLoadSize」は、「PhyLoadSize」となる。「LogLoadAddr」と「LogLoadSize」とは、Load関数データ601の「PhyLoadAddr」と「PhyLoadSize」とが決まるまで決定されず、固定的に対応するメモリ領域を事前に複製することはできない。
また、既に「0x70000+PhyLoadAddr」から「0x70000+PhyLoadAddr+PhyLoadSize」までのメモリ領域が使用されていた場合には、当該メモリ領域にデータを複製することができず、この場合には、空き領域にデータを複製して、仮想計算機105がLoad関数により読み出す仮想アドレスとサイズとを、データを格納したメモリ領域に合わせて変更する必要がある。
次に、実施形態に係る仮想計算機システムにおける処理動作を詳細に説明する。
図8は、実施形態に係る制御メソッド実行処理のフローチャートである。
ここで、論理ACPIテーブル204には、図4に示すLoad関数を含む制御メソッドが格納されているものとして、以下説明する。なお、図4に示す制御メソッドの生成方法は後述する。
仮想計算機105のゲストOS108が、制御メソッドの実行命令を出すと(ステップ800(図5のステップ501に対応))、実行命令を受けてACPIインタプリタ203が、論理ACPIテーブル204内の名前空間509から制御メソッドの処理内容を順次読み出す(ステップ801)。Load関数を含む制御メソッドの場合には、後述する制御メソッドの編集処理により追加された複製処理までの記述に対応する処理(図4に示す15行目までの記述に対応する処理)は、Load関数を実行するための追加処理と関係しないので、ACPIインタプリタ203によって逐次的に実行される(ステップ802)。なお、これらの処理は制御メソッドの編集前の制御メソッド(図3に示す制御メソッド)にある処理である。
次いで、ACPIインタプリタ203が、制御メソッドの18,19行目の記述に基づいて、アドレス・サイズ通知用メモリ領域511に、Load関数で読み出すデータのアドレスとサイズとを書き込む(ステップ803(図5のステップ502に対応))。
この後、ハイパバイザ103のLoadデータ制御部104によるステップ804〜ステップ808の処理が実行される。
すなわち、ハイパバイザ103のLoadデータ制御部104は、アドレス・サイズ通知用メモリ領域511からステップ803で書き込まれたアドレスとサイズとを取得する(ステップ804(図5のステップ503に対応))。
次いで、Loadデータ制御部104は、取得したアドレスとサイズとに基づいて、物理ACPIテーブル207の対応するメモリ領域からデータを読み出す(ステップ805(図5のステップ504))。
次いで、Loadデータ制御部104は、読み出したデータを書き込むためのデータ領域510の開始アドレスとサイズとを決定する(ステップ806)。ここで、Load関数が読み出すデータの仮想アドレスと、仮想計算機105に割り当てられた論理メモリ107のメモリ領域の開始アドレスとの和に対応するアドレスから、データのサイズ分のメモリ領域が未使用である場合には、Loadデータ制御部104は、当該メモリ領域をデータ領域510と決定する。一方、当該メモリ領域が既に使用されている場合には、Loadデータ制御部104は、仮想計算機105の論理メモリ107の未使用領域の中で、開始アドレスが一番若く、且つ必要なサイズを確保できるメモリ領域をデータ領域510と決定する。
次いで、Loadデータ制御部104は、データ領域510に、物理ACPIテーブル207から読み出したデータを書き込み(ステップ807)、データ領域510のアドレス(仮想アドレス)とサイズとをアドレス・サイズ通知用メモリ領域511に書き込む(ステップ808)。
次いで、仮想計算機105のACPIインタプリタ203が、制御メソッドの18,19行目の記述に基づいて、アドレス・サイズ通知用メモリ領域511からデータ領域510のアドレスとサイズとを取得し(ステップ809)、取得したアドレスとサイズとに基づいて、Load関数を実行することにより、論理ACPIテーブル204から対象のデータを読み出す(ステップ810)。
ゲストOS108が実行する制御メソッドは、論理ACPIテーブル204内に定義されており、論理ACPIテーブル204は、物理ACPIテーブル207をもとに作成されている。論理ACPIテーブル204に定義されているLoad関数を含む制御メソッドを実行するためには、Load関数を実行する前に、読み出すデータを物理ACPIテーブル207から論理ACPIテーブル204に複製する必要がある。このとき、Load関数が読み出すデータのアドレスとサイズとが変数で定義されていた場合、固定的に対応するデータを複製する複製処理を行うことができない。これに対して、本実施形態では、ステップ803でハイパバイザ103にLoad関数で読み出すアドレスを通知し、ステップ804〜ステップ808で、Load関数が読み出すデータを物理ACPIテーブル207から論理ACPIテーブル204へ複製する複製処理を行い、ステップ809で、仮想計算機105が複製されたデータのアドレスを取得し、ステップ810で、仮想計算機105がLoad関数を実行している。このように、Load関数が実行されるステップ810の1ステップ前に、物理ACPIテーブル207から論理ACPIテーブル204へのデータの複製処理をするようにしている。この時点では、Load関数が読み出すアドレスとサイズとが変数で定義されていても一意に決まっており、データの複製処理を適切に実行することが可能である。
ここで、ステップ803とステップ809とは、本実施形態では、制御メソッドに対して編集処理により追加された記述により実行されている。OS(ゲストOS108)は、起動後にACPIテーブル(論理ACPIテーブル204)が書き換わることを想定した作りになっていないため、制御メソッドの編集処理は、ゲストOS108を起動する前、つまり、仮想計算機105の作成時に、ハイパバイザ103により実施される。
図9は、実施形態に係る制御メソッド編集処理のフローチャートである。
ハイパバイザ103は、仮想計算機105の生成を開始する(ステップ901)。仮想計算機105の生成は、ゲストOS108の起動前に行われ、論理ACPIテーブル204などの論理資源の生成が行われる。
ハイパバイザ103は、論理ACPIテーブル204から次の処理対象の制御メソッドを探して取得し(ステップ902)、制御メソッド内にLoad関数が使われているか否かを調べる(ステップ903)。この結果、制御メソッドにLoad関数が使われていない場合(ステップ903でNo)には、ハイパバイザ103は、ステップ906に処理を進める。
一方、制御メソッドにLoad関数が使われている場合(ステップ903でYes)には、ハイパバイザ103は、制御メソッドへ記述を追加する処理を行う(ステップ904、ステップ905)。ステップ904では、ハイパバイザ103は、制御メソッドに、Load関数が読み出すデータのアドレスとサイズとをアドレス・サイズ通知用メモリ領域511に書き込む処理の記述(図4の制御メソッドでは、16,17行目)を追加する。ステップ905では、ハイパバイザ103は、制御メソッドに、アドレス・サイズ通知用メモリ領域511からデータ領域510のアドレスとサイズとを取得する処理の記述(図4の制御メソッドでは、19,20行目)を追加する。
次いで、ステップ906では、ハイパバイザ103は、全ての制御メソッドを調べ終わったか否かを判断し、全ての制御メソッドを調べ終わった場合(ステップ906でYes)には、制御メソッド編集処理を終了する。一方、全ての制御メソッドを調べ終わっていない場合(ステップ906でNo)には、ハイパバイザ103は、処理をステップ902に進め、次の処理対象の制御メソッドについての処理を行う。
以上、一実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上記実施形態では、Load関数を実行する場合を例に説明していたが、本発明はこれに限られず、物理メモリのアドレスで指定されたデータを読み出すAML関数であれば、本発明を適用することができる。
100:物理計算機資源、101:物理CPU、102:物理メモリ、103:ハイパバイザ、104:Loadデータ制御部、105:仮想計算機、106:論理CPU、107:論理メモリ、108:ゲストOS、203:ACPIインタプリタ、204:論理ACPIテーブル、207:物理ACPIテーブル、509:名前空間、510:データ領域、511:アドレス・サイズ通知用メモリ領域。

Claims (15)

  1. 複数の仮想計算機を稼働可能な仮想計算機システムであって、
    メモリと、
    前記メモリに接続されたプロセッサと
    を有し、
    前記メモリは、物理ACPI(Advanced Configuration and Power Interface)テーブルを記憶し、
    前記プロセッサは、前記仮想計算機を管理する仮想計算機管理部と、前記仮想計算機の論理プロセッサとして動作し、
    前記仮想計算機管理部は、
    前記物理ACPIテーブルに基づいて、前記メモリ中の、前記仮想計算機に割当てられるメモリ領域、である論理メモリ領域に、論理ACPIテーブルを作成し、
    前記論理プロセッサは、
    前記論理ACPIテーブルに含まれる制御メソッド中の所定の関数によるアクセス対象の前記メモリのメモリ領域のアドレス及びサイズを交換用メモリ領域に格納し、
    前記仮想計算機管理部は、
    前記交換用メモリ領域から前記アドレス及び前記サイズを取得し、前記メモリから前記アドレス及び前記サイズに対応するメモリ領域のデータを取得し、
    取得した前記データを前記仮想計算機に割当てられた前記論理メモリ領域に格納し、
    前記論理プロセッサは、
    前記メモリの前記論理メモリ領域のデータを取得する
    仮想計算機システム。
  2. 前記仮想計算機管理部は、
    前記物理ACPIテーブル中の制御メソッドから前記メモリのメモリ領域をアクセスする関数を特定し、
    前記論理プロセッサに、前記関数のアクセス対象のメモリ領域のアドレス及びサイズを前記交換用メモリ領域に格納させ、前記交換用メモリ領域から前記アドレス及び前記サイズを取得させるための第1記述と、取得した前記アドレス及び前記サイズに基づいて、前記論理メモリ領域の対応するメモリ領域のデータを取得させるための第2記述とを、前記制御メソッドに追加し、前記第1及び第2記述を追加した制御メソッドを前記論理ACPIテーブルに格納し、
    前記論理プロセッサは、前記制御メソッドを実行する
    請求項1に記載の仮想計算機システム。
  3. 前記仮想計算機管理部は、
    前記メモリ領域をアクセスする関数のアクセスするメモリ領域を宣言する記述の直前に、前記第1記述及び前記第2記述を追加する
    請求項2に記載の仮想計算機システム。
  4. 前記仮想計算機管理部は、
    取得した前記データを格納した前記論理メモリ領域におけるアドレス及びサイズを前記交換用メモリ領域に格納し、
    前記論理プロセッサは、
    前記交換用メモリ領域から前記アドレス及び前記サイズを取得し、前記アドレス及び前記サイズに基づいて、前記論理メモリ領域から前記データを取得する
    請求項1に記載の仮想計算機システム。
  5. 前記仮想計算機管理部は、
    前記論理メモリ領域における前記アドレス及び前記サイズに対応するメモリ領域が未使用であるか否かを判定し、当該メモリ領域が未使用である場合には、取得した前記データを当該メモリ領域に格納し、当該メモリ領域のアドレス及びサイズを前記交換用メモリ領域に格納し、当該メモリ領域が未使用でない場合には、前記論理メモリ領域から空き領域を検出し、当該空き領域に前記データを格納し、当該空き領域のアドレス及びサイズを前記交換用メモリ領域に格納し、
    前記論理プロセッサは、
    前記交換用メモリ領域から前記アドレス及び前記サイズを取得し、前記アドレス及び前記サイズに基づいて、前記論理メモリ領域から前記データを取得する
    請求項1に記載の仮想計算機システム。
  6. 複数の仮想計算機を稼働可能な計算機に実行させるためのコンピュータプログラムであって、
    メモリに記憶された物理ACPIテーブルに基づいて、前記メモリ中の、前記仮想計算機に割当てられるメモリ領域、である論理メモリ領域に、論理ACPIテーブルを作成し、
    前記論理ACPIテーブルに含まれる制御メソッド中の所定の関数によるアクセス対象の前記メモリのメモリ領域のアドレス及びサイズが格納された交換用メモリ領域から、前記アドレス及び前記サイズを取得し、前記メモリから前記アドレス及び前記サイズに対応するメモリ領域のデータを取得し、
    取得した前記データを前記仮想計算機に割当てられた前記論理メモリ領域に格納する、
    ことを計算機に実行させるコンピュータプログラム
  7. 前記物理ACPIテーブル中の制御メソッドから前記メモリのメモリ領域をアクセスする関数を特定させ、
    仮想計算機の論理プロセッサに、前記関数のアクセス対象のメモリ領域のアドレス及びサイズを前記交換用メモリ領域に格納させ、前記交換用メモリ領域から前記アドレス及び前記サイズを取得させるための第1記述と、取得した前記アドレス及び前記サイズに基づいて、前記論理メモリ領域の対応するメモリ領域のデータを取得させるための第2記述とを、前記制御メソッドに追加し、前記第1及び第2記述を追加した制御メソッドを前記論理ACPIテーブルに格納する、
    ことを計算機に実行させる請求項6に記載のコンピュータプログラム
  8. 前記メモリ領域をアクセスする関数のアクセスするメモリ領域を宣言する記述の直前に、前記第1記述及び前記第2記述を追加する
    ことを計算機に実行させる請求項7に記載のコンピュータプログラム
  9. 取得した前記データを格納した前記論理メモリ領域におけるアドレス及びサイズを前記交換用メモリ領域に格納する、
    ことを計算機に実行させる請求項6に記載のコンピュータプログラム
  10. 前記論理メモリ領域における前記アドレス及び前記サイズに対応するメモリ領域が未使用であるか否かを判定し、当該メモリ領域が未使用である場合には、取得した前記データを当該メモリ領域に格納し、当該メモリ領域のアドレス及びサイズを前記交換用メモリ領域に格納し、当該メモリ領域が未使用でない場合には、前記論理メモリ領域から空き領域を検出し、当該空き領域に前記データを格納し、当該空き領域のアドレス及びサイズを前記交換用メモリ領域に格納する
    ことを計算機に実行させる請求項6に記載のコンピュータプログラム
  11. 仮想計算機管理部が、メモリに記憶された物理ACPIテーブルに基づいて、前記メモリ中の、仮想計算機に割当てられるメモリ領域、である論理メモリ領域に、論理ACPIテーブルを作成し、
    前記仮想計算機の論理プロセッサが、前記論理ACPIテーブルに含まれる制御メソッド中の所定の関数によるアクセス対象の前記メモリのメモリ領域のアドレス及びサイズを所定の交換用メモリ領域に格納し、
    前記仮想計算機管理部が、前記交換用メモリ領域から前記アドレス及び前記サイズを取得し、前記メモリから前記アドレス及び前記サイズに対応するメモリ領域のデータを取得し、
    前記仮想計算機管理部が、取得した前記データを前記仮想計算機に割当てられた前記論理メモリ領域に格納し、
    前記論理プロセッサが、前記メモリの前記論理メモリ領域のデータを取得する
    データ管理方法。
  12. 前記仮想計算機管理部が、前記物理ACPIテーブル中の制御メソッドから前記メモリのメモリ領域をアクセスする関数を特定し、
    前記仮想計算機管理部が、前記論理プロセッサに、前記関数のアクセス対象のメモリ領域のアドレス及びサイズを前記交換用メモリ領域に格納させ、前記交換用メモリ領域から前記アドレス及び前記サイズを取得させるための第1記述と、取得した前記アドレス及び前記サイズに基づいて、前記論理メモリ領域の対応するメモリ領域のデータを取得させるための第2記述とを、前記制御メソッドに追加し、前記第1及び第2記述を追加した制御メソッドを前記論理ACPIテーブルに格納し、
    前記論理プロセッサが、前記制御メソッドを実行する
    請求項11に記載のデータ管理方法。
  13. 前記仮想計算機管理部が、前記メモリ領域をアクセスする関数のアクセスするメモリ領域を宣言する記述の直前に、前記第1記述及び前記第2記述を追加する
    請求項12に記載のデータ管理方法。
  14. 前記仮想計算機管理部が、取得した前記データを格納した前記論理メモリ領域におけるアドレス及びサイズを前記交換用メモリ領域に格納し、
    前記論理プロセッサが、前記交換用メモリ領域から前記アドレス及び前記サイズを取得し、前記アドレス及び前記サイズに基づいて、前記論理メモリ領域から前記データを取得する
    請求項11に記載のデータ管理方法。
  15. 前記仮想計算機管理部が、前記論理メモリ領域における前記アドレス及び前記サイズに対応するメモリ領域が未使用であるか否かを判定し、当該メモリ領域が未使用である場合には、取得した前記データを当該メモリ領域に格納し、当該メモリ領域のアドレス及びサイズを前記交換用メモリ領域に格納し、当該メモリ領域が未使用でない場合には、前記論理メモリ領域から空き領域を検出し、当該空き領域に前記データを格納し、当該空き領域のアドレス及びサイズを前記交換用メモリ領域に格納し、
    前記論理プロセッサが、前記交換用メモリ領域から前記アドレス及び前記サイズを取得し、前記アドレス及び前記サイズに基づいて、前記論理メモリ領域から前記データを取得する
    請求項11に記載のデータ管理方法。
JP2013549146A 2011-12-13 2012-10-03 仮想計算機システム、仮想化機構、及びデータ管理方法 Expired - Fee Related JP5778296B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013549146A JP5778296B2 (ja) 2011-12-13 2012-10-03 仮想計算機システム、仮想化機構、及びデータ管理方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011272629 2011-12-13
JP2011272629 2011-12-13
JP2013549146A JP5778296B2 (ja) 2011-12-13 2012-10-03 仮想計算機システム、仮想化機構、及びデータ管理方法
PCT/JP2012/075654 WO2013088818A1 (ja) 2011-12-13 2012-10-03 仮想計算機システム、仮想化機構、及びデータ管理方法

Publications (2)

Publication Number Publication Date
JPWO2013088818A1 JPWO2013088818A1 (ja) 2015-04-27
JP5778296B2 true JP5778296B2 (ja) 2015-09-16

Family

ID=48612275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549146A Expired - Fee Related JP5778296B2 (ja) 2011-12-13 2012-10-03 仮想計算機システム、仮想化機構、及びデータ管理方法

Country Status (3)

Country Link
US (1) US20140298340A1 (ja)
JP (1) JP5778296B2 (ja)
WO (1) WO2013088818A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858098B2 (en) * 2012-12-21 2018-01-02 Red Hat Israel, Ltd. Hypervisor modification of system tables
US9921865B2 (en) * 2014-01-30 2018-03-20 Red Hat Israel, Ltd. Population of system tables by hypervisor
US10095606B2 (en) * 2014-06-20 2018-10-09 Red Hat Israel, Ltd. Guest-independent testing of guest firmware in virtualized systems
US9804958B2 (en) * 2014-11-18 2017-10-31 Mediatek Inc. Data processing apparatus and data processing method
CN105630573B (zh) * 2015-10-20 2018-12-07 浙江大学 一种非侵入式的虚拟机集群发现方法
CN106293879A (zh) * 2016-08-05 2017-01-04 浪潮(北京)电子信息产业有限公司 一种用于Linux物理服务器的P2V迁移方法及其系统
US10782993B2 (en) * 2017-10-13 2020-09-22 Dell Products L.P. Systems and methods for secure runtime dynamic resizing of memory namespaces
US11573815B2 (en) * 2020-04-29 2023-02-07 Red Hat, Inc. Dynamic power management states for virtual machine migration
US20240354138A1 (en) * 2023-04-18 2024-10-24 Microsoft Technology Licensing, Llc Power-management virtual machines

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
JP3188071B2 (ja) * 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
US7260820B1 (en) * 2001-04-26 2007-08-21 Vm Ware, Inc. Undefeatable transformation for virtual machine I/O operations
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US20060020940A1 (en) * 2004-07-08 2006-01-26 Culter Bradley G Soft-partitioning systems and methods
US7937701B2 (en) * 2005-06-30 2011-05-03 Intel Corporation ACPI communication between virtual machine monitor and policy virtual machine via mailbox
US7596654B1 (en) * 2006-01-26 2009-09-29 Symantec Operating Corporation Virtual machine spanning multiple computers
US8281303B2 (en) * 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
US7844845B2 (en) * 2007-12-04 2010-11-30 Lenovo (Singapore) Pte. Ltd. System and method for preventing user O.S. in VMM system from deenergizing device being used by service O.S.
CN101739283B (zh) * 2008-11-20 2013-12-25 联想(北京)有限公司 一种计算机及虚拟系统直接访问计算机硬件的方法
US20100161908A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient Memory Allocation Across Multiple Accessing Systems
US8799691B2 (en) * 2009-01-07 2014-08-05 Hewlett-Packard Development Company, L.P. Hierarchical power management
JP5484117B2 (ja) * 2010-02-17 2014-05-07 株式会社日立製作所 ハイパーバイザ及びサーバ装置
CN102236603B (zh) * 2010-04-29 2014-12-17 国际商业机器公司 虚拟化环境中垃圾回收的方法和系统
US9250945B2 (en) * 2012-03-27 2016-02-02 Microsoft Technology Licensing, Llc Detecting a repeating execution time sequence in a virtual machine

Also Published As

Publication number Publication date
WO2013088818A1 (ja) 2013-06-20
US20140298340A1 (en) 2014-10-02
JPWO2013088818A1 (ja) 2015-04-27

Similar Documents

Publication Publication Date Title
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
US11157306B2 (en) Faster access of virtual machine memory backed by a host computing device's virtual memory
US9218302B2 (en) Page table management
KR102084816B1 (ko) Bpram을 사용한 소프트웨어 애플리케이션들의 레이아웃 및 실행
CN102449599B (zh) 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法
US20190146853A1 (en) Enabling live migration of virtual machines with passthrough pci devices
US9384007B2 (en) Memory virtualization-based snapshot boot apparatus and method
CN114222975B (zh) 使用存储器孔径冲刷顺序的数据保存
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
US10140212B2 (en) Consistent and efficient mirroring of nonvolatile memory state in virtualized environments by remote mirroring memory addresses of nonvolatile memory to which cached lines of the nonvolatile memory have been flushed
CN102165431A (zh) 使用仿真对物理硬件的运行时替换
WO2017059721A1 (zh) 一种信息存储方法和装置、及服务器
US20150095585A1 (en) Consistent and efficient mirroring of nonvolatile memory state in virtualized environments
US10430221B2 (en) Post-copy virtual machine migration with assigned devices
US10838737B1 (en) Restoration of memory content to restore machine state
US12124866B2 (en) Fast virtual machine resume at host upgrade
WO2013136457A1 (ja) 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法
US11734182B2 (en) Latency reduction for kernel same page merging
Russinovich Inside windows server 2008 kernel changes
US12169631B2 (en) Based on IO pattern influence NFIT table for persistence for SCM firmware
US20240311152A1 (en) Translation lookaside buffer maintenance method and related device
US10613850B1 (en) Performant and secure storage and retrieval of firmware variables
JP6103972B2 (ja) プログラム生成方法、プログラム実行方法、プログラム実行装置およびプログラム実行プログラム
JPWO2013136457A1 (ja) 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150413

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: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150708

R150 Certificate of patent or registration of utility model

Ref document number: 5778296

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees