JP5687666B2 - スケジューリング装置、システム、方法およびプログラム - Google Patents

スケジューリング装置、システム、方法およびプログラム Download PDF

Info

Publication number
JP5687666B2
JP5687666B2 JP2012180120A JP2012180120A JP5687666B2 JP 5687666 B2 JP5687666 B2 JP 5687666B2 JP 2012180120 A JP2012180120 A JP 2012180120A JP 2012180120 A JP2012180120 A JP 2012180120A JP 5687666 B2 JP5687666 B2 JP 5687666B2
Authority
JP
Japan
Prior art keywords
terminal device
resource
virtual machines
processor
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012180120A
Other languages
English (en)
Other versions
JP2014038458A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012180120A priority Critical patent/JP5687666B2/ja
Priority to US13/966,785 priority patent/US9348629B2/en
Publication of JP2014038458A publication Critical patent/JP2014038458A/ja
Application granted granted Critical
Publication of JP5687666B2 publication Critical patent/JP5687666B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

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

Description

本発明は、スケジューリング装置、システム、方法およびプログラムに関する。
従来から、1つの装置上で複数のOS(Operating System)を実行可能とする仮想化技術が知られている。また、仮想マシン内で実行されるタスクに課せられたデッドラインの要件を満たすようにプロセッシングリソースをスケジューリングするスケジューリングアルゴリズムが知られている。
Jaewoo Lee, Sisu Xi, Sanjian Chen, Linh T.X. Phan, Christopher Gill, Insup Lee, Chenyang Lu, and Oleg Sokolsky, "Realizing Compositional Scheduling through Virtualization", IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), April, 2012
しかしながら、従来のスケジューリングアルゴリズムは、タスクおよび仮想マシンに割り当てるリソースを求める処理に長時間を要していた。そこで、以下の実施形態では、効率的にリソースを求めることが可能なスケジューリング装置、システム、方法およびプログラムを提供することを目的とする。
実施形態によるスケジューリング装置は、第1の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第1の端末装置における第1のプロセッサのパフォーマンス値と、第2の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第2の端末装置における第2のプロセッサのパフォーマンス値とを用いて、前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの少なくとも1つの仮想マシンを加えた集合に足りると判断した場合、該少なくとも1つの仮想マシンを前記第2の端末装置へ移動させるように前記第1および第2の端末装置へ指示するように構成されたコントローラを備え、前記コントローラは、第1の周期および1周期あたりの第1の実行時間で前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合を実行できるか否かを判断し、前記第1の周期および前記第1の実行時間で前記集合を実行できると判断した場合、前記第1の周期に1単位加えた第2の周期および前記第1の実行時間で前記集合を実行できるか否かを判断し、前記第1の周期および前記第1の実行時間で前記集合を実行できないと判断した場合、前記第1の周期および前記第1の実行時間に1単位加えた第2の実行時間で前記集合を実行できるか否かを判断し、前記集合を実行できると判断された周期および実行時間の組のうち、前記周期に対する前記実行時間の割合が最も少ない周期および実行時間を求め、求めた前記周期および前記実行時間を前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合に割り当てることを特徴とする。
図1は、第1の実施形態に係る情報処理システムの概略構成例を示すブロック図。 図2は、周期タスクの要件の定義を説明するための図。 図3は、第1の実施形態における仮想マシンの切替えとタスクの切替えの例を説明するための図。 図4は、第1の実施形態に係る情報処理システムの動作を示すシーケンス図。 図5は、第1の実施形態において移動先のノードから管理サーバへ送信されるメッセージに含まれる情報の例を示す図。 図6は、第1の実施形態において移動元のノードから管理サーバへ送信されるメッセージに含まれる情報の例を示す図。 図7は、第1の実施形態に係るis_schedulableのアルゴリズムを示す疑似コード例を示す図。 図8は、図7に示すis_schedulableのアルゴリズムがrbfとsbfとを比較検証する際の手順の例を示す図。 図9は、第1の実施形態に係るoptimal_resourceのアルゴリズムを示す疑似コード例を示す図。 図10は、図9に示すoptimal_resourceが検証するリソースΓの順番の例を示す図。 図11は、第2の実施形態に係る情報処理システムの概略構成例を示すブロック図。 図12は、第2の実施形態に係る情報処理システムの動作を示すシーケンス図。 図13は、第3の実施形態に係る情報処理システムの概略構成例を示すブロック図。
(第1の実施形態)
まず、第1の実施形態にかかるリアルタイムスケジューリング装置、システムおよびプログラムについて、図面を用いて詳細に説明する。第1の実施形態では、全てのタスクのデッドラインの要件を満たしながらプロセッサが全てのタスクを実行可能か否かが判断される。また、第1の実施形態では、1つの仮想マシン内で実行される1以上のタスクの要件が入力されると、仮想マシンに割当てるべき最適なリソースが求められる。以下の説明におけるリソースとは、たとえばプロセッサリソースやメモリ容量やネットワークの帯域などであってよい。また、タスクの要件およびリソースの定義については後述する。
図1に、第1の実施形態に係る情報処理システムの概略構成例を示す。図1に示すように、第1の実施形態に係る情報処理システム100は、ネットワーク115に接続された管理サーバ120と、1つ以上のノード130および160と、クライアント110とを備える。各ノード130および160は、それぞれネットワーク115上の端末装置であってよい。
管理サーバ120は、通信部124と、コントローラ121と、スケジューラ122と、記憶部123とを含む。通信部124は、Ethernet(登録商標)処理部、TCP/IPスタック、HTTPサーバなどを有する。通信部124の各部は、ソフトウェアまたはハードウエアで構成され得る。コントローラ121は、ノード130および160の各ハイパーバイザ132および162と通信し、仮想マシン140、150および170を制御する。例えば、コントローラ121は、ノード130において新たな仮想マシン140または150を作成するようにハイパーバイザ132に指示する。
また、コントローラ121は、あるノード130で実行されている仮想マシン140を別のノード160へ移動するように、ハイパーバイザ132へ指示し得る。同様に、コントローラ121は、ノード160で実行されている仮想マシン170を別のノード130へ移動するようにも、ハイパーバイザ162へ指示し得る。
スケジューラ122は、1以上のタスクの要件をコントローラ121から取得し、取得したタスク要件に基づいて、それぞれの仮想マシン140、150および170に割り当てるリソースを求める。また、スケジューラ122は、求めたリソースをコントローラ121に出力する。
各ノード130および160は、プロセッサ131または161と、不図示の物理メモリおよびネットワークインタフェースとを備えた計算機であり、ソフトウェアまたはハードウエアで構成されたハイパーバイザ132または162をそれぞれ備える。
ハイパーバイザ132は、ノード130上で1以上のOSを実行可能とするために、1以上の仮想マシン140および150を提供する。例えば、仮想マシン140は、ソフトウェアで構成されたOS141と、それぞれソフトウェアで構成された1以上のタスク142および143とを実行する。また、例えば仮想150は、ソフトウェアで構成されたOS151と、それぞれソフトウェアで構成された1以上のタスク152および153とを実行する。同様に、ハイパーバイザ162は、ノード160上で1以上のOS171を実行可能とするために、1以上の仮想マシン170を提供する。仮想マシン170は、ソフトウェアで構成されたOS171と、それぞれソフトウェアで構成された1以上のタスク172および173とを実行する。
ここで、第1の実施形態では、タスク142、143、152、153、172および173がそれぞれ周期タスクであるとする。周期タスクは、一定間隔ごとに一定量以内の処理を実行することを要求するタスクである。
図2を用いて、周期タスクの要件の定義をより詳細に説明する。図2に示すTSKは、周期タスクの例を示す。斜線部は、プロセッサが周期タスクTSKを実行する期間を示す。また、DLは周期タスクTSKに対するデッドラインを示す。デッドラインDLの間隔は一定である。周期タスクTSKの要件は、デッドラインDLの周期pと、周期タスクTSKの処理に要する最大処理時間eとの組(p,e)で定義される。周期pと最大処理時間eとの単位は、例えば周期タスクTSKを止めずに実行し続けることが可能な最短の時間で決定される。
周期タスクTSKが正常動作を続けるためには、プロセッサが、必ず周期p毎に最大処理時間e以上、周期タスクTSKを実行する必要がある。例えば、周期pと最大処理時間eとの単位が1ms(ミリ秒)であって、ある周期タスクTSKの要件が(1,200)である場合、プロセッサは、周期タスクTSKを正常に動作させ続けるために、200msごとに1msは必ず周期タスクTSKを実行する必要がある。その際、プロセッサは、実行時間e101およびe102で示すように、周期pの間に2回以上に分けて周期タスクTSKを実行してもよい。但し、その場合でも、実行時間e101およびe102の合計は、最大処理時間e以上である必要がある。
第1の実施形態に係る情報処理システム100において、ノード130のプロセッサ131は、実行タスクを切り替えることで1以上のタスクを並行に実行する。但し、これに限らず、複数のタスクを同時に実行可能とするために、ノード130が複数のプロセッサ131を備えてもよい。
OS141は、必要に応じて仮想マシン140および150内のタスク142、143、152および153を切り替えるようにハイパーバイザ132またはプロセッサ131に指示する。その際、OS141が切り替えを指示するタスクは、仮想マシン140および150のうち一方で実行されているタスク142および143または152および153に限られる。
また、ハイパーバイザ132は、必要に応じて実行する仮想マシンまたはタスクを切り替えるように、プロセッサ131に指示する。たとえば、ハイパーバイザ132は、実行する仮想マシンを仮想マシン140および150のうち仮想マシン140に切り替える。選択された仮想マシン140のOS141は、実行するタスクをタスク142および143のうちのいずれかに切り替える。ノード160および仮想マシン150、170も同様に仮想OSおよびタスクを切り替える。以上により、階層的にスケジューリングが実行される。
図3を用いて、仮想マシンの切替えとタスクの切替えの例を説明する。図3において、期間E140およびE150は、それぞれ図1における仮想マシン140および150の実行時間を示す。また、期間e142、e143、e152、e153は、それぞれ図1におけるタスク142、143、152および153の実行時間を示す。
図3に示すように、仮想マシン140が実行される期間E140では、タスク142または143が実行される。一方、仮想マシン150が実行される期間E150では、タスク152または153が実行される。
図1に示すスケジューラ122は、プロセッサ131がノード130におけるタスク142および152を含む全ての周期タスクの要件を満たしつつ、これらを実行可能であるかを判断する。また、スケジューラ122は、仮想マシン140および150に割り当てるべき最適なリソースを計算する。
仮想マシンに割り当てるリソースは、プロセッサが仮想マシンを実行する周期Πと、1周期あたりの実行時間Θとの組(Π,Θ)で定義される。つまり、リソース(Π,Θ)が与えられた仮想マシンは、周期Π毎に合計Θ時間実行される。周期Πおよび時間Θの単位は、例えば仮想マシンに割り当てることができる最短の時間で定義される。
例えば、あるリソースΓが(10,300)であって、周期Πと時間Θとの単位が1msの場合、そのリソースΓは、300msごとに10ms間、プロセッサが仮想マシンを実行できることを示す。
ここで、あるリソース(Π,Θ)についてのプロセッサの占有率をΘ/Πとして定義する。占有率Θ/Πが最少でかつプロセッサ131がタスク142および143の要件を満たせるとき、仮想マシン140に割り当てるリソースは最適になる。
図1に示すクライアント110は、ユーザの指示に従って仮想マシン140、150および170の実行状況を管理サーバ120から取得する。また、クライアント110は、仮想マシンの作成、起動、停止、削除等を要求するメッセージを管理サーバ120へ送信する。さらに、クライアント110は、仮想マシンを実行するノードの変更を要求するメッセージを管理サーバ120へ送信する。
次に、図4に示すシーケンス図を用いて、第1の実施形態に係る情報処理システムの動作を説明する。様々なシナリオにおいて、図1に示すスケジューラ122が求めるリソースの計算結果を活用可能である。図4は、ノード160のプロセッサ161で実行されている仮想マシン170をノード130のプロセッサ131へ移動する場合のシーケンスを示す。
図4に示すシーケンスでは、スケジューラ122は、仮想マシン170をプロセッサ131へ移動したとしても、プロセッサ131のリソースが足りるか否かを判断する。より具体的には、スケジューラ122は、プロセッサ131が現在実行しているタスク142、143、152および153の要件に加え、仮想マシン170内の全てのタスク172および173の要件を満たせられるか否かを判断する。リソースが足りると判断した場合、スケジューラ122は、仮想マシン170に割り当てるリソースをコントローラ121に出力する。
図4に示すように、まず、ステップS101において、クライアント110は、仮想マシン170の移動を要求するメッセージ1001をネットワーク115を介して管理サーバ120に送信する。管理サーバ120の通信部124は、メッセージ1001にEthernet(登録商標)、TCP(Transmission Control Protocol)、IP(Internet Protocol)、HTTP(HyperText Transfer Protocol)などといったプロトコル処理を施し、コントローラ121へメッセージ1001を渡す。このメッセージ1001には、移動元プロセッサ161のID、移動先プロセッサ131のID、移動対象の仮想マシン170のIDが含まれている。これらのIDは、数字、文字列またはその組み合わせで表わされてもよい。メッセージ1001を受け取ったコントローラ121は、メッセージ1001に含まれる各IDを読み取る。
つぎに、ステップS102において、コントローラ121は、移動先であるノード130のプロセッサ131が実行する全てのタスク142、143、152および153の要件と、プロセッサ131のパフォーマンス値を取得する。具体的には、コントローラ121が、すべてのタスクの要件とパフォーマンス値とを要求するメッセージ1002をネットワーク115を介してノード130へ送信する。これに対し、ノード130のハイパーバイザ132が、プロセッサ131に実行される全てのタスク142、143、152および153の要件と、プロセッサ131のパフォーマンス値とを含むメッセージ1003を管理サーバ120へ送信する。
ここで、図5に、移動先のノード130から管理サーバ120へ送信されるメッセージ1003に含まれる情報の例を示す。なお、図5に示す例では、タスク要件に含まれる値を自然数としているが、正の数であれば自然数でなくてもよく、どのような形式で表されてもよい。また、プロセッサ131のパフォーマンス値は、プロセッサ131が一定量の処理を実行する際の所要時間に対する、基準となるプロセッサで同じ量の処理を実行する際の所要時間の比率で表される。例えば、基準となるプロセッサが一定量の処理を実行する際の所要時間をd1とし、プロセッサ131で同じ処理を実行する際の所要時間をd2としたとき、プロセッサ131のパフォーマンス値はd1/d2で求められる。
図4に戻り説明する。管理サーバ120がメッセージ1003を受信すると、管理サーバ120の通信部124は、メッセージ1003にEthernet(登録商標)、TCP、IP、HTTPといったプロトコル処理を施し、コントローラ121へメッセージ1003を渡す。コントローラ121は、メッセージ1003に含まれている、プロセッサ131が実行している全てのタスク142、143、152および153の要件を記憶部123に保存する。
つぎに、ステップS103において、管理サーバ120は、移動元であるノード160から、仮想マシン170内で動作する全てのタスク172および173の要件と、ノード160のプロセッサ161のパフォーマンス値とを取得する。具体的には、管理サーバ120のコントローラ121は、メッセージ1004をネットワーク115を介してノード160へ送信する。メッセージ1004には、移動する仮想マシン170のIDが含まれる。これに対し、ノード160は、仮想マシン170内で動作する全てのタスク172および173の要件、およびプロセッサ161のパフォーマンス値を含むメッセージ1005をネットワーク115を介して管理サーバ120へ送信する。
ここで、図6に、移動元のノード160から管理サーバ120へ送信されるメッセージ1005に含まれる情報の例を示す。なお、図6に示す例では、タスク要件に含まれる値は自然数としているが、正の数であればよく、どのような形式で表されてもよい。
図4に戻り説明する。管理サーバ120がメッセージ1005を受信すると、管理サーバ120のコントローラ121は、メッセージ1005に記されたタスクの要件を記憶部123に保存する。
つぎに、ステップS104において、管理サーバ120のスケジューラ122は、それぞれ仮想マシン140、150および170に対する最適なリソースを計算する。そして、ステップS105において、スケジューラ122が、仮想マシン140、150および170をプロセッサ131で実行しても全てのタスク142、143、152、153、172および173の要件を満たせられるか否かを判断する。ステップS104およびS105の処理の詳細は後述において説明する。
ステップS105の判断の結果、スケジューラ122が全てのタスクの要件を満たせられると判断した場合、管理サーバ120のコントローラ121は、ノード130へ仮想マシン170の移動を指示する(ステップS106)。具体的には、管理サーバ120のコントローラ121は、メッセージ1006を生成する。メッセージ1006には、移動対象である仮想マシン170のIDが含まれている。管理サーバ120の通信部124は、メッセージ1006にプロトコル処理を施し、メッセージ1006をノード130へ送信する。これに対し、ノード130は、メッセージ1006を受信すると、メッセージ1007を管理サーバ120へ送信する。メッセージ1007には、仮想マシン170の移動を了承したか否かを示すコードが含まれている。ただし、ステップS105の判断の結果、スケジューラ122が仮想マシン170の移動後に全てのタスクの要件を満たすことができないと判断した場合、クライアント110から指示された仮想マシン170の移動は無効とされ、クライアント110へ移動不可であることが通知される。クライアント110は、仮想マシン170の移動ができないことを表示してもよい。
次に、ステップS107において、管理サーバ120のコントローラ121は、ノード160へ仮想マシン170の移動を指示する。具体的には、まず、コントローラ121はメッセージ1008を送信する。メッセージ1008には、移動対象の仮想マシン170のIDが含まれている。ノード160は、メッセージ1008を受信すると、メッセージ1009を管理サーバ120へ送信する。メッセージ1009には、ノード160が仮想マシン170の移動を了承したか否かを示すコードが含まれている。
つぎに、ステップS108において、ノード160からノード130へ仮想マシン170のイメージ1010を送信し、仮想マシン170の移動完了を管理サーバ120へ通知する。このイメージ1010は、仮想マシン170の実行メモリイメージを含む。具体的には、ノード130は、実行メモリイメージ1010を受信すると、この実行メモリイメージ1010をメモリ(図示せず)に読み込み、仮想マシン170の実行を開始する。つづいて、ノード130は、仮想マシン170の移動完了を示すコードを含むメッセージ1011を管理サーバ120に送信する。管理サーバ120のコントローラ121は、メッセージ1011を受信すると、メッセージ1012をクライアント110に送信する。メッセージ1012には、仮想マシン170の移動完了を示すコードが含まれている。
以上により、ノード160で実行されていた仮想マシン170のノード130への移動が完了する。
図4のステップS104における処理を、より詳細に説明する。ステップS104では、管理サーバ120のスケジューラ122が、それぞれ仮想マシン140、150および170に対する最適なリソースを計算し、コントローラ121へその結果を返す。第1の実施形態にあたっては、スケジューラ122は、特定の仮想マシン、タスク、およびプロセッサに限らずに、最適なリソースを計算してもよい。そこで、以下では、ステップS104でスケジューラ122が実施する処理を一般化して説明する。
ステップS104で実施される一般化されたアルゴリズムをoptimal_resourceと記す。optimal_resourceの実行には、別のアルゴリズムis_schedulableが利用される。そこで、まず、is_schedulableのアルゴリズムを説明する。
is_schedulableは、仮想マシンV、プロセッサC、およびリソースΓが与えられたときに、プロセッサCがリソースΓに従い仮想マシンV内の全てのタスクをデッドラインを超えずに実行可能か否かを判断する。is_schedulableの入力は、ワークロードW、リソースΓ、プロセッサCのパフォーマンス値Φ(C)および移動元のプロセッサC’のパフォーマンス値Φ(C’)である。
ワークロードWは、対象の仮想マシンV内の全タスクの要件で構成された集合であり、以下の式(1)で表すことができる。以下の式(1)において、p(i)およびe(i)は、それぞれ周期タスクiの周期と1周期あたりの実行時間である。p(i)≦p(i+1)であるとする。
W={(p(1),e(1)),(p(2),e(2)),...,(p(n),e(n))} …(1)
is_schedulableの出力は、真偽値である。is_schedulableの出力が真であることは、プロセッサCがワークロードWで表わされる仮想マシンV内の全てのタスクをデッドラインを超えずに実行するためにリソースΓを仮想マシンVに割当てることが必要十分であることを示す。一方、is_schedulableの出力が偽であることは、プロセッサCがワークロードWを実行するためにはリソースΓが不十分であることを示す。
図7は、第1の実施形態に係るis_schedulableのアルゴリズムを示す疑似コード例を示す図である。図7において、1行目から6行目の処理は、ワークロードWとパフォーマンス値Φ(C)とを用いて、新たなワークロードW’を求める。e(i)は、プロセッサC’でタスクを実行した場合の1周期あたりの時間である。
そこで、図7における3行目の処理によって、e(i)からプロセッサCでタスクを実行した場合の1周期あたりの時間e’(i)に変換する。その結果、ワークロードW’は、以下の式(2)で表される。
W’={(p(1),e’(1)),(p(2),e’(2)),...,(p(n),e’(n))} …(2)
図7における7行目から13行目の処理は、チェックポイントの集合Uを求める。チェックポイントは、iが1〜nの全てのp(i)に対して、p(n)を超えないp(i)の倍数である。例えば、n=2,p(1)=2、およびp(2)=5の場合、集合UはU={2,4,5}となる。
図7における14行目の処理は、集合Uが含むチェックポイントを小さい値の順に整列する。16行目から26行目の処理は、ワークロードW’および集合Uを用いて、is_schedulableの結果を求める。18行目の処理は、rbfとsbfと呼ばれる関数の結果を比較する。
第1の実施形態では、rbfとsbfの結果の比較回数を少なくすることで、効率的に1以上の仮想マシンの実行可能性が判断される。
たとえば、非特許文献1では、rbfが以下の式(3)で定義される。その際、rbfの入力は、n個のタスクの要件からなるワークロードWである。
Figure 0005687666
式(3)におけるワークロードWは、以下の式(4)で表される。なお、自然数i≦n、自然数t≦p(n)である。また、ワークロードWは、p(i)≦p(i+1)となるよう整列されているとする。
W={(e(0),p(1),...,e(n),p(n)} …(4)
上述の式(3)で定義されるrbfの出力は、第1の実施形態におけるリソース需要量に相当する。
また、非特許文献1によれば、sbfは、以下の式(5)に示す数式で定義される。その際、sbfの入力は、リソースΓ、および自然数tである。sbfの出力は、第1の実施形態におけるリソース供給量に相当する。
Figure 0005687666
非特許文献1によれば、あるワークロードWおよびリソースΓが与えられたとき、以下の式(6)に示す条件が満たされるならば、リソースΓはワークロードW内の全ての要件を満たしタスクを実行可能である。そこで、1≦i≦n,0<t≦p(n)を満たす全ての自然数iおよびtについて、式(6)に示す条件を満たすか否かを調べることで、is_schedulableの結果を求められる。
Figure 0005687666
これに対し、第1の実施形態では、rbfとsbfとの比較回数を低減するために、図7における16行目から26行目の処理は、集合Uに含まれるチェックポイントを式(6)における変数tにあてはめる。具体的には、図7における18行目の処理において、rbfおよびsbfにu(k)を与える。u(k)は、チェックポイントの集合Uのk番目の値である。
図7に示すis_schedulableは、さらにrbfとsbfの比較回数を低減する。具体的には、図7に示す18行目において、あるi,t=u(k)が式(6)に示す条件を満たさない場合、そのiに対する検証を止めて、i+1の検証に移る。
図8は、図7に示すis_schedulableのアルゴリズムがrbfとsbfとを比較検証する際の手順の例を示す。図8に示す例において、ワークロードW’はW’={(27,2),(48,1),(71,2),(79,5)}であり、リソースΓはΓ=(12,3)である。また、ワークロードW’の要素数nは4であり、最も長い周期p(n)は79である。ワークロードW’から集合Uを求めると、集合UはU={27,48,58,71,79}となる。
図8に示すように、is_schedulableでは、まず、rbf(W’,1,u(1))とsbf(Γ,u(1))が比較される。その際、集合Uは、u(1)=27である。rbf(W’,1,u(1))≦sbf(Γ,u(1))であるため、次にrbf(W’,2,u(1))とsbf(Γ,u(1))とが比較される。つまり、図8において上方向にある次のrbfの値が検証される。
rbf(W’,2,u(1))に対しても、rbf(W’,2,u(1))≦sbf(Γ,u(1))が成り立つため、同様に、上方向にある次のrbfの値rbf(W’,3,u(1))が検証される。
次に、rbf(W’,3,u(1))>sbf(Γ,u(1))である。そこで、次は、rbf(W’,3,u(2))とsbf(Γ,u(2))とが比較される。
以上に示す通り、rbf(W’,i,u(k))≦sbf(Γ,u(k))の場合、is_schedulableは、rbf(W’,i+1,u(k))とsbf(Γ,u(k))との比較に移り、そうでない場合は、rbf(W’,i,u(k+1))とsbf(Γ,u(k+1))との比較に移る。
is_schedulableは、iがnに到達するまで、rbfとsbfとを比較する。もし、is_schedulableが1≦i≦nを満たす全てのiについてrbfとsbfを比較していく途中でu(k)がp(n)に達した場合は、図7における22行目に示すように、is_schedulableの結果は偽となる。一方、u(k)=p(n)になる前に1≦i≦nを満たす全てのiについてrbfとsbfを比較し終えた場合、is_schedulableの結果は真となる。以上がis_schedulableの動作である。
次に、optimal_resourceのアルゴリズムを説明する。optimal_resourceの入力は、ワークロードWおよびプロセッサCのパフォーマンス値Φ(C)である。ワークロードWは、タスクの要件の集合である。以下では、ワークロードWがW={(p(1),e(1)),(p(2),e(2)),...,(p(n),e(n))},p(i)≦p(i+1)であるとする。
optimal_resourceの出力は、ワークロードWに最適なリソースΓ_optである。そこで、optimal_resourceは、全てのリソースの候補Γ=(Π,θ)について、is_schedulableを適用すると真を返すリソースΓのうちθ/Πが最も小さくなるΓを見つけてもよい。
例えば、optimal_resourceは、Π≦p(n)およびθ≦Πであり、時間θと周期Πとが自然数である全てのΓ=(Π,Θ)について、is_schedulableを適用する。または、optimal_resourceは、より効率的な図9に示すアルゴリズムで構成されてもよい。
図9は、第1の実施形態に係るoptimal_resourceのアルゴリズムを示す疑似コード例を示す図である。図9における3行目から17行目の処理は、リソースΓの周期Πを1からp(n)まで変化させながら、リソースΓとパフォーマンス値Φ(C)のプロセッサCでワークロードWを実行可能か否かを調べる。具体的には、9行目の処理は、is_schedulable(W,Γ,Φ(C))を実行する。4行目の処理は、それぞれの周期Πに対して、リソースΓのプロセッサ割当て時間ΘをΘ_firstからΠまでのみ変化させる。Θ_firstは、それぞれの周期Πに対して初めに調査すべきリソースΓの割当て時間である。optimal_resourceは、リソースΓの調査結果に応じて、Θ_firstを変化させる。
6行目から12行目の処理では、ある周期Πに対する時間Θを調べた結果、Θよりも大きい割当て時間を調査する必要がないことが分かった場合、次はリソースΓ=(Π+1,Θ)から調査し始める。
7行目および11行目の処理では、時間Θよりも小さい値に対してis_schedulableが実行されないように、時間Θの値をΘ_firstに一時的に保存する。
6行目における関数Bは、与えられたリソースΓ=(Π,Θ)の占有率Θ/Πを返す。6行目から8行目の処理では、それまでに見つかった最適なリソースΓ_optよりも、調査対象であるリソースΓの占有率が高い場合、リソースΓよりも占有率が高いことが明らかなリソースΓ=(Π,Θ+α),α>0の調査を省略する。
9行目に示す条件が真であることは、プロセッサCは、ワークロードWをリソースΓで実行可能であり、かつそれまで見つかった最適なリソースΓ_optよりも、リソースΓがより占有率が小さいことを示す。そこで、10行目の処理は、最適なリソースΓ_optを更新する。
また、11行目および12行目の処理は、これ以上占有率の高いリソースの調査を省略するため、Θ_firstを更新してから周期Π+1に対する調査を実行する。
13行目の条件が真であることは、占有率が100%のリソースΓを用いてプロセッサCがワークロードW内のいずれかのタスクの要件を満たせられないことを示す。そこで、14行目のコードはエラーを出力し、処理を終了する。18行目は、最後に残った最適なリソースΓ_optを出力する。
図10に、optimal_resourceが検証するリソースΓの順番の例を示す。図10に示す例では、リソースΓ=(1,1)から調査を始める。あるリソースΓ=(Π,Θ)を検証した結果、リソースΓを用いてプロセッサCがワークロードW内のすべてのタスクの要件を満たせられる場合、次にリソースΓ=(Π+1,Θ)が検証される。一方、リソースΓを用いてプロセッサCがワークロードW内のいずれかのタスクの要件を満たせられない場合、次に、リソースΓ=(Π,Θ+1)が検証される。ただし、リソースΓの占有率がそれまでの最適なリソースΓ_optより高い場合は、リソースΓを検証せず次に(Π+1,Θ)が検証される。
以上のように、図4のステップS104におけるスケジューラ122の動作は、is_schedulableおよびoptimal_resourceで構成される。
次に、図4のステップS105における処理を説明する。スケジューラ122は、ステップS105において、与えられた1以上の仮想マシンを与えられたプロセッサで実行しても、全てのタスクがデッドラインを超えないか否かを判断する。ステップS105において、スケジューラ122への入力は、1以上の仮想マシンに対する最適なリソースの集合R={Γ(1),Γ(2),...,Γ(m)},Γ(i)=(Π(i),Θ(i))、およびプロセッサCのパフォーマンス値Φ(C)である。mは仮想マシンの数を表す。
スケジューラ122は、is_schedulable(R,(1,1),Φ(C))を実行し、その結果が真の場合、与えられた1以上の仮想マシンをプロセッサCで実行しても、全てのタスクがデッドラインを超えないと判断する。一方、is_schedulable(R,(1,1),Φ(C))の結果が偽の場合、スケジューラ122は、いずれかのタスクがデッドラインを超えてしまうことがあると判断する。
以上のように、管理サーバ120は、optimal_resourceおよびis_schedulableの一方または両方を備えることで、短時間で仮想マシンに対する最適なリソースを計算できる。また、管理サーバ120は、1以上の仮想マシンを実行するために特定のプロセッサのリソースが足りるか否かを短時間で計算してユーザに知らせることができる。
なお、第1の実施形態では、メッセージ1003およびメッセージ1005にプロセッサのパフォーマンスを含める代わりに、ある一定量の処理を実行したときの時間を含めてもよい。この場合、コントローラ121は、プロセッサのパフォーマンス値を求め、スケジューラ122に渡す。
また、第1の実施形態では、ステップS104およびS105のいずれかまたは両方は、ステップS106以前に管理サーバ120のスケジューラ122によって実施されればよい。例えば、管理サーバ120がクライアント110から仮想マシンの移動、作成などの指示を受信する前に、ステップS102およびS103のいずれかまたは両方を実施し、そしてステップS104とS105を実施してもよい。これにより、処理の短縮が可能となる。
また、第1の実施形態では、ステップS102およびS103の少なくとも一方が実施されなくてもよい。例えば、各ノードのプロセッサのパフォーマンス値と、各ノードで動作させる仮想マシン内のタスクの要件とが管理サーバ120の記憶部123にあらかじめ保存されている場合には、ステップS102およびS103を省略することができる。これにより、処理時間の短縮が可能となる。
さらに、スケジューラ122は、式(3)に示すrbfの計算式の代わりに、別の計算式を用いてもよい。式(3)に示すrbfは、仮想マシン内のタスクがRatemonotonicと呼ばれるスケジューリングポリシでスケジューリングされ、かつ各仮想マシンもRatemonotonicでスケジューリングされることを想定している。
そこで、たとえば仮想マシン140内の1以上のタスク142および143にそれぞれ優先度が与えられた場合、スケジューラ122は、ステップS104においてis_schedulableを実行するとき、以下の式(7)に示すrbfを用いてもよい。その際、仮想マシン140内でi番目に優先度が高いタスクの要件が(p’(i),e’(i))とされる。
Figure 0005687666
同様に、それぞれの仮想マシンに優先度が与えられた場合、スケジューラ122は、ステップS105においてis_schedulableを実行するとき、式(7)に示すrbfを用いてもよい。
ステップS104において、式(7)に示すrbfを用いることで、仮想マシン内のOSの実装者が、タスクの実行周期に関係なく優先順位を指定することが可能になる。同様に、ステップS105において、式(7)に示すrbfを用いることで、ハイパーバイザの実装者は、仮想マシンに対して割当てるリソースの周期に関係なく、それぞれの仮想マシンに優先順位を割当てることが可能となる。
スケジューラ122がステップS104においてoptimal_resourceを用いてある仮想マシンVに対して求めたリソースをΓ=(Π,Θ)とする。このとき、ハイパーバイザ132は、周期Π毎に与えられる仮想マシンVの実行時間がΘ以上であれば、どのようなスケジューリングポリシで仮想マシンVにリソースΓを割当ててもよい。例えば、ラウンドロビンまたは動的に優先度が変動するスケジューリングポリシを用いて仮想マシンVにリソースΓが割り当てられてもよい。
また、第1の実施形態では、プロセッサのリソースではなく、ネットワークリソースのスケジューリングがoptimal_resourceとis_schedulableの一方または両方を用いて実施されてもよい。例えば、限られた数のネットワークインタフェースを備える1台のノードにおいて、1以上のタスクを含む1以上の仮想マシンが動作する場合、ネットワークインタフェースを複数のタスクまたは複数の仮想マシンで共有する必要がある。その際、タスクまたは仮想マシンに対して、データ送信のタイミングの要件が与えられた場合に、上述した構成を用いることで、それらすべての要件を満たすことができるか否かを判断してもよい。
この場合、タスクの要件はプロセッサを使用する期間に対する要件ではなく、ネットワークインタフェースを利用する期間に対する要件となる。例えば、タスクの要件(p,e)は、周期pごとに、タスクがネットワークインタフェースからデータを送信する期間が合計eであることを示す。
プロセッサの使用期間およびネットワークインタフェースの使用期間の他にも、スケジューラ122は、ノード内のバスの使用期間、またはディスクI/Oの使用期間をis_schedulableまたはoptimal_resourceを用いて検証し、ノードのリソースが与えられた1以上の仮想マシンに足りるか否かを判断してもよい。これにより、さらに誤診断の可能性を小さくできる。
第1の実施形態では、図4に示すシーケンスの他にも、仮想マシンを新規作成する前にノードにおけるリソースの過不足を検証し、クライアントに結果を送信してもよい。
また、第1の実施形態では、クライアントから1以上のタスクの要件、1以上の仮想マシンの構成、リソースの量、仮想マシンとノードとの割当てを受け取り、リソースの過不足を判断し、その結果をクライアントに送信してもよい。つまり、第1の実施形態にかかる情報処理システム、方法およびプログラムは、必ずしも仮想マシンの操作をノードに指示するものでなくてもよい。これにより、例えばユーザが1以上の仮想OSの配置を計画するシステムを提供できる。
以上のような構成によれば、rbfとsbfとの比較回数を低減することが可能となるため、最適なリソース割当てを求める際の処理量を低減することができる。
(第2の実施形態)
つぎに、第2の実施形態に係るリアルタイムスケジューリング装置、システムおよびプログラムについて説明する。第2の実施形態では、指定されたリソースで全てのタスクのデッドラインの要件を満たしながらノードが全てのタスクを実行可能か否かを判断する。
図11に、第2の実施形態に係る情報処理システムの概略構成例を示す。図11に示すように、第2の実施形態にかかる情報処理システム200は、図1におけるコントローラ121、スケジューラ122および記憶部123を備えた仮想マシン220が、ノード130に組み込まれた構成を備える。その結果、管理サーバ120が省略され得る。仮想マシン220には、OS224も含まれる。その他の構成は、図1に示す情報処理システム100と同様であってよい。
このような構成の情報処理システム200は、ユーザが工場などの現場でノード130に繋がれた入力装置231および出力装置232で直接仮想マシン140および150を操作する場合特に有効と考えられる。
図11に示すスケジューラ122および記憶部123の動作は、図1に示すスケジューラ122および記憶部123の動作と同様であってよい。また、図11に示すハイパーバイザ132、プロセッサ131、仮想マシン140および150、タスク142、143、152および153、OS141および151、ノード130および160の動作は、図1に示すそれぞれのオブジェクトの動作と同様であってよい。
図11に示す仮想マシン220では、OS224が実行される。コントローラ121およびスケジューラ122は1つのタスクまたは異なるタスクに含まれるソフトウェアとして構成される。
コントローラ121は、処理の結果をOS224を介して出力装置232へ出力してもよい。また、コントローラ121への入力は、入力装置231からOS224を介して渡されてもよい。
つぎに、図12に示すシーケンスを用いて、第2の実施形態に係る情報処理システムの動作を説明する。図12に示すように、まず、ステップS201において、ノード130のコントローラ121が入力装置231から仮想マシンの移動の指示を受け取ると、コントローラ121は、ノード130で実行されているタスク142、143、152および153の要件を取得する。その後のステップS103、S104、S105およびS107の動作は、図4におけるステップS103、S104、S105およびS107の動作と同様であってよいため、説明を省略する。
次に、ステップS202において、ノード130のコントローラ121は、ノード160から仮想マシン170のイメージ1010を受信する。このイメージ1010は、仮想マシン170の実行メモリイメージを含む。具体的には、ノード130のコントローラ121は、イメージ1010を受信すると、仮想マシン170の実行メモリイメージをメモリ(図示せず)に読み込み、仮想マシン170の実行を開始する。つづいて、ノード130のコントローラ121は、仮想マシン170の移動完了を示すメッセージを出力装置232に出力する。
以上のように、第1の実施形態において管理サーバ120が備えていたタスクのスケジューリングを実行する機能をノード130側に実装した場合でも、第1の実施形態と同様の効果を得ることができる。
(第3の実施形態)
つぎに、第3の実施形態に係るリアルタイムスケジューリング装置、システムおよびプログラムについて説明する。第3の実施形態では、グループ化された1以上の別の装置からデータを周期的に取得するとともに、各グループに必要なリソースを求める。その結果、リソースが足りない場合、そのことをクライアント110に通知する。また、第3の実施形態では、データを取得する周期を再設定する。
図13に、第3の実施形態に係る情報処理システムの概略構成例を示す。図13に示すように、第3の実施形態に係る情報処理システム300は、集約装置301、端末装置310〜380、クライアント110、ネットワーク115、115Aおよび115Bで構成される。
各端末装置310〜380は、例えば時系列データを集約装置301へ送信する。時系列データは、例えば温度、湿度、気圧、気体または液体の濃度、期待または液体の流量、使用電力量、発電量、人、車などの交通量であってよい。
図13に示す例では、端末装置310〜380が2つのグループに分けられている。ネットワーク115Aに繋がる端末装置310〜340をグループAとし、ネットワーク115Bに繋がる端末装置350〜380をグループBとする。
集約装置301は、たとえば第1の実施形態における管理サーバ120に相当する。集約装置301は、端末装置310〜380から周期的にデータを取得する。また、集約装置301は、グループAおよびグループBに対して必要なリソースを求める。集約装置301は、例えば各グループAおよびBに対するリソースが足りない場合、クライアント110にエラーメッセージを送信してもよい。
集約装置301が端末装置310〜380のうちの2以上からデータを受信するとき、集約装置301が繋がるネットワーク115付近でデータが混雑する場合がある。その場合、集約装置301は、ある端末装置から決められた周期でデータを取得できない可能性がある。そこで、集約装置301は、各端末装置310〜380の要件から、各グループAおよびBに必要なリソースを計算する。
第3の実施形態において、リソースは例えばネットワーク115を使用する周期Πと使用期間の総計Θの組(Π,Θ)である。また、各端末装置310〜380の要件は、データ取得の周期pと1周期あたりにかかる時間eの組(p,e)である。
図13に示す集約装置301は、通信部124、コントローラ321、記憶部323およびスケジューラ122で構成される。通信部124およびスケジューラ122は、それぞれ図1に示す管理サーバ120の通信部124およびスケジューラ122と同等であってよい。
記憶部323は、各端末装置310〜380の要件を記憶する。コントローラ321は、あらかじめ決められた周期で各端末装置310〜380からデータを取得する。また、コントローラ321は、それぞれの端末装置310〜380に対してデータの取得にかかる時間eを計測し、あらかじめ決められた各端末装置310〜380に対する周期とともに記憶部323に記憶する。
コントローラ321による時間eの計測方法は、どのような方法でもよい。例えば、コントローラ321は、定期的に受信するデータと同じサイズのメッセージを送信してから、各端末装置310〜380からデータを受信するまでのラウンドトリップタイムをTとし、T/2を時間eとしてもよい。
コントローラ321は、グループAに属す各端末装置310〜340の要件の集合Wをoptimal_resourceに適用し、リソースΓ(A)を得る。その際、プロセッサのパフォーマンス値は1とする。同様に、コントローラ321はグループBに属す各装置の要件の集合をoptimal_resourceに適用し、リソースΓ(B)を得る。
コントローラ321は、例えば、リソースΓ(A)とリソースΓ(B)とが不均衡である場合、端末装置310〜380のうちいずれかの装置に対するデータの取得周期を再設定する。または、コントローラ321は、リソースΓ(A)とリソースΓ(B)との集合をリソースΓとし、これをis_schedulableに適用することで、リソースの占有率が1を超えないか否かを判断する。その際、is_schedulableに適用するパフォーマンス値は1とする。リソースΓの占有率が1を超える場合、コントローラ321は、クライアント110にエラーメッセージを送信してもよい。または、コントローラ321は、データの取得周期を再設定してもよい。
以上のように、上述した第1および第2の実施形態にかかる構成は、ネットワークリソースをスケジューリングする情報処理システム300にも適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100,200,300…情報処理システム、110…クライアント、115,115A,115B…ネットワーク、120…管理サーバ、121,321…コントローラ、122…スケジューラ、123,323…記憶部、124…通信部、130,160…ノード、140,150,170,220…仮想マシン、131,161…プロセッサ、132,162…ハイパーバイザ、141,151,171,224…OS、142,143,152,153,172,173…タスク、231…入力装置、232…出力装置、301…集約装置、310〜380…端末装置、E140,E150,e142,e143,e152,e153…期間、e101,e102…実行時間、TSK…周期タスク、DL…デッドライン、1001〜1009,1011,1012…メッセージ、1010…イメージ

Claims (7)

  1. 第1の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第1の端末装置における第1のプロセッサのパフォーマンス値と、第2の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第2の端末装置における第2のプロセッサのパフォーマンス値とを用いて、前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの少なくとも1つの仮想マシンを加えた集合に足りると判断した場合、該少なくとも1つの仮想マシンを前記第2の端末装置へ移動させるように前記第1および第2の端末装置へ指示するように構成されたコントローラを備え、
    前記コントローラは、
    第1の周期および1周期あたりの第1の実行時間で前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合を実行できるか否かを判断し、
    前記第1の周期および前記第1の実行時間で前記集合を実行できると判断した場合、前記第1の周期に1単位加えた第2の周期および前記第1の実行時間で前記集合を実行できるか否かを判断し、
    前記第1の周期および前記第1の実行時間で前記集合を実行できないと判断した場合、前記第1の周期および前記第1の実行時間に1単位加えた第2の実行時間で前記集合を実行できるか否かを判断し、
    前記集合を実行できると判断された周期および実行時間の組のうち、前記周期に対する前記実行時間の割合が最も少ない周期および実行時間を求め、
    求めた前記周期および前記実行時間を前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合に割り当てる
    ことを特徴とするスケジューリング装置。
  2. 前記コントローラは、前記第2のプロセッサに関してリソース需要量に対するリソース供給量を比較する2以上のチェックポイントを求め、
    前記チェックポイントは、前記第2の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの周期、および、前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンのそれぞれが含む1以上のタスクの周期に対して、該周期のうち最大の周期を超えない周期であって該周期の倍数であり、
    前記コントローラはさらに、
    前記2以上のチェックポイントにおける第1のチェックポイントと、前記第2の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの要件および前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンのそれぞれが含む1以上のタスクの要件を含む第1の集合と、に対する第1のリソース需要量および第1のリソース供給量を求め、
    前記第1のリソース需要量が前記第1のリソース供給量以下の場合、前記第1の集合にさらに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンとは別の仮想マシンが含む1以上のタスクの要件を加えた第2の集合と、前記第1のチェックポイントと、に対する第2のリソース需要量および第2のリソース供給量を求め、
    前記第1または第2のリソース需要量が前記第1または第2のリソース供給量よりも大きい場合、前記第1または第2の集合と、前記第1のチェックポイントよりも大きい第2のチェックポイントと、に対する第3のリソース需要量および第3のリソース供給量を求め、
    前記第1または第2の集合に対してリソース需要量がリソース供給量よりも少なくなるチェックポイントが少なくとも1つ存在する場合、前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合に足りると判断する
    ことを特徴とする請求項1に記載のスケジューリング装置。
  3. 請求項1または2に記載のスケジューリング装置と、
    前記スケジューリング装置とネットワークを介して接続された1以上の端末装置と、
    を備え、
    前記スケジューリング装置は、前記1以上のタスクの要件およびプロセッサのパフォーマンス値を前記ネットワークに接続された第1の端末装置および第2の端末装置から受信し、
    前記コントローラは、
    前記第1の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの要件と、前記第1の端末装置における前記第1のプロセッサの前記パフォーマンス値と、を用いて前記第1の端末装置における前記1以上の仮想マシンの要件を求め、
    前記第2の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの要件と、前記第2の端末装置における前記第2のプロセッサの前記パフォーマンス値とを用いて前記第2の端末装置における前記1以上の仮想マシンの要件を求め、
    前記第1の端末装置における前記1以上の仮想マシンの前記要件と、前記第2の端末装置における前記1以上の仮想マシンの前記要件と、を用いて前記第2の端末装置における前記第2のプロセッサのリソースが前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの少なくとも1つの仮想マシンを加えた前記集合に足りるか否かを判断し、
    前記第2のプロセッサのリソースが前記集合に足りると判断した場合、前記第1の端末装置で実行されている前記少なくとも1つの仮想マシンを前記第2の端末装置へ移動させるように前記第1および前記第2の端末装置へ指示し、
    前記第1の端末装置は、前記第2の端末装置へ前記少なくとも1つの仮想マシンを送信し、
    前記第2の端末装置は、前記少なくとも1つの仮想マシンを実行する
    ことを特徴とするシステム。
  4. プロセッシングリソースをスケジューリングするコンピュータが実行する方法であって、
    第1の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第1の端末装置における第1のプロセッサのパフォーマンス値と、第2の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第2の端末装置における第2のプロセッサのパフォーマンス値とを用いて、前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの少なくとも1つの仮想マシンを加えた集合に足りるか否かを判断し、
    前記第2のプロセッサのリソースが前記集合に足りると判断した場合、前記第1の端末装置における前記少なくとも1つの仮想マシンを前記第2の端末装置へ移動させるように前記第1および第2の端末装置へ指示する
    ことを含み、
    第1の周期および1周期あたりの第1の実行時間で前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合を実行できるか否かを判断し、
    前記第1の周期および前記第1の実行時間で前記集合を実行できると判断した場合、前記第1の周期に1単位加えた第2の周期および前記第1の実行時間で前記集合を実行できるか否かを判断し、
    前記第1の周期および前記第1の実行時間で前記集合を実行できないと判断した場合、前記第1の周期および前記第1の実行時間に1単位加えた第2の実行時間で前記集合を実行できるか否かを判断し、
    前記集合を実行できると判断された周期および実行時間の組のうち、前記周期に対する前記実行時間の割合が最も少ない周期および実行時間を求め、
    求めた前記周期および前記実行時間を前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合に割り当てる
    ことをさらに含む方法。
  5. 前記第2のプロセッサに関してリソース需要量に対するリソース供給量を比較する2以上のチェックポイントを求め、
    前記チェックポイントは、前記第2の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの周期、および、前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンのそれぞれが含む1以上のタスクの周期に対して、該周期のうち最大の周期を超えない周期であって該周期の倍数であり、
    前記2以上のチェックポイントにおける第1のチェックポイントと、前記第2の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの要件および前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンのそれぞれが含む1以上のタスクの要件を含む第1の集合と、に対する第1のリソース需要量および第1のリソース供給量を求め、
    前記第1のリソース需要量が前記第1のリソース供給量以下の場合、前記第1の集合にさらに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンとは別のタスクの仮想マシンが含む1以上の要件を加えた第2の集合と、前記第1のチェックポイントと、に対する第2のリソース需要量および第2のリソース供給量を求め、
    前記第1または第2のリソース需要量が前記第1または第2のリソース供給量よりも大きい場合、前記第1または第2の集合と、前記第1のチェックポイントよりも大きい第2のチェックポイントと、に対する第3のリソース需要量および第3のリソース供給量を求め、
    前記第1または第2の集合に対してリソース需要量がリソース供給量よりも少なくなるチェックポイントが少なくとも1つ存在する場合、前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合に足りると判断する
    ことをさらに含む請求項4に記載の方法。
  6. プロセッシングリソースをスケジューリングするコンピュータを機能させるためのプログラムであって、
    第1の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第1の端末装置における第1のプロセッサのパフォーマンス値と、第2の端末装置における1以上の仮想マシンのそれぞれが含む1以上のタスクの要件と、前記第2の端末装置における第2のプロセッサのパフォーマンス値とを用いて、前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの少なくとも1つの仮想マシンを加えた集合に足りるか否かを判断する処理と、
    前記判断する処理において前記第2のプロセッサのリソースが前記集合に足りると判断した場合、前記第1の端末装置における前記少なくとも1つの仮想マシンを前記第2の端末装置へ移動させるように前記第1および第2の端末装置へ指示する処理と
    を前記コンピュータに実行させ、
    第1の周期および1周期あたりの第1の実行時間で前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合を実行できるか否かを判断する処理と、
    前記第1の周期および前記第1の実行時間で前記集合を実行できると判断した場合、前記第1の周期に1単位加えた第2の周期および前記第1の実行時間で前記集合を実行できるか否かを判断する処理と、
    前記第1の周期および前記第1の実行時間で前記集合を実行できないと判断した場合、前記第1の周期および前記第1の実行時間に1単位加えた第2の実行時間で前記集合を実行できるか否かを判断する処理と、
    前記集合を実行できると判断された周期および実行時間の組のうち、前記周期に対する前記実行時間の割合が最も少ない周期および実行時間を求める処理と、
    求めた前記周期および前記実行時間を前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合に割り当てる処理と
    を前記コンピュータにさらに実行させるためのプログラム。
  7. 前記第1のプロセッサに関してリソース需要量に対するリソース供給量を比較する2以上のチェックポイントを求める処理を前記コンピュータにさらに実行させ、
    前記チェックポイントは、前記第2の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの周期、および、前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンのそれぞれが含む1以上のタスクの周期に対して、該周期のうち最大の周期を超えない周期であって該周期の倍数であり、
    前記2以上のチェックポイントにおける第1のチェックポイントと、前記第2の端末装置における前記1以上の仮想マシンのそれぞれが含む前記1以上のタスクの要件および前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンのそれぞれが含む1以上のタスクの要件を含む第1の集合と、に対する第1のリソース需要量および第1のリソース供給量を求める処理と、
    前記第1のリソース需要量が前記第1のリソース供給量以下の場合、前記第1の集合にさらに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンとは別のタスクの仮想マシンが含む1以上の要件を加えた第2の集合と、前記第1のチェックポイントと、に対する第2のリソース需要量および第2のリソース供給量を求める処理と、
    前記第1または第2のリソース需要量が前記第1または第2のリソース供給量よりも大きい場合、前記第1または第2の集合と、前記第1のチェックポイントよりも大きい第2のチェックポイントと、に対する第3のリソース需要量および第3のリソース供給量を求める処理と、
    前記第1または第2の集合に対してリソース需要量がリソース供給量よりも少なくなるチェックポイントが少なくとも1つ存在する場合、前記第2のプロセッサのリソースが前記第2の端末装置における前記1以上の仮想マシンに前記第1の端末装置における前記1以上の仮想マシンのうちの前記少なくとも1つの仮想マシンを加えた集合に足りると判断する処理と
    を前記コンピュータにさらに実行させるための請求項6に記載のプログラム。
JP2012180120A 2012-08-15 2012-08-15 スケジューリング装置、システム、方法およびプログラム Active JP5687666B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012180120A JP5687666B2 (ja) 2012-08-15 2012-08-15 スケジューリング装置、システム、方法およびプログラム
US13/966,785 US9348629B2 (en) 2012-08-15 2013-08-14 Apparatus, system, method and computer-readable medium for scheduling in which a check point is specified

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012180120A JP5687666B2 (ja) 2012-08-15 2012-08-15 スケジューリング装置、システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2014038458A JP2014038458A (ja) 2014-02-27
JP5687666B2 true JP5687666B2 (ja) 2015-03-18

Family

ID=50101027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012180120A Active JP5687666B2 (ja) 2012-08-15 2012-08-15 スケジューリング装置、システム、方法およびプログラム

Country Status (2)

Country Link
US (1) US9348629B2 (ja)
JP (1) JP5687666B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200129469A (ko) * 2019-05-08 2020-11-18 국방과학연구소 계층적 스케줄링 시스템에서 자원 공급 모델의 주기를 결정하는 방법 및 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102548B (zh) * 2014-08-04 2017-11-24 北京京东尚科信息技术有限公司 任务资源调度处理方法和系统
US9552228B2 (en) * 2014-09-08 2017-01-24 Empire Technology Development Llc Instruction set extension concealment in data centers
JP6495645B2 (ja) * 2014-12-19 2019-04-03 株式会社東芝 リソース制御装置、方法、及びプログラム
US9760398B1 (en) 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
US20170118293A1 (en) * 2015-10-26 2017-04-27 Trilliant Networks, Inc. Method and system for efficient task management
GB2549773B (en) * 2016-04-28 2018-05-16 Metaswitch Networks Ltd Configuring host devices
WO2019030889A1 (ja) * 2017-08-10 2019-02-14 株式会社日立製作所 計算機運用管理システムおよび方法
CN107479949A (zh) * 2017-08-21 2017-12-15 重庆电子工程职业学院 低能耗云计算任务调度方法
CN113626196A (zh) * 2021-08-12 2021-11-09 杭州海康威视数字技术股份有限公司 发送任务的方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938256B2 (en) * 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
JP4298679B2 (ja) * 2005-05-27 2009-07-22 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、情報処理装置、およびサーバ
JP4352028B2 (ja) * 2005-06-29 2009-10-28 富士通株式会社 運用ポリシー評価システムおよび運用ポリシー評価プログラム
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8424059B2 (en) * 2008-09-22 2013-04-16 International Business Machines Corporation Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment
JP2010113677A (ja) * 2008-11-10 2010-05-20 Hitachi Ltd サービス管理装置、サービス管理方法およびサービス管理システム
JP4839361B2 (ja) * 2008-11-11 2011-12-21 株式会社日立製作所 仮想マシン移動管理サーバおよび仮想マシン移動方法
JP2010160599A (ja) * 2009-01-07 2010-07-22 Yamatake Corp スケジューラ、情報処理装置およびスケジューリング方法
US8135818B2 (en) * 2009-06-22 2012-03-13 Red Hat Israel, Ltd. Automatic virtual machine migration in mixed SBC/CBC environment
US8352953B2 (en) * 2009-12-03 2013-01-08 International Business Machines Corporation Dynamically provisioning virtual machines
JP5544967B2 (ja) * 2010-03-24 2014-07-09 富士通株式会社 仮想マシン管理プログラム及び仮想マシン管理装置
US9218196B2 (en) * 2012-05-17 2015-12-22 International Business Machines Corporation Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200129469A (ko) * 2019-05-08 2020-11-18 국방과학연구소 계층적 스케줄링 시스템에서 자원 공급 모델의 주기를 결정하는 방법 및 장치
KR102184136B1 (ko) * 2019-05-08 2020-11-27 국방과학연구소 계층적 스케줄링 시스템에서 자원 공급 모델의 주기를 결정하는 방법 및 장치

Also Published As

Publication number Publication date
US20140053153A1 (en) 2014-02-20
JP2014038458A (ja) 2014-02-27
US9348629B2 (en) 2016-05-24

Similar Documents

Publication Publication Date Title
JP5687666B2 (ja) スケジューリング装置、システム、方法およびプログラム
US9135741B2 (en) Interference-driven resource management for GPU-based heterogeneous clusters
Yang et al. A framework for partitioning and execution of data stream applications in mobile cloud computing
US9218203B2 (en) Packet scheduling in a multiprocessor system using inter-core switchover policy
CN103309738B (zh) 用户作业调度方法及装置
JP5954074B2 (ja) 情報処理方法、情報処理装置、及びプログラム。
US10977070B2 (en) Control system for microkernel architecture of industrial server and industrial server comprising the same
Verner et al. Scheduling processing of real-time data streams on heterogeneous multi-GPU systems
US20090282413A1 (en) Scalable Scheduling of Tasks in Heterogeneous Systems
Gedawy et al. RAMOS: A resource-aware multi-objective system for edge computing
JP6180866B2 (ja) スケジューリング装置、システム、装置、方法およびプログラム
Zhang et al. Dynamic scheduling with service curve for QoS guarantee of large-scale cloud storage
Hu et al. Job scheduling without prior information in big data processing systems
Muthuvelu et al. On-line task granularity adaptation for dynamic grid applications
Gupta et al. Load and fault aware honey bee scheduling algorithm for cloud infrastructure
Syed HAMM: A hybrid algorithm of Min-Min and Max-Min task scheduling algorithms in cloud computing
Saxena et al. Effective elastic scaling of deep learning workloads
Stavrinides et al. Orchestrating bag-of-tasks applications with dynamically spawned tasks in a distributed environment
Ghouma et al. Context aware resource allocation and scheduling for mobile cloud
US12039375B2 (en) Resource management device and resource management method
Begam et al. Flexible vm provisioning for time-sensitive applications with multiple execution options
JP2006195985A (ja) リソース利用率を制御する方法およびコンピュータシステム
Tan et al. Multi-resource fair sharing for multiclass workflows
Peng et al. BQueue: A coarse-grained bucket QoS scheduler
Chen et al. Adaptive resource management for spot workers in cloud computing environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150122

R151 Written notification of patent or utility model registration

Ref document number: 5687666

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151