[go: up one dir, main page]

JP2008108260A - コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム - Google Patents

コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2008108260A
JP2008108260A JP2007275113A JP2007275113A JP2008108260A JP 2008108260 A JP2008108260 A JP 2008108260A JP 2007275113 A JP2007275113 A JP 2007275113A JP 2007275113 A JP2007275113 A JP 2007275113A JP 2008108260 A JP2008108260 A JP 2008108260A
Authority
JP
Japan
Prior art keywords
service
kernel
specified
node
computer system
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
JP2007275113A
Other languages
English (en)
Other versions
JP5106036B2 (ja
Inventor
Charles J Archer
チャールズ・ジェイ・アーチャー
Michael A Blocksome
マイケル・エイ・ブロックサム
Joseph D Ratterman
ジョゼフ・ディー・ラターマン
E Smith Brian
ブライアン・イー・スミス
Albert Sidelnik
アルバート・サイドルニック
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 JP2008108260A publication Critical patent/JP2008108260A/ja
Application granted granted Critical
Publication of JP5106036B2 publication Critical patent/JP5106036B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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

Landscapes

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

Abstract

【課題】コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム(OS)サービスを提供すること。
【解決手段】コンピュータ・システムは、少なくとも1つの計算ノードを含む。計算ノードは、一のOS及び一のハイパーバイザを含む。OSは、一のカーネルを含む。ハイパーバイザは、一のカーネル・プロキシ及び一のサービス・タイプの複数のOSサービスを含む。コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのOSサービスを提供するため、計算ノード上で、カーネル・プロキシが使用すべきサービス・タイプのOSサービスのうち1つを指定するカーネル・ポリシを設定し、カーネル・プロキシによって、指定されたOSサービスにアクセスする。コンピュータ・システムは、1つ以上のOSサービス・ノードを含む分散コンピュータ・システムとしても実装することができる。1つ以上のOSサービスは、OSサービス・ノード間に分散することができる。
【選択図】 図4

Description

本発明はデータ処理に係り、さらに詳細に説明すれば、コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、装置及びプログラムに係る。
1948年のEDVACコンピュータ・システムの開発は、コンピュータ時代の始めとしてしばしば引用される。その時以来、コンピュータ・システムは、非常に複雑な装置へ発展した。今日のコンピュータは、EDVACのような初期のシステムよりはるかに複雑となっている。コンピュータ・システムは、一般に、ハードウェア及びソフトウェア・コンポーネントの組み合わせ、アプリケーション・プログラム、オペレーティング・システム(以下「OS」と略記)、プロセッサ、バス、メモリ、入出力装置などを含む。半導体処理及びコンピュータ・アーキテクチャの進歩が高いコンピュータの性能をもたらし、精巧なソフトウェアがハードウェアの高い性能を活用するように発展した結果、今日のコンピュータ・システムは、わずか数年前よりはるかに強力になっている。
高性能ハードウェアを利用するためにソフトウェアが発展した1つの領域は、OSである。初期のコンピュータは、どんな形式のOSも持っていなかった。システム管理者によってロードされるアプリケーションが、マシンを単独で使用していたからである。コンピュータを動作させるために、アプリケーションは、ハードウェアに直接にアクセスし、これを制御しなければならなかった。その後、サポート・コードのライブラリを備えたコンピュータが出現し、かかるライブラリが入出力のような動作を支援するためにアプリケーションへリンクされた。かかるライブラリは、最近のOSの起源であった。しかし、コンピュータは、依然として一度に単一のアプリケーションだけを稼働させるに過ぎなかった。最近のOSは、多数のアプリケーションを同時に稼働させることができる。さらに、最近のOSは、アプリケーションの開発を簡易化し、かつ1つのハードウェア・プラットフォームから他のハードウェア・プラットフォームへアプリケーションを移植する能力を援助するために、ハードウェアの抽象化層をアプリケーションに提供する。
カーネルは、殆どのOSの主要部であって、システムの資源を管理したり、ハードウェア及びソフトウェア・コンポーネント間の通信を管理する。カーネルは、OSの主要部として、ハードウェア(特に、メモリ、プロセッサ、及びI/O)のための抽象化層を提供することにより、ハードウェアとソフトウェアが通信することを可能にする。さらに、カーネルは、プロセス間通信機構及びシステム・コールを通して、これらの機能をアプリケーション及び他のOSサービスに利用可能にする。
かかるカーネル・タスクは、カーネルが異なれば、それぞれの設計及び実装に依存して、異なった態様で遂行される。モノリシック・カーネルの場合、全てのOSサービスは、同じメモリ領域内に存在し、当該メモリ領域を使用して実行される。このように、モノリシック・カーネルが同じアドレス空間内の全てのコードを実行することを試みるという理由で、モノリシックカーネル・アーキテクチャは、他の解決手段よりも設計及び実装が簡単であり、よく書けている場合は、非常に効率的である。モノリシック・カーネルの主要な欠点は、システム・コンポーネント間の依存関係である。大きなカーネルは、これを維持するのが非常に難しくなり、また、カーネルの1つの部分にバグが存在すると、システム全体をクラッシュさせることがある。
マイクロカーネル・アーキテクチャの場合、カーネルは、最小のOSサービス(例えば、メモリ管理、マルチタスキング及びプロセス間通信)を実装するために、1セットのプリミティブ又はシステム・コールによって、ハードウェアに関する単純な抽象化層を提供する。ネットワーキングのようなカーネルによって通常提供されるものを含む他のサービスは、一般に、それ自体のアドレス空間を有するユーザ空間プログラム内で実装される。マイクロ・カーネルは、モノリシック・カーネルよりも維持するのがより簡単であるが、多くのシステム・コール及びコンテキスト・スイッチはシステムの性能を低下させることがある。
OSを実装するために使用されるカーネル・アーキテクチャに拘わらず、最近のOS内に提供される1セットのOSサービスは、当該OSがインストールされるとき、固定されることが一般的である。すなわち、かかるOSは、当該OSによって管理されるハードウェア上で稼働するアプリケーションを考慮せずに、同じメモリ管理アルゴリズム、同じI/Oスケジューリング・アルゴリズム、同じネットワーキング・アルゴリズムなどを利用する。しかし、同じ1つのOSサービスを利用する場合、1つのアプリケーションが資源を効率的に利用できるのに対し、他のアプリケーションは資源を効率的に利用できない、という事態がしばしば生ずる。例えば、OS内にI/Oスケジューリングを提供する一のOSサービスは、入出力集中的なアプリケーションが資源を効率的に使用することを可能にするのに対し、入出力集中的でないアプリケーションが資源を効率的に使用することを困難にすることがある。このように、最近のOSは、アプリケーションを考慮せずに同じOSサービスを提供するという理由で、アプリケーションとハードウェアとの間の相互作用を効率的に管理しないことが多い。従って、当分野では、OS内にOSサービスを提供する態様を改良することが要請されている。
高性能ハードウェアを利用するためにソフトウェアが発展した他の領域は、「ハイパーバイザ」と呼ばれるソフトウェア・ツールのセットである。ハイパーバイザは、ハードウェア上でOS層の下で稼働するシステム・ソフトウェアの層であって、ホスト・コンピュータ上で多数のOSが未変更のまま同時に稼働することを可能にする。ハイパーバイザが最初に開発された1970年代の初めには、企業の経費を削減することを目標として、それまで多数の部門に散在していた多数のコンピュータを単一の大型コンピュータ(メインフレーム)に統合して、多数の部門にサービスを提供することが一般に行われていた。ハイパーバイザは、多数のOSを同時に稼働させることによって、システムに対し頑強性と安定度をもたらした。1つのOSがクラッシュしても、他のOSは中断なしに作業を継続することができたからである。確かに、ハイパーバイザを利用することにより、安定した主実働システムを危険にさらすことなく、しかも開発者が作業すべき高価な第2及び第3のシステムを必要とすることなく、OSのベータ・バージョン又は実験的なバージョンを配備しデバッグすることが可能になった。
ハイパーバイザは、各OSに1セットの仮想資源を提供することにより、ホスト・コンピュータ上で多数のOSが同時に稼働することを可能にする。これらの仮想資源は、各OSにコンピュータの実際の資源の一部を提供する。一般に、かかる資源の部分は、当該資源が使用可能な合計時間のタイム・スライスとして実装される。ハイパーバイザを使用すると、単一コンピュータ内の資源が分配され、その結果、当該コンピュータは、あたかも2つ以上の独立したコンピュータであるかのように見える。しかし、ホスト・コンピュータ上で多数のOSが同時に稼働することを可能にするためにハイパーバイザを利用することには、欠点がある。すなわち、ハイパーバイザを動作させるのに必要な管理オーバーヘッドは、OS及びアプリケーションを稼働させるのに利用可能な総合的な資源を減少させてしまう。かかる管理オーバーヘッドは、ハイパーバイザと各OSの間のプロセッサ・コンテキスト・スイッチの形で生じる。従って、当分野では、OSの或る機能をハイパーバイザ内で実装することにより、ハイパーバイザの管理オーバーヘッドを減少させることが要請されている。
従って、本発明の目的は、コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのOSサービスを提供するための方法、装置及びプログラムを提供することである。
前記コンピュータ・システムは、少なくとも1つの計算ノードを含む。前記計算ノードは、一のOS及び一のハイパーバイザを含む。前記OSは、一のカーネルを含む。前記ハイパーバイザは、一のカーネル・プロキシ及び一のサービス・タイプの複数のOSサービスを含む。コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのOSサービスを提供することは、前記計算ノード上で、前記カーネル・プロキシによって使用すべき前記複数のOSサービスのうち1つを指定するカーネル・ポリシを設定することと、前記カーネル・プロキシによって、前記指定されたOSサービスにアクセスすることを含む。
また、前記コンピュータ・システムは、1つ以上のOSサービス・ノードを含む分散コンピュータ・システムとして実装することができる。1つ以上のOSサービスは、これらのOSサービス・ノードの間に分散することができる。また、前記カーネル・ポリシは、前記指定されたOSサービスを提供すべき1つのOSサービス・ノードを指定することができ、その場合、前記カーネル・プロキシによって、前記指定されたOSサービスにアクセスすることは、前記計算ノード上の前記カーネル・プロキシによって、前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスすることを含むことができる。
本発明の前記及び他の目的、特徴及び利点は、添付の図面に示されている本発明の実施形態に関する以下の説明から明らかとなるであろう。なお、図面中の同じ参照番号は、本発明の実施形態の同じ部分を指すものとする。
以下、添付の図面を参照して、コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのOSサービスを提供するための、本発明の実施形態に従った方法、装置及びプログラムを説明する。図1は、ハイパーバイザ内にポリシ・ベースのOSサービスを提供するための、本発明の実施形態に従ったコンピュータ・システム100を示すネットワーク図である。コンピュータ・システム100は、計算ノード110を含む。計算ノード110は、OS108及びハイパーバイザ111を含む。OS108は、カーネル109を含む。ハイパーバイザ111は、カーネル・プロキシ120及び一のサービス・タイプの複数のOSサービス124を含む。一般に、コンピュータ・システム100は、ハイパーバイザ111内にポリシ・ベースのOSサービスを提供するために、計算ノード110上で、ハイパーバイザ111内のカーネル・プロキシ120が使用すべき前記サービス・タイプの前記複数のOSサービス124のうち1つを指定するカーネル・ポリシ122を設定し、カーネル・プロキシ120によって、前記指定されたOSサービスにアクセスするように動作する。
コンピュータ・システム100は、分散コンピュータ・システムとして実装される。分散コンピュータ・システムは、共通のタスクを遂行するために、ネットワークに接続された2つ以上の計算装置を使用するコンピュータ・システムである。分散コンピュータ・システム100は、ネットワーク101を通して互いにデータ通信を行うように接続された、計算ノード110と、OSサービス・ノード112、114、116と、管理ノード118とを含む。計算ノード110は、接続線140を通して、ネットワーク101に接続する。OSサービス・ノード112、114、116は、接続線142、144、146を通して、ネットワーク101にそれぞれ接続する。管理ノード118は、接続線148を通して、ネットワーク101に接続する。分散コンピュータ・システム100内の共通のタスクは、ハイパーバイザ111内にポリシ・ベースのOSサービスを提供することを含む。
計算ノード110は、ラック104内に取り付けられたノード102のうち1つを使用して実装される。各ノード102は、プログラム命令を実行する処理装置である。各ノード102は、1つ以上のプロセッサ及び当該プロセッサに結合されたメモリを含む。ノード102は、サーバ・シャシに取り付けられたブレード・サーバとして実装され、これらのサーバ・シャシは、ラック104に取り付けられる。しかし、ノード102をブレード・サーバとして実装するのは、説明上のものであって、本発明を限定するものではない。実際、ノード102は、ネットワークに接続されたワークステーションとして、またコンピュータ・クラスタを形成するように互いに接続されたコンピュータなどとして、実装することができる。
計算ノード110は、カーネル・プロキシ120及びカーネル・ポリシ122を含む、ハイパーバイザ111を有するように構成されたノードである。ハイパーバイザ111は、ハードウェア上でOS層の下で稼働するシステム・ソフトウェアの層であって、ホスト・コンピュータ上で多数のOSが未変更のまま同時に稼働することを可能にする。ハイパーバイザ111は、各OSに1セットの仮想資源を提供するために、論理区画(以下「LPAR」と略記)を使用して各OSにかかる資源を割り振る。LPARは、1セットのデータ構造及びサービスであって、単一コンピュータ内の資源の分配を可能にすることにより、あたかも当該コンピュータが2つ以上の独立したコンピュータであるかのように機能させる。
多数のOSが同時に稼働することを可能にするために、ハイパーバイザ111は、仮想プロセッサ115をOS108、ゲストOS117に割り当てるとともに、計算ノード110の物理プロセッサ上で仮想プロセッサ115をスケジュールする。仮想プロセッサは、LPARに対するプロセッサ時間の割り当てを実装するためのサブシステムである。物理プロセッサの共有プールは、LPARに対する部分的な物理プロセッサの(タイム・スライスによる)割り当てをサポートする。このようにタイム・スライスで共有される部分的な物理プロセッサは、「仮想プロセッサ」と呼ばれる。スレッドが仮想プロセッサのタイム・スライス上で稼働している場合、スレッドは仮想プロセッサ上で稼働中であると称する。サブプロセッサの複数の区画は、LPAR内で稼働中のOSには見えない態様で、1セットの仮想プロセッサ間で物理プロセッサをタイム・シェアする。OS内のマルチプログラミングでは、スレッドは、割り込み禁止のモードで稼働することにより、物理プロセッサの制御を維持することができる。これに対し、サブプロセッサ区画では、スレッドは、その仮想プロセッサのタイム・スライスの終わりにハイパーバイザによって依然として優先使用され、その結果、物理プロセッサを異なる仮想プロセッサに利用可能にすることができる。
ハイパーバイザ111は、アプリケーション106及びOS108の実行環境を提供する、LPAR103に仮想資源を割り振る。さらに、ハイパーバイザ111は、アプリケーション107及びゲストOS117の実行環境を提供する、LPAR105に仮想資源を割り振る。各アプリケーション106、107は、ユーザ・レベルのデータ処理を実装する1セットのプログラム命令である。各アプリケーション106、107は、それぞれのプログラム命令が単一の計算ノード上で実行されるような独立型のアプリケーションでもよいし、あるいはそれぞれのプログラム命令の各部分が他の計算ノード上で実行中の他の部分と直列又は並列に実行されるような分散型のアプリケーションでもよい。
ゲストOS117は、計算ノード110上のアプリケーション107の実行を制御する。ゲストOS117は、ハイパーバイザ111によってLPAR105に割り振られた仮想資源を管理するシステム・ソフトウェアである。ゲストOS117が遂行する基本的作業は、仮想メモリの制御及び割り振り、命令の処理の優先順位付け、仮想化入出力装置の制御、ネットワーキングの支援、仮想化ファイル・システムの管理などを含む。
同様に、OS108は、計算ノード110の上のアプリケーション106の実行を制御する。アプリケーション106は、カーネル109を通して、OS108によって提供される資源にアクセスする。カーネル109は、OS108のコア・コンポーネントであって、システムの資源を管理するとともに、ハイパーバイザ111によって提供される仮想資源とアプリケーションとの間の通信を管理する。カーネル109は、アプリケーションに仮想ハードウェア資源の抽象化層を提供することにより、当該アプリケーションがかかる仮想ハードウェア資源を利用することを可能にする。カーネル109は、プロセス間通信機構及びカーネルのアプリケーション・プログラム・インタフェース(以下「API」と略記)119を通して、これらの抽象化層をユーザ・レベルのアプリケーションに利用可能にする。
ハイパーバイザ111は、カーネル・プロキシ120及びOSサービス124を使用して、OS108の実装の多くを行うように構成される。カーネル・プロキシ120は、一般に、OSのカーネル内に実装されるOSサービスを提供するシステム・ソフトウェアである。OS108がハイパーバイザ111内に構成されるサービスを必要とする場合、カーネル109は、カーネル・プロキシ120が当該サービスを遂行することを要求する。カーネル109は、プロセス間通信を使用するか、又はカーネル・プロキシAPI121を通して、カーネル・プロキシ120にアクセスする。OS108の実装をできるだけ多く行うようにハイパーバイザ111を構成すると、非常に軽量のOSを有利に提供することができる。
カーネル・プロキシ120とOSサービス124との間の関係は、マイクロカーネル・アーキテクチャに基づいて作られる。すなわち、カーネル・プロキシ120は、メモリ管理、プロセス管理及びプロセス間通信のようなOSサービスの基本タイプの実装を含む。しかし、他のOSサービス124(例えば、ネットワーキング、割り込み処理、I/Oスケジューリング、デバイス・ドライバ、ファイルシステム・サービスなど)は、別個のOSコンポーネントを使用して実装され、当該各コンポーネントは、カーネル・プロキシ120とは異なるスレッドを有する。カーネル・プロキシ120は、プロセス間通信又はサービスAPI125へのシステム・コールを使用して、これらのOSサービス124にアクセスする。
各OSサービス124は、カーネル・プロキシ120それ自体の内部で実装されないサービス・タイプを実装するか、又はカーネル・プロキシ120によって既に提供されているサービス・タイプの特殊バージョンを実装するシステム・ソフトウェアである。この点を説明するため、カーネル・プロキシ120がファイルシステム・サービス・タイプのいかなるサービスをも実装していない、という第1の例を考察する。この第1の例では、OSサービス124のうち1つは、UNIX(登録商標)ファイル・システム用のファイルシステム・サービスを実装し、第2のOSサービス124は、Reiserファイル・システム用のファイルシステム・サービスを実装することができる。カーネル・プロキシ120は、ハイパーバイザ111内に構成されるカーネル・ポリシ122に依存して、UNIX(登録商標)ファイル・システム又はReiserファイル・システムを使用して、ファイルシステム・サービスを提供するであろう。さらに、カーネル・プロキシ120が一般的なメモリ管理サービスを実装している、という第2の例を考察する。この第2の例では、OSサービス124のうち1つは、集中的な入出力動作に適合したメモリ管理サービスを実装することができ、その結果、カーネル・プロキシ120は、カーネル・ポリシ122の構成に依存して、カーネル・プロキシ120内に実装された一般的なメモリ管理アルゴリズムを使用する代わりに、集中的な入出力動作に適合したメモリ管理サービスを使用することができる。
各OSサービス124は、特定サービス・タイプのOSサービスを提供する。OSサービス124によって提供されるサービス・タイプは、例えば、タスク・スケジューラ、ファイル・システム、メモリ管理、デバイス・ドライバ、I/Oスケジューラ、割り込み/信号処理、セキュリティ、ジョブ・サブミッション、tty(teletypewriter)処理などを含む。同じサービス・タイプのOSサービス124は、同じAPIを有する。すなわち、特定のサービス・タイプを有する各OSサービス124用のサービスAPI125は、同じ1セットのメンバ・メソッド及びパラメータを有しており、カーネル・プロキシ120はこれを使用してOSサービス124にアクセスすることができる。各サービス・タイプのサービスが同じサービスAPIを有しているという理由で、カーネル・プロキシ120は、特定のサービス・タイプについてカーネル・ポリシ122内でどのOSサービスが指定されるかに拘わらず、同じAPIを使用して、カーネル・ポリシ122内で指定されたOSサービスにアクセスすることができる。
図1のコンピュータ・システム100では、1つ以上のOSサービス124は、OSサービス・ノード112、114、116の間に分散される。すなわち、2つ以上のOSサービス124を実装するプログラム命令は、OSサービス・ノード112、114、116上に存在する。OSサービス132、134、136用の対応するOSサービス124は、各OSサービス132、134、136を実装するプログラム命令のコピーとして実装することができる。また、OSサービス132、134、136用の対応するOSサービス124は、OSサービス・ノード112、114、116上のOSサービス132、134、136にアクセスするデータ通信サブシステムを使用して実装することができる。かかるデータ通信サブシステムは、例えば、ウェブ・サービス・エンジンとして実装することができるし、リモート・プロシージャ・コールを使用してOSサービス・ノード112、114、116上のOSサービス132、134、136にアクセスする、計算ノード110の上のCORBAオブジェクトとして、あるいはMPIライブラリなどを使用して実装することができる。
「CORBA」は、「Common ObjectRequest Broker Architecture」の略称であり、ObjectManagement Group(OMG)によって策定された相互運用可能な企業アプリケーション用の仕様を指す。CORBAは、1991年にOMGによって最初に公表されたリモート・プロシージャ・コールのための仕様である。CORBAは、通常のリモート・プロシージャ・コールには存在しない機能をサポートするが、リモート・プロシージャ・コールを行うための一種のオブジェクト指向の方法と考えることができる。CORBAは、オブジェクトのインタフェースを記述するために、宣言型言語であるインタフェース定義言語(IDL)を使用する。IDLで書かれたインタフェース記述は、クライアント側の「スタブ」及びサーバ側の「スケルトン」を生成するようにコンパイルされる。この生成コードを使用すると、C++又はJava(登録商標)のようなオブジェクト指向プログラミング言語によって行われる遠隔メソッドの呼び出しは、ローカル・オブジェクト内のローカル・メンバメソッドの呼び出しのように見える。
「MPI」は、「Message PassingInterface」の略称であり、既存の並列通信ライブラリ、すなわち並列コンピュータ上のデータ通信用のプログラム命令のモジュールを指す。本発明の実施形態に有用な既存の並列通信ライブラリの例には、MPI及び「Parallel Virtual Machine」(PVM)ライブラリがある。PVMは、テネシー大学、オークリッジ国立研究所及びエモリー大学によって開発された。MPIは、MPIフォーラム(MPI仕様を定義及び維持する多くの組織からの代表者で構成されたオープン・グループ)によって公表される。MPIは、分散メモリ型の並列コンピュータ上で並列プログラムを稼働させているノード間の通信を行うための業界標準である。説明の便宜上、本明細書では、MPIの用語を使用することもあるが、このことは、本発明を限定するものではない。
各OSサービス・ノード112、114、116は、ラック104に取り付けられたノード102を使用して実装される。各OSサービス・ノード112、114、116は、計算ノード110上にインストールされたハイパーバイザ111に対し、OSサービスを提供するノードである。各OSサービス・ノード112、114、116は、1つ以上の計算ノード上で稼働中の1つ以上のハイパーバイザに対し、1つ以上のOSサービスを提供することができる。しかし、多くのノードを備えた分散コンピュータ・システムでは、各OSサービス・ノード112、114、116は、当該システム内の豊富なノードに起因して、1つだけのOSサービスを提供するのが普通である。図1の例では、OSサービス・ノード112はカーネル・プロキシ120にOSサービス132を提供し、OSサービス・ノード114はカーネル・プロキシ120にOSサービス134を提供し、OSサービス・ノード116はカーネル・プロキシ120にOSサービス136を提供する。
カーネル・プロキシ120にOSサービスを提供するために、各OSサービス・ノード112、114、116は、それぞれの上にOSサービス・サーバをインストールしている。すなわち、OSサービス・ノード112はOSサービス・サーバ133を含み、OSサービス・ノード114はOSサービス・サーバ135を含み、OSサービス・ノード116はOSサービス・サーバ137を含む。各OSサービス・サーバ133、135、137は、ハイパーバイザ111によって送信された要求に応答して、又はシステム管理者からの命令を受け取ることに応答して、ハイパーバイザ111にOSサービスを提供するソフトウェア・コンポーネントである。各OSサービス・サーバ133、135、137は、要求されたOSサービスを実装するプログラム命令をハイパーバイザ111に送信するとともに、ハイパーバイザ111をインストールした計算ノード110がこれらのプログラム命令を実行するのを許可することにより、ハイパーバイザ111に当該OSサービスを提供することができる。また、各OSサービス・サーバ133、135、137は、要求されたOSサービスを実装するプログラム命令を実行するように、OSサービス・サーバをインストールしたOSサービス・ノードに命令することにより、当該OSサービスを提供することができる。ハイパーバイザ111のカーネル・プロキシ120は、各OSサービス・サーバ133、135、137と通信するために、CORBAオブジェクトの呼び出し用メンバ・メソッドを使用するか、MPIライブラリなどを使用することができる。
前述のように、ハイパーバイザ111は、特定のサービス・タイプ用の2つ以上のOSサービス124を含む。例えば、ハイパーバイザ111は、コンピュータ・システム100の構成に依存して、カーネル・プロキシ120が使用すべきファイルシステム・サービスの2つの異なる実装を含むことができる。他の例では、ハイパーバイザ111は、アプリケーション106の必要性に依存して、メモリ管理サービスの2つの異なる実装を含むことができる。特定のサービス・タイプについて複数のOSサービスを有すると、計算ノード110のハードウェア及びソフトウェア環境に従って、OSのサービス・アルゴリズムを柔軟に最適化することができる。
カーネル・ポリシ122は、OSサービス124のうち1つをカーネル・プロキシ120によって使用されるOSサービスのタイプにマップするテーブルである。一般に、カーネル・ポリシ122は、計算ノード110上の実行のために構成されたアプリケーション106によるノード資源の利用を最適化するように、計算ノード110上で設定される。カーネル・プロキシ120は、カーネル・ポリシ122を使用することにより、特定のサービス・タイプについてハイパーバイザ111内で使用すべきOSサービスを識別する。OSサービス124が計算ノード110上にローカルに存在するか、又はOSサービス・ノード112、114、116のような他のノード上に分散されるかどうかに拘わらず、カーネル・ポリシ122は、ハイパーバイザ111内で使用すべき特定のサービス・タイプの1つのOSサービスを指定する。さらに、カーネル・ポリシ122内で指定されたOSサービスがOSサービス・ノード112、114、116のうち1つに分散される場合、カーネル・ポリシ122は、当該指定されたOSサービスを提供すべきOSサービス・ノードを指定する。カーネル・ポリシ122を使用すると、カーネル・プロキシ120は、カーネル・ポリシ122内で指定されたOSサービスにアクセスすることにより、ハイパーバイザ111内にポリシ・ベースのOSサービスを提供することができる。
しばしば、カーネル・ポリシ122は、ハイパーバイザ111内で使用される1つのサービス・タイプ用のOSサービスを指定しないか、又はカーネル・ポリシ122内で指定されたOSサービスにアクセスできないこともある。従って、ハイパーバイザ111は、デフォルトOSサービス126を含む。このデフォルトOSサービス126は、カーネル・ポリシ122が特定のサービス・タイプ用のOSサービスを指定しないか、又はカーネル・ポリシ122内で指定されたOSサービスにアクセスすることができないようなときに、カーネル・プロキシ120が使用することができる特定のサービス・タイプのOSサービスである。この点を説明するため、カーネル・ポリシ122がハイパーバイザ111によって使用すべきファイルシステム・サービスを指定せず、カーネル・プロキシ120がファイルシステム・サービスそれ自体を実装せず、そしてデフォルトOSサービス126がUNIX(登録商標)ファイル・システムを実装している、という例を考察する。この例では、カーネル・プロキシ120がファイルシステム・サービスを実装せず、ファイルシステム・サービスがカーネル・ポリシ122内で指定されないという理由で、カーネル・プロキシ120は、UNIX(登録商標)ファイル・システムを実装するデフォルトOSサービス126を使用するであろう。カーネル・プロキシ120は、プロセス間通信又はデフォルトOSサービスAPI127を使用して、デフォルトOSサービス126にアクセスすることができる。
分散コンピュータ・システム100は、管理ノード118を通して、システム管理者130によって構成される。管理ノード118は、コンピュータ・システム100の構成を処理する計算装置である。管理ノード118は、ラック104に取り付けられたノード102のうち1つとして、ノード102に接続されたワークステーション・ネットワークとして、又は当業者には周知の他のコンピュータとして実装することができる。
図1のコンピュータ・システム100では、管理ノード118は、その上に管理モジュール128をインストールしている。管理モジュール128は、システム管理者130がそれを通してコンピュータ・システム100を構成するソフトウェア・コンポーネントである。管理モジュール128は、システム管理者130がコンピュータ・システム100を構成できるようにするため、システム管理者130が管理モジュール128と対話するためのユーザ・インタフェースを提供するとともに、システム管理者130によって1つ以上の計算ノード(例えば、計算ノード110)上に提供されたハイパーバイザ111、OS108、ゲストOS117、アプリケーション106、107を構成する。管理モジュール128は、カーネル・プロキシ120が使用すべきサービス・タイプのOSサービス124のうち1つを指定するカーネル・ポリシ122を計算ノード110上に設定することにより、ハイパーバイザ111内にポリシ・ベースのOSサービスを提供するための1セットのプログラム命令を含む。
コンピュータ・システム100を構成するサーバ及び他の装置の配置は、説明上のものであって、本発明を限定するものではない。当業者には明らかなように、本発明の種々の実施形態に従ったデータ処理システムは、図1には示されていない追加のサーバ、ルータ、他の装置及びピア・ツー・ピア・アーキテクチャを含むことができる。当業者には明らかなように、かかるデータ処理システム内のネットワークは、伝送制御プロトコル(TCP)、インターネット・プロトコル(IP)、ハイパーテキスト転送プロトコル(HTTP)、無線アクセス・プロトコル(WAP)、ハンドヘルド・デバイス伝送プロトコル(HDTP)、MPIプロトコルなどを含む、多くのデータ通信プロトコルをサポートすることができる。本発明の種々の実施形態は、図1に示されたものに加えて、種々のハードウェア・プラットフォーム上で実装することができる。例えば、コンピュータ・システム100は、IBM社の BlueGene/L のような並列コンピュータとしても実装することができる。
本発明に従ってコンピュータ・システム上のハイパーバイザ内にポリシ・ベースのOSサービスを提供することは、一般に、コンピュータを用いて、すなわち自動化計算機械を用いて実装される。例えば、図1のコンピュータ・システム100では、全てのノードは、少なくともコンピュータとしてある程度まで実装される。従って、さらなる説明のために、図2に示されている計算ノード110から成る自動化計算機械は、本発明の実施形態に従って、ハイパーバイザ111内にポリシ・ベースのOSサービスを提供するのに有用である。図2の計算ノード110は、少なくとも1つのプロセッサ(CPU)156及びランダム・アクセス・メモリ(RAM)168を含み、このRAM168は、高速メモリ・バス166及びバス・アダプタ158を通して、プロセッサ156及び計算ノード110の他のコンポーネントに接続される。
RAM168内には、ハイパーバイザ111、アプリケーション106、107、OS108、ゲストOS117が格納される。ハイパーバイザ111は、アプリケーション106及びOS108用の実行環境を提供する、LPAR103に仮想資源を割り振る。OS108はカーネル109を含む。さらに、ハイパーバイザ111は、アプリケーション107及びゲストOS117用の実行環境を提供する、LPAR105に仮想資源を割り振る。各LPAR103、105は、1セットのデータ構造及びサービスであって、単一コンピュータ内の資源の分配を可能にすることにより、あたかも当該コンピュータが2つ以上の独立したコンピュータであるかのように機能させる。
図2のハイパーバイザ111は、仮想プロセッサ115、カーネル・プロキシ120、カーネル・ポリシ122、OSサービス124及びデフォルトOSサービス126を含む。カーネル・ポリシ122は、OSサービス124のうち1つをカーネル・プロキシ120によって使用されるOSサービスのタイプにマップするテーブルである。仮想プロセッサ115は、LPARへのプロセッサ時間の割り当てを実装するサブシステムである。アプリケーション106、107、OS108、ゲストOS117、カーネル109、ハイパーバイザ111、カーネル・プロキシ120、OSサービス124及びデフォルトOSサービス126は、ソフトウェア・コンポーネントである。すなわち、かかるソフトウェア・コンポーネントの各々は、図1を参照して既に説明したように、計算ノード110に関して動作するプログラム命令である。本発明に従って改良することができるOSには、UNIX(登録商標)、Linux(商標)、MicrosoftNT(商標)、IBM社のAIX(商標)、IBM社のi5/OS(商標)などがある。図2では、OS108、ゲストOS117、アプリケーション106、107、LPAR103、105、及びハイパーバイザ111が、それぞれRAM168内に格納されるように示されているが、かかるソフトウェア・コンポーネントの多くは、不揮発性メモリ(例えば、ディスク・ドライブ170)にも格納される。
バス・アダプタ158は、高速バスであるフロントサイド・バス162及びメモリ・バス166用のドライブ・エレクトロニクスに加えて、比較的低速の拡張バス160用のドライブ・エレクトロニクスを含む、ハードウェア・コンポーネントである。計算ノード110に有用なバス・アダプタ158の例には、インテル社のノース・ブリッジ、メモリ・コントローラ・ハブ、サウス・ブリッジ及びI/Oコントローラ・ハブがある。計算ノード110に有用な拡張バス160の例には、PCIバス及びPCIExpresバスがある。
図2には示されていないが、バス・アダプタ158は、ビデオ・アダプタと計算ノード110の他のコンポーネントの間のデータ通信をサポートするビデオ・バス用のドライブ・エレクトロニクスを含んでいてもよい。かかるビデオ・コンポーネントが図2に示されていない理由は、一般に、計算ノード110がブレード・サーバとして実装されていて、専用のビデオ・サポートを持たない並列コンピュータ内のサーバ・シャシ又はノードに取り付けられることにある。しかし、計算ノード110が、かかるビデオ・コンポーネントを含んでもよいことは明らかであろう。
ディスクドライブ・アダプタ172は、拡張バス160及びバス・アダプタ158を通して、プロセッサ156及び計算ノード110の他のコンポーネントに結合される。ディスクドライブ・アダプタ172は、ディスク・ドライブ170の形態を有する不揮発性のデータ記憶装置を計算ノード110に接続する。計算ノード110に有用なディスクドライブ・アダプタ172の例には、統合ドライブ・エレクトロニクス(IDE)アダプタ、小型コンピュータ・システムインタフェース(SCSI)アダプタなどがある。さらに、計算ノード110用の不揮発性メモリとして、光ディスク・ドライブ、電気的消去再書き込みROM(いわゆる「EEPROM」あるいは「フラッシュ」メモリ)などを実装することができる。
1つ以上の入出力(I/O)アダプタ178は、ディスプレイ装置への出力を制御したり、キーボードやマウスのようなユーザ入力装置181からのユーザ入力を制御するために、例えばソフトウェア・ドライバ及びハードウェアを通して、ユーザ向きの入出力を実装する。図2には示されていないが、他の実施形態に従った計算ノードは、I/Oアダプタ178の1例として、ディスプレイ装置へグラフィック出力を供給するように特別に設計されたビデオ・アダプタを含むことができる。一般に、かかるビデオ・アダプタは、高速のビデオ・バス、バス・アダプタ158及びフロントサイド・バス162を通して、プロセッサ156に接続される。
通信アダプタ167は、他のコンピュータ182及びデータ通信ネットワーク101とのデータ通信を行うためのものである。かかるデータ通信は、RS−232接続を通して、ユニバーサル・シリアル・バス(USB)のような外部バスを通して、IPデータ通信ネットワークのようなデータ通信ネットワークなどを通して、行うことができる。通信アダプタは、データ通信のハードウェア・レベルを実装し、これを通して、1つのコンピュータは、直接に又はデータ通信ネットワークを通して、データを他のコンピュータに送信する。計算ノード110に有用な通信アダプタ167の例には、有線式ダイアルアップ通信用のモデム、有線式データ通信ネットワーク通信用のIEEE 802.3イーサネット(登録商標)・アダプタ及び無線式データ通信ネットワーク通信用のIEEE 802.11bアダプタがある。
以上、図2を参照して計算ノード110を説明したが、これと同様な自動化計算機械が、ハイパーバイザ111内にポリシ・ベースのOSサービスを提供するのに有用なOSサービス・ノード及び管理ノードから構成されることに留意すべきである。かかるOSサービス・ノード及び管理ノードは、図2の計算ノード110と同様に、1つ以上のプロセッサ、バス・アダプタ、バス、RAM、通信アダプタ、I/Oアダプタ、ディスクドライブ・アダプタなどを含む。
次に、図3を参照して、ハイパーバイザ111によるLPARへの仮想プロセッサの割り振りをさらに詳細に説明する。図3は、ハイパーバイザ111で構成された、本発明の実施形態に従った計算ノード300を示す機能ブロック図である。
計算ノード300は、LPAR302及びLPAR304を含む。計算ノード300内に含まれる2つのOS30及びOS308は、LPAR302及びLPAR304内にそれぞれ常駐する。計算ノード300は、6つの論理プロセッサ(LP)320〜325を含み、そのうちの2つはLPAR302内のOS308用のものであり、他の4つはLPAR304内のOS308用のものである。論理プロセッサは、実行すべきスレッドをスケジュールするためのOSの構造である。論理プロセッサは、スレッドの実行を行うことができるプロセッサの資源の一部を表す。6つのスレッド(T)310〜315が、論理プロセッサ当たり1つのスレッドずつ、6つの論理プロセッサ320〜325上でそれぞれ稼働する。計算ノード300は、ハイパーバイザ111及び4つの仮想プロセッサ(VP)330〜333を含み、そのうちの2つの仮想プロセッサ330及び331はLPAR302に割り当てられ、他の2つの仮想プロセッサ332及び333はLPAR304に割り当てられる。
さらに、計算ノード300は、3つの物理プロセッサ340、342、344を含む。この例では、物理プロセッサ340、342、344は、処理単位に応じて共有される(但し、1.0の処理単位は、1つの物理プロセッサの処理能力を表す)。この例では、3つの物理プロセッサ340、342、344の処理能力は、以下のようにLPARに配分される。
1.物理プロセッサ340の全ての処理能力が、仮想プロセッサ330に割り当てられる。その結果、論理プロセッサ320は、物理プロセッサ340の全ての処理能力を利用することができる。
2.物理プロセッサ342の処理能力の半分が、仮想プロセッサ331に割り当てられる。その結果、論理プロセッサ321は、(タイム・スライスにより)物理プロセッサ342の処理能力の半分を利用することができる。
3.物理プロセッサ342の処理能力の他の半分が、仮想プロセッサ332に割り当てられる。仮想プロセッサ332が割り当てられるLPAR304では、仮想プロセッサ332に対応する2つの論理プロセッサ322及び323が、同時的なマルチスレッディング・モードで稼働中である。その結果、論理プロセッサ322及び323の各々は、(タイム・スライスにより)物理プロセッサ342の処理能力の4分の1をそれぞれ利用することができる。
4.物理プロセッサ344の全ての処理能力が、仮想プロセッサ333に割り当てられる。仮想プロセッサ333が割り当てられるLPAR304では、仮想プロセッサ333に対応する2つの論理プロセッサ324及び325が、同時的なマルチスレッディング・モードで稼働中である。その結果、論理プロセッサ324及び325の各々は、(タイム・スライスにより)物理プロセッサ344の処理能力の半分をそれぞれ利用することができる。
計算ノード300内の物理プロセッサ、仮想プロセッサ及び論理プロセッサの数、配置及び割り当ては、説明上のものであって、本発明を限定するものではない。本発明の実施形態に従った計算ノードは、多数のLPARをサポートすることができ、物理プロセッサ、仮想プロセッサ及び論理プロセッサの任意の数、配置又は割り当てを含むことができる。
図4は、本発明の実施形態に従った方法のフローチャートを示す。図4の例では、コンピュータ・システムは、少なくとも1つの計算ノードを含む。計算ノードは、OS及びハイパーバイザを含む。OSは、カーネルを含む。ハイパーバイザは、カーネル・プロキシ120及び一のサービス・タイプの複数のOSサービスを含む。
図4の方法は、計算ノード上で、カーネル・プロキシ120が使用すべきサービス・タイプのOSサービスのうち1つを指定するカーネル・ポリシ122を設定するステップ400を含む。カーネル・ポリシ122は、OSサービスのうち1つをカーネル・プロキシ120によって使用されるOSサービスのタイプにマップするテーブルである。図4の例では、カーネル・ポリシ122の各レコードは、特定のサービス・タイプについてカーネル・プロキシ120がどのOSサービスを使用すべきかを識別する。かかる識別を行うため、カーネル・ポリシ122の各レコードは、OSサービス識別子402及びサービス・タイプ404を含む。カーネル・ポリシ122内で指定されるOSサービス・タイプ404の例には、タスク・スケジューラ、ファイル・システム、メモリ管理、デバイス・ドライバ、I/Oスケジューラ、割り込み/信号処理、セキュリティ、ジョブ・サブミッション、tty(teletypewriter)処理などがある。本発明の実施形態に従ったカーネル・ポリシ122の例については、以下の表を参照されたい。
Figure 2008108260
表1のカーネル・ポリシ122では、OSサービス識別子402の値「UFS_Service」をサービス・タイプ404の値「File_System」に関連づけることは、カーネル・プロキシ120がファイルシステム・サービス・タイプにアクセスする必要があるとき、カーネル・プロキシ120がUNIX(登録商標)ファイル・システムを実装するOSサービスを使用することを指定する。OSサービス識別子402の値「Round_Robin_MM_Algorithm」をサービス・タイプ404の値「Memory_Management」に関連づけることは、カーネル・プロキシ120がメモリ管理サービス・タイプにアクセスする必要があるとき、カーネル・プロキシ120がラウンドロビン・アルゴリズムを実装するOSサービスを使用することを指定する。OSサービス識別子402の値「Limited_I/O_Access」をサービス・タイプ404の値「I/O_Scheduler」に関連づけることは、カーネル・プロキシ120がI/Oスケジューラ・サービス・タイプを使用するとき、カーネル・プロキシ120が制限されたI/Oアクセスを実装するOSサービスを使用することを指定する。表1のカーネル・ポリシ122は、説明用のものであって、本発明を限定するものではない。本発明の実施形態では、当業者には周知の他のカーネル・プロキシも使用することができる。
図4の設定ステップ400は、管理モジュール128において、システム管理者130からOSサービスとサービス・タイプとの間のマッピングを受け取り、管理モジュール128によって、当該マッピングに従ったカーネル・ポリシ122を計算ノード上で作成することにより、実施することができる。管理モジュール128は、計算ノードを含むコンピュータ・システムを構成するためにシステム管理者130が使用することができる、ソフトウェア・コンポーネントである。カーネル・ポリシ122を作成するための管理モジュール128をインストールしている特定の計算ノードは、一般に、当該管理モジュール128によって提供されるユーザ・インタフェースを通して、システム管理者130によって指定される。管理モジュール128は、この計算ノード上に直接インストールするか、又はこの計算ノードに接続された他のコンピュータ・ネットワークにインストールすることができる。管理モジュール128は、共有メモリ空間、CORBAフレームワーク、JTAGネットワーク、ウェブ・サービス、MPIライブラリなどを使用して実装されたデータ通信接続を通して、計算ノード上にカーネル・ポリシ122を作成することができる。
「JTAG」は、バウンダリ・スキャンを使用してプリント配線回路ボードをテストするために使用される、「Standard Test Access Port and Boundary-Scan Architecture 」と題する、IEEE 1149.1標準の俗称である。JTAGは、非常に広汎に使用されているので、バウンダリ・スキャンと殆ど同義である。JTAGは、プリント配線回路ボードだけでなく、集積回路のバウンダリ・スキャンを行うためにも使用され、さらに、組み込みシステムをデバッグするための機構として、当該システムへの便利な「バック・ドア」を提供するのに有用である。JTAGネットワークを使用すると、管理モジュール128は、本発明の実施形態に従った、計算ノード内のプロセッサ・レジスタ及びメモリを効率的に構成することができる。
図4の指定ステップ401は、カーネル・プロキシ120によって、カーネル・プロキシ120が使用すべきサービス・タイプ405を指定する。カーネル・プロキシ120は、実行フローに沿った特定の点でカーネル・プロキシ120を実装するプログラム命令内にサービス・タイプ405を保持する命令を含めることにより、ハイパーバイザ内の使用すべきサービス・タイプ405を指定することができる。例えば、カーネル・プロキシ120用の実行フローに沿った特定の点で、カーネル・プロキシ120を実装するプログラム命令は、次の命令を表す機械コードを含むことができる。
Execute_Service(File_System);
この命令内の機能「Execute_Service」は、カーネル・プロキシ120に対し、「File_System」の値を有するサービス・タイプ405についてカーネル・ポリシ122内で指定されたOSサービスを実行するように命令する機能である。この命令をカーネル・プロキシ120を実装するプログラム命令内に含めると、ハイパーバイザ111がファイルシステム・サービス・タイプのサービスを使用することを指定する。この命令は、説明用のものであって、本発明を限定するものではない。本発明の実施形態では、当業者には周知の他の命令も使用することができる。
図4の検索ステップ403は、カーネル・プロキシ120によって、指定されたサービス・タイプ405に依存して、カーネル・ポリシ122から指定されたOSサービス407を検索することを含む。検索ステップ403は、カーネル・ポリシ122内で、指定されたサービス・タイプ405と同じ値を有するサービス・タイプ404に関連するOSサービス識別子402を検索することにより、実施することができる。
図4の判定ステップ406は、カーネル・プロキシ120によって、カーネル・プロキシ120が指定されたOSサービス407にアクセスすることができるか否かを判定する。判定ステップ406は、指定されたOSサービス407用のAPIの関数を呼び出すことにより、実施することができる。もし、この関数呼び出しがカーネル・プロキシ120に対しエラーを返すのであれば、カーネル・プロキシ120は、指定されたOSサービスにアクセスすることができない。一方、この関数呼び出しがカーネル・プロキシ120に対しエラーを返さなければ、カーネル・プロキシ120は、指定されたOSサービスにアクセスすることができる。前述のように、同じサービス・タイプ用のOSサービスは、同じAPIを有することができる。各サービス・タイプ用のAPIは、カーネル・プロキシ120を実装するプログラム命令内にコード化することができる。
図4の実行ステップ408は、カーネル・プロキシ120が指定されたOSサービス407にアクセスすることができない場合、計算ノードによって、サービス・タイプ404のデフォルトOSサービスを実装するプログラム命令を実行することを含む。実行ステップ408は、デフォルト・サービス・テーブル412内で、サービス・タイプ404に関連するデフォルトOSサービス識別子414を検索するとともに、このデフォルトOSサービス識別子414によって表わされるデフォルトOSサービス用のAPIの関数を呼び出すことにより、実施することができる。デフォルト・サービス・テーブル412は、カーネル・ポリシ122に類似している。デフォルト・サービス・テーブル412の各レコードは、特定のサービス・タイプについてハイパーバイザ内のどのデフォルトOSサービスを使用すべきかを識別する。デフォルト・サービス・テーブル412の各レコードは、デフォルトOSサービス識別子414及びサービス・タイプ404を含む。デフォルトOSサービスは、図4のデフォルト・サービス・テーブル412内で指定されるが、かかる実施形態は、説明用のものであって、本発明を限定するものではない。他の実施形態では、カーネル・ポリシ122内のフィールドを使用して、特定のサービス・タイプについてOS内の使用すべきデフォルトOSサービスを指定することができるし、あるいは、各サービス・タイプ用のデフォルト・サービスをカーネル・プロキシ120それ自体にコード化することができる。
図4のアクセス・ステップ410は、カーネル・プロキシ120によって、指定されたOSサービス407にアクセスすることを含む。アクセス・ステップ410は、指定されたOSサービス407用のAPIの関数を呼び出すことにより、実施することができる。しかし、かかる実施形態は、説明用のものであって、本発明を限定するものではない。他の実施形態では、管理モジュール128は、カーネル・ポリシ122に従って、カーネル・プロキシ120のコード内にある入口及び出口フックを修正することにより、実行フロー中のカーネル・プロキシ120のコード内の適切な点で、プロセッサの制御がカーネル・プロキシ120からOSサービスまで移動されるようにすることができる。そのような例では、アクセス・ステップ410は、単にカーネル・プロキシ120を実装するプログラム命令を実行することにより、実施することができる。
前述のように、OSサービスは、分散コンピュータ・システム内の1つ以上のOSサービス・ノード間に分散することができる。このような場合、アクセス・ステップ410は、OSサービス・ノードから指定されたOSサービスを実装するプログラム命令を検索するとともに、計算ノードによって、指定されたOSサービスを実装するプログラム命令を実行することにより、実施することができる(図6の説明を参照)。また、アクセス・ステップ410は、カーネル・プロキシ120によって、OSサービス・ノードが指定されたOSサービスを実行するように要求するとともに、当該OSサービス・ノードによって、指定されたOSサービスを実装するプログラム命令を実行することにより、実施することができる(図7の説明を参照)。
前述のように、カーネル・ポリシ122は、特定のOSサービスをカーネル・プロキシ120によって使用されるOSサービスのタイプにマップするテーブルである。しかし、カーネル・ポリシ122は、OSサービスをカーネル・プロキシ120によって使用されるサービスの各タイプにマップできないことがある。そのため、カーネル・プロキシ120は、しばしばカーネル・ポリシ122が特定のサービス・タイプ用のOSサービスを指定するか否かを識別し、カーネル・ポリシ122が指定されたサービス・タイプのOSサービスを指定しないときには、指定されたサービス・タイプのデフォルトOSサービスを実装するプログラム命令を実行する。従って、さらなる説明のために、図5は、本発明の実施形態に従った他の方法のフローチャートを示す。図5の方法は、カーネル・プロキシ120によって、カーネル・ポリシ122が指定されたサービス・タイプ405のOSサービスを指定するか否かを識別するステップ500を含む。図5の例では、コンピュータ・システムは、少なくとも1つの計算ノードを含む。この計算ノードは、OS及びハイパーバイザを含む。OSは、カーネルを含む。ハイパーバイザは、カーネル・プロキシ120及び1つのサービス・タイプの複数のOSサービスを含む。
図5の方法は、図4の方法における設定ステップ400、指定ステップ401、検索ステップ403及びアクセス・ステップ410を含むという点で、図4の方法に類似している。さらに、図5の例は、図4の例におけるデフォルト・サービス・テーブル412を含み、当該テーブル412の各レコードがデフォルトOSサービス識別子414及びサービス・タイプ404を含むという点で、図4の例に類似している。
図5の識別ステップ500は、指定されたサービス・タイプ405の値に一致するサービス・タイプ404の値を有するレコードを求めて、カーネル・ポリシ122を探索することにより、実施することができる。もし、かかるレコードが見つからなければ、カーネル・ポリシ122は、指定されたサービス・タイプ405のOSサービスを指定しない。一方、かかるレコードが見つかれば、カーネル・ポリシ122は、指定されたサービス・タイプ405のOSサービスを指定する。しかし、かかる実施の形態は、説明上のものであって、本発明を限定するものではない。他の実施形態では、カーネル・ポリシ122は、OS内で使用すべき各サービス・タイプのレコードを保持することができる。かかる実施形態では、識別ステップ500は、カーネル・ポリシ122内の特定のレコード用のOSサービス識別子402が、NULL値を保持しているか否かを識別することにより、実施することができる。
さらに、図5の実行ステップ502は、カーネル・ポリシ122が指定されたサービス・タイプ405のOSサービスを指定しないときに、計算ノードによって、指定されたサービス・タイプ405のデフォルトOSサービスを実装するプログラム命令を実行することを含む。この実行ステップ502は、デフォルト・サービス・テーブル412において、サービス・タイプ404に関連するデフォルトOSサービス識別子414を検索するとともに、このデフォルトOSサービス識別子414によって表わされるデフォルトOSサービス用のAPIの関数を呼び出すことにより、実施することができる。デフォルトOSサービスは、図5のデフォルト・サービス・テーブル412内で指定されるが、かかる実施形態は、説明上のものであって、本発明を限定するものではない。他の実施形態では、カーネル・ポリシ122内のフィールドを使用して、特定のサービス・タイプについてOS内の使用すべきデフォルトOSサービスを指定することができるし、あるいは、各サービス・タイプ用のデフォルト・サービスをカーネル・プロキシ120それ自体にコード化することができる。
前述のように、OSサービスは、分散コンピュータ・システム内の1つ以上のOSサービス・ノード間に分散することができる。このような場合、アクセス・ステップ410は、OSサービス・ノードの指定されたOSサービスにアクセスすることにより、実施することができる。従って、さらなる説明のために、図6は、本発明の実施形態に従ったさらに他の方法のフローチャートを示す。図6の方法は、OSサービス・ノードの指定されたOSサービス407にアクセスするステップ602を含む。図6の例では、コンピュータ・システムは、少なくとも1つの計算ノード及び1つ以上のOSサービス・ノードを含む、計算ノードは、OS及びハイパーバイザを含む。OSは、カーネルを含む。ハイパーバイザは、カーネル・プロキシ120及び1つのサービス・タイプの複数のOSサービスを含む。図6の例では、OSサービスの1つ以上がOSサービス・ノード間に分散される。
図6の方法は、図4の方法における設定ステップ400、指定ステップ401、検索ステップ403及びアクセス・ステップ410を含むという点で、図4の方法に類似している。さらに、図6の例は、カーネル・ポリシ122の各レコードがOSサービス識別子402及びサービス・タイプ404を含むという点で、図4の例に類似している。しかし、図6の例では、カーネル・ポリシ122は、各レコード内にOSサービス・ノード識別子600を含めることによって、指定されたOSサービス407を提供すべきOSサービス・ノードを指定する。図6の例では、指定されたOSサービス407は、OSサービス・ノードのうち1つに分散される。
図6のアクセス・ステップ410は、OSサービス・ノードの指定されたOSサービス407にアクセスするステップ602を含む。このアクセス・ステップ602は、カーネル・プロキシ120によって、指定されたOSサービス407を実装するプログラム命令606をOSサービス・ノードから検索するステップ604により、実施することができる。かかるプログラム命令606は、指定されたOSサービス407を実装する機械コードを表す。かかる表現は、説明上のものであって、本発明を限定するものではない。事実、図6のプログラム命令606は、アセンブリ言語又はJava(登録商標)のような高水準言語で実装されたプログラム命令を表すことができる。
図6の検索ステップ604は、指定されたOSサービス407が分散されているOSサービス・サーバ上のOSサービス・サーバに対しOSサービス要求を送信し、このOSサービス・サーバから、指定されたOSサービスを実装するプログラム命令606を受信することにより、実施することができる。このOSサービス要求は、OSサービス・ノードに対し、OSサービスをハイパーバイザ内のカーネル・プロキシ120に提供するように要求するものである。このOSサービス要求は、指定されたOSサービス407用のOSサービス識別子402を含むことができる。カーネル・プロキシ120は、このOSサービス要求をOSサービス・ノード上のOSサービス・サーバに送信した後、ウェブ・サービスを使用するか、CORBAオブジェクトのメンバ・メソッドを呼び出すか、MPIライブラリなどを使用して、プログラム命令606を検索することができる。
また、図6のアクセス・ステップ602は、計算ノードによって、指定されたOSサービス607を実装するプログラム命令606を実行するステップ608により、実施することができる。この実行ステップ608は、指定されたOSサービス607を実装するプログラム命令606を計算ノード上で実行するようにスケジュールすることにより、実施することができる。前述のように、図6のプログラム命令606は、アセンブリ言語又はJava(登録商標)のような高水準言語で実装されたプログラム命令を表すことができる。かかる実施形態では、この実行ステップ608は、プログラム命令606を機械コードへ解釈し、かかる機械コードを計算ノード上で実行するようにスケジュールすることにより、実施することができる。
図6のアクセス・ステップ602は、指定されたOSサービスを実装するプログラム命令を計算ノード上で実行することにより実施される。しかし、かかるアクセス・ステップ602は、指定されたOSサービスを実装するプログラム命令をOSサービス・ノード上で実行することによっても、実施することができる。従って、さらなる説明のために、図7は、本発明の実施形態に従ったさらに他の方法のフローチャートを示す。図7の方法は、OSサービス・ノードによって、指定されたOSサービス407を実装するプログラム命令706を実行するステップ708を含む。図7の例では、コンピュータ・システムは、少なくとも1つの計算ノード及び1つ以上のOSサービス・ノードを含む。計算ノードは、OS及びハイパーバイザを含む。OSは、カーネルを含む。ハイパーバイザは、カーネル・プロキシ120及び1つのサービス・タイプの複数のOSサービスを含む。図7の例では、OSサービスの1つ以上は、OSサービス・ノード間に分散される。
図7の方法は、図4の方法における設定ステップ400、指定ステップ401、検索ステップ403及びアクセス・ステップ410を含むという点で、図4の方法に類似している。さらに、図7の例は、カーネル・ポリシ122の各レコードがOSサービス識別子402及びサービス・タイプ404を含むという点で、図4の例に類似している。しかし、図7の例では、カーネル・ポリシ122は、各レコード内にOSサービス・ノード識別子600を含めることにより、指定されたOSサービス407を提供すべきOSサービス・ノードを指定する。図7の例では、指定されたOSサービス407は、OSサービス・ノードのうち1つの上に分散される。
図7のアクセス・ステップ410は、OSサービス・ノードの指定されたOSサービス407にアクセスするステップ602を含む。このアクセス・ステップ602は、カーネル・プロキシ120によって、OSサービス・ノードが指定されたOSサービスを遂行すべきことを要求するステップ700を行うとともに、このOSサービス・ノードによって、サービス遂行要求702を受信するステップ704を行うことにより、実施される。要求ステップ700は、指定されたOSサービス407が分散されたOSサービス・ノード上のOSサービス・サーバにサービス遂行要求702を送信することにより、実施することができる。サービス遂行要求702は、OSサービス・ノードに対し、カーネル・プロキシ120用のOSサービスを遂行するように要求する。サービス遂行要求702は、指定されたOSサービス407用のOSサービス識別子402を含むことができる。カーネル・プロキシ120は、ウェブ・サービスを使用するか、CORBAオブジェクトのメンバ・メソッドを呼び出すか、MPIライブラリなどを使用して、OSサービス・ノード上のOSサービス・サーバにサービス遂行要求702を送信することができる。
図7のアクセス・ステップ602は、OSサービス・ノードによって、指定されたOSサービス407を実装するプログラム命令706を実行するステップ708により、実施される。プログラム命令706は、指定されたOSサービス407を実装する機械コードを表す。実行ステップ708は、指定されたOSサービス407を実装するプログラム命令706をOSサービス・ノード上で実行するようにスケジュールすることにより、実施することができる。プログラム命令706を実行した後、OSサービス・ノード上のOSサービス・サーバは、実行が成功したか否かを示すメッセージをカーネル・プロキシ120へ送信することができる。
本明細書の前述の説明に照らして、本発明の実施形態によれば、次の利点が得られることは明らかであろう。
1.ノードのハードウェア及びソフトウェア環境に基づいたOSサービスを提供することにより、軽量のOSを含む多数のOSをサポートするハイパーバイザで当該ノードを構成する能力。
2.軽量のOSをサポートする種々のOSサービスを提供することにより、ハイパーバイザによって、当該軽量のOSを新しい環境に適応させるか、又は新しい要件を満足させる能力。
3.OSの機能のうち或るものをハイパーバイザ内で実装することにより、当該ハイパーバイザの管理オーバーヘッドを減少させる能力。
本発明の代表的な実施形態は、主として、ハイパーバイザ内にポリシ・ベースのOSサービスを提供するための完全に機能的なコンピュータ・システムの環境で説明された。しかし、任意の適当なデータ処理システムとともに使用するための信号担持媒体に配置されたコンピュータ・プログラムにおいても、本発明を具体化することができることは明らかであろう。かかる信号担持媒体は、伝送媒体とすることができるし、あるいは磁気媒体、光学媒体、他の適切な媒体などを含む機械可読情報用の記録可能媒体とすることができる。記録可能媒体の例には、ハード・ドライブ又はディスケット内の磁気ディスク、光ドライブ用のコンパクト・ディスク、磁気テープなどがある。伝送媒体の例には、音声通信用の電話網、イーサネット(登録商標)のようなディジタル・データ通信ネットワーク、インターネット・プロトコルを用いたネットワーク、ワールド・ワイド・ウェブ、IEEE 802.11ファミリの規格に従って実装されたネットワークのような無線送信媒体などがある。また、本明細書で説明した代表的な実施形態のうち或るものは、ハードウェア上にインストールされ、そこで実行されるソフトウェアに基づいているが、ファームウェア又はハードウェアとして実装された他の実施形態も本発明の範囲内にあることはもちろんである。
前述の説明から明らかなように、本発明の要旨を逸脱することなく、本発明の種々の実施形態に対し修正及び変更を施すことができる。本明細書中の記述は、説明上のものであって、本発明を限定するものと解釈してはならない。本発明の範囲は、請求項の記載によってのみ定義される。
本発明の実施形態に従ったコンピュータ・システムを示すネットワーク図である。 本発明の実施形態に従った計算ノードから成る自動化計算機械を示すブロック図である。 ハイパーバイザで構成された、本発明の実施形態に従った計算ノードを示す機能ブロック図である。 本発明の実施形態に従った方法を示すフローチャートである。 本発明の実施形態に従った他の方法を示すフローチャートである。 本発明の実施形態に従ったさらに他の方法を示すフローチャートである。 本発明の実施形態に従ったさらに他の方法を示すフローチャートである。
符号の説明
100 分散コンピュータ・システム
103、105 LPAR
106、107 アプリケーション
108 OS
109 カーネル
110 計算ノード
111 ハイパーバイザ
112、114、116 OSサービス・ノード
117 ゲストOS
118 管理ノード
115 仮想プロセッサ
122 カーネル・ポリシ
124 OSサービス
126 デフォルトOSサービス
128 管理モジュール
130 システム管理者
132、134、136 OSサービス
133、135、137 OSサービス・サーバ

Claims (13)

  1. コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法であって、
    前記コンピュータ・システムは、少なくとも1つの計算ノードを含み、前記計算ノードは、一のオペレーティング・システム(以下「OS」と略記)及び一のハイパーバイザを含み、前記OSは、一のカーネルを含み、前記ハイパーバイザは、一のカーネル・プロキシ及び一のサービス・タイプの複数のOSサービスを含み、
    前記方法は、
    前記計算ノード上で、前記カーネル・プロキシが使用すべき前記複数のOSサービスのうち1つを指定する一のカーネル・ポリシを設定するステップと、
    前記カーネル・プロキシによって、前記指定されたOSサービスにアクセスするステップとを含む、方法。
  2. 前記コンピュータ・システムは、1つ以上のOSサービス・ノードを含む分散コンピュータ・システムであり、
    前記複数のOSサービスのうち1つ以上は、前記OSサービス・ノード間に分散され、
    さらに、前記カーネル・ポリシは、前記指定されたOSサービスを提供すべき1つのOSサービス・ノードを指定し、
    前記アクセスするステップは、前記カーネル・プロキシによって、前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスするステップを含む、請求項1に記載の方法。
  3. 前記カーネル・プロキシによって、前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスする前記ステップは、
    前記カーネル・プロキシによって、前記指定されたOSサービス・ノードから、前記指定されたOSサービスを実装するコンピュータ・プログラム命令を検索するステップと、
    前記計算ノードによって、前記指定されたOSサービスを実装する前記コンピュータ・プログラム命令を実行するステップとを含む、請求項2に記載の方法。
  4. 前記カーネル・プロキシによって、前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスする前記ステップは、
    前記カーネル・プロキシによって、前記指定されたOSサービス・ノードが前記指定されたOSサービスを遂行することを要求するステップと、
    前記指定されたOSサービス・ノードによって、前記指定されたOSサービスを実装するコンピュータ・プログラム命令を実行するステップとを含む、請求項2に記載の方法。
  5. 前記カーネル・プロキシによって、前記カーネル・プロキシが前記指定されたOSサービスにアクセスすることができるか否かを判定するステップと、
    前記カーネル・プロキシが前記指定されたOSサービスにアクセスすることができないときは、前記計算ノードによって、一のデフォルトOSサービスを実装するコンピュータ・プログラム命令を実行するステップとをさらに含む、請求項1に記載の方法。
  6. 前記ハイパーバイザが、他のサービス・タイプの一のOSサービスを含み、
    前記カーネル・プロキシによって、前記カーネル・ポリシが前記他のサービス・タイプの前記一のOSサービスを指定するか否かを識別するステップと、
    前記カーネル・ポリシが前記他のサービス・タイプの前記一のOSサービスを指定しないときは、前記計算ノードによって、前記他のサービス・タイプの一のデフォルトOSサービスを実装するコンピュータ・プログラム命令を実行するステップとをさらに含む、請求項1に記載の方法。
  7. 前記サービス・タイプの前記複数のOSサービスは、同一のアプリケーション・プログラム・インタフェース(以下「API」と略記)を有し、
    前記アクセスするステップは、前記カーネル・プロキシによって、前記同一のAPIを使用して前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスするステップを含む、請求項1に記載の方法。
  8. 前記コンピュータ・システムが並列コンピュータである、請求項1に記載の方法。
  9. ハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供するためのコンピュータ・システムであって、前記コンピュータ・システムは、少なくとも1つの計算ノードを含み、前記計算ノードは、一のオペレーティング・システム(以下「OS」と略記)及び一のハイパーバイザを含み、前記OSは、一のカーネルを含み、前記ハイパーバイザは、一のカーネル・プロキシ及び一のサービス・タイプの複数のOSサービスを含み、さらに前記コンピュータ・システムは、複数のプロセッサ及び当該プロセッサに結合されたメモリを含み、前記メモリ内に配置したコンピュータ・プログラム命令が、
    前記計算ノード上で、前記カーネル・プロキシが使用すべき前記複数のOSサービスのうち1つを指定する一のカーネル・ポリシを設定する機能と、
    前記カーネル・プロキシによって、前記指定されたOSサービスにアクセスする機能とを実現する、コンピュータ・システム。
  10. 前記コンピュータ・システムは、1つ以上のOSサービス・ノードを含む分散コンピュータ・システムであり、
    前記複数のOSサービスのうち1つ以上は、前記OSサービス・ノード間に分散され、
    さらに、前記カーネル・ポリシは、前記指定されたOSサービスを提供すべき1つのOSサービス・ノードを指定し、
    前記アクセスする機能は、前記カーネル・プロキシによって、前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスする機能を含む、請求項9に記載のコンピュータ・システム。
  11. 前記カーネル・プロキシによって、前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスする前記機能は、
    前記カーネル・プロキシによって、前記指定されたOSサービス・ノードから、前記指定されたOSサービスを実装するコンピュータ・プログラム命令を検索する機能と、
    前記計算ノードによって、前記指定されたOSサービスを実装する前記コンピュータ・プログラム命令を実行する機能とを含む、請求項10に記載のコンピュータ・システム。
  12. 前記カーネル・プロキシによって、前記指定されたOSサービス・ノードの前記指定されたOSサービスにアクセスする前記機能は、
    前記カーネル・プロキシによって、前記指定されたOSサービス・ノードが前記指定されたOSサービスを遂行することを要求する機能と、
    前記指定されたOSサービス・ノードによって、前記指定されたOSサービスを実装するコンピュータ・プログラム命令を実行する機能とを含む、請求項10に記載のコンピュータ・システム。
  13. 請求項1ないし請求項8の何れか1項に記載の方法における各ステップの処理をコンピュータに実行させるコンピュータ・プログラム。
JP2007275113A 2006-10-26 2007-10-23 コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム Active JP5106036B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/553,077 US8032899B2 (en) 2006-10-26 2006-10-26 Providing policy-based operating system services in a hypervisor on a computing system
US11/553077 2006-10-26

Publications (2)

Publication Number Publication Date
JP2008108260A true JP2008108260A (ja) 2008-05-08
JP5106036B2 JP5106036B2 (ja) 2012-12-26

Family

ID=39390372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007275113A Active JP5106036B2 (ja) 2006-10-26 2007-10-23 コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US8032899B2 (ja)
JP (1) JP5106036B2 (ja)
CN (1) CN100570565C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176178A (ja) * 2009-01-27 2010-08-12 Nec Corp 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム
JP2010182225A (ja) * 2009-02-09 2010-08-19 Nec Corp マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法
JP2011526714A (ja) * 2008-07-02 2011-10-13 ヒューレット・パッカード・カンパニー ハイパーバイザ・ローディングのためのメモリ管理
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
JP2019502990A (ja) * 2015-12-21 2019-01-31 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ラック内のノードのための分散型オペレーティング・システム機能
JP2019071037A (ja) * 2017-10-09 2019-05-09 北京▲東▼土科技股▲分▼有限公司 組み込み型オペレーティングシステムに基づくmpi実現システムおよび方法
KR102465953B1 (ko) * 2022-05-30 2022-11-11 쿤텍 주식회사 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051423B2 (en) * 2007-02-06 2011-11-01 Mba Sciences, Inc. System and method for tracking resources during parallel processing
US20080222659A1 (en) * 2007-03-09 2008-09-11 Microsoft Corporation Abstracting operating environment from operating system
CN102217228B (zh) 2007-09-26 2014-07-16 Nicira股份有限公司 管理和保护网络的网络操作系统
CN101981552A (zh) * 2008-03-27 2011-02-23 惠普开发有限公司 由不知道raid阵列的操作系统访问raid阵列
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US8898293B2 (en) 2009-01-28 2014-11-25 Headwater Partners I Llc Service offer set publishing to device agent with on-device service selection
US8326958B1 (en) 2009-01-28 2012-12-04 Headwater Partners I, Llc Service activation tracking system
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US8924469B2 (en) 2008-12-18 2014-12-30 Headwater Partners I Llc Enterprise access control and accounting allocation for access networks
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8548428B2 (en) 2009-01-28 2013-10-01 Headwater Partners I Llc Device group partitions and settlement platform
US8626115B2 (en) 2009-01-28 2014-01-07 Headwater Partners I Llc Wireless network service interfaces
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8340634B2 (en) 2009-01-28 2012-12-25 Headwater Partners I, Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US8924543B2 (en) 2009-01-28 2014-12-30 Headwater Partners I Llc Service design center for device assisted services
US8219653B1 (en) 2008-09-23 2012-07-10 Gogrid, LLC System and method for adapting a system configuration of a first computer system for hosting on a second computer system
EP2359203B1 (en) * 2008-11-24 2015-10-28 ABB Research Ltd. A method for providing control and automation services
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US9647918B2 (en) 2009-01-28 2017-05-09 Headwater Research Llc Mobile device and method attributing media services network usage to requesting application
US9858559B2 (en) 2009-01-28 2018-01-02 Headwater Research Llc Network service plan design
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US8893009B2 (en) 2009-01-28 2014-11-18 Headwater Partners I Llc End user device that secures an association of application to service policy with an application certificate check
US9351193B2 (en) 2009-01-28 2016-05-24 Headwater Partners I Llc Intermediate networking devices
US10064055B2 (en) 2009-01-28 2018-08-28 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US12452377B2 (en) 2009-01-28 2025-10-21 Headwater Research Llc Service design center for device assisted services
US8793758B2 (en) 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US12388810B2 (en) 2009-01-28 2025-08-12 Headwater Research Llc End user device that secures an association of application to service policy with an application certificate check
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US12166596B2 (en) 2009-01-28 2024-12-10 Disney Enterprises, Inc. Device-assisted services for protecting network capacity
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US9571559B2 (en) 2009-01-28 2017-02-14 Headwater Partners I Llc Enhanced curfew and protection associated with a device group
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US8606911B2 (en) 2009-03-02 2013-12-10 Headwater Partners I Llc Flow tagging for service policy implementation
US9755842B2 (en) 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US8745191B2 (en) 2009-01-28 2014-06-03 Headwater Partners I Llc System and method for providing user notifications
US9578182B2 (en) 2009-01-28 2017-02-21 Headwater Partners I Llc Mobile device and service management
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US11973804B2 (en) 2009-01-28 2024-04-30 Headwater Research Llc Network service plan design
US12389218B2 (en) 2009-01-28 2025-08-12 Headwater Research Llc Service selection set publishing to device agent with on-device service selection
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US12432130B2 (en) 2009-01-28 2025-09-30 Headwater Research Llc Flow tagging for service policy implementation
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
US9253663B2 (en) 2009-01-28 2016-02-02 Headwater Partners I Llc Controlling mobile device communications on a roaming network based on device state
CA3081255C (en) 2009-04-01 2023-08-22 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
US8843927B2 (en) * 2009-04-23 2014-09-23 Microsoft Corporation Monitoring and updating tasks arrival and completion statistics without data locking synchronization
US9069596B2 (en) * 2009-11-17 2015-06-30 International Business Machines Corporation Hypervisor file system
US20110219373A1 (en) * 2010-03-02 2011-09-08 Electronics And Telecommunications Research Institute Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US8473587B1 (en) 2010-05-20 2013-06-25 Gogrid, LLC System and method for caching server images in a hosting system
US8743888B2 (en) 2010-07-06 2014-06-03 Nicira, Inc. Network control apparatus and method
US8964528B2 (en) 2010-07-06 2015-02-24 Nicira, Inc. Method and apparatus for robust packet distribution among hierarchical managed switching elements
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US20120124518A1 (en) * 2010-11-16 2012-05-17 Microsoft Corporation Managing Operations via a User Interface
US8621461B1 (en) * 2010-11-22 2013-12-31 Netapp, Inc. Virtual machine based operating system simulation using host ram-based emulation of persistent mass storage device
US11210674B2 (en) 2010-11-29 2021-12-28 Biocatch Ltd. Method, device, and system of detecting mule accounts and accounts used for money laundering
US10069837B2 (en) * 2015-07-09 2018-09-04 Biocatch Ltd. Detection of proxy server
US9288117B1 (en) 2011-02-08 2016-03-15 Gogrid, LLC System and method for managing virtual and dedicated servers
US9154826B2 (en) 2011-04-06 2015-10-06 Headwater Partners Ii Llc Distributing content and service launch objects to mobile devices
US9043452B2 (en) 2011-05-04 2015-05-26 Nicira, Inc. Network control apparatus and method for port isolation
US8880657B1 (en) 2011-06-28 2014-11-04 Gogrid, LLC System and method for configuring and managing virtual grids
US20130212237A1 (en) * 2012-02-10 2013-08-15 Suhas SHIVANNA Proxy infrastructure to access firmware-based features
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
RU2600538C2 (ru) * 2014-04-08 2016-10-20 Интел Корпорейшн Запуск приложения на основе интерфейса передачи сообщения (mpi) в гетерогенной среде
US9569195B2 (en) 2014-05-13 2017-02-14 Zscaler, Inc. Systems and methods for live operating system upgrades of inline cloud servers
US9628279B2 (en) * 2014-09-30 2017-04-18 Microsoft Technology Licensing, Llc Protecting application secrets from operating system attacks
US10318737B2 (en) 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
US10318311B2 (en) 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US10362110B1 (en) * 2016-12-08 2019-07-23 Amazon Technologies, Inc. Deployment of client data compute kernels in cloud
US9983823B1 (en) 2016-12-09 2018-05-29 Amazon Technologies, Inc. Pre-forking replicas for efficient scaling of a distribued data storage system
CN108984264B (zh) * 2017-06-02 2022-11-15 阿里巴巴集团控股有限公司 虚拟gpu的实现方法、装置及系统
US11218364B2 (en) 2018-06-25 2022-01-04 Amazon Technologies, Inc. Network-accessible computing service for micro virtual machines
CN109032029B (zh) * 2018-08-14 2020-12-08 北京东土科技股份有限公司 工业服务器对外通信方法、系统、装置及工业服务器
US12106132B2 (en) 2018-11-20 2024-10-01 Amazon Technologies, Inc. Provider network service extensions
US10833949B2 (en) 2018-11-20 2020-11-10 Amazon Technologies, Inc Extension resource groups of provider network services
US10848418B1 (en) 2019-06-24 2020-11-24 Amazon Technologies, Inc. Packet processing service extensions at remote premises
US10853263B1 (en) * 2019-07-23 2020-12-01 Ati Technologies Ulc Unified kernel virtual address space for heterogeneous computing
US11182182B2 (en) * 2019-07-24 2021-11-23 Vmware, Inc. Calling arbitrary functions in the kernel via a probe script
US11520530B2 (en) 2019-09-24 2022-12-06 Amazon Technologies, Inc. Peripheral device for configuring compute instances at client-selected servers
US11853771B1 (en) 2019-09-24 2023-12-26 Amazon Technologies, Inc. Offload card based virtualization of a pre-assembled computer system integrated into a server for a virtualization service
US11113046B1 (en) 2019-09-24 2021-09-07 Amazon Technologies, Inc. Integration and remote control of a pre-assembled computer system into a server for a virtualization service
US11064017B2 (en) 2019-09-24 2021-07-13 Amazon Technologies, Inc. Peripheral device enabling virtualized computing service extensions
US11243589B1 (en) 2019-09-24 2022-02-08 Amazon Technologies, Inc. Remote power button actuation device for a pre-assembled computer system integrated into a server for a virtualization service
US11704715B2 (en) 2019-11-27 2023-07-18 Amazon Technologies, Inc. Quantum computing service supporting multiple quantum computing technologies
US11605033B2 (en) 2019-11-27 2023-03-14 Amazon Technologies, Inc. Quantum computing task translation supporting multiple quantum computing technologies
US11605016B2 (en) 2019-11-27 2023-03-14 Amazon Technologies, Inc. Quantum computing service supporting local execution of hybrid algorithms
US11650869B2 (en) 2019-11-27 2023-05-16 Amazon Technologies, Inc. Quantum computing service with local edge devices supporting multiple quantum computing technologies
US11569997B1 (en) 2020-03-09 2023-01-31 Amazon Technologies, Inc. Security mechanisms for data plane extensions of provider network services
US11977957B2 (en) 2021-08-03 2024-05-07 Amazon Technologies, Inc. Quantum computing program compilation using cached compiled quantum circuit files
EP4145318B1 (en) * 2021-09-06 2025-07-02 AO Kaspersky Lab System and method for monitoring delivery of messages passed between processes from different operating systems
US12198005B1 (en) 2021-09-09 2025-01-14 Amazon Technologies, Inc. Quantum computing using multiple quantum computers
US12430170B2 (en) 2021-09-30 2025-09-30 Amazon Technologies, Inc. Quantum computing service with quality of service (QoS) enforcement via out-of-band prioritization of quantum tasks
US11797276B1 (en) 2021-09-30 2023-10-24 Amazon Technologies, Inc. Assisted composition of quantum algorithms
US11907092B2 (en) 2021-11-12 2024-02-20 Amazon Technologies, Inc. Quantum computing monitoring system
US12217090B2 (en) 2021-11-12 2025-02-04 Amazon Technologies, Inc. On-demand co-processing resources for quantum computing
US12135669B1 (en) 2022-03-03 2024-11-05 Amazon Technologies, Inc. Hardware for integration of servers into a management network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353102A (ja) * 1999-05-19 2000-12-19 Internatl Business Mach Corp <Ibm> 論理区画マネージャ及び方法
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US20070136721A1 (en) * 2005-12-12 2007-06-14 Andrew Dunshea Sharing a kernel of an operating system among logical partitions
JP2007328782A (ja) * 2006-06-07 2007-12-20 Internatl Business Mach Corp <Ibm> カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラム

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860201A (en) 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US4910669A (en) 1987-04-03 1990-03-20 At&T Bell Laboratories Binary tree multiprocessor
US5095444A (en) 1989-12-21 1992-03-10 Legent Corporation System and method for measuring inter-nodal transmission delays in a communications network
US5063562A (en) 1990-05-23 1991-11-05 International Business Machines Corporation Flow control for high speed networks
US6047122A (en) 1992-05-07 2000-04-04 Tm Patents, L.P. System for method for performing a context switch operation in a massively parallel computer system
US6336143B1 (en) 1993-09-27 2002-01-01 International Business Machines Corporation Method and apparatus for multimedia data interchange with pacing capability in a distributed data processing system
US6101495A (en) 1994-11-16 2000-08-08 Hitachi, Ltd. Method of executing partition operations in a parallel database system
US5491691A (en) 1994-08-16 1996-02-13 Motorola, Inc. Method and apparatus for pacing asynchronous transfer mode (ATM) data cell transmission
US5651099A (en) 1995-01-26 1997-07-22 Hewlett-Packard Company Use of a genetic algorithm to optimize memory space
US5859981A (en) 1995-07-12 1999-01-12 Super P.C., L.L.C. Method for deadlock-free message passing in MIMD systems using routers and buffers
AU6501496A (en) 1995-07-19 1997-02-18 Ascom Nexion Inc. Point-to-multipoint transmission using subqueues
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US6295599B1 (en) 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
JP3163237B2 (ja) 1995-09-28 2001-05-08 株式会社日立製作所 並列計算機システムの管理装置
US5815793A (en) 1995-10-05 1998-09-29 Microsoft Corporation Parallel computer
US5826262A (en) 1996-03-22 1998-10-20 International Business Machines Corporation Parallel bottom-up construction of radix trees
JPH09330304A (ja) 1996-06-05 1997-12-22 Internatl Business Mach Corp <Ibm> プロセッサ間の通信スケジュールを決定する方法
US5953336A (en) 1996-08-05 1999-09-14 Virata Limited Method and apparatus for source rate pacing in an ATM network
US5875190A (en) 1996-09-27 1999-02-23 Law; Ka Lun Asynchronous transfer mode switching system
US6057839A (en) 1996-11-26 2000-05-02 International Business Machines Corporation Visualization tool for graphically displaying trace data produced by a parallel processing computer
US5884080A (en) 1996-11-26 1999-03-16 International Business Machines Corporation System and method for instruction burst performance profiling for single-processor and multi-processor systems
US5862381A (en) 1996-11-26 1999-01-19 International Business Machines Corporation Visualization tool for graphically displaying trace data
US5826265A (en) 1996-12-06 1998-10-20 International Business Machines Corporation Data management system having shared libraries
US5918020A (en) 1997-02-28 1999-06-29 International Business Machines Corporation Data processing system and method for pacing information transfers in a communications network
US5912893A (en) 1997-03-21 1999-06-15 International Business Machines Corporation Incidence graph based communications and operations method and apparatus for parallel processing architecture
CA2285058C (en) 1997-03-24 2004-06-01 Evan W. Steeg Coincidence detection method, products and apparatus
US6115357A (en) 1997-07-01 2000-09-05 Packeteer, Inc. Method for pacing data flow in a packet-based network
US6118777A (en) 1997-10-27 2000-09-12 Nortel Networks Corporation System and method for providing competing local exchange carriers unbundled access to subscriber access lines
US6563823B1 (en) 1997-10-30 2003-05-13 Marconi Communications, Inc. Multi-resolution tree for longest match address lookups
US7100020B1 (en) 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
US6600721B2 (en) 1998-12-31 2003-07-29 Nortel Networks Limited End node pacing for QOS and bandwidth management
US6490566B1 (en) 1999-05-05 2002-12-03 I2 Technologies Us, Inc. Graph-based schedule builder for tightly constrained scheduling problems
US6438702B1 (en) 1999-12-21 2002-08-20 Telcordia Technologies, Inc. Method for providing a precise network time service
US6839829B1 (en) 2000-01-18 2005-01-04 Cisco Technology, Inc. Routing protocol based redundancy design for shared-access networks
US7054948B2 (en) 2000-03-07 2006-05-30 Opcoast Llc Collaborative host masquerading system
US6892383B1 (en) * 2000-06-08 2005-05-10 International Business Machines Corporation Hypervisor function sets
US6633937B2 (en) 2000-12-21 2003-10-14 National Instruments Corporation GPIB system and method which performs autopolling using heuristics
US6836480B2 (en) 2001-04-20 2004-12-28 International Business Machines Corporation Data structures for efficient processing of multicast transmissions
US20030021287A1 (en) 2001-05-04 2003-01-30 Appian Communications, Inc. Communicating data between TDM and packet based networks
US6952692B1 (en) 2002-05-17 2005-10-04 Ncr Corporation Execution of requests in a parallel database system
US6963868B2 (en) 2002-06-03 2005-11-08 International Business Machines Corporation Multi-bit Patricia trees
US20060059196A1 (en) 2002-10-03 2006-03-16 In4S Inc. Bit string check method and device
US7240059B2 (en) 2002-11-14 2007-07-03 Seisint, Inc. System and method for configuring a parallel-processing database system
US20040111398A1 (en) 2002-12-09 2004-06-10 International Business Machines Corporation Performance mechanism for presenting integrated information in a graphical user interface
US20050160423A1 (en) * 2002-12-16 2005-07-21 Bantz David F. Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations
GB2399189B (en) 2003-03-05 2006-07-19 Quazal Technologies Inc Coherent data sharing
US7117285B2 (en) * 2003-08-29 2006-10-03 Sun Microsystems, Inc. Method and system for efficiently directing interrupts
US7197577B2 (en) 2003-12-12 2007-03-27 International Business Machines Corporation Autonomic input/output scheduler selector
US20050182834A1 (en) 2004-01-20 2005-08-18 Black Chuck A. Network and network device health monitoring
GB0407144D0 (en) 2004-03-30 2004-05-05 British Telecomm Networks
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
US7509244B1 (en) 2004-12-22 2009-03-24 The Mathworks, Inc. Distributed model compilation
US20060203739A1 (en) 2005-03-14 2006-09-14 Microsoft Corporation Profiling wide-area networks using peer cooperation
JP4675174B2 (ja) 2005-07-12 2011-04-20 株式会社日立製作所 データベース処理方法、システム及びプログラム
US20070179760A1 (en) 2006-01-06 2007-08-02 Intel Corporation Method of determining graph isomorphism in polynomial-time
US7779016B2 (en) 2006-09-14 2010-08-17 International Business Machines Corporation Parallel execution of operations for a partitioned binary radix tree on a parallel computer
US8713582B2 (en) 2006-10-26 2014-04-29 International Business Machines Corporation Providing policy-based operating system services in an operating system on a computing system
US7634388B2 (en) 2006-10-26 2009-12-15 International Business Machines Corporation Providing policy-based operating system services in an operating system on a computing system
US20080109569A1 (en) 2006-11-08 2008-05-08 Sicortex, Inc Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US7958274B2 (en) 2007-06-18 2011-06-07 International Business Machines Corporation Heuristic status polling
US8296430B2 (en) 2007-06-18 2012-10-23 International Business Machines Corporation Administering an epoch initiated for remote memory access
US7738443B2 (en) 2007-06-26 2010-06-15 International Business Machines Corporation Asynchronous broadcast for ordered delivery between compute nodes in a parallel computing system where packet header space is limited
US9065839B2 (en) 2007-10-02 2015-06-23 International Business Machines Corporation Minimally buffered data transfers between nodes in a data communications network
US20090113308A1 (en) 2007-10-26 2009-04-30 Gheorghe Almasi Administering Communications Schedules for Data Communications Among Compute Nodes in a Data Communications Network of a Parallel Computer
US7984450B2 (en) 2007-11-28 2011-07-19 International Business Machines Corporation Dispatching packets on a global combining network of a parallel computer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353102A (ja) * 1999-05-19 2000-12-19 Internatl Business Mach Corp <Ibm> 論理区画マネージャ及び方法
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US20070136721A1 (en) * 2005-12-12 2007-06-14 Andrew Dunshea Sharing a kernel of an operating system among logical partitions
JP2007328782A (ja) * 2006-06-07 2007-12-20 Internatl Business Mach Corp <Ibm> カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011526714A (ja) * 2008-07-02 2011-10-13 ヒューレット・パッカード・カンパニー ハイパーバイザ・ローディングのためのメモリ管理
US9286080B2 (en) 2008-07-02 2016-03-15 Hewlett-Packard Development Company, L.P. Memory management for hypervisor loading
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
JP2010176178A (ja) * 2009-01-27 2010-08-12 Nec Corp 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム
JP2010182225A (ja) * 2009-02-09 2010-08-19 Nec Corp マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法
JP2019502990A (ja) * 2015-12-21 2019-01-31 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ラック内のノードのための分散型オペレーティング・システム機能
JP2019071037A (ja) * 2017-10-09 2019-05-09 北京▲東▼土科技股▲分▼有限公司 組み込み型オペレーティングシステムに基づくmpi実現システムおよび方法
KR102465953B1 (ko) * 2022-05-30 2022-11-11 쿤텍 주식회사 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법

Also Published As

Publication number Publication date
CN101169735A (zh) 2008-04-30
JP5106036B2 (ja) 2012-12-26
CN100570565C (zh) 2009-12-16
US20080148300A1 (en) 2008-06-19
US8032899B2 (en) 2011-10-04

Similar Documents

Publication Publication Date Title
JP5106036B2 (ja) コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム
US9396013B2 (en) Method for controlling a virtual machine and a virtual machine system
US7634388B2 (en) Providing policy-based operating system services in an operating system on a computing system
RU2398267C2 (ru) Иерархическая виртуализация посредством многоуровневого механизма виртуализации
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
JP5893029B2 (ja) クラウド・コンピューティング環境においてハイパーバイザの制御を可能にする方法
US8230204B2 (en) Migration of system images
US20090125901A1 (en) Providing virtualization of a server management controller
JP2007328782A (ja) カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラム
US8949817B1 (en) Updating software on dormant disks
BRPI0507780B1 (pt) facilitação de alocação de recursos em um ambiente computacional heterogêneo
US20090125611A1 (en) Sharing loaded java classes among a plurality of nodes
WO2012131507A1 (en) Running a plurality of instances of an application
CN113778612A (zh) 基于微内核机制的嵌入式虚拟化系统实现方法
JP4558661B2 (ja) パーティション間で実行可能プログラムを転送するためのコンピュータシステム及び方法
JP2008529115A (ja) マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法
US8713582B2 (en) Providing policy-based operating system services in an operating system on a computing system
US8141084B2 (en) Managing preemption in a parallel computing system
JP2004326774A (ja) 論理的に区画化されたコンピュータにおける区画管理操作に関する非同期通知の選択的生成
US7552434B2 (en) Method of performing kernel task upon initial execution of process at user level
US7546600B2 (en) Method of assigning virtual process identifier to process within process domain
US9727390B1 (en) Invoking a firmware function
US7661115B2 (en) Method, apparatus and program storage device for preserving locked pages in memory when in user mode
JP2007280397A (ja) 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム
CN112286633A (zh) 基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120827

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5106036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3