JP5770721B2 - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP5770721B2
JP5770721B2 JP2012517104A JP2012517104A JP5770721B2 JP 5770721 B2 JP5770721 B2 JP 5770721B2 JP 2012517104 A JP2012517104 A JP 2012517104A JP 2012517104 A JP2012517104 A JP 2012517104A JP 5770721 B2 JP5770721 B2 JP 5770721B2
Authority
JP
Japan
Prior art keywords
task
real
load amount
group
task group
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.)
Expired - Fee Related
Application number
JP2012517104A
Other languages
English (en)
Other versions
JPWO2011148563A1 (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.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
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 Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to JP2012517104A priority Critical patent/JP5770721B2/ja
Publication of JPWO2011148563A1 publication Critical patent/JPWO2011148563A1/ja
Application granted granted Critical
Publication of JP5770721B2 publication Critical patent/JP5770721B2/ja
Expired - Fee Related 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/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
    • 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

Description

本発明は、情報処理システムにおいて複数の仮想CPUを有する場合、これら仮想CPUを物理CPUに割り当てる技術に関する。
一つの物理的な計算機で複数の仮想的な計算機を動作させる技術がある。仮想計算機は仮想的な中央演算装置(CPU:Central Processing Unit)で動作し、仮想CPUは物理CPUを時分割で割り当てられて実行する。仮想計算機の技術では、仮想CPUへの物理CPU時間の割り当ての管理などを行う管理モジュールが設けられる。以下、この管理モジュールをハイパバイザと呼ぶ。
従来、複数のCPUを用いるOSでは、CPUごとにタスクを記録するタスクキューを持つものがある。CPUは自身のタスクキューに登録されたタスクを実行する。CPU資源を有効に活用するには、CPU間の負荷が均等になるのが望ましい。その為、OS(オペレーションシステム)は、タスクキューに記録されているタスク数やその優先度などからCPUの負荷を求め、負荷が均等化するようにタスクの分散を行う技術がある。具体的には、例えば、新しくタスクが生成された時に、OSはそのタスクを負荷の最も低いCPUのタスクキューに登録する。また、OSが一定周期で各CPUの負荷を計算し、負荷が均等化するようにCPU間でタスクの移動を行う負荷分散方法がある。
また、仮想CPUをスケジュールするハイパバイザでは、仮想CPUの実行の順番を決定している。特許文献1では、仮想計算機がタスクの切り替え時に次に実行するタスクの優先度をハイパバイザに通知し、ハイパバイザがタスクの優先度に基づいて実行する仮想計算機を決定する技術が開示されている。この技術を用いれば、優先度の高いタスク、例えば、リアルタイム性を要求するタスク(以下、リアルタイムタスクという。)を実行する仮想計算機の処理が先に行われ、リアルタイムの要求を満たすのが容易になる。
特開2000−242512号公報
仮想計算機の技術では、複数の物理CPU(プロセッサ)のうち一の物理CPUに2つ以上の仮想CPUを割り当てることがある。このとき、例えば、当該2つの仮想CPUがそれぞれ別のOSに属している場合には、各OSにおいて、当該OSに含まれる複数のタスクキュー間では処理負荷は均等となるように制御されている。
しかしながら、当該2つの仮想CPUが割り当てられた前記一の物理CPUでは、他の物理CPUよりも、処理負荷が高くなる場合が考えられる。
このような場合において、上記の特許文献2の技術を用いると、当該一の物理CPUに割り当てられた2つの仮想CPUについての実行順序を決定するのみであり、当該一の物理CPUの処理負荷が変化するわけではない。
そうすると、他の物理CPUと処理負荷に不均衡が生じている場合には、全体の処理効率はよいものとは言えない。
そこで、本発明は、上記の問題に鑑みて、複数のプロセッサ間で処理負荷の均衡を保つことのできる情報処理システム、方法、プログラム及び集積回路を提供することを目的とする。
上記目的を達成するために、本発明は、情報処理システムであって、処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、前記ハイパバイザは、各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有することを特徴とする。
上記の構成によると、情報処理システムは、各プロセッサ間で処理負荷量の偏りが生じているときにはプロセッサとタスクグループとの対応付けを変更するので、複数のプロセッサ間で処理負荷の均衡を保つようにすることができる。
情報処理システム1000の構成を示す図である。 物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示す図である。 新たに生成されたタスクの移動を説明する図である。 (a)は第1の実施の形態に係る再分配が行われる前の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示し、(b)は第1の実施の形態に係る再分配が行われた後の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示す図である。 情報処理システム1000の処理の概要を示す流れ図である。 情報処理システム1000の処理の詳細(タスク生成・移動処理)を示す流れ図である。 (a)は第1の変形例に係る再分配が行われる前の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示し、(b)は第1の変形例に係る再分配が行われた後の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示す図である。 第1の変形例に係る情報処理システムで行われるタスク生成・移動処理の動作を示す流れ図である。 (a)は第2の変形例に係る再分配が行われる前の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示し、(b)は第2の変形例に係る再分配が行われた後の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示す図である。 第2の変形例に係る情報処理システムで行われるタスク生成・移動処理の動作を示す流れ図である。 情報処理システム1000aの構成を示す図である。 情報処理システム1000aで行われる割り込み処理の動作を示す流れ図である。 情報処理システム1000bの構成を示す図である。 (a)は第3の実施の形態に係る再分配が行われる前の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示し、(b)は第3の実施の形態に係る再分配が行われた後の物理CPU1a〜1cと仮想CPU6a〜6dとの対応を示す図である。 情報処理システム1000bで行われる動作周期更新処理の動作を示す流れ図である。 情報処理システム1000bで行われるタスク生成・移動処理の動作を示す流れ図である。 情報処理システム1000cの構成を示す図である。
1.第1の実施の形態
以下、本発明の一実施形態である情報処理システム1000について説明する。
1.1 構成
図1は、本実施の形態における情報処理システム1000の構成を示す図である。情報処理システム1000は、複数の物理CPU1a、1b、1cと、入出力装置2と、負荷分散装置3とから構成されている。負荷分散装置3は、ランダムアクセスメモリ(RAM)やフラッシュメモリなどのメモリを有し、実行する各種のプログラムやデータを格納している。
(1)負荷分散装置3
負荷分散装置3は、複数のOS毎に仮想計算機を構築し、各OSで生成される複数のタスクの実行を、対応付けられた1つの物理CPUに実行させるものである。
具体的には、図1に示すように、負荷分散装置3は、複数(ここでは2個)のOS20a、20bからなるOS群と、ハイパバイザ5とを備えている。
(1−1)OS20a、20b
OS20aは、図1に示すように、仮想計算機4aを構成するものであり、OS20aにはタスクキュー100a、100b、タスク負荷分散部101、タスク登録部102、タスク情報通知部103が備えられている。また、OS20bは、仮想計算機4bを構成するものであり、図1では図示していないが、OS20aと同様の構成である。
以下、OS20aとOS20bとは同様の構成であるので、OS20aの構成要素について説明する。
(タスクキュー100a、100b)
タスクキュー100a、100bそれぞれは、OS20aで生成されたタスクを格納するものであり、後述する仮想CPUを形成する。
各タスクキュー100a、100bで発生するタスク10a、10bは、通常の情報処理システム1000で用いられる処理単位としてのタスクである。OS20aは複数のCPUを用いて動作するものであるが、本実施の形態では仮想計算機として動作するので仮想的な複数のCPU(仮想CPU)を用いて動作することになる。
(タスク負荷分散部101)
タスク負荷分散部101は、生成されたリアルタイムタスクや通常のタスクの分散を決定する。ここで、リアルタイムタスクとは、例えばデッドラインまでの実行の完了といったリアルタイム性能を要求するタスクであり、例えば、優先度を高くするといった手法で通常のタスクより先に実行されるものである。なお、以降においてRTタスクと記述し、リアルタイム性能を要求しない通常のタスクを単に通常タスクと記述する。なお、RTタスクと通常タスクとを区別する必要がない場合には、単に、タスクと記述する。
タスク負荷分散部101は、例えば、新たにタスクが生成された際に動作し、タスクキュー100a、100bのうちどのタスクキューに新たに生成されたタスクを登録すれば負荷が分散されるかを決定する。
具体的には、タスク負荷分散部101は、タスクが新たに生成されると、タスクキュー100a、100bそれぞれの処理負荷として、各タスクキュー100a、100bで保持されている各タスクそれぞれの優先度の合計値を算出する。タスク負荷分散部101は、処理負荷の小さい、つまり優先度の合計値が最も小さいタスクキューを決定する。
(タスク登録部102)
タスク登録部102は、タスク負荷分散部101の決定を受け、決定されたタスクキューに生成されたタスクを登録する。
(タスク情報通知部103)
タスク情報通知部103は、新たに生成されたタスクが通常タスクであるかRTタスクであるかを判断し、RTタスクであると判断する場合には、RTタスクの登録先をハイパバイザ5に通知する。この時、タスク情報通知部103は、タスク登録部102から呼び出され、タスク登録部102を実行した物理CPUで即座に実行されるものとする。
(1−2)ハイパバイザ5
ハイパバイザ5は、仮想計算機4a、4bそれぞれにおける各仮想CPUについて物理CPUの割り当ての管理やタスクをOSに実行させる制御を行う。
ハイパバイザ5は、仮想CPU負荷決定部200、仮想CPU負荷分散部201及び仮想CPUスケジュール部202を有している。
(仮想CPU負荷決定部200)
仮想CPU負荷決定部200は、各仮想CPU6a〜6dの負荷を決定するものである。
具体的には、仮想CPU負荷決定部200は、タスク情報通知部103から新たに生成されたRTタスクの登録先の通知を受け取ると、現時点での各タスクキューにおける負荷状況を特定する。ここで、例えば、各タスクキューについて当該タスクキューがRTタスクを保持しているか否かにより処理負荷を管理する。この場合、RTタスクには、通常、優先度が高い値が対応付けられているので、仮想CPU負荷決定部200は、予め定められた閾値以上の優先度を持つタスクの存在の有無、つまりRTタスクの存在の有無を検知することができ、存在を検知するとそのタスクキューは処理負荷が高いとし、存在が未検知である場合にはタスクキューの処理負荷は低いと特定する。
(仮想CPU負荷分散部201)
仮想CPU負荷分散部201は、物理CPU1a、1b、1cそれぞれについて仮想計算機4a、4bそれぞれのタスクキュー(仮想CPU)の分配を決定し、実行するものである。
具体的には、仮想CPU負荷分散部201は、仮想CPU負荷決定部200で特定された各タスクキューにおける負荷状況に基づいて、各物理CPU1a、1b、1cについて当該物理CPUの処理負荷を特定する。
仮想CPU負荷分散部201は、物理CPU毎に特定した処理負荷について偏りが生じている場合には、偏りが生じないように物理CPU1a、1b、1cそれぞれについてタスクキュー(仮想CPU)の分配を決定し、決定された分配となるよう変更する。
(仮想CPUスケジュール部202)
仮想CPUスケジュール部202は、個々の物理CPUに分配された仮想CPUの実行の順番を決定するものである。
例えば、1つの物理CPUに異なる仮想CPUが分配されている場合には、仮想CPUスケジュール部202は、一の仮想CPUと他の仮想CPUとを時分割で実行するよう処理順番を決定する。具体的には、1つの物理CPUに分配されている2つの仮想CPUについては、一の仮想CPUと他の仮想CPUのコンテキストを切り替えることで、2つの仮想CPUを時分割で実行するよう処理順番を決定する。
また、各仮想CPUは、当該仮想CPUが保持している各タスクを時分割により順次実行する。
(2)物理CPU1a、1b、1c
物理CPU1a、1b、1cは、ハイパバイザ5の制御により分配された1又は複数のタスクキューに登録されたタスクを、仮想CPUスケジュール部202でスケジュールされた処理順番に従って処理する。
(3)入出力装置2
入出力装置2は、外部からの指示を受け付け、受け付けた指示を物理CPU1a、1b、1c及び負荷分散装置3へ通知するものである。
1.2 分配の具体例
ここでは、各タスクキュー(仮想CPU)の分配の変更について、具体例を用いて説明する。
(1)具体例1
(生成されたタスクを仮想CPUへの分配する具体例)
図2は、分配の一例を示すものである。図2では、仮想計算機4aのタスクキュー100a(仮想CPU6a)は物理CPU1aに分配され、タスクキュー100b(仮想CPU6b)は物理CPU1bに分配されている。また、仮想計算機4bのタスクキュー100c(仮想CPU6c)は物理CPU1bに分配され、タスクキュー100d(仮想CPU6d)は物理CPU1cに分配されている。つまり、物理CPU1bには、2つのタスクキュー100b、100cが分配されている状態である。そして、図2では、この分配状態において仮想CPU6aにてRTタスク30が生成されたものとする。
そして、タスク負荷分散部101は、タスクキュー100a、100bそれぞれで保持されているRTタスクの個数に基づいて、タスクキュー100a、100bについて処理負荷に偏りが生じないように新たなRTタスク30の登録先を決定する。例えば、タスク負荷分散部101は登録先をタスクキュー100bと決定し、図3に示すように、タスク登録部102はRTタスク30を決定された登録先(仮想CPU6b)へと移動させ、タスクキュー100bへ登録する。
タスク情報通知部103は、仮想CPU6bのタスクキューにRTタスク30が登録されたことをハイパバイザ5に通知する。この時、上述したように、タスク情報通知部103は、タスク登録部102から呼び出され、タスク登録部102を実行したCPU(ここでは、物理CPU1a)で即座に実行される。例えば、仮想CPU6bでのタスクスイッチの時に、RTタスク30の登録をハイパバイザ5に通知することも可能である。しかし、タスクスイッチ時の通知の場合、通知は仮想CPU6bが物理CPU1bで実行された後になる。つまり、タスク登録部102が仮想CPU6bのタスクキュー100bにRTタスク30が登録したにもかかわらず、その情報がハイパバイザ5に通知されるのが遅れる場合がある。その為、RTタスク30の実行が要求を満たせなくなる可能性がある。本実施の形態では、この問題を避ける為、タスク登録部102が動作した際に、その物理CPUでハイパバイザ5への通知を即座に動作させる。
仮想CPU負荷決定部200は、タスク情報通知部103から新たに生成されたRTタスクの登録先の通知を受け取ると、現時点での各タスクキューにおける負荷状況を特定する。そして、仮想CPU負荷分散部201は、各物理CPU1a〜1cへの仮想CPU6a〜6dの分配を決定し、実行する。なお、このとき、仮想CPU負荷決定部200、仮想CPU負荷分散部201は、タスク情報通知部103と同様に、タスク登録部102を実行したCPU(ここでは、物理CPU1a)で即座に実行される。
なお、仮想CPU負荷分散部201で各物理CPU1a〜1cへの仮想CPU6a〜6dの分配を決定し、実行がされると、図3では図示していないが、図1に示す仮想CPUスケジュール部202で、個々の物理CPUに分配された仮想CPUの実行の順番が決定される。
図4(a)は、RTタスク30が仮想CPU6a(タスクキュー100a)から仮想CPU6b(タスクキュー100b)へ移動した場合における、各仮想CPU6a〜6d(タスクキュー100a〜100d)の一例を示すものである。
(各仮想CPUを物理CPUへ再分配する具体例)
図4(a)では、物理CPU1bに2つの仮想CPU6b、6cが分配されており、仮想CPU6bにはRTタスク30が、仮想CPU6cにはRTタスク30cが、それぞれ登録されている。そして、他の仮想CPU6a、6dにはRTタスクは登録されていない。この場合、仮想CPU負荷分散部201は、物理CPU1bにRTタスクの個数の偏りが生じているので、偏りが生じないように物理CPU1a、1b、1cそれぞれについてタスクキュー(仮想CPU)の分配を決定し、決定された分配となるよう変更する。図4(b)は、その結果の一例を示すものであり、仮想CPU6bに対する物理CPUの割り当てを変更している。これにより、物理CPU1aと、物理CPU1bとに対して、RTタスクが登録されたタスクキュー(仮想CPU6b、仮想CPU6c)をそれぞれ個別に分配しているので、RTタスクの偏りが生じないようになっている。これにより、RTタスク30を持つ仮想CPUは、物理CPUごとに高々一つになる。
各物理CPU1a〜1cに対してタスクキュー(仮想CPU)が再分配された後、仮想CPUスケジュール部202により、個々の物理CPU1a〜1cに分配された仮想CPU6a〜6dの実行の順番を決定する。図4では、例えば、仮想CPUスケジュール部202はRTタスク30を持つ仮想CPUを優先して実行する。例えば、同じ物理CPUにRTタスク30を持つ仮想CPUと持たない仮想CPUが分配された場合(ここでは、物理CPU1b)、仮想CPUスケジュール部202は、RTタスク30cを持つ仮想CPU6cをまず実行し、この仮想CPUのタスクが無くなる、つまりアイドルになった際に、RTタスクを持たない仮想CPU6aに切り替える。
1.3 動作
ここでは、情報処理システム1000の動作について説明する。
(1)概要
まず、処理の概要について、図5に示す流れ図を用いて説明する。
タスク負荷分散部101は、新たに生成されたタスクの仮想CPUへの分散を決定する(ステップS5)。タスク登録部102は、タスク負荷分散部101で決定された仮想CPUのタスクキューに新たに生成されたタスクを登録する(ステップS10)。タスク情報通知部103は、タスクキューに登録されたタスクの情報を、ハイパバイザ5に即座に通知する(ステップS15)。
ハイパバイザ5の仮想CPU負荷決定部200は、タスク情報通知部103からの通知を受け取ると、各仮想CPUの負荷を決定する(ステップS20)。仮想CPU負荷分散部201は、仮想CPU負荷決定部200の決定結果に基づいて、各仮想CPUを物理CPU1a〜1cに分散する(ステップS25)。仮想CPUスケジュール部202は、各物理CPU1a〜1cそれぞれについて、当該物理CPUに分配された仮想CPUの実行の順番を決定する(ステップS30)。そして、各物理CPUは、決定された順番に従って、当該物理CPUに分配された1又は複数の仮想CPUに含まれるタスクを実行する。
(2)処理の詳細
ここでは、図5で示した処理の詳細を、図6に示す流れ図を用いて説明する。なお、ここでは、仮想計算機4aにて新たなRTタスクが生成されたものとして説明する。
タスク負荷分散部101は、新たなタスクが生成されると、各仮想CPU6a、6bのタスクキュー100a、100bそれぞれついて、当該タスクキューに保持されているタスクの優先度の合計値を算出し、これら合計値を各仮想CPU6a、6bの処理負荷とし、新たなタスクが生成されたOS内で最も処理負荷の小さい仮想CPUを特定する(ステップS100)。
タスク登録部102は、特定された仮想CPUのタスクキューに生成された新たなタスクを登録する(ステップS105)。
タスク情報通知部103は、登録されたタスクはRTタスクであるか否かを判断する(ステップS110)。
RTタスクであると判断する場合には(ステップS110における「Yes」)、タスク情報通知部103は、新たなRTタスクを登録した旨をハイパバイザ5の仮想CPU負荷決定部200に通知する(ステップS115)。
仮想CPU負荷決定部200は、タスク情報通知部103からの通知を受け取ると、現時点での各タスクキューにおける負荷状況を特定する(ステップS120)。
仮想CPU負荷分散部201は、仮想CPU負荷決定部200で特定された各タスクキューにおける負荷状況に基づいて、各物理CPU1a〜1cそれぞれの処理負荷を特定する。そして、仮想CPU負荷分散部201は、特定した各物理CPU1a〜1cについての処理負荷に基づいて、各仮想CPU6a〜6dの物理CPU1a〜1cへの分配を決定する。具体的には、仮想CPU負荷決定部200は、RTタスクを有する複数の仮想CPUのうち同一の物理CPUに分配されているものが存在するか否かを判断する(ステップS125)。
同一の物理CPUに分配されているものが存在すると判断する場合には(ステップS125における「Yes」)、仮想CPU負荷決定部200は、RTタスクを有していない仮想CPUが分配されている物理CPUを検索する(ステップS130)。検索結果によりRTタスクを有していない仮想CPUが分配されている物理CPUが見つかった場合(ステップS135における「Yes」)、見つかった物理CPUの処理負荷は低いと特定する(ステップS140)。
仮想CPU負荷分散部201は、新たなRTタスクが登録された仮想CPUと、処理負荷が低いと特定された物理CPUに分配されているRTタスクを有していない仮想CPUとを入れ替える(ステップS145)。
タスク情報通知部が仮想CPUに登録されたタスクはRTタスクでないと判断する場合には(ステップS110における「No」)、RTタスクを有する複数の仮想CPUのうち同一の物理CPUに分配されているものが存在しないと判断する場合(ステップS125における「No」)、及びステップS130による検索結果により、該当する物理CPUが見つからなかった場合(ステップS135における「No」)、処理は終了する。
なお、本処理が実行された後において、仮想CPUスケジュール部202により、各物理CPU1a〜1cそれぞれについて、当該物理CPUに分配された仮想CPUの実行の順番が決定される。
1.4 第1の実施の形態に係る変形例
(1)第1の変形例
第1の変形例において、第1の実施の形態と異なる点は、仮想CPU負荷分散部での分配方法である。以下の説明において、第1の実施の形態と同様の構成要素については、同じ符号を用いて説明する。
第1の変形例における仮想タスク負荷分散部(以下、単に「仮想タスク負荷分散部」という。)は、仮想CPU負荷決定部200で特定された各タスクキューにおける負荷状況から、現時点での物理CPU1a〜1cそれぞれの負荷状況を特定する。
以下、その具体的な機能について説明する。
仮想タスク負荷分散部は、RTタスクを保持する仮想CPU(タスクキュー)が分配されている物理CPU(ここでは、「第1物理CPU」という。)に他の仮想CPUも分配されているかどうかを判断する。
他の仮想CPUも分配されていると判断する場合には、仮想タスク負荷分散部は、RTタスクを保持した仮想CPUが分配されていない物理CPU(ここでは、「「第2物理CPU」という。」が存在するときには第2物理CPUの負荷が低いと判断し、当該第2物理CPUに対して、第1物理CPUに分配されている他の仮想CPUを再分配する。
(2)具体例
ここで、上記で説明した仮想CPU負荷分散部の機能を適用した分配方法の具体例について説明する。
図7(a)は、図3におけるRTタスク30が仮想CPU6a(タスクキュー100a)から仮想CPU6b(タスクキュー100b)へ移動した場合における、各仮想CPU6a〜6d(タスクキュー100a〜100d)の一例を示すものである。
図7(a)では、物理CPU1bに2つの仮想CPU6b、6cが分配されており、仮想CPU6bにはRTタスク30が登録され、仮想CPU6cにはRTタスクは登録されていない。そして、仮想CPU6aにはRTタスク30aが登録され、仮想CPU6dにはRTタスクは登録されていない。この場合、仮想CPU負荷分散部201は、物理CPU1bについて、RTタスクを保持する仮想CPU6bとRTタスクを保持しない仮想CPU6cとが同一の物理CPU1bに分配されているので、処理負荷に偏りが生じていると判断し、偏りが生じないよう、つまりRTタスク30を持つ仮想CPU6bを分配した物理CPU1bには、他の仮想CPUを分配しないよう新たな分配を決定し、決定された分配となるよう変更する。図7(b)は、その結果の一例を示すものであり、仮想CPU6cに対する物理CPUの割り当てを変更している。この例では、RTタスク30が仮想CPU6bに移動された為、仮想CPU6cが、物理CPU1cに分散されている。
RTタスクを保持する仮想CPUが分配されている物理CPUには他の仮想CPUを分配しないようにすることで、RTタスクを保持する仮想CPUについては競合は起こらないので、仮想CPUスケジュール部202は特別の動作をする必要はない。
(3)動作
ここでは、第1の変形例に係る情報処理システムの動作について、第1の実施の形態と異なる点を中心に、図8に示す流れ図を用いて説明する。
先ず、第1の変形例に係る情報処理システムは、図6に示すステップS100からS115を実行する。なお、これらの処理動作については既に説明しているので、ここでの説明は省略する。
ステップS115が実行された後、仮想CPU負荷決定部200は、タスク情報通知部103からの通知を受け取ると、現時点での各タスクキューにおける負荷状況を特定する(ステップS200)。
仮想タスク負荷分散部は、RTタスクを保持する仮想CPUと他の仮想CPUとが同一の物理CPUに分配されているか否かを判断する(ステップS205)。具体的には、仮想タスク負荷分散部は、RTタスクを保持する仮想CPUが分配されている第1物理CPUに他の仮想CPUも分配されているかどうかを判断する。
判断が肯定的である場合には(ステップS205における「Yes」)、仮想CPU負荷分散部は、RTタスクを保持していない仮想CPUが分配されている物理CPUを検索する(ステップS210)。
検索結果によりRTタスクを保持していない仮想CPUが分配されている物理CPUが見つかった場合(ステップS215における「Yes」)、仮想CPU負荷分散部は、見つかった物理CPUの処理負荷は低いと特定し、検索結果により見つかった物理CPU(第2物理CPU)に対して、第1物理CPUに分配されている他の仮想CPUを再分配する。
ステップS205における判断が否定的である場合(ステップS205における「No」)、及びステップS210における検索結果によりRTタスクを保持していない仮想CPUが分配されている物理CPUが見つからなかった場合(ステップS215における「No」)、処理は終了する。
なお、本処理が実行された後において、仮想CPUスケジュール部202により、各物理CPU1a〜1cそれぞれについて、当該物理CPUに分配された仮想CPUの実行の順番が決定される。
(2)第2の変形例
第1の変形例において、第1の実施の形態と異なる点は、仮想タスク負荷分散部での分配方法である。以下の説明において、第1の実施の形態と同様の構成要素については、同じ符号を用いて説明する。
第2の変形例では、通常タスク、RTタスクの双方に対してタスクの負荷を示す値(負荷値)を予め決めておく。
具体的には、本変形例に係る仮想CPU負荷決定部は、タスクキュー100a、100bそれぞれについて当該タスクキューで保持しているタスクの負荷値の合計を対応する仮想CPUの処理の負荷状態とする。
本変形例に係る仮想CPU負荷分散部は各仮想CPU6a〜6dそれぞれの負荷値の合計が物理CPU1a〜1c毎に均等になるように、仮想CPU6a〜6dを分散(分配)する。
(2)具体例
ここで、上記で説明した本変形例に係る仮想CPU負荷分散部の機能を適用した分配方法の具体例について説明する。
図9(a)は、図3におけるRTタスク30が仮想CPU6a(タスクキュー100a)から仮想CPU6b(タスクキュー100b)へ移動した場合における、各仮想CPU6a〜6d(タスクキュー100a〜100d)の一例を示すものである。ここで、通常タスクには負荷値として値1が、RTタスクには負荷値として値10が割り当てられるものとする。
図9(a)では、物理CPU1bに2つの仮想CPU6b、6cが分配されており、仮想CPU6bにはRTタスク30と通常タスク10bとが登録され、仮想CPU6cにはRTタスク30cと通常タスク10cとが登録されている。そして、仮想CPU6aには通常タスク10aが登録され、仮想CPU6dにはRTタスク30dと通常タスク10dとが登録されている。この場合、RTタスク30の移動により、仮想CPU6aの負荷値の合計は11から1へと、仮想CPU6bの負荷値の合計は12から22へとそれぞれ変更される。
そうすると、物理CPU1bに分配されている仮想CPU6b、6cによる負荷値の合計値が22となり、他の物理CPU1a、1cと比べて高いものとなっている。そこで、仮想CPU負荷分散部201は、物理CPU1bについて、処理負荷に偏りが生じていると判断し、偏りが生じないよう、つまり負荷値の合計が均等となるように新たな分配を決定し、決定された分配となるよう変更する。図9(b)は、その結果の一例を示すものであり、仮想CPU6bに対する物理CPUの割り当てを変更している。この例では、仮想CPU6bが物理CPU1aに分散(分配)されている。再分配後の物理CPU1a〜1cそれぞれの負荷値の合計は、12、11、11となりほぼ均等となる。
これにより、RTタスクを持つ仮想CPUが特定の物理CPUに集中することを避けることができる。なお、一般に優先度が高いタスクがリアルタイムタスクとなるので、タスクの負荷はタスクの優先度から決定してもよい。
(3)動作
ここでは、第2の変形例に係る情報処理システムの動作について、図10に示す流れ図を用いて説明する。なお、ここでは、仮想計算機4aにて新たなタスクが生成されたものとして説明する。
タスク負荷分散部101は、新たなタスクが生成されると、各仮想CPU6a、6bのタスクキュー100a、100bそれぞれついて、当該タスクキューに保持されているタスクの優先度の合計値を算出し、これら合計値を各仮想CPU6a、6bの処理負荷とし、新たなタスクが生成されたOS内で最も処理負荷の小さい仮想CPUを特定する(ステップS300)。
タスク登録部102は、特定された仮想CPUのタスクキューに生成された新たなタスクを登録する(ステップS305)。
タスク情報通知部103は、登録された新たなタスクの負荷値を本変形例に係る仮想CPU負荷決定部へ通知する(ステップS310)。
本変形例に係る仮想CPU負荷決定部は、仮想CPU6a〜6d毎に、負荷値の合計を算出する(ステップS315)。
本変形例に係る仮想CPU負荷分散部は、算出された仮想CPU毎の負荷値の合計から物理CPU1a〜1c毎の負荷状況を特定する(ステップS320)。
本変形例に係る仮想CPU負荷分散部は、新たなタスクが登録された仮想CPUを最も負荷の低い物理CPUへ移動した場合の当該物理CPUの負荷を算出する(ステップS325)。
本変形例に係る仮想CPU負荷分散部は、ステップS325で計算された結果のほうが、計算前の結果よりも各物理CPU1a〜1cの負荷が均等化されるか否かを判断する(ステップS330)。
均等化されると判断する場合には(ステップS330における「Yes」)、本変形例に係る仮想CPU負荷分散部は、タスクが登録された仮想CPUを最も負荷の低い物理CPUへ移動する(ステップS335)。
均等化されないと判断する場合には(ステップS330における「No」)、処理は終了する。
なお、本処理が実行された後において、仮想CPUスケジュール部202により、各物理CPU1a〜1cそれぞれについて、当該物理CPUに分配された仮想CPUの実行の順番が決定される。
1.5 第1の実施の形態のまとめ
以上により、本実施の形態に係る情報処理システム1000は、一の仮想CPUでRTタスクが生成されると、各仮想CPUが分配されている物理CPUについてRTタスクが重複しないよう再割付を行うので、RTタスクの競合を避け、RTタスクの実行要求を満たせるように、仮想CPUの負荷を物理CPU間で分散できる。
2.第2の実施の形態
ここでは、第1の実施の形態と異なる点を中心に説明する。なお、第1の実施の形態と同一の構成要素については同一の符号を付するものとする。
図11は、第2の実施の形態における情報処理システム1000aの構成を示す図である。図11の情報処理システム1000aは、図1に示した情報処理システム1000に、割り込み通知部204を追加し、情報処理システム1000の仮想CPU負荷決定部200を仮想CPU負荷決定部203に置き換えたものである。
2.1 構成
ここでは、仮想CPU負荷決定部203及び割り込み通知部204について説明する。
(1)仮想CPU負荷決定部203
仮想CPU負荷決定部203は、第1の実施の形態で示す仮想CPU負荷決定部200の機能と同様の機能とともに、以下の機能を有する。
仮想CPU負荷決定部203は、割り込み通知部204で割り込みが受け付けられると、割り込み対象の仮想CPUに対して割り込み通知を発行すべきか否かを判断し、発行すべきと判断する場合には、仮想CPU負荷決定部203は、割り込み通知を発行すべき旨の指示(割り込み通知指示)を割り込み通知部204へ通知する。
なお、割り込み通知を発行すべきか否かを判断する動作については、後述する。
特定し、その結果を割り込み通知部204に通知する。
(2)割り込み通知部204
割り込み通知部204は、入出力装置2からの割り込みを受け付けると、割り込みの対象である仮想CPUを特定する。そして、割り込み通知部204は、仮想CPU負荷決定部203により特定した仮想CPUに対する割り込み通知指示を受け取ると、割り込みの通知を即座に行う。
ここで、割り込み通知を即座に行うとは、他の割り込み通知(リアルタイムタスク以外のタスクに関する割り込み)が発行待ちの状態であっても、リアルタイムタスクに係る割り込みを発行待ちの状態とすることなく、他の割り込み通知と比較して最優先に発行することである。
従来、仮想計算機技術では、割り込みの通知は遅らせることができるので、例えば、対象の仮想CPUが実行されていない場合、実行を待ってから仮想計算機に通知するといったことがある。例えば、タスクは一時的に動作を止めるサスペンド状態になり、サスペンド状態のタスクは割り込みを契機として再実行される。
従って、RTタスクを持つ仮想CPUに対する割り込み通知は、RTタスクの再動作の契機になっている可能性がある。そこで、割り込み通知部204は、即座の割り込み通知でRTタスクの即座の再動作を可能にする。また、RTタスクを持つ仮想CPUと他の仮想CPUが同じ物理CPUで実行されている場合、他の仮想CPUに割り込みを即座に通知すると、その処理によりRTタスクを持つ仮想CPUの実行が中断する可能性がある。このような場合は、RTタスクを持つ物理CPUがアイドル状態になるまで、同じ物理CPUに分配されている他の仮想CPUへの割り込み配送を遅延させても良い。
2.2 動作
仮想CPUの分配に係る動作は、第1の実施の形態で示す図5、6と同様の動作で実現できるので、ここでの説明は省略する。
以下、割り込み通知があった場合における動作について図12に示す流れ図を用いて説明する。
割り込み通知部204は、入出力装置2から割り込みを受け付ける(ステップS400)。
割り込み通知部204は、受け付けた割り込みに対象となる仮想CPUを特定する(ステップS405)。
仮想CPU負荷決定部203は、割り込み通知部204で特定された仮想CPUがRTタスクを保持しているか否かを判断する(ステップS410)。
特定された仮想CPUがRTタスクを保持していると判断する場合(ステップS410における「Yes」)、仮想CPU負荷決定部203は、割り込み通知指示を割り込み通知部204へ通知する。そして、割り込み通知部204は、割り込み通知指示を受け付けると、即座に割り込み通知を特定した仮想CPUへ発行する(ステップS430)。
特定した仮想CPUがRTタスクを保持していないと仮想CPU負荷決定部203が判断する場合(ステップS410における「No」)、仮想CPU負荷決定部203は、さらに、特定された仮想CPUと他の仮想CPUとが同一の物理CPUに分配されているか否かを判断する(ステップS415)。
同一の物理CPUに分配されていると判断する場合(ステップS415における「Yes」)、仮想CPU負荷決定部203は、当該他の仮想CPUはRTタスクを保持しているか否かを判断する(ステップS420)。
他の仮想CPUがRTタスクを保持していると判断する場合(ステップS420における「Yes」)、仮想CPU負荷決定部203は、当該物理CPUがアイドル状態であるか否かを判断する(ステップS425)。
アイドル状態であると判断する場合(ステップS425における「Yes」)、仮想CPU負荷決定部203は、割り込み通知指示を割り込み通知部204へ通知する。そして、割り込み通知部204は、割り込み通知指示を受け付けると、割り込み通知を特定した仮想CPUへ発行する(ステップS430)。
また、特定した仮想CPUが分配された物理CPUに他の仮想CPUが分配されていない場合(ステップS415における「No」)、及び特定した仮想CPUが分配された物理CPUに他の仮想CPUにも分配されているか、当該他の仮想タスクがRTタスクを保持していない場合(ステップS420における「No」)、仮想CPU負荷決定部203は、割り込み通知指示を割り込み通知部204へ通知する。そして、割り込み通知部204は、割り込み通知指示を受け付けると、即座に割り込み通知を特定した仮想CPUへ発行する(ステップS430)。
3.第3の実施の形態
ここでは、第3の実施の形態について、第1の実施の形態と異なる点を中心に説明する。なお、第1の実施の形態と同一の構成要素については同一の符号を付するものとする。
図13は、第3の実施の形態における情報処理システム1000bの構成を示す図である。図13の情報処理システム1000bは、図1に示した情報処理システム1000に、リアルタイムタスク実行通知部104を追加し、情報処理システム1000の仮想CPU負荷決定部200及び仮想CPU負荷分散部201それぞれを仮想CPU負荷決定部205及び仮想CPU負荷分散部206に置き換えたものである。
3.1 構成
以下、リアルタイムタスク実行通知部104、仮想CPU負荷決定部205及び仮想CPU負荷分散部206それぞれの機能について説明する。
(1)リアルタイムタスク実行通知部104
リアルタイムタスク実行通知部104は、RTタスクの動作が開始された時間を示す時間情報を仮想CPU負荷決定部205に通知するものである。
ここで、RTタスクに係る時間情報は、例えばOS20a内のタスクスケジューラ(図示せず)から取得される。
(2)仮想CPU負荷決定部205
仮想CPU負荷決定部205は、RTタスクの時間情報を受け取ると、受け取った時間情報と、前回受け取った時間情報とから当該RTタスクの動作周期(起動周期)を算出し、算出した動作周期を、当該RTタスクを保持する仮想CPUの負荷として記録する。
(3)仮想CPU負荷分散部206
仮想CPU負荷分散部206は、第1の実施の形態における仮想CPU負荷分散部201の機能に、以下に示す機能を備える。
仮想CPU負荷分散部206は、再分配を決定する際に、RTタスクを保持する仮想CPUが分配されていない物理CPUを検索した場合に、当該物理CPUが見つからないときには、新たに生成されたRTタスクを保持する仮想CPUを、動作周期が最も長い周期であるRTタスクを保持する仮想CPUが分配された物理CPUに分配する。
3.2 分配の具体例
以下において、本実施の形態での各仮想CPUの分散の方法の例である。
図14(a)は、分配変更前の状態を示している。具体的には、物理CPU1bに2つの仮想CPU6b、6cが分配されており、仮想CPU6bには新たに生成されたRTタスク40が、仮想CPU6cにはRTタスク30cが、それぞれ登録されている。そして、他の仮想CPU6a、6dについても、それぞれRTタスク30a、30dが登録されている。この場合、仮想CPU負荷分散部201は、全ての仮想CPUにRTタスクが存在するので、各物理CPU1aから1cに高々1個のRTタスクが割り当てられるように、仮想CPUを再分配することができない。そこで、仮想CPU負荷分散部206は、新たに生成されたRTタスク40を保持する仮想CPU6bを、動作周期が最も長い周期であるRTタスクを保持する仮想CPUを検索し、検索された仮想CPUが分配されている物理CPUに、仮想CPU6bを再分配する。
図14(b)は、その結果の一例を示すものであり、仮想CPU6bを、分配先を物理CPU1bから、動作周期が最も長い周期であるRTタスクを保持する仮想CPU6aが分配されている物理CPU1aに変更している。
このように、再分配をすることで、新たなRTタスクは、動作周期が長いRTタスクとならば競合する可能性は低い。従って、仮想CPU6aのRTタスク30aと仮想CPU6bのRTタスク40とが同時に動作を要求される可能性は低く、リアルタイム要求を満たしやすい。さらにRTタスクを持つ仮想CPUの数が増える場合は、例えば、物理CPUごとに分配されている複数の仮想CPU6a〜6dそれぞれにおけるリアルタイムタスクの周期の内、最も短いものを物理CPUの動作周期として分配先を決めても良い。
3.3 動作
ここでは、第3の実施の形態に係る情報処理システム1000bの動作について説明する。
(1)動作周期更新処理
ここでは、仮想CPU負荷決定部205がRTタスク毎に管理している動作周期の更新の処理の動作について、図15に示す流れ図を用いて説明する。
リアルタイムタスク実行通知部104は、管理対象のタスクキューで保持されている一のRTタスクの動作が開始されたか否かを判断する(ステップS400)。
動作が開始されたと判断する場合には(ステップS400における「Yes」)、リアルタイムタスク実行通知部104は、当該RTタスクに係る時間情報を仮想CPU負荷決定部205に通知する(ステップS405)。
仮想CPU負荷決定部205は、リアルタイムタスク実行通知部104から動作が開始されたRTタスクについて、前回の動作情報と今回受け取った動作情報とから動作周期を算出し、管理している当該RTタスクの動作周期を更新する(ステップS410)。
(2)タスク生成・移動処理
ここでは、情報処理システム1000bで行われるタスクの生成・移動処理の動作について、第1の実施の形態と異なる点を中心に、図16に示す流れ図を用いて説明する。
先ず、情報処理システム1000bは、図6に示すステップS100からS115を実行する。なお、これらの処理動作については既に説明しているので、ここでの説明は省略する。
ステップS115が実行された後において、仮想CPU負荷決定部205は、タスク情報通知部103からの通知を受け取ると、現時点での各タスクキューにおける負荷状況を特定する(ステップS500)。
仮想CPU負荷分散部206は、新たなRTタスクを保持する仮想CPUと他の仮想CPUとが同一の物理CPUに分配されているか否かを判断する(ステップS505)。具体的には、仮想CPU負荷分散部206は、新たなRTタスクを保持する仮想CPUが分配されている物理CPUに他の仮想CPUも分配されているかどうかを判断する。
判断が肯定的である場合には(ステップS505における「Yes」)、仮想CPU負荷分散部は、RTタスクを保持していない仮想CPUが分配されている物理CPUを検索する(ステップS510)。
検索結果によりRTタスクを保持していない仮想CPUが分配されている物理CPUが見つかった場合(ステップS515における「Yes」)、仮想CPU負荷分散部206は、見つかった物理CPUの処理負荷は低いと特定し、検索結果により見つかった物理CPUに対して、新たなRTタスクを保持する仮想CPUが分配されている物理CPUに分配されている他の仮想CPUを再分配する。
ステップS510における検索結果によりRTタスクを保持していない仮想CPUが分配されている物理CPUが見つからなかった場合(ステップS515における「No」)、仮想CPU負荷分散部206は、新たなRTタスクが登録された仮想CPUを、動作周期の最も長いRTタスクを保持する仮想CPUが分配された物理CPUへ移動する(ステップS525)。
ステップS505における判断が否定的である場合(ステップS205における「No」)、処理は終了する。
なお、本処理が実行された後において、仮想CPUスケジュール部202により、各物理CPU1a〜1cそれぞれについて、当該物理CPUに分配された仮想CPUの実行の順番が決定される。
4.第4の実施の形態
ここでは、第4の実施の形態について、第1の実施の形態と異なる点を中心に説明する。なお、第1の実施の形態と同一の構成要素については同一の符号を付するものとする。
図17は、第4の実施の形態における情報処理システム1000cの構成を示す図である。図17の情報処理システム1000cは、図1に示した情報処理システム1000に、仮想CPU処理能力通知部207を追加し、情報処理システム1000のタスク負荷分散部101をタスク負荷分散部105に置き換えたものである。
4.1 構成
(1)仮想CPU処理能力通知部207
仮想CPU処理能力通知部207は、仮想CPUスケジュール部202より仮想CPUにどれだけの物理CPU時間を割り当てるかの情報を取得する。例えば、物理CPU時間の50%を割り当てるといった情報である。
仮想CPU処理能力通知部207は、各物理CPU1aから1cの割り当て時間から仮想CPU6aから6dの処理能力を算出し、タスク負荷分散部105に通知する。
(2)タスク負荷分散部105
タスク負荷分散部105は、CPUの処理能力を考慮してタスクの分散を決定するものである。具体的には、タスク負荷分散部105は、仮想CPU処理能力通知部207から仮想CPU6aから6dそれぞれの処理能力に係る情報を受け取ると、各仮想CPU6aから6dそれぞれの処理能力に基づいて、処理能力が他より低い仮想CPUにはタスクの分配を抑制する。
これにより、タスク負荷分散部105は、物理CPU時間の少ない仮想CPUに対してはタスクの分配を抑制する。特定の物理CPUに多くの仮想CPUが分配されている場合、その仮想CPUのタスクキューへのRTタスクの登録が抑制されるので、特定の物理CPUにRTタスクが集中することを抑制することができる。
4.2 動作
ここで、情報処理システム1000cで行われるタスク生成・移動処理は、図6で示す動作におけるステップS100を、各仮想CPU6aから6dそれぞれの処理能力に基づいて新たなタスクの格納先を決定するように変更するだけで実現できるので、ここでの詳細な説明は省略する。
5.変形例
以上、実施の形態及び変形例に基づいて説明したが、本発明は上記の実施の形態及び変形例に限られない。例えば、以下のような変形例が考えられる。
(1)上記各実施の形態では、情報処理システムは、新たにタスクが生成された場合に、当該新たなタスクの移動を決定したが、これに限定されない。
情報処理システムは、タスク負荷分散部を一定周期で呼び出し、負荷が均等になるように各タスクキュー間でのタスクの移動を決定してもよい。
(2)上記各実施の形態では、仮想計算機を2つとしたが、これに限定されない。
情報処理システムに、3つ以上の仮想計算機を設けてもよい。
(3)上記各実施の形態において、仮想CPUスケジュール部は、時分割により、タスクキューで保持する各タスクの実行順序を決定したが、これに限定されない。
OS20a及びOS20bは、RTタスクの終了をハイパバイザ5に通知し、仮想CPUスケジュール部は、終了の通知までRTタスクを持つ仮想CPUの実行を続けるといった仮想CPUスケジュールを行ってもよい。
(4)上記各実施の形態において、RTタスクと通常タスクとを優先度により区別したが、これに限定されない。
例えば、優先度以外にリアルタイムタスクを区別する機能を持つOSを用いて、RTタスクと通常タスクと区別してもよい。あるいは、設計上の事項として、リアルタイム性能を要求するタスクには一定以上の優先度を付与する場合、この優先度以上のタスクをリアルタイムタスクとみなしてもよい。
本発明におけるRTタスクとは、優先度やタスクの種別を参照にして、特に優先しての実行を要求するタスクとして扱われるタスクに相当するものである。
(5)上記第3の実施の形態において、動作情報をOSのタスクスケジュールから取得するとしたが、これに限定されない。
タスクの動作時間を記録しているOSを用いて、当該OSによる記録を利用してもよい。
または、タスク登録部によるタスクキューへのタスクの登録で、リアルタイムタスクの動作の時間情報がわかる場合、タスク情報通知部がリアルタイムタスク実行通知部を兼ねてもよい。
(6)上記第3の実施の形態において、再分配に用いる情報として、RTタスクの動作周期としたが、これに限定されない。
例えば、RTタスクにおける平均の動作間隔を擬似的な周期としてもよい。また、周期だけでなく、RTタスクの動作の時間を仮想CPUの分散の決定に考慮しても良い。
(7)なお、本発明の各機能ブロックは典型的にはソフトウェアとして実現されるが、集積回路であるLSIとして実現しても良い。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field ProgrammableGate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、その技術を用いて機能ブロックの集積化を行ってもよい。
(8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
6.補足
(1)本発明の一態様である、情報処理システムは、処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、前記ハイパバイザは、各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有することを特徴とする。
この構成によると、情報処理システムは、各プロセッサ間で処理負荷量の偏りが生じているときにはプロセッサとタスクグループとの対応付けを変更するので、複数のプロセッサ間で処理負荷の均衡を保つようにすることができる。
(2)ここで、前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更するとしてもよい。
この構成によると、情報処理システムは、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようにプロセッサとタスクグループとの対応付けを変更するので、リアルタイムタスクに係る処理負荷の均衡を保つことができる。これにより、リアルタイムタスクに係る処理負荷の均衡が保たれるので、リアルタイムタスクに対するリアルタイム要求を満たすことができる。
(3)ここで、タスクグループに含まれるリアルタイムタスクに係る前記処理負荷量は、当該タスクグループに含まれるリアルタイムタスクの個数であり、前記変更手段は、各プロセッサ間で当該プロセッサで処理すべきリアルタイムタスクの個数に偏りが生じているときには、処理すべきリアルタイムタスクの個数が分散されるようプロセッサとタスクグループの対応付けを変更するとしてもよい。
この構成によると、情報処理システムは、リアルタイムタスクの個数を処理負荷量とするので、容易に各プロセッサの処理負荷量を特定することができる。
(4)ここで、前記変更手段は、複数のタスクグループが対応付けられたプロセッサにおいて、少なくとも2つのタスクグループそれぞれにリアルタイムタスクを含んでいる場合に、当該プロセッサについてリアルタイムタスクに係る処理負荷量の偏りが生じていると判断し、当該プロセッサにおける前記少なくとも2つのタスクグループそれぞれを個別のプロセッサへ対応付けるとしてもよい。
この構成によると、情報処理システムは、同一のプロセッサに対応付けられた少なくとも2つのタスクグループそれぞれを、個別のプロセッサへ対応付けることで、リアルタイムタスクに係る処理負荷の均衡を保つことができる。
(5)ここで、前記変更手段は、複数のタスクグループが対応付けられたプロセッサにおいて、1つのタスクグループにリアルタイムタスクが属している場合に、当該プロセッサについて処理負荷量の偏りが生じていると判断し、当該プロセッサと前記1つのタスクグループのみと対応付け、当該プロセッサに対応付けられていた他のタスクグループを他のプロセッサへ対応付けるとしてもよい。
この構成によると、情報処理システムは、1つのプロセッサに、リアルタイムタスクを保持する1つのタスクグループを対応付けることで、リアルタイムタスクを保持しない他のタスクグループとのスケジューリングを行う必要がないので、リアルタイムタスクに対するリアルタイム要求を満たすことができる。
(6)ここで、前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイムタスクの動作間隔を示す値であり、前記変更手段は、一のプロセッサに対して動作間隔の短いリアルタイムタスクが属する第1タスクグループと他のリアルタイムタスクが属する第2タスクグループとが対応付けられている場合に、当該一のプロセッサについて処理負荷量の偏りが生じていると判断し、前記第2タスクグループの対応付けを、動作間隔が前記第1タスクグループの動作間隔よりも長いタスクグループが属する第3タスクグループが対応付けられているプロセッサへ変更するとしてもよい。
この構成によると、情報処理システムは、第2タスクグループの対応付けを、第3タスクグループが対応付けられているプロセッサへ変更するので、第2タスクグループにおけるリアルタイムタスクと、第3タスクグループにおけるリアルタイムタスクとで競合が発生する確率を低くすることができる。
(7)ここで、前記ハイパバイザは、さらに、割り込みを受け付けると、リアルタイムタスクを含むタスクグループに含まれるタスクのものである場合には、当該リアルタイムタスクを含むタスクグループの実行制御を行うOSに当該割り込みの通知を即座に行うとしてもよい。
この構成によると、情報処理システムは、リアルタイムタスクに係る割り込みが発生すると、即座に割り込み通知を行うので、リアルタイムタスクに対するリアルタイム要求を満たすことができる。
(8)ここで、前記タスクには、処理の優先度が対応付けられており、前記変更手段は、各タスクグループにおいて当該タスクグループに属するタスクの優先度の合計値に基づき、各プロセッサ間で優先度の合計値に偏りが生じている場合に前記処理負荷量に偏りが生じていると判断し、優先度の合計値が平均化されるようプロセッサとタスクグループの対応付けを変更するとしてもよい。
この構成によると、情報処理システムは、各タスクグループにおいて当該タスクグループに属するタスクの優先度の合計値を処理負荷量とするので、容易に各プロセッサの処理負荷量を特定することができる。
(9)ここで、前記ハイパバイザは、さらに、各OSに対して、当該OSに属する各タスクグループについて、当該タスクグループが割り当てられたプロセッサにおける当該タスクグループの処理能力を通知する通知手段を備え、各OSは、新たなタスクを生成すると、通知された処理能力のうち高い処理能力を有するタスクグループに前記新たなタスクを割り当てるとしてもよい。
この構成によると、情報処理システムは、各プロセッサについて当該プロセッサに対応付けられたタスクグループの処理能力に基づいて、新たに生成されたタスクを割り当てるので、タスクの割り当て時点で、複数のプロセッサ間で処理負荷の均衡を保つようにすることができる。
(10)ここで、前記ハイパバイザは、各プロセッサにおいて、当該プロセッサに対応付けられた1又は複数のタスクグループの処理スケジュールを決定するスケジュール決定手段を備え、前記処理能力は、前記各タスクグループに対する処理スケジュールに基づく処理時間を示すものであるとしてもよい。
この構成によると、情報処理システムは、各プロセッサについて当該プロセッサに対応付けられたタスクグループの処理スケジュールに基づいて、新たに生成されたタスクを割り当てることができる。
本発明に係る情報処理システムは、大型計算機、パーソナルコンピュータのみならず、デジタルテレビ、蓄積再生装置等の各種家電機器、通信機器、産業機器、制御機器、車載機器などのように、仮想計算機を用いた処理を実行する機器に有効である。
1a〜1c 物理CPU
2 入出力装置
3 負荷分散装置
4a、4b 仮想計算機
5 ハイパバイザ
6a〜6d 仮想CPU
100a〜100d タスクキュー
101 タスク負荷分散部
102 タスク登録部
103 タスク情報通知部
200 仮想CPU負荷決定部
201 仮想CPU負荷分散部
202 仮想CPUスケジュール部
1000 情報処理システム

Claims (11)

  1. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、
    前記ハイパバイザは、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、
    前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    タスクグループに含まれるリアルタイムタスクに係る前記処理負荷量は、当該タスクグループに含まれるリアルタイムタスクの個数であり、
    前記変更手段は、各プロセッサ間で当該プロセッサで処理すべきリアルタイムタスクの個数に偏りが生じているときには、処理すべきリアルタイムタスクの個数が分散されるようプロセッサとタスクグループの対応付けを変更する
    ことを特徴とする情報処理システム。
  2. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、
    前記ハイパバイザは、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、
    前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    前記変更手段は、
    複数のタスクグループが対応付けられたプロセッサにおいて、少なくとも2つのタスクグループそれぞれにリアルタイムタスクを含んでいる場合に、当該プロセッサについてリアルタイムタスクに係る処理負荷量の偏りが生じていると判断し、
    当該プロセッサにおける前記少なくとも2つのタスクグループそれぞれを個別のプロセッサへ対応付ける
    ことを特徴とする情報処理システム。
  3. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、
    前記ハイパバイザは、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、
    前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    前記変更手段は、
    複数のタスクグループが対応付けられたプロセッサにおいて、1つのタスクグループにリアルタイムタスクが属している場合に、当該プロセッサについて処理負荷量の偏りが生じていると判断し、
    当該プロセッサと前記1つのタスクグループのみと対応付け、当該プロセッサに対応付けられていた他のタスクグループを他のプロセッサへ対応付ける
    ことを特徴とする情報処理システム。
  4. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、
    前記ハイパバイザは、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、
    前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイムタスクの動作間隔を示す値であり、
    前記変更手段は、
    一のプロセッサに対して動作間隔の短いリアルタイムタスクが属する第1タスクグループと他のリアルタイムタスクが属する第2タスクグループとが対応付けられている場合に、当該一のプロセッサについて処理負荷量の偏りが生じていると判断し、
    前記第2タスクグループの対応付けを、動作間隔が前記第1タスクグループの動作間隔よりも長いタスクグループが属する第3タスクグループが対応付けられているプロセッサへ変更する
    ことを特徴とする情報処理システム。
  5. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、
    前記ハイパバイザは、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、
    前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    前記ハイパバイザは、さらに、
    割り込みを受け付けると、リアルタイムタスクを含むタスクグループに含まれるタスクのものである場合には、当該リアルタイムタスクを含むタスクグループの実行制御を行うOSに当該割り込みの通知を即座に行う
    ことを特徴とする情報処理システム。
  6. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、
    前記ハイパバイザは、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、
    前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    前記ハイパバイザは、さらに、
    各OSに対して、当該OSに属する各タスクグループについて、当該タスクグループが割り当てられたプロセッサにおける当該タスクグループの処理能力を通知する通知手段を備え、
    各OSは、新たなタスクを生成すると、通知された処理能力のうち高い処理能力を有するタスクグループに前記新たなタスクを割り当てる
    ことを特徴とする情報処理システム。
  7. 前記ハイパバイザは、
    各プロセッサにおいて、当該プロセッサに対応付けられた1又は複数のタスクグループの処理スケジュールを決定するスケジュール決定手段を備え、
    前記処理能力は、前記各タスクグループに対する処理スケジュールに基づく処理時間を示すものである
    ことを特徴する請求項6に記載の情報処理システム。
  8. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備える情報所処理システムにおいて、前記ハイパバイザで用いられる処理方法であって、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得ステップと、
    前記取得ステップにより逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更ステップとを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更ステップは、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    タスクグループに含まれるリアルタイムタスクに係る前記処理負荷量は、当該タスクグループに含まれるリアルタイムタスクの個数であり、
    前記変更ステップは、各プロセッサ間で当該プロセッサで処理すべきリアルタイムタスクの個数に偏りが生じているときには、処理すべきリアルタイムタスクの個数が分散されるようプロセッサとタスクグループの対応付けを変更する
    ことを特徴とする処理方法。
  9. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備える情報所処理システムにおいて前記ハイパバイザで用いられる処理プログラムであって、
    コンピュータに、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得ステップと、
    前記取得ステップにより逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更ステップとを実行させ、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更ステップでは、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更させ、
    タスクグループに含まれるリアルタイムタスクに係る前記処理負荷量は、当該タスクグループに含まれるリアルタイムタスクの個数であり、
    前記変更ステップでは、各プロセッサ間で当該プロセッサで処理すべきリアルタイムタスクの個数に偏りが生じているときには、処理すべきリアルタイムタスクの個数が分散されるようプロセッサとタスクグループの対応付けを変更させる
    ための処理プログラム。
  10. 前記処理プログラムは、
    コンピュータ読み取り可能な記録媒体に記録されている
    ことを特徴とする請求項9に記載の処理プログラム。
  11. 処理対象の各タスクを何れかのタスクグループに属するものと定めて同一タスクグループに属する全タスクが同一プロセッサ上で実行されるよう各タスクの実行制御を行うOSを複数含むOS群と、
    複数のプロセッサ各々に、前記各OSのタスクグループのうち1又は複数を対応付け、前記各OSに、タスクグループに対応付けたプロセッサ上で当該タスクグループに属するタスクを実行させるようタスクの実行制御を行わせるハイパバイザとを備え、
    前記ハイパバイザは、
    各OSについてのタスクグループ各々の処理負荷量を示す負荷情報を逐次取得する取得手段と、
    前記取得手段により逐次取得した負荷情報が示す処理負荷量を参照して、各プロセッサ間で処理負荷量に偏りが生じているときには、プロセッサとタスクグループの対応付けを変更する変更手段とを有し、
    前記処理負荷量は、各タスクグループについて当該タスクグループに含まれるリアルタイム性の処理が要求されるリアルタイムタスクに係る処理負荷量であり、
    前記変更手段は、各プロセッサ間でリアルタイムタスクに係る処理負荷量に偏りが生じているときには、リアルタイムタスクに係る処理負荷量が分散されるようプロセッサとタスクグループの対応付けを変更し、
    タスクグループに含まれるリアルタイムタスクに係る前記処理負荷量は、当該タスクグループに含まれるリアルタイムタスクの個数であり、
    前記変更手段は、各プロセッサ間で当該プロセッサで処理すべきリアルタイムタスクの個数に偏りが生じているときには、処理すべきリアルタイムタスクの個数が分散されるようプロセッサとタスクグループの対応付けを変更する
    ことを特徴とする集積回路。
JP2012517104A 2010-05-24 2011-04-20 情報処理システム Expired - Fee Related JP5770721B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012517104A JP5770721B2 (ja) 2010-05-24 2011-04-20 情報処理システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010117905 2010-05-24
JP2010117905 2010-05-24
PCT/JP2011/002311 WO2011148563A1 (ja) 2010-05-24 2011-04-20 情報処理システム
JP2012517104A JP5770721B2 (ja) 2010-05-24 2011-04-20 情報処理システム

Publications (2)

Publication Number Publication Date
JPWO2011148563A1 JPWO2011148563A1 (ja) 2013-07-25
JP5770721B2 true JP5770721B2 (ja) 2015-08-26

Family

ID=45003564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012517104A Expired - Fee Related JP5770721B2 (ja) 2010-05-24 2011-04-20 情報処理システム

Country Status (4)

Country Link
US (1) US8719834B2 (ja)
JP (1) JP5770721B2 (ja)
CN (1) CN102473118B (ja)
WO (1) WO2011148563A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7295485B2 (ja) 2020-02-27 2023-06-21 日本製鉄株式会社 冷却装置及び冷却方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032401B2 (en) * 2011-05-16 2015-05-12 Panasonic Intellectual Property Corporation Of America Virtual computer system having a first virtual computer that executes a protected process, a second virtual computer that executes an unprotected process, and a hypervisor that controls the first and second virtual computers
CN103930875B (zh) 2011-06-16 2017-05-03 尤塞瑞斯公司 用于加速业务数据处理的软件虚拟机
US9459898B2 (en) * 2011-10-06 2016-10-04 Hitachi, Ltd. Virtual server processing control method, system, and virtual server processing control management server
JP6169615B2 (ja) 2012-01-27 2017-07-26 マーベル ワールド トレード リミテッド システムコントローラのfifoコマンドキューを動的に管理する方法、集積回路およびシステム
JP5624084B2 (ja) * 2012-06-04 2014-11-12 株式会社日立製作所 計算機、仮想化機構、及びスケジューリング方法
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
US9069594B1 (en) * 2012-12-27 2015-06-30 Emc Corporation Burst buffer appliance comprising multiple virtual machines
US9396012B2 (en) * 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
AU2014311461B2 (en) * 2013-08-26 2017-02-16 VMware LLC CPU scheduler configured to support latency sensitive virtual machines
US9250953B2 (en) 2013-11-12 2016-02-02 Oxide Interactive Llc Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system
CN103825842B (zh) * 2014-02-28 2017-06-23 新华三技术有限公司 一种多cpu系统的数据流处理方法和装置
US10175885B2 (en) * 2015-01-19 2019-01-08 Toshiba Memory Corporation Memory device managing data in accordance with command and non-transitory computer readable recording medium
JP6447217B2 (ja) * 2015-02-17 2019-01-09 富士通株式会社 実行情報通知プログラム、情報処理装置および情報処理システム
JP6547363B2 (ja) * 2015-03-26 2019-07-24 日本電気株式会社 管理装置、管理装置の制御方法、及びプログラム
US10002016B2 (en) * 2015-07-23 2018-06-19 Red Hat, Inc. Configuration of virtual machines in view of response time constraints
ITUA20161426A1 (it) * 2016-03-07 2017-09-07 Ibm Dispaccio di lavori per esecuzione in parallelo da processori multipli
CN105955807B (zh) * 2016-04-20 2023-10-31 上海瀚银信息技术有限公司 一种任务处理系统及方法
US11281482B2 (en) * 2016-12-14 2022-03-22 Intel Corporation I/O emulation with abortion in virtualized environments including transfer of portions of non-real time I/O emulation to work threads prior to switching contexts
US10789097B2 (en) * 2017-02-16 2020-09-29 Nasdaq Technology Ab Methods and systems of scheduling computer processes or tasks in a distributed system
CN112005177A (zh) * 2018-04-27 2020-11-27 三菱电机株式会社 数据处理装置、任务控制方法及程序
US11726827B2 (en) * 2021-02-19 2023-08-15 Vast Data Ltd. Hierarchical workload allocation in a storage system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242512A (ja) * 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
JP2007018268A (ja) * 2005-07-07 2007-01-25 Sumitomo Heavy Ind Ltd タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
JP2009237858A (ja) * 2008-03-27 2009-10-15 Chugoku Electric Power Co Inc:The サーバタスク管理プログラム及びサーバタスク管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148324A (en) * 1998-01-05 2000-11-14 Lucent Technologies, Inc. Prioritized load balancing among non-communicating processes in a time-sharing system
US20020099759A1 (en) * 2001-01-24 2002-07-25 Gootherts Paul David Load balancer with starvation avoidance
US20050108717A1 (en) * 2003-11-18 2005-05-19 Hong Steve J. Systems and methods for creating an application group in a multiprocessor system
JP3862715B2 (ja) * 2004-06-01 2006-12-27 株式会社ソニー・コンピュータエンタテインメント タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
EP1615141B1 (en) * 2004-07-01 2018-03-07 Harman Becker Automotive Systems GmbH A computing architecture for a mobile multimedia system used in a vehicle
JP4410661B2 (ja) * 2004-11-09 2010-02-03 株式会社日立製作所 分散制御システム
US8468533B2 (en) * 2008-04-28 2013-06-18 Panasonic Corporation Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target
WO2011027302A1 (en) * 2009-09-02 2011-03-10 Plurality Ltd. Associative distribution units for a high flow-rate synchronizer/scheduler

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242512A (ja) * 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
JP2007018268A (ja) * 2005-07-07 2007-01-25 Sumitomo Heavy Ind Ltd タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
JP2009237858A (ja) * 2008-03-27 2009-10-15 Chugoku Electric Power Co Inc:The サーバタスク管理プログラム及びサーバタスク管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7295485B2 (ja) 2020-02-27 2023-06-21 日本製鉄株式会社 冷却装置及び冷却方法

Also Published As

Publication number Publication date
CN102473118B (zh) 2016-10-12
WO2011148563A1 (ja) 2011-12-01
US8719834B2 (en) 2014-05-06
JPWO2011148563A1 (ja) 2013-07-25
US20120117567A1 (en) 2012-05-10
CN102473118A (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
JP5770721B2 (ja) 情報処理システム
US10733026B2 (en) Automated workflow selection
JP6294586B2 (ja) 命令スレッドを組み合わせた実行の管理システムおよび管理方法
JP3678414B2 (ja) 多重プロセッサ・システム
CN109997112B (zh) 数据处理
US8190864B1 (en) APIC implementation for a highly-threaded x86 processor
JP5643190B2 (ja) 局所的集合内のタスクを汎用的集合に割り当てるための方法及びコンピュータ読取可能記録媒体
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
KR20180053359A (ko) 다중-버전형 태스크들의 효율적 스케줄링
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US20090064165A1 (en) Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
US20150121387A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
JP4992408B2 (ja) ジョブ割当プログラム、方法及び装置
Yao et al. New scheduling algorithms for improving performance and resource utilization in hadoop YARN clusters
WO2007020739A1 (ja) スケジューリング方法およびスケジューリング装置
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP2007316710A (ja) マルチプロセッサシステム、ワークロード管理方法
JP2019114173A (ja) 情報処理装置、情報処理方法及びプログラム
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
JP5577745B2 (ja) クラスタシステム、プロセス配置方法、及びプログラム
JP2010218151A (ja) 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法
JP6285850B2 (ja) プロセスマイグレーション方法及びクラスタシステム
Liu et al. Improving resource utilization of a cloud-based testing platform for android applications
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
CN116157778A (zh) 共享物理主机上混合集中分布式调度的系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131017

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150512

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150625

R150 Certificate of patent or registration of utility model

Ref document number: 5770721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees