JP4871948B2 - 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法 - Google Patents

仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法 Download PDF

Info

Publication number
JP4871948B2
JP4871948B2 JP2008306964A JP2008306964A JP4871948B2 JP 4871948 B2 JP4871948 B2 JP 4871948B2 JP 2008306964 A JP2008306964 A JP 2008306964A JP 2008306964 A JP2008306964 A JP 2008306964A JP 4871948 B2 JP4871948 B2 JP 4871948B2
Authority
JP
Japan
Prior art keywords
cpu
logical
virtual machine
physical
context
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
JP2008306964A
Other languages
English (en)
Other versions
JP2010134496A5 (ja
JP2010134496A (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 JP2008306964A priority Critical patent/JP4871948B2/ja
Priority to US12/628,342 priority patent/US8266629B2/en
Publication of JP2010134496A publication Critical patent/JP2010134496A/ja
Publication of JP2010134496A5 publication Critical patent/JP2010134496A5/ja
Application granted granted Critical
Publication of JP4871948B2 publication Critical patent/JP4871948B2/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/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; 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/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/4557Distribution of virtual machine instances; Migration and load balancing

Description

本発明は仮想計算機システム、特に物理計算機を論理的に分割して複数の仮想計算機として使用する仮想計算機システムにおける、仮想計算機のスケジューリングに関するものである。
近年、様々な機械や機器に組み込まれて特定の機能を実現するための制御を行うコンピュータシステム、いわゆる組み込みシステムが注目されており、その適用分野が拡大している。組み込みシステムに用いられる組み込みソフトウェアは、処理要求を受け付けた後、特定の時間内に応答して処理を行う、いわゆるリアルタイム性が要求される。このため、組み込みシステムでは、リアルタイムOS(Operating System)を採用する場合が多い。
リアルタイムOSでは、前述した通り、特定の時間内での応答を保証しなければならない。そのため、一つのアプリケーション処理を複数の処理単位に分割して、実行権を切り替えて同時並列的に処理する、いわゆるマルチスレッド機能やマルチタスク機能が不可欠な技術として採用される。ここで、プログラムを実行する実体であるこの一つの処理単位のことを一般的にプロセスと呼ぶ。
複数のプロセスが切り替えられる際には、通常、CPUにおけるプロセスの処理に用いられる「コンテキスト」の切り替えが行われる。ここでコンテキストとは、プロセス毎に対応づけられており、レジスタセット(汎用レジスタ、浮動小数点レジスタ、ステータスレジスタ、プログラムカウンタ等)における現在のフラグ状態や、各プロセスを実行するための情報のことである。コンテキストが切り替わる際、今まで実行していたプロセスのコンテキストを保存し、新しく実行するプロセスのコンテキストを読み出す必要がある。切り替え動作の際に要する時間をオーバーヘッドといい、オーバーヘッドは、コンテキストが切り替わる度に発生する。
物理計算機上のリアルタイムOSでこれらのコンテキスト切り替えにかかるオーバーヘッドを削減するための技術として、例えば特許文献1には、リアルタイムOSを用いたマルチタスク処理装置について記載がある。具体的には、各プロセスに対応して占有される複数のレジスタバンクを設け、コンテキスト等の退避/ 回復をレジスタバンクの切り替えにより行い、スケジュール時間を短縮する方式が述べられている。
このコンテキストの切り替えにかかるオーバーヘッドの問題は、物理計算機に限らず、仮想計算機システムの仮想化層VMM(Virtual Machine Monitor)でも存在する。VMMは一般的に、各VM(Virtual Machine)の論理CPUをそれぞれ一つのプロセスとして扱い、システム内で複数のアクティブなプロセスが同時に存在することによりリアルタイム性を実現している。したがって、VMMにおいても、プロセス切り替え時のコンテキスト退避/回復処理は、システムのオーバーヘッドとなる。
物理計算機上で複数のOSを動作させる仮想計算機システムにおける、コンテキストの退避/回復処理に関する技術としては、例えば特許文献2に記載がある。
特許文献2では、VMMがハードウェアのエミュレーションを行うVM方式ではなく、OSの外部に割り込みを振り分けるためのOS切り替えプログラムを設ける方式により、複数のOSを共存させる。このOS切り替え時の、コンテキスト退避/回復のオーバーヘッドを削減するための技術として、OSに通信用のハンドラ機能を設け、OS間での処理要求を割り込みにより処理する方式が述べられている。
特開平7−141208号『マルチタスク処理装置』 特開2001−282558『マルチオペレーティング計算機システム』
上記特許文献1で述べられている、物理計算機に対するコンテキスト切り替えのオーバーヘッド削減の方式は、仮想計算機システムのVMMに対しても適用可能である。当該方式の適用により、外部メモリへのコンテキストの退避/回復処理が発生しないため、その分、高速なコンテキスト切り替えを実現することが可能となる。しかし通常、レジスタバンクとして提供されるハードウェア・リソースには制限があるため、仮想計算機システムのように、取り扱うべきコンテキストの数が多いシステムでは、レジスタバンクとして必要となるレジスタ量が多大となり、あまり現実的な構成とは言えない。
また上記特許文献2で述べられている方式は、OSの改変を伴うため、その上で動くアプリケーションにも改変が必要になり、場合によっては業務用重要なアプリケーションが動作しなくなるといった問題を抱えている。
本発明では、VM方式の仮想計算機システムにおいて、OSの改変などを伴うことなく、コンテキスト切り替えによるオーバーヘッドの削減を図る。
切り替え元プロセスがCPU占有モードの論理CPUプロセスである場合、OS動作時に必要なコンテキストの退避を一旦保留しておく。連続的に再び同じ論理CPUプロセスに切り替わった場合は、退避/回復をスキップする。その間にVMM制御用VMの論理CPUプロセスが走行した場合、退避を遅らせた論理CPUプロセスを記録しておくことで、遅れて退避をさせる。
本発明によると、仮想計算機システムにおいて、VMM上のプロセス切り替えの際、VMに割り当てた論理CPUプロセスのコンテキスト切り替えによるオーバーヘッドを削減することができる。また各プロセスのコンテキストに矛盾が生じることもない。これによりCPUリソースの効率的な運用が可能となり、汎用的な処理性能の向上が見込める。
本願発明の仮想計算機システムは、物理CPUと、前記物理CPUを論理的に分割して複数の仮想計算機とする仮想計算機制御部と、前記仮想計算機を前記制御部が制御するためのデータを格納する仮想計算機制御メモリとを備える、仮想計算機システムにおいて、前記仮想計算機制御メモリは、第1の仮想計算機用の第1のデータと、第2の仮想計算機用の第2のデータとを有し、前記制御部は、前記第1の仮想計算機が動作するときに、前記第1のデータを、前記物理CPU内の内部メモリに格納し、(a)前記第1の仮想計算機が動作を終了するときに、前記第1のデータを前記内部メモリに保持し、(b)次に実行させる第2の仮想計算機が、前記仮想計算機制御メモリに格納されているデータを用いるか否かを判定し、(c)判定にしたがって前記内部メモリ内のデータを、前記内部メモリと前記仮想計算機制御メモリとの間で移動することを特徴とする。
前記判定の際、(d)前記第2の仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記第1のデータを前記仮想計算機制御メモリに移動(退避)し、前記第2の仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記物理CPU内の前記内部メモリへ移動(回復)させ、(e)前記第2の仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動(退避と回復)を省略することを特徴とする。
また、本願発明のハイパバイザは、物理CPUと、前記物理CPUを論理的に分割して複数の仮想計算機とするハイパバイザと、前記仮想計算機を前記制御部が制御するためのデータを格納する仮想計算機制御メモリとを備える、仮想計算機システムにおけるハイパバイザにおいて、前記仮想計算機のスケジュールの切り替えを行う処理部を有し、(a)前記処理部は、前記仮想計算機のプロセスが終了したときに、該プロセスのデータを前記物理CPU内の内部メモリに保持するよう指示し、(b)次に実行させる仮想計算機が、前記仮想計算機制御メモリに格納されているデータを用いるか否かを判定し、(c)判定にしたがって前記内部メモリ内のデータを、前記内部メモリと前記仮想計算機制御メモリとの間で移動することを特徴とする。
前記判定の際、(d)前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記プロセスのデータを前記仮想計算機制御メモリに移動(退避)し、前記次に実行させる仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記内部メモリへ移動(回復)させ、(e)前記次に実行させる仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動(退避と回復)を省略することを特徴とする。
また、本願発明のスケジューリング方法は、物理CPUと、前記物理CPUを論理的に分割して複数の仮想計算機とするハイパバイザと、前記仮想計算機を前記制御部が制御するためのデータを格納する仮想計算機制御メモリとを備える、仮想計算機システムにおけるスケジューリング方法において、 (a)前記仮想計算機のプロセスが終了したときに、該プロセスのデータを前記物理CPU内の内部メモリに保持するよう指示するステップと、(b)次に実行させる仮想計算機が、前記仮想計算機制御メモリに格納されているデータを用いるか否かを判定するステップと、(c)判定にしたがって前記内部メモリ内のデータを、前記内部メモリと前記仮想計算機制御メモリとの間で移動させるステップを有することを特徴とする。
前記判定ステップの際に、(d)前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記プロセスのデータを前記仮想計算機制御メモリに移動(退避)し、前記次に実行させる仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記内部メモリへ移動(回復)させるステップと、(e)前記次に実行させる仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動(退避と回復)を省略するステップを有することを特徴とする。以上のように、物理CPUの論理分割方式の特徴を利用することで、OS動作時に必要なコンテキストの退避/回復を完全にスキップできるスケジューリングの方法を考案した。これにより、OSの改変などを伴うことなく、コンテキスト切り替えに起因するオーバーヘッドの削減を実現する。
具体的には、仮想計算機に物理CPUを占有的に割り当てるCPU占有モードでは、物理CPU上で走行する論理CPUプロセスが固定的であるため、プロセス切り替えのたびにコンテキストを退避/回復する必要がない。コンテキストの退避/回復処理が不要な場合は、退避/回復処理をスキップすることでオーバーヘッドを削減する。
以下、図面を使用して本発明の実施例を記す。
図1〜図7が本発明の一実施形態におけるデータ構造を、図8〜図16が処理方式を表す。図面番号の順に従って、データ構造、処理方式の順に記す。
図1は、本発明を適用した仮想計算機システムの一実施形態を表す構成図である。
本実施形態のVMM500は物理計算機上で動作するソフトウェアであり、物理CPU600,601,602,603などの物理計算機資源を論理的に分割してVM100,200,300を構築し、それらを管理・制御する機能をもつ。図1では、ハイパバイザ500をVMMとした。
物理CPUの論理的な分割とは、具体的には、一つもしくは複数の物理CPUを、複数の論理CPU、(ここでは120,121,220,221,320,321)で共有し、その共有した論理CPU物理CPUへ一定の時間間隔でスケジュールされることである。
VMM500は各論理CPUをそれぞれ一つのプロセスとして扱い、スケジューリング(物理CPUに割り当てる論理CPUの選択)をこのプロセス単位で行う。このプロセスによるスケジューリングを実現するために、VMMはプロセス制御ブロック510およびスケジューリング制御テーブル520の二つのデータ構造と、プロセススケジューリング処理530を有する。
VMMのスケジューリング処理によりVMが構築され、各VM上でゲストOS110,210,310が動作できる。
本発明の実施形態では、VM1やVM2などのユーザが定義したVMの他に、VMM制御用のVM300が存在する。VM300はVMM制御専用のVMであり、ゲストOS上でVMM管理用のミドルウェアを動作したり、I/Oなどの物理リソースの論理分割を制御したりする役割を担う。
仮想計算機システムは、VMに割り当てるメモリ130,230,330とは別に、VMMがVMの制御に使用するメモリ領域400を有する。
物理CPU内の内部メモリ620,621,622,623には、動作中のプロセスのコンテキスト610,611,612,613を保持している。これに対して、VM制御用メモリは、プロセス切り替え時のコンテキストの格納が用途の一つである。本発明の実施形態では、VMの論理CPUごとにコンテキスト領域410,411,420,421,430,431を設ける。
図2に示すように論理CPUのコンテキスト領域には、論理CPUのレジスタ情報410−1や論理CPUのVM制御構造410−2を格納する。
この論理CPUコンテキスト領域は、物理CPUのコンテキスト610,611,612,613と対応付けられる。
図3に示すように、物理CPUのコンテキストには、レジスタ状態610−1とVM制御構造へのポインタ610−2があり、それぞれが論理CPUのレジスタ情報410−1とVM制御構造410−2と対応する。これらの情報は、プロセス切り替えを契機として、物理CPUとメモリ領域の間でレジスタ情報が退避/回復されたり、VM制御構造のポインタが書き替えられたりする。この処理の詳細は図8で具体例を用いて示す。
次にVMMデータ部の詳細なデータ構造と、プロセススケジューリングの二つのモードである、CPU占有モードとCPU共有モードについて記す。
図6および図7は、VMMデータ部の詳細なデータ構造および、CPU占有モード(図6)/共有モード(図7)と呼ぶ二つのスケジューリングモードを表す図である。データ構造、スケジューリングモードの順にその詳細を記す。プロセス制御ブロックは、前述したプログラムを実行する処理単位であるプロセスを、具現化したデータ構造である。プロセスはプログラムの実行に対して、アドレス空間と物理CPUを提供する。プロセスには、仮想計算機のプログラムを実行し、VMの仮想的なCPUを具体化する論理CPUプロセス710,711,720,721,730,731の他に、VMM内部のシステム処理を行うVMM制御用プロセス740,741,742がある。
図4に示すように、各プロセス制御ブロックは、スケジューリングモードやVM番号といったプロセスの識別情報710−1、当該論理CPUのコンテキスト領域へのポインタ710−2、コンテキストの退避/回復スキップを制御するためのフラグ710−3を有する。以降では、単にプロセスといった場合、それを具現化したプロセス制御ブロックのことを指すものとする。
図5のスケジューリング制御テーブル800,801,802,803は、物理CPUごとに設けられ、当該物理CPUにスケジュールされたプロセスに関する情報を有する。図5に示す、当該物理CPUで現在走行しているプロセスの情報800−1、および当該物理CPUで最後に走行した論理CPUプロセスの情報800−2が、これに相当する。
図6のCPU占有モードでは、論理CPUプロセスが、特定の一つの物理CPU上で占有的にスケジュールされる。
図6では、CPU占有モードのVM1の論理CPUプロセス710,711が、それぞれ物理CPU600,601に占有的にスケジュールされている。ただしCPU占有モードであっても、VMMの内部的な処理を行うための、VMM制御用VMの論理CPUプロセス730,731や、VMMの制御用プロセス740,741,742は、物理CPUの占有状態に関係なく、論理CPUプロセスより優先的に当該物理CPUにスケジュールされる。
一方、図7のCPU共有モードでは、論理CPUプロセスは、占有モードの論理CPUが排他的に使用する物理CPUを除く任意の物理CPUのうち、いずれか一つにてスケジュールされる。図7では、物理CPU600,601がCPU占有モードとして使用されている。そのため、CPU共有モードのVM2の論理CPUプロセス720,721は、物理CPU602,603に動的にスケジュールされる。CPU占有モードの場合と同じく、VMM制御用VMの論理CPUプロセス730,731や、VMMの制御用プロセス740,741,742は、論理CPUプロセスより優先的に当該物理CPUにスケジュールされる。
本実施例ではCPU占有モードへの適用を想定して、その実現方式を述べる。
以下、本発明の処理方式について記す。
図8は従来のコンテキストの退避/回復処理の概念図である。図9はこのうちのパターン1についてタイムチャートで示している。
今、CPU占有モードの物理CPU600に対し、プロセススケジューリング処理530は、論理CPUプロセス710を占有的にスケジュールしている。論理CPUプロセス710がVM1のプログラムの実行を終えると、プロセススケジューリング処理530は次のプロセスを選択する。例えばここでVMM制御用プロセス740が選択されたとする。論理CPUプロセス710がここで一旦処理を中断するため、プロセススケジューリング処理530は、処理を中断する時点での物理CPUのコンテキストを退避させる。具体的には、対応する論理CPUのコンテキスト領域410に対し、物理CPUのレジスタ状態610−1を論理CPUのレジスタ情報410−1として格納し、VM制御構造へのポインタ610−2によって参照されているVM制御構造410−2へのポインタを解除する。ポインタの解除とは、VM制御構造へのポインタ610−2に書き込まれていたVM1用のアドレスをVMM制御用のアドレスに書き換える(もしくは消す)ことを指す。
VMM制御用プロセス740が処理を終えた後、次に何らかの論理CPUプロセスが選択されるが、CPU占有モードであるため、ここで選択される論理CPUプロセスは、再びVM1の論理CPUプロセスであるか、あるいはVMM制御用VMの論理CPUプロセスのいずれかである。
ここではVM1の論理CPUプロセス710が再び選択されたとする。すると、論理CPUプロセス710がプログラムの実行を始める前に、プロセススケジューリング処理530は対応する領域から先ほど退避したコンテキストを回復させる。具体的には、対応する論理CPUのコンテキスト領域410から、論理CPUのレジスタ情報410−1を再び物理CPUのレジスタに610−1に復元し、VM制御構造410−2を参照できるようにVM制御構造へのポインタ610−2へ登録、つまりアドレスを書き換える(もしくは書き込む)。
また、もし、論理CPUプロセス710が処理を終え、次に選択されたプロセスがVMM制御用VMの論理CPUプロセス730であるとすると、論理CPUプロセス710のコンテキストは再び専用の領域へ退避され、VMM制御用VMのコンテキストが回復(復元)される。
これが従来のプロセス切り替えにおける、コンテキスト退避/回復の処理である。この退避/回復は、論理CPUプロセスがスケジュールされるたびに行われる。
パターン2はVMM制御用プロセス740の処理の後に、VM1の論理CPUプロセスが連続走行せず、VMM制御用VMの論理CPUプロセスが選択された場合を示している。プロセスの走行順序以外は変わりなく、パターン1と同様に、コンテキストの退避/回復が論理CPUプロセスのスケジュールのたびに行われる。
図10は、本発明の導入により、コンテキストの退避/回復がどのように改善されるかを示した概念図である。図11はこのうちパターン1についてタイムチャートで示している。
図8のパターン1では、VMM制御用プロセス740を介して、連続して同じ論理CPUプロセス710が走行したにも関わらず、プロセス切り替えの度にコンテキストを退避/回復していた。これに対し、本発明(図10)では、プロセス切り替え時にまず、当該プロセスのコンテキストの退避を一旦保留する。具体的には、プロセススケジューリング処理530が、物理CPUのコンテキスト退避、すなわちCPUのレジスタ状態の格納やVM制御構造へのポインタの書き換えを行わずに、プロセス制御ブロックへ退避/回復スキップフラグを立てるように指示をする。これにより、再び連続して同じ論理CPUプロセスが走行した場合は、コンテキスト領域からコンテキストを再度移動する必要がなくなる(回復を行わない)。つまり、同一論理CPUプロセスが連続走行する場合は、一回の退避/回復処理をスキップ(省略)することができ、無駄な処理(オーバーヘッド)を省くことができる。
パターン2ではVM1の論理CPUプロセス710の間に、VMM制御用VMの論理CPUプロセス730が走行している。パターン1と同じように、VM1の論理CPUプロセスの退避を一旦保留しておくが、間に別の論理CPUプロセスが走行した時点で、保留しておいたVM1の論理CPUプロセスのコンテキストを遅れて退避させる。なお、退避を保留したことや同一のプロセスが走行したことの判定手順については、図12〜図14において詳細を述べる。
コンテキストの退避を保留しても、必要なときには遅れて退避させることで、VMM制御用VMのあとで再びVM1の論理CPUプロセスがスケジュールされた場合も、矛盾なくコンテキストは回復できる。
図12〜図14はVMMのプロセススケジューリング処理530が、コンテキストの退避/回復をスキップするためのアルゴリズムを表したフローチャートである。処理フローは(1)切り替え元プロセスのコンテキスト退避の要否判定(図12)、(2)切り替え先プロセスのコンテキスト回復の要否判定(図13)、(3)当該物理CPU上で前回走行した論理CPUプロセスの更新(図14)の3つに分けられる。それぞれについて順に記す。
(1)最初にVMMのプロセススケジューリング処理530は、切り替え元プロセス(現在走行中のプロセス)のコンテキスト退避の要否判定を行う。(図12)
スケジューリング制御テーブルから切り替え元のプロセス情報800−1を取得し、切り替え元プロセスのプロセスの識別情報710−1から、論理CPUプロセスかどうかを判定する。具体的には、プロセス識別情報710−1はそのプロセスの種類を一意に特定できるためのIDを含んでおり、これが論理CPUを示しているかどうか確認する。
切り替え元プロセスが論理CPUプロセスでない場合は、コンテキストの退避は必要ないので、(2)の処理に移行する。
切り替え元プロセスが論理CPUプロセスである場合、次にプロセスの識別情報710−1から、切り替え元プロセスのVMが「CPU占有モードであり、かつ、(VMM制御用VMでない)ユーザ定義VM」かどうかを判定する。
切り替え元プロセスのVMが、CPU共有モードであったか、またはVMM制御用のVMであった場合はスキップできないと判定し、コンテキストを退避する。すなわち、図15に示すように、コンテキスト領域へのポインタ710−2から対応するコンテキスト領域410を取得して、物理CPUのレジスタ状態610−1を論理CPUのレジスタ情報410−1として格納し、VM制御構造へのポインタ610−2によって参照されているVM制御構造410−2へのポインタを解除する。このとき、レジスタ情報に関しては、コンテキストを退避する論理CPUプロセスがVMM制御用VMのものであった場合は、例えばCPU固有情報が格納されたレジスタなどを除き、VMの走行に影響するものだけを退避する。

切り替え元プロセスのVMが、CPU占有モードであり、かつVM1やVM2などのユーザが定義したVMであった場合は、退避/回復をスキップできる可能性がある。プロセススケジューリング処理530は、物理CPUコンテキスト610をそのまま保持し、コンテキスト退避/回復スキップフラグ710−3をオンにして退避を保留する。
(2)次にVMMのプロセススケジューリング処理530は、切り替え先プロセスのコンテキスト回復の要否判定を行う。(図13)
まず、切り替え先プロセスのプロセスの識別情報710−1から、論理CPUプロセスかどうかを判定する。(1)の最初の動作と同じである。
切り替え先プロセスが論理CPUプロセスではない場合は、コンテキストの回復は必要ないので、(3)の処理に移行する。
切り替え先プロセスが論理CPUプロセスである場合は、スケジューリング制御テーブルから前回論理CPUプロセス情報800−2を取得し、切り替え先プロセスが前回論理CPUプロセス(当該物理CPUで最後に走行した論理CPUプロセス)と等しいかどうかの判定を行う。条件が成立しない場合とする場合の処理について、それぞれ(2.1)、(2.2)に記す。
(2.1)切り替え先プロセスと前回論理CPUプロセスが等しくない場合は、回復をスキップできない。このとき、前回論理CPUプロセスの退避/回復スキップフラグのオン/オフにより動作が異なる。
前回論理CPUプロセスの退避/回復スキップフラグがオンである場合は、(1)で退避を保留しておいたが、同じ論理CPUプロセスが連続で走行しなかったケースである。このため、退避を保留した前回論理CPUプロセスのコンテキストをこの時点で退避して、退避/回復スキップフラグをオフにする。
退避/回復スキップフラグがオフである場合は、前回論理CPUプロセスのコンテキストは退避してある状態なので、何もしない。
どちらにしても、最後に切り替え先のコンテキストを回復する。図16に示すように、コンテキスト領域へのポインタ710−2から対応するコンテキスト領域410を取得して、論理CPUのレジスタ情報410−1を物理CPUのレジスタに610−1に復元し、VM制御構造410−2を参照できるようにVM制御構造へのポインタ610−2へ登録しする。このとき、レジスタ情報は、コンテキストを退避する論理CPUプロセスがVMM制御用VMのものであった場合は、前述通り必要なものに限定して退避させたものを回復する。切り替え先のコンテキスト回復処理を終えると、(3)の処理に移行する。
(2.2)切り替え先プロセスと前回論理CPUプロセスが等しい場合は、回復をスキップできる可能性がある。
しかし、前回論理CPUプロセスの退避/回復スキップフラグがオフである場合は、CPU共有モードなどで退避を保留しなかった場合なのでスキップできない。この場合は、切り替え先のコンテキストを回復し、(3)の処理に移行する。
前回論理CPUプロセスのスキップフラグがオンである場合が、回復をスキップできるケースである。これは、(1)で退避を保留しておき、再び同じ論理CPUプロセスが走行する場合なので、退避/回復スキップフラグをオフにし、前回論理CPUプロセスのコンテキスト退避処理や切り替え先プロセスのコンテキスト回復処理は行わず、退避/回復をスキップする。
(3)最後にVMMのプロセススケジューリング処理530は、前回論理CPUプロセスの更新処理を行う。(図14)
切り替え先のプロセスが論理CPUプロセスである場合、当該物理CPUのスケジューリング制御テーブル800の前回論理CPUプロセス情報800−2を、切り替え先プロセスに更新する。
これら図12〜図14の処理は全てプロセススケジューリング処理530が行う。
以上のように、CPU占有モードにおいては、コンテキストの退避/回復のスキップによって、オーバーヘッドの削減に貢献できる。
この方式はCPU共有モードにも適用が可能である。しかしながら、CPU共有モードは上に述べたように、任意の物理CPUのうち、いずれか一つにスケジュールするため、同一の論理CPUプロセスが連続走行する可能性は少なく、多くの場合でコンテキストを退避/回復させなくてはならない。よって共有モードに退避をスキップする機能を持たせる意味は少ないが、処理のタイミングによっては、退避/回復をスキップすることも有効である。
VMMのコンテキスト切り替えによるオーバーヘッドを削減することができる。これによって、CPUリソースの効率的な運用が可能となり、汎用的な処理性能の向上が見込める。特にデータベースシステムなど、I/O割り込みによるプロセス切り替えが頻発に起こるシステムにおいて、性能の向上が期待でき、仮想計算機システムの適応範囲の拡大が可能となる。
本発明の一実施形態における、仮想計算機システム構成図である。 本発明の一実施形態における、論理CPUコンテキスト領域の構成を示す図である。 本発明の一実施形態における、物理CPUコンテキストの構成を示す図である。 本発明の一実施形態における、プロセス制御ブロックの構成を示す図である。 本発明の一実施形態における、スケジューリング制御テーブルの構成を示す図である。 本発明の一実施形態における、VMM内部のデータ構造と、プロセススケジューリングのCPU占有モードを示す図である。 本発明の一実施形態における、VMM内部のデータ構造と、プロセススケジューリングのCPU共有モードを示す図である。 本発明の一実施形態における、本発明導入前のコンテキスト退避/回復の概念を表す図である。 図8のパターン1の処理をタイムチャートで表した図である。 本発明の一実施形態における、本発明導入後のコンテキスト退避/回復の概念を表す図である。 図10のパターン1の処理をタイムチャートで表した図である。 本発明の一実施形態における、コンテキスト退避/回復処理のスキップアルゴリズムのうち、切り替え元プロセスの退避要否の判定処理について表したフローチャート図である。 本発明の一実施形態における、コンテキスト退避/回復処理のスキップアルゴリズムのうち、切り替え先プロセスの回復要否の判定処理について表したフローチャート図である。 本発明の一実施形態における、コンテキスト退避/回復処理のスキップアルゴリズムのうち、前回論理CPUプロセス情報の更新処理について表したフローチャート図である。 図12記載のコンテキスト退避処理の詳細について、抜粋して表したフローチャート図である。 図13記載のコンテキスト回復処理の詳細について、抜粋して表したフローチャート図である。
符号の説明
100,200,300 仮想計算機(VM)
110,210,310 ゲストオペレーティングシステム(OS)
120,121,220,221,320,321 論理CPU
130,230,330 VM用メモリ
400 VMM制御用のメモリ領域
410,411,420,421,430,431 論理CPUコンテキスト格納用領域
410−1 論理CPUのレジスタ情報
410−2 論理CPUのVM制御構造
500 仮想マシンモニタ(VMM)
510 プロセス制御ブロック
520 スケジューリング制御テーブル
530 プロセススケジューリング処理
600,601,602,603 物理CPU
610,611,612,613 物理CPUコンテキスト
610−1 物理CPUレジスタ状態
610−2 VM制御構造へのポインタ
620,621,622 物理CPU内部メモリ
710,711,720,721,730,731,740,741,742 各プロセス制御ブロック
710−1 プロセス識別情報
710−2 コンテキスト格納領域へのポインタ
710−3 コンテキスト退避/回復スキップフラグ
800,801,802,803 各スケジューリング制御テーブル
810−1 当該物理CPUで現在走行中のプロセス
810−2 当該物理CPUで最後に走行した論理CPUプロセス

Claims (5)

  1. 物理CPUと、前記物理CPUを論理的に分割して複数の仮想計算機とする仮想計算機制御部と、前記仮想計算機制御部が前記仮想計算機の制御に使用する仮想計算機制御メモリとを備える仮想計算機システムにおいて、
    前記仮想計算機は、前記複数の仮想計算機が前記物理CPUを共有するCPU共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理CPUを占有するCPU占有モードとを有し、
    前記物理CPUは、動作中のプロセスに対応づけられた物理コンテキストを格納する内部メモリを有し、
    前記仮想計算機制御メモリは、前記物理コンテキストと対応づけられた論理コンテキスト領域を有し、
    前記プロセスは、前記仮想計算機の論理CPUのプロセスである第1の論理CPUプロセス、前記仮想計算機制御部用の仮想計算機の論理CPUのプロセスである第2の論理CPUプロセス、及び前記仮想計算機制御部の制御プロセスのうち何れか1つであり、
    前記仮想計算機制御部は、前記仮想計算機のプロセス切り替え時における前記論理コンテキスト領域への前記物理コンテキストの退避動作を管理するプロセス制御ブロックを有し、
    前記仮想計算機制御部が、次のプロセスとして前記制御プロセスを選択すると、
    前記物理CPUで動作中のプロセスが前記第1の論理CPUプロセス及び前記第2の論理CPUプロセスのいずれであるかを判定し、
    前記判定により、前記動作中のプロセスが前記CPU占有モードの第1の論理CPUプロセスである場合、前記仮想計算機制御部が、動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオンにし、
    前記判定により、前記動作中のプロセスが前記CPU共有モードの第1の論理CPUプロセスである場合、前記仮想計算機制御部が、前記動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオフにし、
    前記CPU共有モードの第1の論理CPUプロセスに対応づけられた物理コンテキストを、対応する前記論理コンテキスト領域に退避させ、
    前記判定により、前記動作中のプロセスが前記第2の論理CPUプロセスである場合、前記仮想計算機制御部が、前記動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオフにし、
    前記第2の論理CPUプロセスに対応づけられた物理コンテキストを、対応する前記論理コンテキスト領域に退避させ、
    前記仮想計算機制御部が、前記制御プロセスの次のプロセスとして前記第1の論理CPUプロセスを選択すると、前記仮想計算機制御部は、前記制御プロセスの前に動作した論理CPUプロセスにおける前記保留フラグを参照し、
    前記参照した保留フラグがオンである場合、前記物理CPUは、退避を保留した前記内部メモリの前記物理コンテキストを参照して、前記CPU占有モードの第1の論理CPUプロセスを実行し、前記仮想計算機制御部が前記参照した保留フラグをオフにし、
    前記参照した保留フラグがオフである場合、前記仮想計算機制御部は、前記論理コンテキスト領域から前記CPU共有モードの第1の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUは、前記復元した前記CPU共有モードの第1の論理CPUプロセスに対応する物理コンテキストを参照して、前記CPU共有モードの第1の論理CPUプロセスを実行し、
    前記仮想計算機制御部が、前記制御プロセスの次のプロセスとして前記第2の論理CPUプロセスを選択すると、前記仮想計算機制御部は、前記制御プロセスの前に動作した論理CPUプロセスにおける前記保留フラグを参照し、
    前記参照した保留フラグがオンである場合、退避を保留した前記内部メモリの前記物理コンテキストを、対応する前記論理コンテキスト領域に退避し、前記参照した保留フラグをオフにし、
    前記仮想計算機制御部は、前記論理コンテキスト領域から前記第2の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUは、前記復元した第2の論理CPUプロセスに対応する物理コンテキストを参照して、前記第2の論理CPUプロセスを実行し、
    前記参照した保留フラグがオフである場合、
    前記仮想計算機制御部は、前記論理コンテキスト領域から前記第2の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUは、前記復元した第2の論理CPUプロセスに対応する物理コンテキストを参照して、前記第2の論理CPUプロセスを実行する
    ことを特徴とする仮想計算機システム。
  2. 前記仮想計算機制御部が、前記第2の論理CPUプロセスの次のプロセスとして、前記第1の論理CPUプロセスを選択すると、
    前記仮想計算機制御部は、前記論理コンテキスト領域に退避した前記物理コンテキストを、前記内部メモリに復元し、
    前記物理CPUは、復元された前記内部メモリの前記物理コンテキストを参照して、前記第1の論理CPUプロセスを実行すること
    を特徴とする請求項1記載の仮想計算機システム。
  3. 前記物理コンテキストは、物理CPUレジスタ状態情報と、仮想計算機制御構造へのポインタ情報とを有し、
    前記論理コンテキスト領域は、前記物理CPUレジスタ状態情報に対応する論理CPUレジスタ情報と、前記仮想計算機制御構造へのポインタ情報に対応する仮想計算機制御構造情報とを有することを特徴とする請求項1記載の仮想計算機システム。
  4. 物理CPUと、前記物理CPUを論理的に分割して複数の仮想計算機とする仮想計算機制御部と、前記仮想計算機制御部が前記仮想計算機の制御に使用する仮想計算機制御メモリとを備える仮想計算機システムにおける仮想計算機制御部であって、
    前記仮想計算機は、前記複数の仮想計算機が前記物理CPUを共有するCPU共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理CPUを占有するCPU占有モードとを有し、
    前記物理CPUは、動作中のプロセスに対応づけられた物理コンテキストを格納する内部メモリを有し、
    前記仮想計算機制御メモリは、前記物理コンテキストと対応づけられた論理コンテキスト領域を有し、
    前記プロセスは、前記仮想計算機の論理CPUのプロセスである第1の論理CPUプロセス、前記仮想計算機制御部用の仮想計算機の論理CPUのプロセスである第2の論理CPUプロセス、及び前記仮想計算機制御部の制御プロセスのうち何れか1つであり、
    前記仮想計算機制御部は、
    前記仮想計算機のプロセス切り替え時における前記論理コンテキスト領域への前記物理コンテキストの退避動作を管理するプロセス制御ブロックを有し、
    次のプロセスとして前記制御プロセスを選択すると、
    前記物理CPUで動作中のプロセスが前記第1の論理CPUプロセス及び前記第2の論理CPUプロセスのいずれであるかを判定し、
    前記判定により、前記動作中のプロセスが前記CPU占有モードの第1の論理CPUプロセスである場合、前記仮想計算機制御部が、動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオンにし、
    前記判定により、前記動作中のプロセスが前記CPU共有モードの第1の論理CPUプロセスである場合、前記仮想計算機制御部が、前記動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオフにし、
    前記CPU共有モードの第1の論理CPUプロセスに対応づけられた物理コンテキストを、対応する前記論理コンテキスト領域に退避させ、
    前記判定により、前記動作中のプロセスが前記第2の論理CPUプロセスである場合、前記仮想計算機制御部が、前記動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオフにし、
    前記第2の論理CPUプロセスに対応づけられた物理コンテキストを、対応する前記論理コンテキスト領域に退避させ、
    前記仮想計算機制御部は、
    前記制御プロセスの次のプロセスとして前記第1の論理CPUプロセスを選択すると、前記制御プロセスの前に動作した論理CPUプロセスにおける前記保留フラグを参照し、
    前記参照した保留フラグがオンである場合、前記物理CPUにより、退避を保留した前記内部メモリの前記物理コンテキストを参照して、前記CPU占有モードの第1の論理CPUプロセスが実行され、前記仮想計算機制御部が前記参照した保留フラグをオフにし、
    前記参照した保留フラグがオフである場合、前記論理コンテキスト領域から前記CPU共有モードの第1の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUにより、前記復元した前記CPU共有モードの第1の論理CPUプロセスに対応する物理コンテキストを参照して、前記CPU共有モードの第1の論理CPUプロセスが実行され、
    前記制御プロセスの次のプロセスとして前記第2の論理CPUプロセスを選択すると、前記制御プロセスの前に動作した論理CPUプロセスにおける前記保留フラグを参照し、
    前記参照した保留フラグがオンである場合、退避を保留した前記内部メモリの前記物理コンテキストを、対応する前記論理コンテキスト領域に退避し、前記参照した保留フラグをオフにし、
    前記論理コンテキスト領域から前記第2の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUにより、前記復元した第2の論理CPUプロセスに対応する物理コンテキストを参照して、前記第2の論理CPUプロセスが実行され、
    前記参照した保留フラグがオフである場合、
    前記論理コンテキスト領域から前記第2の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUにより、前記復元した第2の論理CPUプロセスに対応する物理コンテキストを参照して、前記第2の論理CPUプロセスが実行される
    ことを特徴とする仮想計算機制御部。
  5. 物理CPUと、前記物理CPUを論理的に分割して複数の仮想計算機とする仮想計算機制御部と、前記仮想計算機制御部が前記仮想計算機の制御に使用する仮想計算機制御メモリとを備える仮想計算機システムにおけるスケジューリング方法であって、
    前記仮想計算機は、前記複数の仮想計算機が前記物理CPUを共有するCPU共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理CPUを占有するCPU占有モードとを有し、
    前記物理CPUは、動作中のプロセスに対応づけられた物理コンテキストを格納する内部メモリを有し、
    前記仮想計算機制御メモリは、前記物理コンテキストと対応づけられた論理コンテキスト領域を有し、
    前記プロセスは、前記仮想計算機の論理CPUのプロセスである第1の論理CPUプロセス、前記仮想計算機制御部用の仮想計算機の論理CPUのプロセスである第2の論理CPUプロセス、及び前記仮想計算機制御部の制御プロセスのうち何れか1つであり、
    前記仮想計算機制御部は、前記仮想計算機のプロセス切り替え時における前記論理コンテキスト領域への前記物理コンテキストの退避動作を管理するプロセス制御ブロックを有し、
    前記仮想計算機制御部が、次のプロセスとして前記制御プロセスを選択すると、
    前記物理CPUで動作中のプロセスが前記第1の論理CPUプロセス及び前記第2の論理CPUプロセスのいずれであるかを判定し、
    前記判定により、前記動作中のプロセスが前記CPU占有モードの第1の論理CPUプロセスである場合、前記仮想計算機制御部が、動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオンにし、
    前記判定により、前記動作中のプロセスが前記CPU共有モードの第1の論理CPUプロセスである場合、前記仮想計算機制御部が、前記動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオフにし、
    前記CPU共有モードの第1の論理CPUプロセスに対応づけられた物理コンテキストを、対応する前記論理コンテキスト領域に退避させ、
    前記判定により、前記動作中のプロセスが前記第2の論理CPUプロセスである場合、前記仮想計算機制御部が、前記動作中のプロセスに対応づけられた物理コンテキストの退避を保留する前記プロセス制御ブロックの保留フラグをオフにし、
    前記第2の論理CPUプロセスに対応づけられた物理コンテキストを、対応する前記論理コンテキスト領域に退避させ、
    前記仮想計算機制御部が、前記制御プロセスの次のプロセスとして前記第1の論理CPUプロセスを選択すると、前記仮想計算機制御部は、前記制御プロセスの前に動作した論理CPUプロセスにおける前記保留フラグを参照し、
    前記参照した保留フラグがオンである場合、前記物理CPUは、退避を保留した前記内部メモリの前記物理コンテキストを参照して、前記CPU占有モードの第1の論理CPUプロセスを実行し、前記仮想計算機制御部が前記参照した保留フラグをオフにし、
    前記参照した保留フラグがオフである場合、前記仮想計算機制御部は、前記論理コンテキスト領域から前記CPU共有モードの第1の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUは、前記復元した前記CPU共有モードの第1の論理CPUプロセスに対応する物理コンテキストを参照して、前記CPU共有モードの第1の論理CPUプロセスを実行し、
    前記仮想計算機制御部が、前記制御プロセスの次のプロセスとして前記第2の論理CPUプロセスを選択すると、前記仮想計算機制御部は、前記制御プロセスの前に動作した論理CPUプロセスにおける前記保留フラグを参照し、
    前記参照した保留フラグがオンである場合、退避を保留した前記内部メモリの前記物理コンテキストを、対応する前記論理コンテキスト領域に退避し、前記参照した保留フラグをオフにし、
    前記仮想計算機制御部は、前記論理コンテキスト領域から前記第2の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUは、前記復元した第2の論理CPUプロセスに対応する物理コンテキストを参照して、前記第2の論理CPUプロセスを実行し、
    前記参照した保留フラグがオフである場合、
    前記仮想計算機制御部は、前記論理コンテキスト領域から前記第2の論理CPUプロセスに対応する物理コンテキストを前記内部メモリに復元し、
    前記物理CPUは、前記復元した第2の論理CPUプロセスに対応する物理コンテキストを参照して、前記第2の論理CPUプロセスを実行する
    ことを特徴とするスケジューリング方法。
JP2008306964A 2008-12-02 2008-12-02 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法 Expired - Fee Related JP4871948B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008306964A JP4871948B2 (ja) 2008-12-02 2008-12-02 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法
US12/628,342 US8266629B2 (en) 2008-12-02 2009-12-01 Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008306964A JP4871948B2 (ja) 2008-12-02 2008-12-02 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法

Publications (3)

Publication Number Publication Date
JP2010134496A JP2010134496A (ja) 2010-06-17
JP2010134496A5 JP2010134496A5 (ja) 2010-12-09
JP4871948B2 true JP4871948B2 (ja) 2012-02-08

Family

ID=42223944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008306964A Expired - Fee Related JP4871948B2 (ja) 2008-12-02 2008-12-02 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法

Country Status (2)

Country Link
US (1) US8266629B2 (ja)
JP (1) JP4871948B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130061231A1 (en) * 2010-05-11 2013-03-07 Dong-Qing Zhang Configurable computing architecture
US8812400B2 (en) * 2010-07-09 2014-08-19 Hewlett-Packard Development Company, L.P. Managing a memory segment using a memory virtual appliance
JP5758914B2 (ja) * 2010-12-21 2015-08-05 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム及び仮想計算機システム制御方法
KR101773166B1 (ko) 2011-02-21 2017-08-30 삼성전자주식회사 가상 머신 스케줄 시점 조절 장치 및 방법
US8555279B2 (en) * 2011-04-25 2013-10-08 Hitachi, Ltd. Resource allocation for controller boards management functionalities in a storage management system with a plurality of controller boards, each controller board includes plurality of virtual machines with fixed local shared memory, fixed remote shared memory, and dynamic memory regions
US8793535B2 (en) 2011-07-21 2014-07-29 Microsoft Corporation Optimizing system usage when running quality tests in a virtual machine environment
US9459898B2 (en) * 2011-10-06 2016-10-04 Hitachi, Ltd. Virtual server processing control method, system, and virtual server processing control management server
JP5936041B2 (ja) * 2012-03-07 2016-06-15 日本電気株式会社 マルチプロセッサ装置、スケジューリング方法、および、スケジューリングプログラム
CN102750178B (zh) 2012-06-08 2015-04-29 华为技术有限公司 通信设备硬件资源的虚拟化管理方法及相关装置
US9569223B2 (en) * 2013-02-13 2017-02-14 Red Hat Israel, Ltd. Mixed shared/non-shared memory transport for virtual machines
JP6126311B2 (ja) * 2013-08-26 2017-05-10 ヴイエムウェア インコーポレイテッドVMware,Inc. 待ち時間の影響を受けやすい仮想マシンをサポートするように構成されるcpuスケジューラ
CN103699433B (zh) * 2013-12-18 2017-07-14 中国科学院计算技术研究所 一种于Hadoop平台中动态调整任务数目的方法及系统
CN103729252B (zh) * 2013-12-20 2017-09-05 杭州华为数字技术有限公司 一种虚拟机调度的方法及调度监控器
US9772867B2 (en) * 2014-03-27 2017-09-26 International Business Machines Corporation Control area for managing multiple threads in a computer
JP6158751B2 (ja) * 2014-05-30 2017-07-05 日本電信電話株式会社 計算機資源割当装置及び計算機資源割当プログラム
CN104035811B (zh) * 2014-07-01 2017-07-28 龙芯中科技术有限公司 虚拟机现场数据的处理方法和装置
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
CN108984267B (zh) 2018-07-09 2020-11-13 北京东土科技股份有限公司 工业服务器的微内核架构控制系统及工业服务器
US20210357267A1 (en) * 2020-05-15 2021-11-18 Unisys Corporation Defining and accessing dynamic registers in a virtual multi-processor system
CN111738710B (zh) * 2020-07-23 2020-12-01 支付宝(杭州)信息技术有限公司 对智能合约的执行进行资源扣除的方法和处理器
US20220283838A1 (en) * 2021-03-08 2022-09-08 Unisys Corporation System and method enabling software-controlled processor customization for workload optimization
US11663010B2 (en) * 2021-03-08 2023-05-30 Unisys Corporation System and method for securely debugging across multiple execution contexts

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6159539A (ja) * 1984-08-30 1986-03-27 Nec Corp サブプロセツサのレジスタ退避/復帰方式
JPH02123426A (ja) * 1988-11-02 1990-05-10 Mitsubishi Electric Corp マイクロプロセッサ
JPH02173828A (ja) * 1988-12-27 1990-07-05 Nec Corp 割込み処理方式
US5452452A (en) * 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
JPH0451329A (ja) * 1990-06-19 1992-02-19 Nec Corp コンテキスト切替装置
JPH04155533A (ja) * 1990-10-19 1992-05-28 Fujitsu Ltd 仮想計算機制御方式
JP3644042B2 (ja) 1993-11-15 2005-04-27 ソニー株式会社 マルチタスク処理装置
JP2001282558A (ja) 2000-03-30 2001-10-12 Hitachi Ltd マルチオペレーティング計算機システム
US7117319B2 (en) * 2002-12-05 2006-10-03 International Business Machines Corporation Managing processor architected state upon an interrupt
US7500244B2 (en) * 2004-06-30 2009-03-03 Intel Corporation Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments
US7937710B1 (en) * 2005-11-22 2011-05-03 Nvidia Corporation Context switch signaling method and system

Also Published As

Publication number Publication date
JP2010134496A (ja) 2010-06-17
US8266629B2 (en) 2012-09-11
US20100138831A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
JP4871948B2 (ja) 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法
JP5405320B2 (ja) 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
JP5655677B2 (ja) ハイパーバイザ置き換え方法および情報処理装置
KR100893527B1 (ko) 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US20060150194A1 (en) Methods and apparatuses to maintain multiple execution contexts
US20120188263A1 (en) Method and system to dynamically bind and unbind applications on a general purpose graphics processing unit
US9563466B2 (en) Method and apparatus for supporting programmable software context state execution during hardware context restore flow
WO2007099483A2 (en) Method and apparatus for dynamic resizing of cache partitions based on the execution phase of tasks
JP2017037370A (ja) 計算機、プロセス制御方法およびプロセス制御プログラム
US20130347000A1 (en) Computer, virtualization mechanism, and scheduling method
EP3846028A1 (en) Method and device for resuming execution of application, and computer
WO2011020281A1 (zh) 一种高效的内存池访问方法
JP2009157684A (ja) 仮想化プログラム、シミュレーション装置、仮想化方法
US20190236017A1 (en) Method and system for efficient communication and command system for deferred operation
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
JP2006092042A (ja) 情報処理装置及びコンテキスト切り替え方法
JPWO2008114415A1 (ja) マルチプロセッシングシステム
US11860785B2 (en) Method and system for efficient communication and command system for deferred operation
JP4006428B2 (ja) 計算機システム
JP7196439B2 (ja) 仮想化環境におけるデバイスへのアクセス方法
JP4207775B2 (ja) 計算機システムの凍結・解凍プログラム、その記録媒体、及び計算機システムの凍結・解凍方法
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2004021610A (ja) タスク管理装置
JPS63197239A (ja) 仮想プロセツサ制御情報退避格納方式
JP2018151968A (ja) 管理装置、分散システム、管理方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101021

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101021

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110506

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110929

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111121

R151 Written notification of patent or utility model registration

Ref document number: 4871948

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees