JP5048940B2 - 仮想マシンについてのプロセッサ・トポロジをエクスポーズするためのシステムおよび方法 - Google Patents
仮想マシンについてのプロセッサ・トポロジをエクスポーズするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP5048940B2 JP5048940B2 JP2005330704A JP2005330704A JP5048940B2 JP 5048940 B2 JP5048940 B2 JP 5048940B2 JP 2005330704 A JP2005330704 A JP 2005330704A JP 2005330704 A JP2005330704 A JP 2005330704A JP 5048940 B2 JP5048940 B2 JP 5048940B2
- Authority
- JP
- Japan
- Prior art keywords
- operating system
- processor
- virtualizer
- computer
- shared 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Numerical Control (AREA)
Description
コンピュータ製造業者は、その製造業者のマーケットシェアを最大にするために、少ないアプリケーションではなくて、より多いアプリケーションがそのコンピュータ製造業者の製品ラインに関連するマイクロ・プロセッサ・ファミリ上で実行されるようにすることを望んでいる。あるコンピュータ・システム上で実行することができるオペレーティング・システムおよびアプリケーション・プログラムの数を増大させるために、ある技術分野が発展してきており、この技術分野においては、ホストと呼ばれる、ある1つのタイプのCPUを有する所与のコンピュータがバーチャライザ・プログラム(virtualizer program)を含み、これは、ゲストと呼ばれる無関係のタイプのCPUの命令をそのホスト・コンピュータがエミュレートできるようにする。この結果、このホスト・コンピュータは、所与のゲスト命令に応答して1つまたは複数のホスト命令が呼び出されるようにするアプリケーションを実行することになり、この場合、このホスト・コンピュータは、それ自体のハードウェア・アーキテクチャ用に設計されたソフトウェアも、無関係のハードウェア・アーキテクチャを有するコンピュータ用に書かれたソフトウェアも、共に実行することができる。
性能を最大にするため、現代のオペレーティング・システムのスケジューラは、このマシンのプロセッサとメモリのトポロジを考慮に入れている。これは、通常はスタートアップにおいて行われ、物理ハードウェア上で実行されるオペレーティング・システムでは、これは、物理ハードウェアのプロセッサ・トポロジが不変のままであるので通常は十分である。Windows(登録商標)オペレーティング・システム(Windows(登録商標) XP、Windows(登録商標) 2003)および他のオペレーティング・システムは、一般的にこのシステムのトポロジをブート時に2つの方法で、すなわち(a)BIOS SRAT(Static Resource Affinity Table:スタティック・リソース・アフィニティ・テーブル)中のメモリおよびプロセッサのノード・トポロジ情報を調べること、また(b)自己完結型のプロセッサ識別データ(x86/x64プロセッサにおけるCPUID)を読み取って、特定のSMT(Simultaneous Multithreading:同時マルチ・スレッディング、別名ハイパー・スレッディング(hyperthreading))およびマルチコア(multicore)トポロジを決定すること、により決定している。
本発明の多数の実施形態は、コンピュータ上で実行することができる。図1および以下の説明では、本発明を実施することができる適切なコンピューティング環境の一般的な簡潔な説明を提供することを意図している。必要ではないが、本発明については、クライアント・ワークステーションやサーバなどのコンピュータによって実行されるプログラム・モジュールなどコンピュータ実行可能命令の一般的な文脈で説明することにする。一般的に、プログラム・モジュールは、特定のタスクを実施し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含んでいる。さらに、本発明は、ハンドヘルド・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのまたはプログラマブルな大衆消費電子製品、ネットワークPC、ミニ・コンピュータ、メインフレーム・コンピュータなどを含めて他のコンピュータ・システム・コンフィギュレーションを用いて実行することもできることが当業者には理解されよう。本発明は、分散コンピューティング環境中において実行することもでき、ここでは、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境においては、プログラム・モジュールは、ローカル・メモリ・ストレージ・デバイス中にもリモート・メモリ・ストレージ・デバイス中にも配置することができる。
概念的な観点から、コンピュータ・システムは、一般的にハードウェアの基本レイヤ上で実行される1つまたは複数のソフトウェア・レイヤを含んでいる。この階層化は、抽象化の理由で行われる。所与のソフトウェア・レイヤについてのインターフェースを定義することにより、このレイヤは、その上の他の諸レイヤによって異なるように実装することができる。うまく設計されたコンピュータ・システムにおいては、各レイヤは、その直下の隣接したレイヤについてしか知らない(し、またそれにしか依存していない)。これにより、レイヤまたは「スタック」(複数の隣接レイヤ)は、そのレイヤまたはスタックの上のレイヤに悪影響を与えずに置き換えることができるようになる。例えば、ソフトウェア・アプリケーション(上位レイヤ)は、一般的にそのオペレーティング・システム(下位レイヤ)の下位レベルに依存して、ファイルをある形態の恒久的ストレージに書き込み、これらのアプリケーションは、データをフロッピー(登録商標)ディスクか、ハードドライブか、あるいはネットワーク・フォルダに書き込むことの間におけるその違いを理解する必要がない。この下位レイヤが、ファイルを書き込むための新しいオペレーティング・システムコンポーネントで置き換えられる場合にも、この上位レイヤ・ソフトウェア・アプリケーションのオペレーションは、影響を受けないままである。
一般に、「プロセッサ」は、コンピュータを駆動する基本命令に反応し、処理する論理回路であり、中央演算処理装置(CPU)についての省略表現としてしばしば使用される用語でもある。パーソナル・コンピュータ中における、または小型デバイス中に埋め込まれたプロセッサは、しばしばマイクロ・プロセッサと呼ばれる。
NUMA(non-uniform memory access:非一様メモリ・アクセス)は、マルチ・プロセッシング・システム中で物理プロセッサがメモリをローカルに共有することができ、性能を改善し、またこのシステムの能力が高められるように、物理プロセッサのノードを構成する方法である。NUMAは一般的に、SMP(symmetric multiprocessing:対称マルチ・プロセッシング)システム中において使用され、このSMPシステムは、1つのオペレーティング・システム下で動作する複数のプロセッサが、コモン・バス(common bus)または「相互接続」パス上で互いに他のメモリにアクセスする「密結合された、あらゆるものを共有する」システムである。通常は、SMPの限界は、マイクロ・プロセッサが追加されるにしたがって、共有バスまたはデータパスが、過負荷になり、性能的にボトルネックになってしまうことであり、しかし、NUMAは、すべてのデータ・アクセスが、この主要バス上を伝わる必要がないように、ノードのマイクロ・プロセッサ間で共有される中間レベルのメモリ(ノード・メモリ)を追加している。
本発明の様々な実施形態は、ゲスト・オペレーティング・システムに対して現在割り当てられている、サブセットのホスト・リソースのトポロジについて、ゲスト・オペレーティング・システムに知らせるためのシステムおよび方法を対象としている。ある種のこれらの実施形態では、仮想マシン・ブート時に、スタティック・リソース・アフィニティ・テーブル(SRAT)をバーチャライザが使用して、ゲスト物理メモリおよびゲスト仮想プロセッサを仮想ノード中にグループ分けすることになる。その後に仮想ノードの背後のホスト物理メモリは、必要に応じてこのバーチャライザが変更することができ、このバーチャライザは、このノード内のこれらの仮想プロセッサについての適切な物理プロセッサを提供することになる。このアプローチにより、この仮想マシン上で実行されるNUMAを認識しているオペレーティング・システムは、さらなる修正なしに最良の性能を得るようにスケジュールすることができるようになる。
本明細書中で説明している様々なシステム、方法、および技法は、ハードウェアまたはソフトウェアに適切に、あるいはこれら両者の組合せを用いて実装することができる。したがって、本発明の方法および装置、またはある種の態様またはその一部分は、フロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、他の任意のマシン読取り可能ストレージ媒体など有形の媒体の形で実施されるプログラム・コード(すなわち、命令)の形態を取ることができ、この場合、このプログラム・コードが、コンピュータなどのマシンにロードされ、マシンによって実行されるときに、このマシンは、本発明を実行するための装置になる。プログラマブル・コンピュータ上におけるプログラム・コード実行の場合においては、このコンピュータは、一般に、プロセッサ、(揮発性および不揮発性のメモリおよび/またはストレージ・エレメントを含めて)このプロセッサによって読取り可能なストレージ媒体、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含むことになる。1つまたは複数のプログラムは、高レベルの手続き形言語またはオブジェクト指向プログラミング言語の形で実装して、コンピュータ・システムと情報をやりとりすることが好ましい。しかし、この1つまたは複数のプログラムは、必要に応じてアセンブリ言語または機械語で実装することができる。いずれにしても、この言語は、コンパイラ型言語またはインタープリタ型言語とすることができ、ハードウェア実装形態と組み合わせることができる。
21 処理装置
22 システム・メモリ
23 システム・バス
27 ハードドライブ
28 フロッピー(登録商標)ドライブ
29 着脱可能ストレージ
30 光ドライブ
32 ハードディスク・ドライブI/F
33 磁気ディスク・ドライブI/F
34 光ドライブI/F
36 アプリケーション・プログラム
36’ アプリケーション
37 他のプログラム
38 プログラム・データ
40 キーボード
42 マウス
46 シリアル・ポートI/F
47 モニタ
48 ビデオ・アダプタ
49 1つ(または複数)のリモート・コンピュータ
50 フロッピー(登録商標)ドライブ
53 ネットワークI/F
54 モデム
55 ホスト・アダプタ
56 SCSIバス
62 ストレージ・デバイス
90 コンピュータ・システム
102 物理コンピュータ・ハードウェア
104、104” ホスト・オペレーティング・システム
104’ 仮想マシン・モニタ
108 仮想マシンA
110 仮想マシンB
112 ゲストOS A
114 ゲストOS B
116 アプリケーションA1
118 アプリケーションA2
120 アプリケーションB1
402 論理プロセッサ
404 コア
406 物理プロセッサ
412 ノード・メモリ
414 ノード
416 2ノード・システム
602 ゲストOS
604 OSスケジューラ
612 仮想マシン
614 OSスケジューラ
622 メモリ
634、636,638 データ・フロー
644 「ヒンティング」データ
Claims (16)
- ホスト・コンピュータ・システム上のバーチャライザにより仮想化されたゲスト・コンピュータ・システムにおいて実行されるオペレーティング・システムの性能を最適化するための方法であって、
前記方法は、
前記バーチャライザにおいて、前記ゲスト・コンピュータ・システムのプロセッサ・トポロジを再構成するステップと、
前記バーチャライザから前記オペレーティング・システムに、前記再構成されたプロセッサ・トポロジの情報を提供するステップと、
前記オペレーティング・システムのスケジューラにおいて、前記再構成されたプロセッサ・トポロジの情報に基いてプロセッサ・リソースの割り当てを行なうステップと、
前記オペレーティング・システムから前記バーチャライザに、前記オペレーティング・システムにプロセッサ・リソースを効率的に割り当てるためのヒントデータを提供するステップと、
前記ゲスト・コンピュータ・システムのスケジューラにおいて、前記バーチャライザに提供された前記ヒントデータに基いて、前記オペレーティング・システムに対する前記プロセッサ・リソースの割り当てを行なうステップと
を含むことを、特徴とする方法。 - 前記再構成されたプロセッサ・トポロジの情報を提供するステップは、前記バーチャライザにおいて、前記オペレーティング・システムの少なくとも1つの内部テーブルを直接にアップデートするステップを含むことを特徴とする請求項1に記載の方法。
- 前記再構成されたプロセッサ・トポロジの情報を提供するステップは、前記バーチャライザにおいて、前記プロセッサ・トポロジの情報を共有メモリ・ロケーションに提供するステップを含み、前記方法は、
前記オペレーティング・システムがその後に前記共有メモリ・ロケーションにアクセスし、前記プロセッサ・トポロジの情報を取り出し、前記プロセッサ・トポロジの情報を適用するステップをさらに含むことを特徴とする請求項1に記載の方法。 - 前記オペレーティング・システムがその後に前記共有メモリ・ロケーションにアクセスする前記ステップは、スケジュールに従って実施されるか、または前記バーチャライザが生成する割込みに応答して実施されることを特徴とする請求項3に記載の方法。
- 前記ヒントデータを提供するステップは、前記オペレーティング・システムにおいて、ヒントデータを共有メモリ・ロケーションに提供するステップを含み、前記方法は、
前記バーチャライザがその後に前記共有メモリ・ロケーションにアクセスし、前記ヒントデータを取り出し、前記ヒントデータを適用するステップをさらに含むことを特徴とする請求項3に記載の方法。 - 前記方法の各ステップを実行する手段を備えるハードウェア制御デバイスによって実装されることを特徴とする請求項1に記載の方法。
- コンピュータ・デバイスにより実行されると、バーチャライザに、以下の方法を実行させる、コンピュータ読取り可能命令を記憶したコンピュータ読取り可能記録媒体であって、
前記方法は、
前記バーチャライザにより仮想化されたゲスト・コンピュータ・システムのプロセッサ・トポロジを再構成するステップと、
前記オペレーティング・システムのスケジューラが前記再構成されたプロセッサ・トポロジの情報に基いてプロセッサ・リソースの割り当てを行なうように、前記ゲスト・コンピュータ・システム上のオペレーティング・システムに前記再構成されたプロセッサ・トポロジの情報を提供するステップと、
前記オペレーティング・システムから、前記オペレーティング・システムにプロセッサ・リソースを効率的に割り当てるためのヒントデータを受け取るステップと、
前記ゲスト・コンピュータ・システムのスケジューラを用いて、前記オペレーティング・システムに対し、前記ヒントデータに基いて前記プロセッサ・リソースの割り当てを行わせるステップと
を含むことを特徴とするコンピュータ読取り可能記録媒体。 - 前記提供するステップは、前記オペレーティング・システムの内部テーブルに直接前記プロセッサ・トポロジの情報を提供するステップ、または前記プロセッサ・トポロジの情報を共有メモリに提供して、前記オペレーティング・システムが、その後に前記共有メモリ・ロケーションにアクセスし、前記プロセッサ・トポロジの情報を取り出し、前記プロセッサ・トポロジの情報を適用することを可能にするステップを含むことを特徴とする請求項7に記載のコンピュータ読取り可能記録媒体。
- 前記コンピュータ・デバイスにより実行されると、前記オペレーティング・システムがその後に前記共有メモリ・ロケーションにアクセスする前記ステップを、スケジュールに従って実施するか、または前記仮想マシン中の前記バーチャライザが生成する割込みに応答して実施するための命令をさらに記憶したことを特徴とする請求項8に記載のコンピュータ読取り可能記録媒体。
- 前記コンピュータ・デバイスにより実行されると、前記オペレーティング・システムが、前記ヒントデータを用いて共有メモリ・ロケーションをアップデートすることにより前記バーチャライザに対して前記ヒントデータを提供し、前記バーチャライザが、その後に前記共有メモリ・ロケーションにアクセスし、前記ヒントデータを取り出し、前記ヒントデータを適用するための命令をさらに記憶したことを特徴とする請求項8に記載のコンピュータ読取り可能記録媒体。
- ホスト・コンピュータ・システムのバーチャライザにより仮想化されたゲスト・コンピュータ・システム上で実行されるオペレーティング・システムの性能を最適化するためのシステムであって、
前記ホスト・コンピュータ・システムは、プロセッサと、前記システムが稼働中に、前記プロセッサと通信するメモリとを備え、前記メモリは、前記プロセッサにより実行されたときに、以下の方法を実行するコンピュータ読取り可能命令を備え、前記方法は、
前記バーチャライザにおいて、前記ゲスト・コンピュータ・システムのプロセッサ・トポロジを再構成するステップと、
前記オペレーティング・システムのスケジューラが前記再構成されたプロセッサ・トポロジの情報に基いてプロセッサ・リソースの割り当てを行なうように、前記バーチャライザから前記オペレーティング・システムに、前記再構成されたプロセッサ・トポロジの情報を提供するステップと、
前記バーチャライザにおいて、前記オペレーティング・システムから、前記オペレーティング・システムにプロセッサ・リソースを効率的に割り当てるためのヒントデータを受け取るステップと、
前記バーチャライザにおいて、前記ゲスト・コンピュータ・システムのスケジューラを用いて、前記オペレーティング・システムに対し、前記ヒントデータに基いて前記プロセッサ・リソースの割り当てを行わせるステップと
を含むことを特徴とするシステム。 - 前記プロセッサ・トポロジの再構成は、前記ホスト・コンピュータ・システムによって動的に割り付けられる1組のリソースに対する変更に基づくことを特徴とする請求項11に記載のシステム。
- 前記バーチャライザは、前記オペレーティング・システムの前記内部テーブルに直接前記プロセッサ・トポロジの情報を提供する命令をさらに実行することを特徴とする請求項12に記載のシステム。
- 前記バーチャライザは、共有メモリ・ロケーションに前記プロセッサ・トポロジの情報を提供する命令を実行し、前記オペレーティング・システムが、その後に前記共有メモリ・ロケーションにアクセスし、前記プロセッサ・トポロジの情報を取り出し、前記プロセッサ・トポロジの情報を適用する命令をさらに実行することを特徴とする請求項12に記載のシステム。
- 前記オペレーティング・システムがその後に前記共有メモリ・ロケーションにアクセスする前記ステップを、スケジュールに従って実施するか、または前記バーチャライザが生成する割込みに応答して実施することを特徴とする請求項14に記載のシステム。
- 前記オペレーティング・システムが、ヒントデータを用いて共有メモリ・ロケーションをアップデートすることにより前記バーチャライザに対してヒントデータを提供し、前記バーチャライザが、その後に前記共有メモリ・ロケーションにアクセスし、前記ヒントデータを取り出し、前記ヒントデータを適用する命令をさらに実行することを特徴とする請求項14に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/018,337 | 2004-12-21 | ||
US11/018,337 US8621458B2 (en) | 2004-12-21 | 2004-12-21 | Systems and methods for exposing processor topology for virtual machines |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006178933A JP2006178933A (ja) | 2006-07-06 |
JP5048940B2 true JP5048940B2 (ja) | 2012-10-17 |
Family
ID=36406489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005330704A Active JP5048940B2 (ja) | 2004-12-21 | 2005-11-15 | 仮想マシンについてのプロセッサ・トポロジをエクスポーズするためのシステムおよび方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US8621458B2 (ja) |
EP (1) | EP1674987B1 (ja) |
JP (1) | JP5048940B2 (ja) |
KR (1) | KR20060071307A (ja) |
CN (1) | CN1794177B (ja) |
AT (1) | ATE554445T1 (ja) |
ES (1) | ES2382470T3 (ja) |
PL (1) | PL1674987T3 (ja) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621458B2 (en) * | 2004-12-21 | 2013-12-31 | Microsoft Corporation | Systems and methods for exposing processor topology for virtual machines |
US20060149899A1 (en) * | 2004-12-30 | 2006-07-06 | Zimmer Vincent J | Method and apparatus for ongoing block storage device management |
US7716638B2 (en) * | 2005-03-04 | 2010-05-11 | Microsoft Corporation | Methods for describing processor features |
US8028295B2 (en) | 2005-09-30 | 2011-09-27 | Intel Corporation | Apparatus, system, and method for persistent user-level thread |
US7406407B2 (en) * | 2006-06-01 | 2008-07-29 | Microsoft Corporation | Virtual machine for operating N-core application on M-core processor |
US8607228B2 (en) | 2006-08-08 | 2013-12-10 | Intel Corporation | Virtualizing performance counters |
JP2008152594A (ja) | 2006-12-19 | 2008-07-03 | Hitachi Ltd | マルチコアプロセッサ計算機の高信頼化方法 |
US8381209B2 (en) * | 2007-01-03 | 2013-02-19 | International Business Machines Corporation | Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls |
US8856782B2 (en) | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
US20080229053A1 (en) * | 2007-03-13 | 2008-09-18 | Edoardo Campini | Expanding memory support for a processor using virtualization |
CN101043380B (zh) * | 2007-04-20 | 2010-07-21 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
US8762999B2 (en) * | 2007-09-27 | 2014-06-24 | Oracle America, Inc. | Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement |
US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
US8881163B2 (en) * | 2007-12-07 | 2014-11-04 | Microsoft Corporation | Kernel processor grouping |
US8615757B2 (en) * | 2007-12-26 | 2013-12-24 | Intel Corporation | Negotiated assignment of resources to a virtual machine in a multi-virtual machine environment |
US8352950B2 (en) * | 2008-01-11 | 2013-01-08 | International Business Machines Corporation | Algorithm to share physical processors to maximize processor cache usage and topologies |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US7734900B2 (en) * | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
JP2009266027A (ja) * | 2008-04-25 | 2009-11-12 | Toshiba Corp | 情報処理装置および制御方法 |
US8291426B2 (en) * | 2008-06-02 | 2012-10-16 | Microsoft Corporation | Memory allocators corresponding to processor resources |
US9201673B2 (en) | 2008-07-30 | 2015-12-01 | Microsoft Technology Licensing, Llc | Efficient detection and response to spin waits in multi-processor virtual machines |
US9098698B2 (en) * | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
US20100138829A1 (en) * | 2008-12-01 | 2010-06-03 | Vincent Hanquez | Systems and Methods for Optimizing Configuration of a Virtual Machine Running At Least One Process |
KR101437122B1 (ko) | 2008-12-03 | 2014-09-02 | 삼성전자 주식회사 | Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법 |
US8930953B2 (en) * | 2009-01-16 | 2015-01-06 | International Business Machines Corporation | Dynamic checking of hardware resources for virtual environments |
US8490094B2 (en) | 2009-02-27 | 2013-07-16 | International Business Machines Corporation | Non-uniform memory access (NUMA) enhancements for shared logical partitions |
WO2010106692A1 (en) * | 2009-03-17 | 2010-09-23 | Hitachi, Ltd. | Storage system and its controlling method |
US9529636B2 (en) * | 2009-03-26 | 2016-12-27 | Microsoft Technology Licensing, Llc | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
US9535767B2 (en) * | 2009-03-26 | 2017-01-03 | Microsoft Technology Licensing, Llc | Instantiating a virtual machine with a virtual non-uniform memory architecture |
JP5035299B2 (ja) * | 2009-06-15 | 2012-09-26 | 株式会社日立製作所 | マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム |
US8898664B2 (en) * | 2010-06-01 | 2014-11-25 | Microsoft Corporation | Exposure of virtual cache topology to a guest operating system |
US8443376B2 (en) | 2010-06-01 | 2013-05-14 | Microsoft Corporation | Hypervisor scheduler |
US8271710B2 (en) * | 2010-06-24 | 2012-09-18 | International Business Machines Corporation | Moving ownership of a device between compute elements |
US8949499B2 (en) | 2010-06-24 | 2015-02-03 | International Business Machines Corporation | Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch |
US20120096462A1 (en) * | 2010-10-18 | 2012-04-19 | Electronics And Telecommunications Research Institute | Dynamic virtualization technique for multicore processor system |
WO2012083012A1 (en) * | 2010-12-15 | 2012-06-21 | Advanced Micro Devices, Inc. | Device discovery and topology reporting in a combined cpu/gpu architecture system |
US9489224B2 (en) | 2010-12-28 | 2016-11-08 | Nec Corporation | Network virtualization system, physical node, and virtual interface identification method in virtual machine |
US8812830B2 (en) | 2011-08-31 | 2014-08-19 | Microsoft Corporation | Attestation protocol for securely booting a guest operating system |
WO2013082437A1 (en) | 2011-12-02 | 2013-06-06 | Invincia, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
CN103135964B (zh) * | 2011-12-05 | 2015-09-23 | 联想(北京)有限公司 | 跨指令集调用函数的方法和电子设备 |
KR101850318B1 (ko) | 2011-12-09 | 2018-04-20 | 삼성전자주식회사 | 가상 메모리 관리 장치 및 방법 |
EP2833264B1 (en) * | 2012-03-29 | 2020-06-24 | Hitachi, Ltd. | Virtual computer schedule method |
US9436493B1 (en) * | 2012-06-28 | 2016-09-06 | Amazon Technologies, Inc. | Distributed computing environment software configuration |
US9191435B2 (en) | 2012-08-23 | 2015-11-17 | TidalScale, Inc. | Selective data migration or remapping of virtual processors to provide required data accessibility to processor cores |
US10331589B2 (en) | 2013-02-13 | 2019-06-25 | Red Hat Israel, Ltd. | Storing interrupt location for fast interrupt register access in hypervisors |
US9329880B2 (en) * | 2013-02-13 | 2016-05-03 | Red Hat Israel, Ltd. | Counter for fast interrupt register access in hypervisors |
US9898475B1 (en) | 2013-02-25 | 2018-02-20 | EMC IP Holding Company LLC | Tiering with pluggable storage system for parallel query engines |
US9984083B1 (en) | 2013-02-25 | 2018-05-29 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines across non-native file systems |
US9342342B2 (en) * | 2013-03-15 | 2016-05-17 | International Business Machines Corporation | Refreshing memory topology in virtual machine operating systems |
WO2015034506A1 (en) * | 2013-09-05 | 2015-03-12 | TidalScale, Inc. | Selective resource migration |
US9606843B2 (en) | 2013-12-18 | 2017-03-28 | Qualcomm Incorporated | Runtime optimization of multi-core system designs for increased operating life and maximized performance |
US10261875B2 (en) | 2013-12-18 | 2019-04-16 | Qualcomm Incorporated | Runtime optimization of multi-core system designs for increased operating life and maximized performance |
US20150169363A1 (en) * | 2013-12-18 | 2015-06-18 | Qualcomm Incorporated | Runtime Optimization of Multi-core System Designs for Increased Operating Life and Maximized Performance |
US9921848B2 (en) | 2014-03-27 | 2018-03-20 | International Business Machines Corporation | Address expansion and contraction in a multithreading computer system |
US10102004B2 (en) | 2014-03-27 | 2018-10-16 | International Business Machines Corporation | Hardware counters to track utilization in a multithreading computer system |
US9804846B2 (en) | 2014-03-27 | 2017-10-31 | International Business Machines Corporation | Thread context preservation in a multithreading computer system |
US9594660B2 (en) | 2014-03-27 | 2017-03-14 | International Business Machines Corporation | Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores |
US9354883B2 (en) | 2014-03-27 | 2016-05-31 | International Business Machines Corporation | Dynamic enablement of multithreading |
US9417876B2 (en) | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
US9218185B2 (en) | 2014-03-27 | 2015-12-22 | International Business Machines Corporation | Multithreading capability information retrieval |
CN103995733B (zh) * | 2014-05-27 | 2017-02-15 | 西安交通大学 | 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法 |
US9304805B2 (en) * | 2014-06-06 | 2016-04-05 | Interinational Business Machines Corporation | Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors |
US9384027B2 (en) | 2014-06-06 | 2016-07-05 | International Business Machines Corporation | Selecting a host for a virtual machine using a hardware multithreading parameter |
US9400672B2 (en) | 2014-06-06 | 2016-07-26 | International Business Machines Corporation | Placement of virtual CPUS using a hardware multithreading parameter |
WO2016032467A1 (en) * | 2014-08-27 | 2016-03-03 | Adaptive Spectrum And Signal Alignment, Inc. | Systems, methods, and apparatuses for implementing the virtualization of access node functions |
US9542320B2 (en) | 2015-01-12 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Multi-node cache coherency with input output virtualization |
US10853104B2 (en) * | 2015-02-27 | 2020-12-01 | Plasma Business Intelligence, Inc. | Virtual environment for simulating a real-world environment with a large number of virtual and real connected devices |
US9335982B1 (en) | 2015-04-28 | 2016-05-10 | Microsoft Technology Licensing, Llc | Processor emulation using multiple translations |
US11240334B2 (en) | 2015-10-01 | 2022-02-01 | TidalScale, Inc. | Network attached memory using selective resource migration |
US10091830B2 (en) * | 2015-12-04 | 2018-10-02 | T-Mobile Usa, Inc. | Hub device |
US10108462B2 (en) * | 2016-02-12 | 2018-10-23 | Microsoft Technology Licensing, Llc | Virtualizing sensors |
US10353736B2 (en) | 2016-08-29 | 2019-07-16 | TidalScale, Inc. | Associating working sets and threads |
CN106502760B (zh) * | 2016-09-21 | 2019-06-21 | 华为技术有限公司 | 一种虚拟机亲和性策略可视化的方法及装置 |
US10891254B2 (en) * | 2016-10-26 | 2021-01-12 | Intel Corporation | Switchable topology processor tile and computing machine |
US10169069B2 (en) | 2017-04-06 | 2019-01-01 | International Business Machines Corporation | System level update protection based on VM priority in a multi-tenant cloud environment |
US10521273B2 (en) * | 2017-06-08 | 2019-12-31 | Cisco Technology, Inc. | Physical partitioning of computing resources for server virtualization |
US11023135B2 (en) | 2017-06-27 | 2021-06-01 | TidalScale, Inc. | Handling frequently accessed pages |
US11113088B2 (en) * | 2017-07-26 | 2021-09-07 | Dell Products, L.P. | Generating and managing groups of physical hosts associated with virtual machine managers in an information handling system |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
US11036541B2 (en) | 2017-09-19 | 2021-06-15 | Microsoft Technology Licensing, Llc | Interrupt management for a hypervisor |
US11175927B2 (en) | 2017-11-14 | 2021-11-16 | TidalScale, Inc. | Fast boot |
US10776150B2 (en) | 2018-10-30 | 2020-09-15 | Red Hat, Inc. | Dynamically updating virtual central processing units |
US11144326B2 (en) * | 2019-02-19 | 2021-10-12 | Cisco Technology, Inc. | System and method of initiating multiple adaptors in parallel |
US11249804B2 (en) | 2019-10-07 | 2022-02-15 | International Business Machines Corporation | Affinity based optimization of virtual persistent memory volumes |
US11954534B2 (en) | 2021-06-21 | 2024-04-09 | Red Hat, Inc. | Scheduling in a container orchestration system utilizing hardware topology hints |
US12069093B2 (en) * | 2021-09-30 | 2024-08-20 | Fortinet, Inc. | Artificial virtual machine for preventing malware execution by applying virtual machine characteristics in real computing environments |
WO2023136373A1 (ko) * | 2022-01-13 | 2023-07-20 | 엘지전자 주식회사 | 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692193A (en) * | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
JP4634548B2 (ja) | 1997-11-04 | 2011-02-16 | ヒューレット・パッカード・カンパニー | マルチプロセッサコンピュータシステム及びその動作方法 |
US6247109B1 (en) | 1998-06-10 | 2001-06-12 | Compaq Computer Corp. | Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space |
US6769076B1 (en) * | 2000-02-07 | 2004-07-27 | Freescale Semiconductor, Inc. | Real-time processor debug system |
JP2002041304A (ja) * | 2000-07-28 | 2002-02-08 | Hitachi Ltd | 論理区画の予備リソース自動付与方法及び論理区画式計算機システム |
JP2002202959A (ja) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
US7480911B2 (en) | 2002-05-09 | 2009-01-20 | International Business Machines Corporation | Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system |
US7140021B2 (en) * | 2002-09-13 | 2006-11-21 | Microsoft Corporation | Dynamic TCP partitioning |
US7337442B2 (en) * | 2002-12-03 | 2008-02-26 | Microsoft Corporation | Methods and systems for cooperative scheduling of hardware resource elements |
US7103881B2 (en) | 2002-12-10 | 2006-09-05 | Intel Corporation | Virtual machine to provide compiled code to processing elements embodied on a processor device |
US7451459B2 (en) * | 2003-05-05 | 2008-11-11 | Microsoft Corporation | Systems, methods, and apparatus for indicating processor hierarchical topology |
US7430737B2 (en) * | 2003-12-04 | 2008-09-30 | Sun Microsystems, Inc. | Processor and method for supporting compiler directed multithreading management |
US20050132363A1 (en) | 2003-12-16 | 2005-06-16 | Vijay Tewari | Method, apparatus and system for optimizing context switching between virtual machines |
US7467381B2 (en) * | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
US7788670B2 (en) | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US8621458B2 (en) * | 2004-12-21 | 2013-12-31 | Microsoft Corporation | Systems and methods for exposing processor topology for virtual machines |
US7512826B2 (en) | 2005-04-20 | 2009-03-31 | International Business Machines Corporation | Method, apparatus, and product for an efficient virtualized time base in a scaleable multi-processor computer |
US8249853B2 (en) | 2006-03-31 | 2012-08-21 | Intel Corporation | Exposing device features in partitioned environment |
-
2004
- 2004-12-21 US US11/018,337 patent/US8621458B2/en active Active
-
2005
- 2005-11-01 KR KR1020050103821A patent/KR20060071307A/ko not_active Application Discontinuation
- 2005-11-15 JP JP2005330704A patent/JP5048940B2/ja active Active
- 2005-11-21 CN CN2005101271088A patent/CN1794177B/zh active Active
- 2005-12-05 PL PL05111672T patent/PL1674987T3/pl unknown
- 2005-12-05 AT AT05111672T patent/ATE554445T1/de active
- 2005-12-05 EP EP05111672A patent/EP1674987B1/en active Active
- 2005-12-05 ES ES05111672T patent/ES2382470T3/es active Active
-
2013
- 2013-12-30 US US14/144,528 patent/US8972991B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
ATE554445T1 (de) | 2012-05-15 |
CN1794177B (zh) | 2010-10-27 |
US20060136653A1 (en) | 2006-06-22 |
EP1674987A2 (en) | 2006-06-28 |
EP1674987B1 (en) | 2012-04-18 |
ES2382470T3 (es) | 2012-06-08 |
EP1674987A3 (en) | 2007-10-24 |
US20140115588A1 (en) | 2014-04-24 |
JP2006178933A (ja) | 2006-07-06 |
US8972991B2 (en) | 2015-03-03 |
CN1794177A (zh) | 2006-06-28 |
PL1674987T3 (pl) | 2012-09-28 |
KR20060071307A (ko) | 2006-06-26 |
US8621458B2 (en) | 2013-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5048940B2 (ja) | 仮想マシンについてのプロセッサ・トポロジをエクスポーズするためのシステムおよび方法 | |
CN105830026B (zh) | 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法 | |
Chen et al. | Enabling FPGAs in the cloud | |
JP5005191B2 (ja) | 仮想マシン環境においてオペレーティングシステムを実施するためのシステムおよび方法 | |
US9268394B2 (en) | Virtualized application power budgeting | |
US9753754B2 (en) | Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine | |
EP1622014B1 (en) | Systems and methods for inializing multiple virtual processors within a single virtual machine | |
RU2398267C2 (ru) | Иерархическая виртуализация посредством многоуровневого механизма виртуализации | |
JP5584220B2 (ja) | コンフィギュレーション空間仮想化 | |
US12073242B2 (en) | Microservice scheduling | |
US20110296428A1 (en) | Register allocation to threads | |
Barbalace et al. | Towards operating system support for heterogeneous-isa platforms | |
Maas et al. | The case for the holistic language runtime system | |
Avramidis et al. | Live migration on ARM-based micro-datacentres | |
Lin et al. | Improving GPOS real-time responsiveness using vCPU migration in an embedded multicore virtualization platform | |
US20240354138A1 (en) | Power-management virtual machines | |
US20240354140A1 (en) | Mapping virtual processor cores to heterogeneous physical processor cores | |
Shimosawa et al. | Inter-kernel communication between multiple kernels on multicore machines | |
WO2024220260A1 (en) | Power-management virtual machines | |
Karlsson | Enea Hypervisor: Facilitating Multicore Migration with the Enea Hypervisor | |
Prades et al. | GPGPU as a service: Providing GPU-acceleration services to federated cloud systems | |
Meghanathan | Virtualization as the Catalyst for Cloud Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110517 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110817 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110902 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111228 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20120104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120104 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120626 |
|
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: 20120717 |
|
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: 20120720 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5048940 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |