(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-15
(54)【発明の名称】ハイパーバイザシステムのオペレーティングシステム性能干渉防止装置
(51)【国際特許分類】
G06F 9/50 20060101AFI20240207BHJP
G06F 9/455 20180101ALI20240207BHJP
【FI】
G06F9/50 120Z
G06F9/455 150
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023504130
(86)(22)【出願日】2021-12-30
(85)【翻訳文提出日】2023-01-18
(86)【国際出願番号】 KR2021020262
(87)【国際公開番号】W WO2023128013
(87)【国際公開日】2023-07-06
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523021287
【氏名又は名称】ペルセウス カンパニー、リミテッド
(74)【代理人】
【識別番号】100136629
【氏名又は名称】鎌田 光宜
(74)【代理人】
【識別番号】100080791
【氏名又は名称】高島 一
(74)【代理人】
【識別番号】100125070
【氏名又は名称】土井 京子
(74)【代理人】
【識別番号】100121212
【氏名又は名称】田村 弥栄子
(74)【代理人】
【識別番号】100174296
【氏名又は名称】當麻 博文
(74)【代理人】
【識別番号】100137729
【氏名又は名称】赤井 厚子
(74)【代理人】
【識別番号】100151301
【氏名又は名称】戸崎 富哉
(74)【代理人】
【識別番号】100152308
【氏名又は名称】中 正道
(74)【代理人】
【識別番号】100201558
【氏名又は名称】亀井 恵二郎
(74)【代理人】
【識別番号】100170184
【氏名又は名称】北脇 大
(72)【発明者】
【氏名】ソ、サン-ボム
(57)【要約】
本発明は、ハイパーバイザシステムのオペレーティングシステム性能干渉防止装置に関する。
ハードウェア物理階層と、種類が異なる複数のオペレーティングシステムからなるオペレーティングシステム階層と、前記オペレーティングシステム階層を構成する複数のオペレーティングシステムに対応する複数のオペレーティングシステムドメイン別に前記ハードウェア物理階層のシステム資源を使用するための基礎資源を割り当てて、前記複数のオペレーティングシステムが仮想マシン環境で動作するようにするハイパーバイザと、を含み、前記ハイパーバイザによって前記複数のオペレーティングシステムドメイン別に割り当てられる基礎資源は、前記複数のオペレーティングシステムドメインのうち一つである特定のオペレーティングシステムドメインが前記システム資源を直接使用する際に消費される第1資源と、前記ハイパーバイザが前記システム資源を使用する際に消費される第2資源と、前記特定のオペレーティングシステムドメインが前記ハードウェア物理階層の入出力ディバイスを使用する際、前記入出力ディバイスを駆動するディバイスドライバドメインが前記システム資源を使用する過程で消費される第3資源と、を含む。
本発明によると、ハイパーバイザ上で動作する一部のオペレーティングシステムドメインがシステム資源を過度に使用する状況が発生し、ハイパーバイザ上でオペレーティングシステム別に元の仕様によって割り当てられていたシステム資源が足りなくなる現象が発生して、残りのオペレーティングシステムドメイン、特にリアルタイムオペレーティングシステムがリアルタイムの要求事項を充足しながら動作することができなくなるという問題点を防止する効果がある。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ハイパーバイザシステムのオペレーティングシステム性能干渉防止装置であって、
ハードウェア物理階層と、
種類が異なる複数のオペレーティングシステムからなるオペレーティングシステム階層と、
前記オペレーティングシステム階層を構成する複数のオペレーティングシステムに対応する複数のオペレーティングシステムドメイン別に前記ハードウェア物理階層のシステム資源を使用するための基礎資源を割り当てて、前記複数のオペレーティングシステムが仮想マシン環境で動作するようにするハイパーバイザ(Hypervisor)と、を含み、
前記ハイパーバイザによって前記複数のオペレーティングシステムドメイン別に割り当てられる基礎資源は、
前記複数のオペレーティングシステムドメインのうち一つである特定のオペレーティングシステムドメインが前記システム資源を直接使用する際に消費される第1資源と、
前記ハイパーバイザが前記システム資源を使用する際に消費される第2資源と、
前記特定のオペレーティングシステムドメインが前記ハードウェア物理階層の入出力ディバイスを使用する際、前記入出力ディバイスを駆動するディバイスドライバドメイン(Device Driver Domain)が前記システム資源を使用する過程で消費される第3資源と、を含むハイパーバイザシステムのオペレーティングシステム性能干渉防止装置。
【請求項2】
前記第3資源は、
前記特定のオペレーティングシステムドメインが前記ディバイスドライバドメインのバックエンドディバイスドライバ(Back-end Device Driver)を使用する際に発生するバックエンドディバイスドライバ資源使用量(f(CB))と、
前記特定のオペレーティングシステムドメインがディバイスドライバドメインのネイティブディバイスドライバ(Native Device Driver)を使用する際に発生するネイティブディバイスドライバ資源使用量(f(CN))と、を含むことを特徴とする請求項1に記載のハイパーバイザシステムのオペレーティングシステム性能干渉防止装置。
【請求項3】
前記第1資源は、
前記特定のオペレーティングシステムドメインのアプリケーションが前記システム資源を使用する際に発生するアプリケーション資源使用量(f(CA))と、
前記特定のオペレーティングシステムドメインのフロントエンドディバイスドライバ(Front-end Device Driver)が前記システム資源を使用する際に発生するフロントエンドディバイスドライバ資源使用量(f(CF))と、
前記特定のオペレーティングシステムドメインが前記アプリケーション及び前記フロントエンドディバイスドライバとは関係なく前記システム資源を使用する際に発生する基本資源使用量(f(CO))と、を含むことを特徴とする請求項2に記載のハイパーバイザシステムのオペレーティングシステム性能干渉防止装置。
【請求項4】
前記ハイパーバイザを構成する使用量モニタ及びアカウンティングマネージャは、
前記特定のオペレーティングシステムドメインのアプリケーションが前記入出力ディバイスを使用する際、前記特定のオペレーティングシステムドメインのフロントエンドディバイスドライバと前記ディバイスドライバドメインのバックエンドディバイスドライバとの間で行われるメッセージ交換のために使用される第1単位システム資源使用量を測定し、前記第1単位システム資源使用量にメッセージ交換回数を乗算して前記バックエンドディバイスドライバ資源使用量(f(CB))を計算し、
前記特定のオペレーティングシステムドメインのフロントエンドディバイスドライバと前記ディバイスドライバドメインのバックエンドディバイスドライバとの間のメッセージ交換の際、前記ディバイスドライバドメインが使用する第2単位システム資源使用量を測定し、前記第2単位システム資源使用量にメッセージ交換回数を乗算して前記ネイティブディバイスドライバ資源使用量(f(CN))を計算することを特徴とする請求項2に記載のハイパーバイザシステムのオペレーティングシステム性能干渉防止装置。
【請求項5】
前記システム資源は、CPU(central processing unit)資源、MCU(microcontroller unit)資源、及びメモリ(memory)資源のうち一つ以上を含むことを特徴とする請求項1に記載のハイパーバイザシステムのオペレーティングシステム性能干渉防止装置。
【請求項6】
前記オペレーティングシステム階層を構成する複数のオペレーティングシステムは、一つ以上のリアルタイムオペレーティングシステムと、一つ以上の汎用オペレーティングシステムと、を含むことを特徴とする請求項1に記載のハイパーバイザシステムのオペレーティングシステム性能干渉防止装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハイパーバイザシステムのオペレーティングシステム性能干渉防止装置に関する。より詳しくは、本発明はハイパーバイザ上で動作する一部のオペレーティングシステムドメインがシステム資源を過度に使用する状況が発生し、ハイパーバイザ上でオペレーティングシステム別に元の仕様によって割り当てられていたシステム資源が足りなくなる現象が発生して、残りのオペレーティングシステムドメイン、特にリアルタイムオペレーティングシステムがリアルタイムの要求事項を充足しながら動作することができなくなるという問題点を防止することができるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置に関する。
【背景技術】
【0002】
一般に、ハイパーバイザ(HYPERVISOR)ソフトウェアは、一つのコンピュータハードウェアを多数の仮想コンピュータハードウェアにするソフトウェアであり、ハイパーバイザソフトウェアを設計/開発するためにはWindоws、Linuxなどのような汎用オペレーティングシステムソフトウェアを作るレベルの高い技術水準が求められる。
【0003】
従来、ハイパーバイザは、クラウドデータセンタのハードウェアの効率化、オペレーティングシステムのアップグレードの際にも銀行サービスが中断されないようにコンピューティングを運用するのに使用されてきた。
【0004】
今後ハイパーバイザは未来自動車、ドローン、ロボットなどの先端機器への適用が拡大されると予測されており、従来のハイパーバイザ上で動作するオペレーティングシステムはLinuxのような汎用オペレーティングシステムであったが、今後使用される分野は自動車、ドローン、ロボットのようなリアルタイム(Real-time)システムであるため、ハイパーバイザ上で動作するオペレーティングシステムはリアルタイムオペレーティングシステムが主流をなすと予測されている。
【0005】
このようなハイパーバイザは、コンピュータハードウェアを効率的に使用して同時に多数のオペレーティングシステムを動作させる際、ハイパーバイザがそれぞれのオペレーティングシステム別にハードウェアの資源を与えられた仕様に合わせて割り当てて動作させるようになる。
【0006】
一方、ハードウェア資源のうちハイパーバイザ上で多数のオペレーティングシステムが共通に使用するネットワーク、タッチスクリーン、マウスなどのような入出力ディバイスは、仕様によって割り当てられていたハードウェア資源より多くの資源を消費する可能性がある。
【0007】
このように、ハードウェア資源を過度に使用するようになる状況のため、ハイパーバイザ上でオペレーティングシステム別に元の仕様に合わせて割り当てられていたハードウェア資源が足りなくなる現象が発生する恐れがある。
【0008】
今後適用される自動車、ドローン、ロボットのような装置はリアルタイムオペレーティングシステムを使用するため、前記のようなハードウェア資源の不足が発生すれば、リアルタイムオペレーティングシステムは正常のサービスを提供することができなくなり、自動車、ドローン、ロボットなどのシステムが誤動作するようになるという問題点がある。
【0009】
このような問題点を
図1及び
図2を参照してより具体的で例示的に説明すると以下のようである。
【0010】
図1は、従来技術によって4つの異なるオペレーティングシステムがネットワーク機能のために消費するCPU資源を例示的に示す図であり、
図2は従来技術によって4つの異なるオペレーティングシステムがストレージ機能のために消費するCPU資源を例示的に示す図である。
【0011】
図1及び
図2を参照すると、オペレーティングシステムTcN1はネットワーク機能とストレージ機能のためにCPU資源を過度に消費しているが、これは上述した問題点が発生した場合に引き起こされる極端的な現象である。このように任意の特定のオペレーティングシステムがハードウェア資源の約70%を過度に使用するようになれば、他のオペレーティングシステムは仕様によって割り当てられていたハードウェア資源を十分に使用することができなくなるという問題点が発生する。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】公開特許公報 第10-2021-0127427号(公開日付:2021年10月22日、名称:マルチコア組み込みシステムにおけるCPU仮想化方法及び装置)
【特許文献2】公開特許公報 第10-2021-0154769号(公開日付:2021年12月21日、名称:マイクロカーネルに基づく拡張可能なハイパーバイザ)
【特許文献3】公開特許公報 第10-2019-0029977号(公開日付:2019年03月21日、名称:機器の制御システム及びその駆動方法)
【特許文献4】公開特許公報 第10-2015-0090439号(公開日付:2015年08月06日、名称:メニーコアシステムのハイパーバイザでスケジューリングする方法)
【発明の概要】
【発明が解決しようとする課題】
【0013】
本発明の技術的課題は、ハイパーバイザ上で動作する一部のオペレーティングシステムドメインがシステム資源を過度に使用する状況が発生し、ハイパーバイザ上でオペレーティングシステム別に元の仕様によって割り当てられていたシステム資源が足りなくなる現象が発生して、残りのオペレーティングシステムドメイン、特にリアルタイムオペレーティングシステムがリアルタイムの要求事項を充足しながら動作することができなくなるという問題点を防止することである。
【0014】
本発明のより具体的な技術的課題は、ハイパーバイザがオペレーティングシステムドメインに割り当てる基礎資源にオペレーティングシステムドメインがディバイスドライバドメインのバックエンドディバイスドライバ(Back-end Device Driver)を使用する際に発生するバックエンドディバイスドライバ資源使用量(f(CB))及びオペレーティングシステムドメインがディバイスドライバドメインのネイティブディバイスドライバ(Native Device Driver)を使用する際に発生するネイティブディバイスドライバ資源使用量(f(CN))を精密に測定して含ませることで、ハイパーバイザ上で動作するオペレーティングシステムドメインにシステム資源が足りなくなるという問題点を根本的に防止することである。
【課題を解決するための手段】
【0015】
このような技術的課題を解決するための本発明によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置は、ハードウェア物理階層と、種類が異なる複数のオペレーティングシステムからなるオペレーティングシステム階層と、前記オペレーティングシステム階層を構成する複数のオペレーティングシステムに対応する複数のオペレーティングシステムドメイン別に前記ハードウェア物理階層のシステム資源を使用するための基礎資源を割り当てて、前記複数のオペレーティングシステムが仮想マシン環境で動作するようにするハイパーバイザと、を含み、前記ハイパーバイザによって前記複数のオペレーティングシステムドメイン別に割り当てられる基礎資源は、前記複数のオペレーティングシステムドメインのうち一つである特定のオペレーティングシステムドメインが前記システム資源を直接使用する際に消費される第1資源と、前記ハイパーバイザが前記システム資源を使用する際に消費される第2資源と、前記特定のオペレーティングシステムドメインが前記ハードウェア物理階層の入出力ディバイスを使用する際、前記入出力ディバイスを駆動するディバイスドライバドメイン(Device Driver Domain)が前記システム資源を使用する過程で消費される第3資源と、を含むことを特徴とする。
【0016】
本発明によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置において、前記第3資源は、前記特定のオペレーティングシステムドメインが前記ディバイスドライバドメインのバックエンドディバイスドライバを使用する際に発生するバックエンドディバイスドライバ資源使用量(f(CB))と、前記特定のオペレーティングシステムドメインがディバイスドライバドメインのネイティブディバイスドライバを使用する際に発生するネイティブディバイスドライバ資源使用量(f(CN))と、を含むことを特徴とする。
【0017】
本発明によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置において、前記第1資源は、前記特定のオペレーティングシステムドメインのアプリケーションが前記システム資源を使用する際に発生するアプリケーション資源使用量(f(CA))と、前記特定のオペレーティングシステムドメインのフロントエンドディバイスドライバ(Front-end Device Driver)が前記システム資源を使用する際に発生するフロントエンドディバイスドライバ資源使用量(f(CF))と、前記特定のオペレーティングシステムドメインが前記アプリケーション及び前記フロントエンドディバイスドライバとは関係なく前記システム資源を使用する際に発生する基本資源使用量(f(CO))と、を含むことを特徴とする。
【0018】
本発明によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置において、前記ハイパーバイザを構成する使用量モニタ及びアカウンティングマネージャは、前記特定のオペレーティングシステムドメインのアプリケーションが前記入出力ディバイスを使用する際、前記特定のオペレーティングシステムドメインのフロントエンドディバイスドライバと前記ディバイスドライバドメインのバックエンドディバイスドライバとの間で行われるメッセージ交換のために使用される第1単位システム資源使用量を測定し、前記第1単位システム資源使用量にメッセージ交換回数を乗算して前記バックエンドディバイスドライバ資源使用量(f(CB))を計算し、前記特定のオペレーティングシステムドメインのフロントエンドディバイスドライバと前記ディバイスドライバドメインのバックエンドディバイスドライバとの間のメッセージ交換の際、前記ディバイスドライバドメインが使用する第2単位システム資源使用量を測定し、前記第2単位システム資源使用量にメッセージ交換回数を乗算して前記ネイティブディバイスドライバ資源使用量(f(CN))を計算することを特徴とする。
【0019】
本発明によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置において、前記システム資源は、CPU(central processing unit)資源、MCU(microcontroller unit)資源、及びメモリ(memory)資源のうち一つ以上を含むことを特徴とする。
【0020】
本発明によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置において、前記オペレーティングシステム階層を構成する複数のオペレーティングシステムは、一つ以上のリアルタイムオペレーティングシステムと、一つ以上の汎用オペレーティングシステムと、を含むことを特徴とする。
【発明の効果】
【0021】
本発明によると、ハイパーバイザ上で動作する一部のオペレーティングシステムドメインがシステム資源を過度に使用する状況が発生し、ハイパーバイザ上でオペレーティングシステム別に元の仕様によって割り当てられていたシステム資源が足りなくなる現象が発生して、残りのオペレーティングシステムドメイン、特にリアルタイムオペレーティングシステムがリアルタイムの要求事項を充足しながら動作することができなくなるという問題点が解決される効果がある。
【0022】
また、ハイパーバイザがオペレーティングシステムドメインに割り当てる基礎資源にオペレーティングシステムドメインがディバイスドライバドメインのバックエンドディバイスドライバを使用する際に発生するバックエンドディバイスドライバ資源使用量(f(CB))及びオペレーティングシステムドメインがディバイスドライバドメインのネイティブディバイスドライバを使用する際に発生するネイティブディバイスドライバ資源使用量(f(CN))を精密に測定して含ませることで、ハイパーバイザ上で動作するオペレーティングシステムドメインにシステム資源が足りなくなるという問題点が根本的に防止される効果がある。
【図面の簡単な説明】
【0023】
【
図1】従来技術によって4つの異なるオペレーティングシステムがネットワーク機能のために消費するCPU資源を例示的に示す図である。
【
図2】従来技術によって4つの異なるオペレーティングシステムがストレージ機能のために消費するCPU資源を例示的に示す図である。
【
図3】本発明の一実施例によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置を示す図である。
【
図4】本発明の一実施例におけるハイパーバイザの構成を例示的に示す図である。
【
図5】本発明の一実施例によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置の具体的な動作を例示的に説明するための図である。
【
図6】本発明の一実施例によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置の具体的な動作を例示的に説明するための図である。
【発明を実施するための形態】
【0024】
本発明で開示された本発明の概念による実施例に関する特定の構造的または機能的説明は単に本発明の概念による実施例を説明するための目的で例示されたものであって、本発明の概念による実施例は多様な形態に具現化され、本明細書に説明された実施例に限らない。
【0025】
本発明の概念による実施例には多様な変更を加えることができ、該実施例は様々な形態を有することができるため、実施例を図面に例示し本明細書で詳細に説明する。しかし、これは本発明の概念による実施例を特定の開示形態に対して限定しようとするものではなく、本発明の思想及び技術範囲に含まれる全ての変更、均等物、または代替物を含む。
【0026】
異なるように定義されない限り、ここで使用される技術的または科学的な用語を含む全ての用語は、本発明が属する技術分野における通常の知識を有する者によって一般的に理解されるものと同じ意味を示す。一般的に使用される辞書に定義されているものと同じ用語は、関連技術の文脈上で有する意味と一致する意味を有すると解釈すべきであり、本明細書で明白に定義しない限り、理想的または過度に形式的な意味で解釈されない。
【0027】
以下、本発明の基本的な原理を先に説明した後、本発明の実施例を詳細に説明する。
【0028】
ハイパーバイザ30は、コンピュータハードウェアを効率的に使用して同時に複数のオペレーティングシステムを動作させる際、ハイパーバイザ30がそれぞれのオペレーティングシステム別にハードウェアの資源を与えられた仕様に合わせて割り当てて動作させるようになる。
【0029】
ハードウェア資源のうちハイパーバイザ30上で複数のオペレーティングシステムが共通に使用するネットワーク、タッチスクリーン、マウスなどのような入出力ディバイスは、仕様によって割り当てられていたハードウェア資源より多くの資源を消費する可能性がある。
【0030】
このように、ハードウェア資源を過度に使用するようになる状況のため、ハイパーバイザ30上でオペレーティングシステム別に元の仕様に合わせて割り当てられていたハードウェア資源が足りなくなる現象が発生する恐れがある。
【0031】
つまり、複数のオペレーティングシステムのうち特定のオペレーティングシステムがハードウェア資源の過度に使用するようになれば、特定のオペレーティングシステムを除く他のオペレーティングシステムは仕様によって割り当てられていたハードウェア資源を十分に使用することができなくなるという問題点が発生する。
【0032】
一方、今後適用される自動車、ドローン、ロボットのような装置はリアルタイムオペレーティングシステムを使用するため、前記のようなハードウェア資源の不足が発生すれば、リアルタイムオペレーティングシステムは正常のサービスを提供することができなくなり、自動車、ドローン、ロボットなどのシステムが誤動作するようになるという問題点がある。
【0033】
このようなハードウェア資源不足現象の発生原因及びその解決方法を説明すると以下のようである。
【0034】
従来技術は、ハイパーバイザ30上で動作する複数のオペレーティングシステムに資源を割り当てる際、2つ以上のオペレーティングシステムが「共通に使用する入出力ディバイス」まで正確に区分して資源使用量を考慮せずにオペレーティングシステムカーネル(kernel)に対するハードウェア資源を割り当てており、そのためハードウェア資源不足現象が引き起こされていた。
【0035】
つまり、従来技術によると、複数のオペレーティングシステムのうちあるオペレーティングシステムは共通の入出力ディバイスを多く使用するサービスを駆動し、他のオペレーティングシステムは共通の入出力ディバイスを殆ど使用しないサービスを駆動する際、「共通に使用する入出力ディバイス」が使用するハードウェア資源は資源使用量として含まれて計量することができなかった。更にウィルス感染、バグなどがソフトウェアで発生すれば問題が更に大きく拡大するという問題点がある。
【0036】
本発明はこのような問題点を以下のような方式で解決する。
【0037】
つまり、未来自動車、ドローン、ロボットなどの自律運行機器の拡散に対応して今後のハイパーバイザ30はリアルタイムオペレーティングシステムを支援する必要があるため、ハイパーバイザ30上の複数のオペレーティングシステム別に、決められた仕様に合わせて割り当てられたハードウェア資源を十分に使用できるようにする必要がある。
【0038】
そのために、本発明は、ハイパーバイザ30がハードウェア資源をオペレーティングシステム別に割り当てる際、応用プログラム(application)/カーネルと入出力ディバイスドライバが使用するのに十分なハードウェア資源を、例えば、回帰分析(Regression analysis)を介して統合して割り当てるようにする一方、このような資源割当量が守られるようにするために、「共通に使用する入出力ディバイス」ドライバが使用するハードウェア使用量をリアルタイムで管理するメカニズムを提供する。
【0039】
以下、添付した図面を参照して、本発明の好ましい実施例を詳細に説明する。
【0040】
図3は本発明の一実施例によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置を示す図であり、
図4は本発明の一実施例におけるハイパーバイザの構成を例示的に示す図である。
【0041】
図3及び
図4を参照すると、本発明の一実施例によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置は、ハードウェア物理階層10と、オペレーティングシステム階層20と、ハイパーバイザ30とを含んで構成される。
【0042】
ハードウェア物理階層10は、本発明の一実施例によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置が具現化される物理的装置を構成する要素である。例えば、ハードウェア物理階層10を構成する物理的装置は、CPUまたはMCU、DRAM(dynamic random access memory)などを含むメモリ、入出力ディバイスを含み、入出力ディバイスは、ストレージ(storage)、ネットワーク装置(network device)、タッチスクリーン(touch screen)などを含む情報出力機器、キーボード(keyboard)、マウス(mouse)などを含む情報入力機器、直列入出力機器(serial in/out device)などを含むが、これに限らない。
【0043】
オペレーティングシステム階層20は、種類が異なる複数のオペレーティングシステムからなる。例えば、オペレーティングシステム階層20を構成する複数のオペレーティングシステムは、一つ以上のリアルタイムオペレーティングシステムと、Unix、Windowsなどを含む一つ以上の汎用オペレーティングシステムとを含むように構成される。
【0044】
ハイパーバイザ30は、オペレーティングシステム階層20を構成する複数のオペレーティングシステムに対応する複数のオペレーティングシステムドメイン別にハードウェア物理階層10のシステム資源を使用するための基礎資源を割り当て、複数のオペレーティングシステムが仮想マシン環境で動作するようにする構成要素である。
【0045】
例えば、ハイパーバイザ30が複数のオペレーティングシステムドメイン別に割り当てるシステム資源は、CPU資源、MCU資源、メモリ資源のうち一つ以上を含む。
【0046】
図4の例示を参照すると、ハイパーバイザ30は資源割当器(Resource Allocator)32と、ドメインマネージャ(Domain Manager)34と、アクセス制御器(Access Controller)36と、使用量モニタ及びアカウンティングマネージャ(Utilization Monitor&Accounting Manager)38とを含んで構成される。
【0047】
資源割当器32は、ドメイン別にCPU、メモリなどのシステムハードウェア資源の量を割り当てる。
【0048】
ドメインマネージャ34は、資源割当器32が割り当てた資源量によってドメインを時分割的にスケジューリングするが、スケジューリングの際にコンテキストスイッチング(context switching)を管理する。
【0049】
アクセス制御器36は、ドメイン、ハードウェアシステム資源、データなどのようなオブジェクト間のアクセスを制御する。
【0050】
使用量モニタ及びアカウンティングマネージャ38は、それぞれのドメイン、ディバイスドライバとメッセージ(message)などが使用するハードウェアシステム(例えば、CPUを含む)資源の量をモニタリングし、使用量を管理する。
【0051】
例えば、ハードウェアシステム資源がCPU資源であれば、本発明の一実施例は、ハイパーバイザ30を構成する使用量モニタ及びアカウンティングマネージャ38を利用してそれぞれのオペレーティングシステムドメインが使用するCPU資源量をディバイスドライバドメインのCPU資源使用量に足して、定量的にオペレーティングシステムドメイン別に割り当てられたCPU使用量を正確に遵守するようにしながら管理する。結局、リアルタイムオペレーティングシステムドメインがハイパーバイザ30上で動作する際、CPU資源を仕様によって割り当てられた分だけ使用することが保証されるため、リアルタイムオペレーティングシステムのサービスが安定的に保証される。
【0052】
例えば、ハイパーバイザ30によって複数のオペレーティングシステムドメイン別に割り当てられる基礎資源は、第1資源と、第2資源と、第3資源とを含むように構成される。
【0053】
第1資源は、複数のオペレーティングシステムドメインのうち一つである特定のオペレーティングシステムドメインが前記システム資源を直接使用する際に消費される資源である。
【0054】
例えば、第1資源は、アプリケーション資源使用量(f(CA))と、フロントエンドディバイスドライバ資源使用量(f(CF))と、基本資源使用量(f(CO))とを含むように構成される。
【0055】
アプリケーション資源使用量(f(CA))は、特定のオペレーティングシステムドメインのアプリケーションがシステム資源を使用する際に発生する資源使用量である。
【0056】
フロントエンドディバイスドライバ資源使用量(f(CF))は、特定のオペレーティングシステムドメインのフロントエンドディバイスドライバがシステム資源を使用する際に発生する資源使用量である。
【0057】
基本資源使用量(f(CO))は、特定のオペレーティングシステムドメインがアプリケーション及びフロントエンドディバイスドライバとは関係なくシステム資源を使用する際に発生する資源使用量である。
【0058】
第2資源は、ハイパーバイザ30がシステム資源を使用する際に消費される資源である。
【0059】
第3資源は、特定のオペレーティングシステムドメインがハードウェア物理階層10の入出力ディバイスを使用する際、入出力ディバイスを駆動するディバイスドライバドメインがシステム資源を使用する過程で消費される資源である。
【0060】
例えば、第3資源は、バックエンドディバイスドライバ資源使用量(f(CB))と、ネイティブディバイスドライバ資源使用量(f(CN))とを含むように構成される。
【0061】
バックエンドディバイスドライバ資源使用量(f(CB))は、特定のオペレーティングシステムドメインがディバイスドライバドメインのバックエンドディバイスドライバを使用する際に発生するシステム資源使用量である。
【0062】
ネイティブディバイスドライバ資源使用量(f(CN))は、特定のオペレーティングシステムドメインがディバイスドライバドメインのネイティブディバイスドライバを使用する際に発生するシステム資源使用量である。
【0063】
例えば、ハイパーバイザ30を構成する使用量モニタ及びアカウンティングマネージャ38は、特定のオペレーティングシステムドメインのアプリケーションが入出力ディバイスを使用する際、特定のオペレーティングシステムドメインのフロントエンドディバイスドライバとディバイスドライバドメインのバックエンドディバイスドライバとの間で行われるメッセージ交換のために使用される第1単位システム資源使用量を測定し、第1単位システム資源使用量にメッセージ交換回数を乗算してバックエンドディバイスドライバ資源使用量(f(CB))を計算するように構成される。
【0064】
また、例えば、ハイパーバイザ30は、特定のオペレーティングシステムドメインのフロントエンドディバイスドライバとディバイスドライバドメインのバックエンドディバイスドライバとの間のメッセージ交換の際、ディバイスドライバドメインが使用する第2単位システム資源使用量を測定し、第2単位システム資源使用量にメッセージ交換回数を乗算してネイティブディバイスドライバ資源使用量(f(CN))を計算するように構成される。
【0065】
以下、
図5及び
図6を更に参照して、本発明の一実施例によるハイパーバイザシステムのオペレーティングシステム性能干渉防止装置の具体的な動作を例示的に説明する。
【0066】
図5はディバイスドライバドメインがオペレーティングシステムドメインと隔離されたシステムアーキテクチャの例示であり、
図6はディバイスドライバドメインがオペレーティングシステムドメインに併合されたシステムアーキテクチャの例示であって、本発明の一実施例は
図5及び
図6に例示したシステムアーキテクチャに共通に作用する。
図5及び
図6を参照した例示では、システム資源のうちCPU資源を基準に本実施例を説明するが、実質的に同じ原理がDRAMなどのメモリ資源などにも適用される。
【0067】
図5及び
図6を更に参照すると、ハイパーバイザ30はCPU(及びMCU)資源とDRAM資源をN個のオペレーティングシステムドメイン(OS Domain)別に割り当てる機能を実行する。
【0068】
この際、従来技術ではハイパーバイザ30が割り当てたオペレーティングシステムドメイン別CPU使用量を管理する際、オペレーティングシステムドメインが直接使用したCPU使用量のみを基準に管理するため、ディバイスドライバドメインがオペレーティングシステムドメイン別に使用するCPU使用量が該当オペレーティングシステムドメインのCPU使用量に反映されず、結果的にオペレーティングシステムドメインに対するCPU割当量とディバイスドライバドメインが使用するCPU使用量の総計はCPUが提供し得る総CPU使用量を超過する恐れがある。このような割り当て方法の不正確性のため、不正確に割り当てられたCPUを使用するオペレーティングシステムドメインは、特にリアルタイムオペレーティングシステムの場合、リアルタイムの要求時間を満足しながら動作することができなくなるという問題点がある。
【0069】
全体システムにおいて、ソフトウェアが使用するCPU使用量は下記表1のように表現される。表1のN個のオペレーティングシステムドメインのうちK番目のオペレーティングシステムドメインを基準にCPU使用量が例示されているが、この例示は他のオペレーティングシステムドメインに同じく適用される。
【0070】
【0071】
表1を参照すると、ハイパーバイザ30が実際N個のオペレーティングシステムドメインに割り当て得るCPU総資源(F(CE))は、下記数式1のようである。
【0072】
【0073】
従来技術によるハイパーバイザシステムのCPU総資源(F(CE))をオペレーティングシステムドメイン別に割り当てる場合に発生する問題点は以下のようである。
【0074】
従来技術はf(CA)k、f(CF)k、f(CO)k、f(CH)のみを主に考慮してオペレーティングシステムドメイン別にCPU資源を割り当てている。
【0075】
ここで、従来技術はK番目のオペレーティングシステムドメインがアプリケーションの要求仕様によってディバイスドライバドメインを使用する際、ディバイスドライバドメインがCPU資源をどれだけ使用すべきであるのかを予め考慮していない。結果的に、ディバイスドライバドメインがCPU資源を使用する量が過度に増加すれば、FCを超過する異常なCPU資源要求量が全体システムの動作中に発生するようになるが、これは結局、任意のオペレーティングシステムドメインが仕様通りに割り当てられたCPU資源量だけ使用することができなくなり、オペレーティングシステムドメインがリアルタイムオペレーティングシステムであればリアルタイムのサービスを保証できなくなるという問題点が発生する。
【0076】
本発明の一実施例は、従来技術のこのような問題点を以下のような構成によって解決する。
【0077】
つまり、本発明の一実施例は、ハイパーバイザ30によって複数のオペレーティングシステムドメイン別に割り当てられる基礎資源に複数のオペレーティングシステムドメインのうちから任意の特定のオペレーティングシステムドメインがハードウェア物理階層10の入出力ディバイスを使用する際、入出力ディバイスを駆動するディバイスドライバドメインがCPU資源を使用する過程で消費される第3資源が含まれるが、第3資源は特定のオペレーティングシステムドメインがディバイスドライバドメインのバックエンドディバイスドライバを使用する際に発生するバックエンドディバイスドライバ資源使用量(f(CB))及び特定のオペレーティングシステムドメインがディバイスドライバドメインのネイティブディバイスドライバを使用する際に発生するネイティブディバイスドライバ資源使用量(f(CN))を含むように構成される。
【0078】
オペレーティングシステムドメイン別にディバイスドライバドメインを使用する際のf(CB)とf(CN)などのCPU使用量を推定する例示的な構成は以下のようである。
【0079】
例えば、K番目のオペレーティングシステムドメインのアプリケーションが動作する際、要求されるディバイスドライバドメインのf(CB)とf(CN)を定量化するために、該当アプリケーションのディバイスドライバドメインのバックエンドディバイスドライバとの交信のために発生するメッセージ交換(
図5及び
図6の点線を参照)のための単位CPU使用量を測定し、その際に使用されるディバイスドライバドメインが使用するCPU使用量を測定すれば、バックエンドディバイスドライバとネイティブディバイスドライバが動作する際に使用される、K番目のオペレーティングシステムドメインのCPU使用量が求められる。そのために、例えば、予めオシロスコープなどの測定機器を利用してハードウェア別のCPU使用量を測定し保存するように構成される。
【0080】
以上で詳細に説明したように、本発明によると、ハイパーバイザ上で動作する一部のオペレーティングシステムドメインがシステム資源を過度に使用する状況が発生し、ハイパーバイザ上でオペレーティングシステム別に元の仕様によって割り当てられていたシステム資源が足りなくなる現象が発生して、残りのオペレーティングシステムドメイン、特にリアルタイムオペレーティングシステムがリアルタイムの要求事項を充足しながら動作することができなくなるという問題点を防止する効果がある。
【0081】
また、ハイパーバイザがオペレーティングシステムドメインに割り当てる基礎資源にオペレーティングシステムドメインがディバイスドライバドメインのバックエンドディバイスドライバを使用する際に発生するバックエンドディバイスドライバ資源使用量(f(CB))及びオペレーティングシステムドメインがディバイスドライバドメインのネイティブディバイスドライバを使用する際に発生するネイティブディバイスドライバ資源使用量(f(CN))を精密に測定して含ませることで、ハイパーバイザ上で動作するオペレーティングシステムドメインにシステム資源が足りなくなるという問題点が根本的に防止される効果がある。
【符号の説明】
【0082】
10:ハードウェア物理階層
20:オペレーティングシステム階層
30:ハイパーバイザ
32:資源割当器
34:ドメインマネージャ
36:アクセス制御器
38:使用量モニタ及びアカウンティングマネージャ
【国際調査報告】