JP2005501333A - プロセッサに譲渡するためのシステム - Google Patents

プロセッサに譲渡するためのシステム Download PDF

Info

Publication number
JP2005501333A
JP2005501333A JP2003523356A JP2003523356A JP2005501333A JP 2005501333 A JP2005501333 A JP 2005501333A JP 2003523356 A JP2003523356 A JP 2003523356A JP 2003523356 A JP2003523356 A JP 2003523356A JP 2005501333 A JP2005501333 A JP 2005501333A
Authority
JP
Japan
Prior art keywords
virtual processor
target
processor
assigning
cpu
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.)
Granted
Application number
JP2003523356A
Other languages
English (en)
Other versions
JP4056471B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005501333A publication Critical patent/JP2005501333A/ja
Application granted granted Critical
Publication of JP4056471B2 publication Critical patent/JP4056471B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

【課題】論理的に区分された仮想プロセッサ間などでCPUの配分を調整するための機器、プログラム製品、および方法を提供すること。
【解決手段】仮想プロセッサは、それ自体の実行の前提となっているオカレンスを促進するためにCPUを譲渡することができる。したがって、プログラム・コードは、この引き渡されたCPUを指定された仮想プロセッサにディスパッチすることができる。

Description

【技術分野】
【0001】
本発明は、計算機システムに関し、より詳細には、論理的に区分されパーティションが中央演算処理装置(CPU)を共用する環境内でプロセッサを譲渡すること(yielding)に関する。
【背景技術】
【0002】
多くの計算アプリケーションの速度および効率は、処理資源の利用可能性に依存する。この目的で、インターナショナル・ビジネス・マシーンズ・コーポレーションによって開発された「仮想マシン」設計などの計算機アーキテクチャは、複数のプロセス間で共通の処理資源を共用する。かかるアーキテクチャは、従来技術では、1つまたは複数の物理的な制御装置または中央演算処理装置(CPU)を有する1台の計算機を利用することができる。CPUは、複数の仮想プロセッサをシミュレートするように構成されたソフトウェアを実行することができる。
【0003】
かかるマルチプロセッサ環境は、論理的「パーティションの区分(partitioning)」の概念的な実施をサポートする。このパーティションの区分は、割当てに適したプログラム式アーキテクチャ、および計算機資産の共用をもたらす。1つのパーティションは、論理的に、アドミニストレータによって割り当てられる、計算機の複数のCPU、メモリおよびその他の資源の一部分を論理的に含むことができる。したがって、アドミニストレータは、同じ資源を複数のパーティションに割り付けることができる。各パーティションは、複数の仮想プロセッサに加えて、さらにオペレーティング・システムのホスティングすることができる。このようにして、各パーティションは、ほとんどまるで別のコンピュータであるかのように動作する。
【0004】
原理的には、各仮想プロセッサは、その基礎となる物理的なマシンの物理的な資源の多くにアクセスすることができる。資源の例には、CPUに加えて、メモリ資産およびハードウェア・レジスタが含まれ得る。仮想プロセッサはさらに、異なる仮想プロセッサ間などで処理サイクルの割付けを部分的に指示する優先順位方式またはスケジュールを共用することができる。基礎となる「ハイパーバイザ」またはパーティション・マネージャと呼ばれるプログラムが、この方式を使用して、各仮想プロセッサにCPUを割り当て、ディスパッチすることができる。例えば、ハイパーバイザは、オペレーティング・システムからの資源要求を遮って、それらを全体にわたって共用し割り付けることができる。
【0005】
このようにして、仮想プロセッサは、ホストのパーティションの実行の論理スレッドとして働く。したがって、仮想プロセッサは、資源を共用しながら別々に命令を実行することができる。一部の物理的な資産の利用を複製することにより、パーティションに区分された環境は、性能と効率をさらに向上させることができる。パーティションのプログラム可能な柔軟性を用いて、さらに、再ブートすることなく負荷の変化に動的に応答できるようにすることができる。例えば、10個の仮想プロセッサを含む2つのパーティションがそれぞれ、再ブートまたはオペレータの介入を必要とせずに、作業負荷がシフトするにつれて、共用物理システムの10個のCPUをすべて譲り受けることができる。
【0006】
バランスのとれた資源の割付けを促進するために、アドミニストレータは、仮想プロセッサがアクセスすることができる資源数に制約を設けることができる。例えば、ハイパーバイザは、ある仮想プロセッサに利用可能なCPUの50%より多くを決してディスパッチしないようにすることもできる。同様に、このハイパーバイザは、あるCPUのある仮想プロセッサによる使用が指定された期間を確実に超過しないようにすることもできる。このようにして、その仮想プロセッサにCPUの「タイム・スライス」を割り付けることができ、タイム・スライスの満了とともに、ハイパーバイザはその仮想プロセッサのCPUを優先使用(preempt)することができる。同様なプログラミングをすることにより、1つのプロセッサが実行するのを待つ代わりに、理論的には多数のプロセッサの間で複雑なアプリケーションを配分することができる。しかし、かかるマルチプロセッシング・システムがもたらす柔軟性にもかかわらず、資源割付けに関連する複雑さが残る。一部のかかる障害は、オペレーティング・システムの動的な絡み合った処理要件から生じる。例えば、ある仮想プロセスが開始されるには、他のプロセスが以前に実行されていることが前提となることがある。かかる依存性のために、マルチ処理アプリケーションにそれ自体の複雑さおよび非効率性が導入されることがある。共用プロセッサ環境では、仮想プロセッサに関して同じ障害が生ずる可能性がある。例えば、ハイパーバイザは、それ自体のCPUを得るためにスピン・ロック(spin-lock)を保持している前提として必要な(prerequisite)仮想プロセッサを待ちながら、スピン・ロックを要求している仮想プロセッサにCPUを割り当てることもできる。したがって、割り当てられたCPUがその仮想プロセッサを実行できないだけでなく、そのパーティション内の他の仮想プロセッサを実行することもできない。
【0007】
アドミニストレータによっては、プログラムされた譲渡機能(yield function)を導入することにより、マルチプロセッサの効率の悪さに対処しようと試みるものもいる。例えば、仮想プロセッサは、スピン(spin)しようとしているときはいつでもハイパーバイザに対してyield-to-activeコマンドを発行することができる。仮想プロセッサは、実行すべき不可欠なプロセス、または利用可能となる資源を待つときに、「スピンする」ことができる。資源の保有者(holder)がアクティブでないことがあるので、その仮想プロセッサは、スピンしている間、CPUサイクルを浪費することになる。yield-to-activeコマンドに応答して、仮想プロセッサは、譲渡状態に入り、そのCPUを解放することができる。ハイパーバイザは、譲渡されるCPUをスケジュール上に提示される次の仮想プロセッサに再割り付けすることができる。
【0008】
かかる技術は、資源の管理の改善をもたらすが、それにもかかわらず、効率が悪い。すなわち、譲渡プロセスは、ハイパーバイザが諸CPUを他のすべての仮想プロセッサに順次割り付けるのを待ちながら、しばしば長時間の間、非アクティブ状態にとどまらねばならない。複数の処理レイヤおよび反復とあいまって、かかる非アクティブ状態により、処理速度が遅くなり、効率が悪くなる。
【発明の開示】
【発明が解決しようとする課題】
【0009】
したがって、物理的な計算機資源を管理するより有効な方法が必要とされている。
【課題を解決するための手段】
【0010】
本発明の原理による一実施形態は、論理的に区分されたデータ処理システム内でCPUを譲渡するように構成された機器、方法、およびプログラム製品を含む。かかるシステムは、複数の仮想プロセッサをサポートすることができる。したがって、この実施形態では、譲渡側仮想プロセッサからの要求を開始することができる。この要求により、譲渡側仮想プロセッサによって制御されるCPUの譲渡を促すことができる。より詳細には、この要求は、複数の仮想プロセッサのうちからターゲット仮想プロセッサを指定することができる。例えば、その信号は、ターゲット・プロセッサに関するポインタまたは状況情報あるいはその両方を含むことができる。
【0011】
ターゲット仮想プロセッサは、譲渡側仮想プロセッサが制御し、その譲渡を要求するCPUに対してアクセスする必要があることがある。その場合、この実施形態では、CPUの制御を譲渡側仮想プロセッサからターゲット仮想プロセッサに論理的に再割当てし、または「切り替える」ことができる。CPUをターゲット仮想プロセッサにディスパッチする前に、ハイパーバイザは、譲渡側仮想プロセッサが依然として非アクティブ状態であり、ターゲット仮想プロセッサ自体がさらに譲渡状態にないことを検証することができる。ハイパーバイザはさらに、ディスパッチャに制御を渡す前に、譲渡側ハイパーバイザの状態を保存することができる。
【0012】
本発明の以上およびその他の目的と利点は、添付図面およびその説明から明らかになるであろう。プログラム・コードは、譲渡側仮想プロセッサの状態を記憶することができる。
【0013】
本明細書に組み込まれ、その一部を構成する添付図面は、本発明の実施形態を示し、上記本発明の一般的な説明および以下の実施形態の詳細な説明と共に、本発明の原理を説明するのに役に立つ。
【発明を実施するための最良の形態】
【0014】
本発明の一実施形態は、論理的に区分された仮想プロセッサ間などで調整し、CPUを再配分するための機器、プログラム製品、および方法を含み得る。この実施形態では、それ自体の実行の前提となっているオカレンス(occurence)を促進するためにCPUを譲渡することができる。一般的に、この実施形態では、CPUをターゲット仮想プロセッサに効率的に譲渡することによって仮想プロセッサの実行を調整することができる。
【0015】
より詳細には、譲渡側仮想プロセッサが「ターゲット」仮想プロセッサを決定し、指定することができる。ターゲット・プロセッサの一例は、譲渡側仮想プロセッサによって保持されるCPUを必要とすることがある。ターゲット・プロセッサは、さらに譲渡側プロセッサの実行の前に、必要とされる条件を実施する(embody)ことができる。この実施形態の譲渡機能により、ハイパーバイザが、譲渡側プロセッサによって引き渡されるCPUまたはメモリ資源を指定された仮想プロセッサに割り付けることを可能にすることができる。ターゲット・プロセッサをイネーブル状態にする際に、この実施形態の方法では、譲渡側プロセッサの実行を妨げる条件を取り除くことができる。かかる実施形態の実行に適した環境を図1および図2に示す。
【0016】
ハードウェアおよびソフトウェア環境
図面を参照すると、図1に、本発明によるデータ処理機器、すなわちコンピュータ10が示されている。複数の図面にわたって、同じ番号は同様な部品を示す。機器10は、例えばネットワーク・サーバ、中規模コンピュータ、メインフレーム・コンピュータなど複数のマルチユーザ・コンピュータ・システムのどれかを一般的に表す。しかし、本発明がその他のデータ処理機器、例えばワークステーション、デスクトップ・コンピュータ、ポータブル・コンピュータなどのスタンドアロンまたはシングルユーザのコンピュータ・システム、あるいは埋込み型制御装置など他の計算機装置などの形でも実装できることを理解されたい。機器10の適した一実装形態は、インターナショナル・ビジネス・マシーンズ・コーポレーションから市販のAS/400またはeシリーズ・コンピュータなどの中規模コンピュータである。
【0017】
機器10は一般に、主記憶装置14、例えばDRAM(dynamic randomaccess memoryダイナミック・ランダム・アクセス・メモリ)のアレイを含むメモリ・サブシステムに結合された1つまたは複数のシステム・プロセッサ12を含む。一般に1つまたは複数レベルのデータ・キャッシュ、命令キャッシュ、または組合せキャッシュあるいはそれらの組合せを含むキャッシュ・サブシステム16が、プロセッサ12と主記憶装置14の間に介在するものとして示されており、あるキャッシュは当技術分野においてよく知られているように個々のプロセッサまたは複数のプロセッサにサービスするようになっている。さらに、主記憶装置14は、システム・バス18、および複数のインターフェース装置、例えば、I/Oバス接続インターフェース20、ワークステーション制御装置22、および記憶制御装置24を介して複数のタイプの外部(I/O)装置に結合されている。I/Oバス接続インターフェース20、ワークステーション制御装置22、および記憶制御装置24のそれぞれが1つまたは複数の外部ネットワーク26、1つまたは複数のワークステーション28、あるいはDASD(directaccess storage device直接アクセス記憶装置)30などの1つまたは複数の記憶装置あるいはこれらの組合せに対する外部アクセスを実現する。
【0018】
図2に、パーティション・マネージャすなわちハイパーバイザ46によって管理される複数の論理パーティション40、42、44を含むコンピュータ10上の論理的に区分された計算機環境を実装するのに利用される主要なソフトウェア構成要素および資源をより詳細に示す。当技術分野でよく知られているように任意数の論理パーティションをサポートすることができる。
【0019】
この実装形態の例では、論理パーティション40は、一次パーティションとして動作し、論理パーティション42および44は、二次パーティションとして動作する。この文脈における一次パーティションは、コンピュータ10上の二次論理パーティションのパワーオンもしくはパワーオフの取扱い、または二次論理パーティションのメモリ・ダンプの開始などコンピュータのパーティション管理機能の一部を分担する。したがって、ハイパーバイザ46の一部を、一次パーティション40中に常駐するオペレーティング・システム52中に配置された一次パーティション制御ブロック50で示している。すべての論理パーティションからアクセス可能な他のパーティション管理サービスを共用サービス・ブロック48で示す。しかし、本発明による他の実装形態では、パーティション管理機能を特定の論理パーティション内で実装する必要はない。
【0020】
各論理パーティションは、オペレーティング・システム(例えば、論理パーティション40、42、および44に対するそれぞれのオペレーティング・システム52、54、および56)を利用し、このオペレーティング・システムが、パーティションに区分されていないコンピュータのオペレーティング・システムと同様に論理パーティションの一次動作を制御する。各論理パーティション40〜44は、仮想メモリ60で示される別々のメモリ空間で実行する。さらに、各論理パーティション40〜44には、静的にまたは動的にあるいはその両方でコンピュータ10中の利用可能な資源の一部分が割り付けられる。例えば、各論理パーティションは、1つまたは複数のプロセッサ12、ならびに仮想メモリ60で使用する利用可能なメモリ空間の一部分を共用することができる。このようにして、所与のプロセッサを複数の論理パーティションが利用することができる。追加の資源、例えば、大容量記憶装置、バックアップ記憶装置、ユーザ入力、ネットワーク接続などは、一般に、当技術分野においてよく知られた方法で1つまたは複数の論理パーティションに割り付けられる。資源は、いくつかの方法で、例えばバスごと、または資源ごとに割り付けることができ、複数の論理パーティションが同じバス上の資源を共用する。一部の資源は、複数の論理パーティションに同時に割り付けることさえできる。図2は、例えば、3本の論理バス62、64、66を示しており、バス62上には、一次論理パーティション40に割り付けられた直接アクセス記憶装置(DASD)68、制御パネル70、テープ・ドライブ72、および光ディスク・ドライブ74を含めて、複数の資源がある。他方、バス64には、資源が資源ごとに割り付けられ、例えば二次論理パーティション42にはローカル・エリア・ネットワーク(LAN)アダプタ76、光ディスク・ドライブ78およびDASD80が割り付けられ、二次論理パーティション44にはLANアダプタ82および84が割り付けられることができる。バス66は、例えば、バス上のすべての資源、例えばDASD86および88が同じ論理パーティションに割り付けられるように論理パーティション44に特に割り付けられたバスであってもよい。
【0021】
図2の具体的な資源の例は、単なる例にすぎず、代替形態においては資源の任意の組合せおよび構成を任意の論理パーティションに割り付けることができることが理解されよう。さらに、一部の実装形態では、他の論理パーティションの必要性に応えるため、資源を動的ベースで再割付けできることが理解されよう。コンピュータを特定のハードウェア装置とインターフェースするために使用されるIOP(input/output processors入出力プロセッサ)によって資源を表すこともできることが理解されよう。
【0022】
図2に示す様々なソフトウェア構成要素および資源、ならびに本発明の実施形態の実装には、以下「コンピュータ・プログラム」または単に「プログラム」と称する、様々なコンピュータ・ソフトウェア・アプリケーション、ルーチン、構成要素、プログラム、オブジェクト、モジュール、データ構造などを使用することを含めて、いくつかの方法で実装することができる。このコンピュータ・プログラムは一般に、コンピュータ中の様々なメモリおよび記憶装置中に様々な時点に存在し、コンピュータ中の1つまたは複数のプロセッサがそれを読み取って実行するとき、本発明の様々な態様を実施するステップまたは要素を実行するのに必要なステップをそのコンピュータに実施させる、1つまたは複数の命令を含む。
【0023】
さらに、本発明を完全に機能するコンピュータの文脈で、ここまで説明し、また以下でも説明するが、当業者なら、本発明の様々な実施形態を、様々な形式のプログラム製品として配布することが可能であり、実際に配布を行うのに使用する信号保持媒体(signal bearing medium)の種類にかかわらず、本発明を同等に適用できることが理解されよう。信号保持媒体の例には、それだけには限らないが、とりわけ、揮発性および不揮発性のメモリ・デバイス、フロッピー(R)およびその他着脱可能なディスク、ハード・ディスク・ドライブ、磁気テープ、光ディスク(例えば、CD−ROM、DVDなど)などの記録可能なタイプの媒体、ならびにディジタルおよびアナログの通信リンクなどの伝送タイプの媒体が含まれる。さらに、以下に説明する様々なプログラムは、本発明の特定の実施形態中で実装されるアプリケーションに基づいて識別することができる。しかし、以下の特定のプログラム用語は、単に便宜上使用しているにすぎないこと、したがって、本発明は、かかる用語で識別または示唆される特定のアプリケーションだけに使用を限定すべきでないことを理解されたい。
【0024】
図1および図2に示す環境の例が本発明を限定するものでないことが、当業者には理解されよう。実際、本発明の範囲を逸脱することなく、その他の代替のハードウェア環境またはソフトウェア環境あるいはその両方を使用できることが、当業者には理解されよう。
【0025】
プロセッサへの譲渡(Yield-to-Processor)機能
図3の流れ図は、最初の2つの図のハードウェア環境およびソフトウェア環境内で、CPUを譲渡するための実施形態の例を示すものである。一般に、図に示したプロセス・ステップは、CPUを効率的に譲渡することにより仮想プロセッサの実行を調整する。図3の実施形態では、譲渡側仮想プロセッサが「ターゲット」仮想プロセッサを決定し、指定することができる。譲渡側仮想プロセッサと同じパーティション内に、このターゲット・プロセッサを配置することができることに留意されたい。一例では、ターゲット仮想プロセッサが、譲渡側仮想プロセッサが制御するCPUを要求することがある。ターゲット仮想プロセッサはさらに、譲渡側仮想プロセッサの実行以前に必要とされる条件を実施することができる。
【0026】
この実施形態の譲渡機能により、ハイパーバイザまたはパーティション・マネージャが譲渡側オペレーティング・システムが引き渡したCPUまたはメモリ資源を再割り付けできるようになり得る。このようにして、ハイパーバイザによって、ターゲット仮想プロセッサがイネーブル状態になり、譲渡側仮想プロセッサの実行を妨げる状態を軽減することもある。この実施形態の目標とする機能が、譲渡される資源を無差別に剥奪し再割当てする従来技術の管理アプリケーションとは異なるものであることに留意されたい。先に論じたように、かかる従来技術のアプリケーションでは、目標の譲渡動作に焦点を合わせることができないので、かなりの処理遅延がもたらされる可能性がある。
【0027】
図3のブロック150で、あるパーティションのある仮想プロセッサが、ハイパーバイザによってそれ自体にCPUが割り当てられていることを認識することができる。それ自体が利用可能なCPUがあることを登録した後、その仮想プロセッサは、ブロック152で、割り付けられたCPUを利用できるかどうかどうかを評価することができる。より詳細には、その仮想プロセッサは、スピン・ロックを評価して、CPUが現在利用できるかどうかを判定することができる。例えば、ハイパーバイザは、別の仮想プロセッサが保持するロック上でスピンしながら、その仮想プロセッサにCPUをディスパッチした可能性もある。別の場合には、ハイパーバイザは、ディスパッチされたCPUへの仮想プロセッサのアクセスをタイム・スライス化し、またはその他の方法で優先使用していることもある。
【0028】
図3のブロック152で、かかる状態が検出された場合には、この実施形態では、ブロック154で、同じパーティション内に配置された「ターゲット」仮想プロセッサに関連する情報を検索し記憶することができる。ターゲット仮想プロセッサの一例では、譲渡側仮想プロセッサによって制御されるCPUが必要なことがあり得る。譲渡側仮想プロセッサは、ターゲット仮想プロセッサの実行に論理的に依存することもまたあり得る。したがって、譲渡側仮想プロセッサは、ターゲット仮想プロセッサが実行するのを待っていると言う。
【0029】
図3のブロック154でターゲット仮想プロセッサから検索された情報が、ターゲット仮想プロセッサのアドレスおよびターゲット・カウントを含むこともできる。ターゲット・カウントは、各仮想プロセッサの記憶構成要素に割り当てられた値に関係するものでよい。以下に詳細に論じるが、一実施形態では、かかるターゲット・カウントを保持し、それを使用して処理状況を判断することができる。ハイパーバイザは、プログラムされたオカレンスに応答して仮想プロセッサのターゲット・カウントを増分することができる。例えば、ハイパーバイザは、仮想プロセッサが譲渡するまたは優先使用されるごとにターゲット・カウントを1だけ増すことができる。
【0030】
一実施形態では、かかる増分によって、カウントが奇数値になることがある。同様に、仮想プロセッサが実行を開始するときはいつでも、ハイパーバイザがターゲット・カウントを増分することができる。この増分によって、仮想プロセッサのターゲット・カウントが偶数に戻ることができる。したがって、偶数のターゲット・カウントは、その資源要件が満たされた(すなわち、物理プロセッサを有する)仮想プロセッサに対応することができる。
【0031】
以上で論じたターゲット・カウントを含む、ターゲット仮想プロセッサに属する情報は、譲渡側仮想プロセッサにもハイパーバイザにも利用可能である。あるアーキテクチャでは、あるパーティション内のすべての仮想プロセッサが、共用メモリ位置のかかる情報にアクセスできるようにすることができる。図3のブロック156で、オペレーティング・システムまたは譲渡側仮想プロセッサは、ハイパーバイザに「yield-to-processor」コール信号を送ることができる。このコールには、ブロック154でターゲット・プロセッサからサンプリングされる情報のスナップショットを含めることができる。したがって、スナップショットは、そのターゲット仮想プロセッサのターゲット・カウントもアドレスも含むことができる。このようにして、ブロック158で、ハイパーバイザは、このコール内で提示されるターゲット・カウントを評価することができる。図3を二分する破線は、ハイパーバイザとオペレーティング・システムが実施する役割を区分するものであることに留意されたい。より詳細には、オペレーティング・システムは、ブロック150〜156の図示のステップを開始するが、ハイパーバイザはブロック158〜165を実行する。
【0032】
以上論じたように、ブロック158でターゲット仮想プロセッサの譲渡カウントが偶数であると判定される場合、ブロック156で仮想プロセッサに譲渡されて以降、ハイパーバイザが、すでにCPUをターゲット仮想プロセッサにディスパッチしてしまっている可能性がある。譲渡の条件がこのように満たされてしまっているので、譲渡側仮想プロセッサがそれ自体のCPUを引き渡す必要がもはやないかもしれない。例えば、ターゲット仮想プロセッサの実行により、その譲渡側仮想プロセッサの実行を以前に禁止していたロック機構が解除されているかもしれない。その結果、偶数のターゲット・カウントの場合には、ブロック150で、この実施形態で、譲渡側仮想プロセッサが実際に依然としてスピンしているかどうか再評価を行うこともできる。ブロック156で仮想プロセッサが行うyieldコール(譲渡コール)により、ハイパーバイザが、それに応じて仮想プロセッサの譲渡カウントを調整することができることに留意されたい。以下で取り扱うように、この特徴は、譲渡側仮想プロセッサを指定しまたはターゲットとすることがある他の仮想プロセッサに影響を及ぼすことがある。
【0033】
図3のブロック158で、奇数のターゲット・カウントが検出された場合、ブロック160で、ハイパーバイザは、yieldコール内で提示されるターゲット・カウントを実際のターゲット・カウントのカウントと比較することができる。ハイパーバイザは、ターゲット仮想プロセッサ・フィールドまたはハードウェア・レジスタを、yieldコールを受け取った時点でサンプリングすることによって、実際のターゲット・カウントを得ることができる。ブロック160の比較ステップにより、そのターゲット仮想プロセッサが、譲渡のためにコールを行ってから必要なCPUをまだ取得していないことを保証することができる。かかるシナリオの下では、そのコール中で提示されるターゲット・カウントは、ハイパーバイザが検証するカウントと一致しないことになる。したがって、ハイパーバイザは、ステップ150に戻って、譲渡側仮想プロセッサにその状況を再評価させることができる。
【0034】
逆に、ブロック160で、提示された譲渡カウントがサンプリングされた実際のカウントと一致する場合には、ハイパーバイザは、ターゲット仮想プロセッサが、実際にCPUを必要とすると認識することができる。しかし、CPUを再割付けする以前に、ハイパーバイザは、そのターゲット仮想プロセッサが「yield-to-active」コール中でないことを保証することができる。ターゲット・プロセッサは、従来技術のyield-to-activeコールを行って、すべての非譲渡側仮想プロセッサがサービスを受けるまで資源を引き渡すように要求し続けることもある。かかる状況の下では、譲渡側ターゲット仮想プロセッサに譲渡を行うことは、循環型で逆効果となり、システム性能をストールする可能性がある。したがって、ブロック162の予防ステップにより、所与のアプリケーションにおける機能ループの形成が防止できる。したがって、この実施形態では、ブロック153で、ブロック156のyield-to-processorコールを中断することができる。この実施形態のこの特徴により、さらに、この実施形態の譲渡プログラムは従来技術の譲渡アプリケーションの範囲内で実行できるようになることに留意されたい。
【0035】
図3のブロック163で、ハイパーバイザは、譲渡側仮想プロセッサに対応する記憶域をターゲット・プロセッサを待っているものとして指定しまたは「マークする」ことができる。この仮想プロセッサの記憶域は、ハイパーバイザの記憶域の外部に割り付けられる。したがって、ハイパーバイザは、さらにターゲット・プロセッサに対応する記憶域に、ターゲット・プロセッサを、それを待っている譲渡側プロセッサがあるとマークすることができる。ブロック163で、ターゲット・プロセッサと仮想プロセッサの間のそれぞれの関係を示した後、ステップ164で、ハイパーバイザは、譲渡側仮想プロセッサのオペレーティング・システムの状態を記憶することができる。
【0036】
例えば、この実施形態では、ブロック164で、仮想プロセッサのすべての条件が満たされ保持されるように、仮想プロセッサに関連するすべてのレジスタを記録することができる。このようにして、記憶された仮想プロセッサは、ただCPUを待つだけである。すなわち、すべての論理的条件および物理的条件が満たされるとすぐにオペレーティング・システムが実行できるように、ハイパーバイザは、譲渡側仮想プロセッサの保持状態を呼び戻すことができる。かかる条件には、不可欠なプロセッサによる実行もCPUの割当ても含まれ得る。
【0037】
図3のブロック165で、ハイパーバイザは、ハイパーバイザ・ディスパッチャに制御を渡す。ハイパーバイザ・ディスパッチャは、パーティションの仮想プロセッサに対応する諸コードを調整して、所与のCPU上でどの仮想プロセッサが次に実行されるかを決定することができる。例えば、ハイパーバイザ・ディスパッチャは、ターゲット仮想プロセッサが次に利用可能なCPUのタイム・スライスを現在受け取ることができるように、資源割付けスケジュールを操作することができる。以下に詳細に論じるように、ハイパーバイザのディスパッチャがターゲット・プロセッサに「切り替える」ことを決定した後、そのハイパーバイザは、そのCPUをそのターゲット仮想プロセッサにディスパッチすることができる。このようにして、そのターゲット・プロセッサは、最終的に実行し、その仮想プロセッサにかけられる条件付きロックを緩和することができる。
【0038】
図4の流れ図は、図3のブロック165でハイパーバイザ・ディスパッチャが実行するステップと合致するプロセス・ステップを示している。より詳細には、この流れ図は、ディスパッチャがCPU資源上の所与のターゲット・プロセッサに切り替えるかどうかを判断するためにディスパッチャが行わなければならないステップを示している。すなわち、ハイパーバイザは、ブロック165〜168を実行して、CPUを割り付けるべき仮想プロセッサがyield-to-processorコールの対象であることを保証しなければならない。
【0039】
したがって、ブロック166で、ハイパーバイザはディスパッチャ回路にそれに提示されるすべての仮想プロセッサの適切な評価プロセスを開始するよう指示する。ハイパーバイザは、切り替え手続きが差し迫っていることをディスパッチャに示すことにより、かかるプロセスをトリガすることができる。それに応答して、ハイパーバイザ・ディスパッチャは、ブロック167でその仮想プロセッサの記憶域を調べて、提示された仮想プロセッサがyield-to-processorコールの対象であるかどうかを判定することができる。ブロック167の条件がそのように満たされている場合には、ブロック169で、ハイパーバイザは、譲受側プロセッサの記憶域に実行準備ができている(ready-to-run)とマークすることができる。それがもともと譲渡されるための条件、すなわちターゲット・プロセッサの実行の条件が満たされているので、ハイパーバイザは、このようにして、譲渡側プロセッサを符号化し、または指定する。したがって、譲受側仮想プロセッサは、CPUがハイパーバイザを介して利用可能になるのをただ待つ必要があるだけである。
【0040】
したがって譲渡側プロセッサはコード化され、ブロック168でハイパーバイザは、この仮想プロセッサの状態レジスタおよび関連レジスタをそのハードウェア(CPU)上に配置し、制御をそのパーティションに戻すことができる。ブロック167で評価される仮想プロセッサがyield-to-processorコールの対象でない場合には、ブロック168でその仮想プロセッサの状態が復元され、制御がそのパーティションに渡されることに留意されたい。したがって、その譲渡する条件が満たされないままのとき、ハイパーバイザは、譲受側仮想プロセッサの状態を変更しない。
【0041】
本発明を、様々な実施形態の説明により示し、これらの実施形態をかなり詳細に説明してきたが、本出願人には、添付の特許請求の範囲をかかる詳細に限定し、またはいかなる形でも制限する意図はない。
【0042】
さらなる利点および変更形態が、当業者には容易に思い浮かぶであろう。したがって、そのより広い態様における本発明は、その特定の詳細、代表的な機器および方法、ならびに示し説明した実例に限定されることはない。したがって、出願人の一般的な発明の概念の趣旨または範囲を逸脱することなく、かかる詳細から逸脱することができる。
【図面の簡単な説明】
【0043】
【図1】本発明によるコンピュータを示すブロック図である。
【図2】図1のコンピュータの主要なソフトウェアの構成要素および資源を示すブロック図である。
【図3】図1および図2の環境内でサポートされるパーティション間でCPUを再配分する一方法を実施する流れ図である。
【図4】図3のプロセス・ステップに関連する順番通りのステップを示す流れ図である。

Claims (20)

  1. 複数のパーティションをサポートし、第1のパーティションが少なくとも1つのCPUを共用する複数の仮想プロセッサを含む、論理的に区分されたデータ処理システム内で、仮想プロセッサを譲渡する方法であって、
    譲渡側仮想プロセッサに、前記複数の仮想プロセッサのうちからターゲット仮想プロセッサを指定することを含めて、前記仮想プロセッサがその上で実行している前記CPUの譲渡を要求すること、および
    前記要求された譲渡に応答して前記CPUによる実行のため前記ターゲット仮想プロセッサに切り替えることを含む方法。
  2. 前記ターゲット仮想プロセッサが、前記譲渡側仮想プロセッサが制御する前記CPUへのアクセスを必要とする、請求項1に記載の方法。
  3. 前記仮想プロセッサからのyieldコマンド(譲渡コマンド)を生成することをさらに含み、前記yieldコマンドが、前記ターゲット仮想プロセッサに関するポインタおよび状況情報を含む、請求項1に記載の方法。
  4. 状況情報を前記ターゲット仮想プロセッサに割り当てることをさらに含む、請求項1に記載の方法。
  5. ターゲット・カウントを前記ターゲット仮想プロセッサに割り当てることをさらに含む、請求項1に記載の方法。
  6. 前記ターゲット・カウントを前記yieldコマンド中で伝えられる提示されたカウントと比較することをさらに含む、請求項5に記載の方法。
  7. yield-to-activeコマンドに応答して、前記譲渡を中断することをさらに含む、請求項1に記載の方法。
  8. 前記譲渡側仮想プロセッサを、前記ターゲット・プロセッサを待っているものとして指定することをさらに含む、請求項1に記載の方法。
  9. 前記ターゲット仮想プロセッサを、前記ターゲット仮想プロセッサを待っている譲渡側プロセッサがあるものとして指定することをさらに含む、請求項1に記載の方法。
  10. 前記譲渡側仮想プロセッサの状態を記憶することをさらに含む、請求項1に記載の方法。
  11. 複数の論理パーティションを含み、第1の論理パーティションが少なくとも1つのCPUを共用する複数の仮想プロセッサを含む、論理的に区分されたコンピュータと、
    譲渡側仮想プロセッサによって制御されるCPUの譲渡を求める要求を開始するように構成され、さらに前記CPUの制御を前記譲渡側仮想プロセッサから前記ターゲット仮想プロセッサへと論理的に再割当てするように構成され、前記要求が、前記複数の仮想プロセッサのうちからターゲット仮想プロセッサを指定する、前記コンピュータ中に常駐するプログラムとを備える機器。
  12. 前記ターゲット仮想プロセッサが、前記譲渡側仮想プロセッサが制御する前記CPUへのアクセスを必要とする、請求項11に記載の機器。
  13. 前記プログラムが、前記仮想プロセッサからのyieldコマンドの生成を開始し、前記yieldコマンドが、前記ターゲット仮想プロセッサに関するポインタおよび状況情報を含む、請求項11に記載の機器。
  14. 前記プログラムが、前記ターゲット仮想プロセッサに対するターゲット・カウントの割当てを開始する、請求項11に記載の機器。
  15. 前記プログラムが、前記ターゲット・カウントと前記yieldコマンド中で伝えられる提示されたカウントの比較を開始する、請求項14に記載の機器。
  16. 前記プログラムが、yield-to-activeコマンドに応答して前記譲渡の中断を開始する、請求項11に記載の機器。
  17. 前記プログラムが、前記譲渡側仮想プロセッサを前記ターゲット・プロセッサを待っているものとして指定することを開始する、請求項11に記載の機器。
  18. 前記プログラムが、前記ターゲット仮想プロセッサを前記ターゲット仮想プロセッサを待っている譲渡側プロセッサがあるものとして指定する、請求項11に記載の機器。
  19. (a)論理的に区分されたデータ処理システム中の複数の仮想プロセッサ間での、譲渡側仮想プロセッサによって制御されるCPUの譲渡を求める要求を開始するように構成され、さらに前記CPUの制御を前記譲渡側仮想プロセッサから前記ターゲット仮想プロセッサへと論理的に再割当てするように構成され、前記要求が複数の仮想プロセッサのうちからターゲット仮想プロセッサを指定する、プログラムと、
    (b)前記第1のプログラムを保持する信号保持媒体とを含む、プログラム製品。
  20. 前記信号保持媒体が、記録可能な媒体および伝送タイプの媒体のうちの少なくとも一方を含む、請求項19に記載のプログラム製品。
JP2003523356A 2001-08-24 2002-07-24 プロセッサに譲渡するためのシステム Expired - Fee Related JP4056471B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/939,232 US7428485B2 (en) 2001-08-24 2001-08-24 System for yielding to a processor
PCT/EP2002/008233 WO2003019360A2 (en) 2001-08-24 2002-07-24 System for yielding to a processor

Publications (2)

Publication Number Publication Date
JP2005501333A true JP2005501333A (ja) 2005-01-13
JP4056471B2 JP4056471B2 (ja) 2008-03-05

Family

ID=25472787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003523356A Expired - Fee Related JP4056471B2 (ja) 2001-08-24 2002-07-24 プロセッサに譲渡するためのシステム

Country Status (7)

Country Link
US (2) US7428485B2 (ja)
JP (1) JP4056471B2 (ja)
KR (1) KR20040028805A (ja)
CN (1) CN1278235C (ja)
AU (1) AU2002328960A1 (ja)
TW (1) TWI239450B (ja)
WO (1) WO2003019360A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013509637A (ja) * 2009-10-29 2013-03-14 ティームストーン Cpuの仮想化を支援することが可能なコンピュータサーバ
US8984263B2 (en) 2010-10-12 2015-03-17 Fujitsu Limited Information processing device and emulation processing program and method
JP7474761B2 (ja) 2018-11-26 2024-04-25 マルクス、ブライアン ソフトウェア・バグを検出するためにシステムをトレーニングするためのシステム及び方法

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050305A1 (en) * 2003-08-28 2005-03-03 Kissell Kevin D. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7836450B2 (en) 2003-08-28 2010-11-16 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7849297B2 (en) 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US7711931B2 (en) 2003-08-28 2010-05-04 Mips Technologies, Inc. Synchronized storage providing multiple synchronization semantics
US7870553B2 (en) 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US9032404B2 (en) 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US7594089B2 (en) 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
EP1658563B1 (en) 2003-08-28 2013-06-05 MIPS Technologies, Inc. Apparatus, and method for initiation of concurrent instruction streams in a multithreading microprocessor
US7418585B2 (en) 2003-08-28 2008-08-26 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7765543B1 (en) * 2003-12-17 2010-07-27 Vmware, Inc. Selective descheduling of idling guests running on a host computer system
US7526421B2 (en) * 2004-02-27 2009-04-28 International Business Machines Corporation System and method for modeling LPAR behaviors in a simulation tool
US8224937B2 (en) * 2004-03-04 2012-07-17 International Business Machines Corporation Event ownership assigner with failover for multiple event server system
US8024726B2 (en) * 2004-05-28 2011-09-20 International Business Machines Corporation System for correct distribution of hypervisor work
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
US8955104B2 (en) * 2004-07-07 2015-02-10 University Of Maryland College Park Method and system for monitoring system memory integrity
US20060048160A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor
CN101963917B (zh) * 2004-12-31 2016-03-02 钟巨航 具有多个子系统的数据处理系统及方法
US7613897B2 (en) * 2005-03-30 2009-11-03 International Business Machines Corporation Allocating entitled processor cycles for preempted virtual processors
US8307371B2 (en) * 2005-12-20 2012-11-06 International Business Machines Corporation Method for efficient utilization of processors in a virtual shared environment
US8176485B2 (en) * 2006-05-15 2012-05-08 Microsoft Corporation Launching hypervisor under running operating system
US8276151B2 (en) * 2006-09-06 2012-09-25 International Business Machines Corporation Determination of running status of logical processor
US7844709B2 (en) * 2006-09-20 2010-11-30 International Business Machines Corporation Method and apparatus for managing central processing unit resources of a logically partitioned computing environment without shared memory access
GB0618894D0 (en) * 2006-09-26 2006-11-01 Ibm An entitlement management system
CN101553780A (zh) * 2006-12-11 2009-10-07 Nxp股份有限公司 Vliw处理器的虚拟功能单元
US8739162B2 (en) * 2007-04-27 2014-05-27 Hewlett-Packard Development Company, L.P. Accurate measurement of multithreaded processor core utilization and logical processor utilization
US7747814B2 (en) * 2007-06-26 2010-06-29 Microsoft Corporation Virtual machine state snapshots
US8495627B2 (en) * 2007-06-27 2013-07-23 International Business Machines Corporation Resource allocation based on anticipated resource underutilization in a logically partitioned multi-processor environment
US9164784B2 (en) * 2007-10-12 2015-10-20 International Business Machines Corporation Signalizing an external event using a dedicated virtual central processing unit
US8245236B2 (en) * 2008-02-27 2012-08-14 International Business Machines Corporation Lock based moving of threads in a shared processor partitioning environment
KR20090108868A (ko) * 2008-04-14 2009-10-19 삼성전자주식회사 가상 머신 관리 시스템 및 그의 프로세서 자원 관리방법
JP2010033125A (ja) * 2008-07-25 2010-02-12 Hitachi Ltd ストレージ装置及びデータ転送方法
US9384160B2 (en) * 2008-09-04 2016-07-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and controllers for affiliation managment
TW201015321A (en) * 2008-09-25 2010-04-16 Panasonic Corp Buffer memory device, memory system and data trnsfer method
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
KR101644569B1 (ko) 2009-10-01 2016-08-01 삼성전자 주식회사 가상 프로세서 관리 장치 및 방법
US9086922B2 (en) * 2009-10-26 2015-07-21 Microsoft Technology Licensing, Llc Opportunistically scheduling and adjusting time slices
US8924534B2 (en) * 2009-10-27 2014-12-30 Vmware, Inc. Resource optimization and monitoring in virtualized infrastructure
US8839240B2 (en) * 2010-11-29 2014-09-16 International Business Machines Corporation Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US9298516B2 (en) * 2013-10-01 2016-03-29 Globalfoundries Inc. Verification of dynamic logical partitioning
US10296227B2 (en) * 2015-08-18 2019-05-21 Oracle International Corporation System and method for dynamic cache distribution for in-memory data grids
TWI597666B (zh) * 2015-12-28 2017-09-01 緯創資通股份有限公司 共享裝置的使用方法及資源共享系統
CN112579177A (zh) * 2019-09-27 2021-03-30 宝能汽车集团有限公司 Hypervisor的CPU配置方法、系统以及车辆、存储介质
US11347558B2 (en) * 2019-12-09 2022-05-31 Nutanix, Inc. Security-aware scheduling of virtual machines in a multi-tenant infrastructure

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
JPH0814795B2 (ja) 1986-01-14 1996-02-14 株式会社日立製作所 マルチプロセッサ仮想計算機システム
USRE36462E (en) 1986-01-16 1999-12-21 International Business Machines Corporation Method to control paging subsystem processing in virtual memory data processing system during execution of critical code sections
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) * 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
EP0475282B1 (en) * 1990-09-14 1998-12-16 Hitachi, Ltd. Synchronous method and apparatus for processors
US5535321A (en) * 1991-02-14 1996-07-09 International Business Machines Corporation Method and apparatus for variable complexity user interface in a data processing system
US5325525A (en) * 1991-04-04 1994-06-28 Hewlett-Packard Company Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
US5404563A (en) * 1991-08-28 1995-04-04 International Business Machines Corporation Scheduling normally interchangeable facilities in multiprocessor computer systems
US5325526A (en) * 1992-05-12 1994-06-28 Intel Corporation Task scheduling in a multicomputer system
CA2100540A1 (en) * 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5574914A (en) * 1993-01-04 1996-11-12 Unisys Corporation Method and apparatus for performing system resource partitioning
US5504670A (en) * 1993-03-31 1996-04-02 Intel Corporation Method and apparatus for allocating resources in a multiprocessor system
JP2900767B2 (ja) * 1993-09-20 1999-06-02 株式会社日立製作所 仮想計算機システムの仮想計算機走行時間間隔制御方式
US5692193A (en) 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US5640584A (en) * 1994-12-12 1997-06-17 Ncr Corporation Virtual processor method and apparatus for enhancing parallelism and availability in computer systems
US6199093B1 (en) * 1995-07-21 2001-03-06 Nec Corporation Processor allocating method/apparatus in multiprocessor system, and medium for storing processor allocating program
US6418460B1 (en) * 1997-02-18 2002-07-09 Silicon Graphics, Inc. System and method for finding preempted threads in a multi-threaded application
US5872963A (en) * 1997-02-18 1999-02-16 Silicon Graphics, Inc. Resumption of preempted non-privileged threads with no kernel intervention
JP3730740B2 (ja) * 1997-02-24 2006-01-05 株式会社日立製作所 並列ジョブ多重スケジューリング方法
US6269391B1 (en) * 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
JPH10260850A (ja) 1997-03-19 1998-09-29 Hitachi Ltd 仮想計算機システム
US6128728A (en) * 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6078970A (en) * 1997-10-15 2000-06-20 International Business Machines Corporation System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory
US6647508B2 (en) * 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6625638B1 (en) * 1998-04-30 2003-09-23 International Business Machines Corporation Management of a logical partition that supports different types of processors
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
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6105050A (en) * 1998-08-25 2000-08-15 International Business Machines Corporation System for resource lock/unlock capability in multithreaded computer environment
US6279046B1 (en) * 1999-05-19 2001-08-21 International Business Machines Corporation Event-driven communications interface for logically-partitioned computer
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US6760783B1 (en) * 1999-05-21 2004-07-06 Intel Corporation Virtual interrupt mechanism
US6598069B1 (en) * 1999-09-28 2003-07-22 International Business Machines Corporation Method and apparatus for assigning resources to logical partition clusters
US6587938B1 (en) * 1999-09-28 2003-07-01 International Business Machines Corporation Method, system and program products for managing central processing unit resources of a computing environment
JP3575593B2 (ja) * 1999-12-27 2004-10-13 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトのロック管理方法及び装置
US6912493B1 (en) * 2000-09-29 2005-06-28 International Business Machines Corporation Technique for configuring processors in system with logical partitions
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US20020161961A1 (en) * 2001-01-17 2002-10-31 Ajile Systems, Inc. Multiple virtual machine environment management system
US6957435B2 (en) * 2001-04-19 2005-10-18 International Business Machines Corporation Method and apparatus for allocating processor resources in a logically partitioned computer system
US20030014466A1 (en) * 2001-06-29 2003-01-16 Joubert Berger System and method for management of compartments in a trusted operating system
US7251814B2 (en) * 2001-08-24 2007-07-31 International Business Machines Corporation Yield on multithreaded processors
US6779065B2 (en) * 2001-08-31 2004-08-17 Intel Corporation Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
US20050108711A1 (en) * 2003-11-13 2005-05-19 Infineon Technologies North America Corporation Machine instruction for enhanced control of multiple virtual processor systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013509637A (ja) * 2009-10-29 2013-03-14 ティームストーン Cpuの仮想化を支援することが可能なコンピュータサーバ
US8984263B2 (en) 2010-10-12 2015-03-17 Fujitsu Limited Information processing device and emulation processing program and method
JP7474761B2 (ja) 2018-11-26 2024-04-25 マルクス、ブライアン ソフトウェア・バグを検出するためにシステムをトレーニングするためのシステム及び方法

Also Published As

Publication number Publication date
AU2002328960A1 (en) 2003-03-10
CN1278235C (zh) 2006-10-04
TWI239450B (en) 2005-09-11
WO2003019360A2 (en) 2003-03-06
US8108196B2 (en) 2012-01-31
US20030055864A1 (en) 2003-03-20
JP4056471B2 (ja) 2008-03-05
CN1541357A (zh) 2004-10-27
KR20040028805A (ko) 2004-04-03
WO2003019360A3 (en) 2003-11-20
US20080276246A1 (en) 2008-11-06
US7428485B2 (en) 2008-09-23

Similar Documents

Publication Publication Date Title
JP4056471B2 (ja) プロセッサに譲渡するためのシステム
US5313584A (en) Multiple I/O processor system
US7251814B2 (en) Yield on multithreaded processors
JP4322232B2 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US8019962B2 (en) System and method for tracking the memory state of a migrating logical partition
TWI417790B (zh) 異質架構中之邏輯分割以及虛擬化
US7984262B2 (en) Data transmission for partition migration
US8327086B2 (en) Managing migration of a shared memory logical partition from a source system to a target system
JP4866864B2 (ja) マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法およびプログラム
US8024726B2 (en) System for correct distribution of hypervisor work
TWI273495B (en) Information processing device, process control method, and computer program
US10289564B2 (en) Computer and memory region management method
JP2010510607A (ja) システムハードウェアの交換
WO2006035728A1 (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
US9329937B1 (en) High availability architecture
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
JP2001229042A (ja) ディスク制御装置
JP2011257973A (ja) メモリ管理方法及びメモリ管理装置
JPS63197239A (ja) 仮想プロセツサ制御情報退避格納方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061031

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061031

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20061031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070806

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070806

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070911

TRDD Decision of grant or rejection written
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071207

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20071207

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071211

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101221

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101221

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121221

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121221

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131221

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees