JP5060225B2 - 分散処理システム - Google Patents

分散処理システム Download PDF

Info

Publication number
JP5060225B2
JP5060225B2 JP2007237801A JP2007237801A JP5060225B2 JP 5060225 B2 JP5060225 B2 JP 5060225B2 JP 2007237801 A JP2007237801 A JP 2007237801A JP 2007237801 A JP2007237801 A JP 2007237801A JP 5060225 B2 JP5060225 B2 JP 5060225B2
Authority
JP
Japan
Prior art keywords
node
task
device driver
transferred
external device
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
JP2007237801A
Other languages
English (en)
Other versions
JP2009070135A (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.)
Toyota Motor Corp
Toyota InfoTechnology Center Co Ltd
Original Assignee
Toyota Motor Corp
Toyota InfoTechnology Center Co Ltd
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 Toyota Motor Corp, Toyota InfoTechnology Center Co Ltd filed Critical Toyota Motor Corp
Priority to JP2007237801A priority Critical patent/JP5060225B2/ja
Publication of JP2009070135A publication Critical patent/JP2009070135A/ja
Application granted granted Critical
Publication of JP5060225B2 publication Critical patent/JP5060225B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、実行状態のタスクを他のコンピュータへ移送して該タスクの処理を継続可能な分散処理システムに関する。
従来、複数のコンピュータ(情報処理装置)をネットワークを介して接続し、全体として1つのシステムとして機能するような分散処理システムが実用化されている。このような分散処理システムでは、各コンピュータにかかる負荷ができるだけ均等になるように処理(タスク)を分散して割り当てる負荷分散処理が可能となる。また、多数のコンピュータを接続して仮想的な高性能なコンピュータシステムとするグリッドコンピューティングシステムでは、演算処理などを並列に実行可能なタスクに分割して、それぞれのタスクを個々のコンピュータにおいて実行させている。
近年、あるコンピュータにおいて実行中のタスク(プロセス)が持つ実行状態(実行コンテキスト)を他のコンピュータ上に移送し、移送先のコンピュータ上で途中の実行状態から処理を継続することのできるプロセスマイグレーションという技術が実用化されつつある。プロセスの実行コンテキストとは、具体的には、プロセスが使用しているメモリ空間上のデータ(プログラムコードも含む)と、CPU(中央演算処理装置)の状態であるレジスタの値と、プロセスが使用しているファイルの情報等を含むデータである。
初期のプロセスマイグレーション技術では、実行コンテキストを記憶装置等に記憶して、他のコンピュータでその実行コンテキストを読み込んでマイグレーションを行っていたが、近年リアルタイムにプロセスを移送することが可能となっている。したがって、特定のコンピュータに負荷が集中している場合に、負荷の軽いコンピュータに処理を移送することで、負荷分散を実現することができる。また、一部のコンピュータの稼働を停止してメンテナンスを行う場合や、コンピュータの異常が検知され故障する可能性がある場合などに、そのコンピュータ上で実行中のタスクを他のコンピュータに移送することで、他のコンピュータによって処理を継続させることができるので耐故障性能が向上することになる。
ところで、分散処理システムにおいて、あるノードが周辺装置を制御しようとする場合、制御対象の周辺装置が自ノードに直接接続されている場合や、他のノードの接続されている場合や、周辺装置が直接ネットワークに接続されている場合などがある。このような場合に、ネットワークに接続された周辺装置や、他のコンピュータに接続された周辺装置を透過的に使用することは、すでに実現されている。透過的な利用とは、ネットワーク接続された周辺機器があたかも手元のコンピュータに接続されているかのように利用でき、ネットワーク的に離れた周辺機器を操作できることを意味する。このような透過的な利用は、リモートプロシージャコール(RPC)や分散オブジェクト技術などによって実現可能である。
特開2006−197582号公報 松本尚 他、「汎用超並列オペレーティングシステムカーネルSSS−CORE」、第17回技術発表会論文集、情報処理振興事業協会、pp.175−188、1998年10月、インターネット<URL:http://www.ssscore.org/ssscore/index-j.html>
動的に負荷分散を行ったり、メンテナンスするマシンを停止させる場合には、実行中のプロセスを中断し、移送先のマシンで実行を継続できる必要がある。したがって、上述したプロセスマイグレーションの技術が必須となる。
しかしながら、既存のプロセスマイグレーション機構は、数値計算のようなプログラムを対象としており、周辺装置、特にネットワークに接続された周辺装置を利用することについては考慮されていない。したがって、プロセスマイグレーションの際に、周辺装置への処理が中断され、結果的にプロセス(タスク、アプリケーション)の処理が保証されなくなってしまう。
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、実行中のタスクを他のコンピュータへ移送して実行を継続可能な分散処理システムにおいて、外部装置を利用するタスクを移送する際にも、該タスクの動作を保証することを目的とする。
上記の課題を解決するために、本発明に係る分散処理システムは、複数のノードから構成され、あるノード上で実行中のタスク(プロセス)を他のノードへ移送可能な分散処理システムであって、移送元のノードは、ネットワークを介して接続された外部装置を透過的に利用可能とするための仮想デバイスドライバを有しており、前記タスクの移送の際に、前記仮想デバイスドライバも移送先のノードへ移送することを特徴とする。なお、仮想デバイスドライバは、デバイスファイルに対するシステムコールを外部装置に転送するものである。
このように、仮想デバイスドライバも合わせて移送することによって、外部装置を利用するタスクを移送した場合に、移送後のノードにおいても外部装置の利用を継続することが可能となる。
また、本発明に係る分散処理システムは、各ノードの処理負荷を監視し、処理負荷の大きいノードで実行中のタスクを、処理負荷の少ないノードに移送する負荷分散処理部を有することも好適である。
このように、負荷分散処理を行うことで、システム内のノード間で処理負荷を平準化でき、システム全体としての処理効率が向上する。
本発明によれば、実行中のタスクを他のコンピュータへ移送して実行を継続可能な分散処理システムにおいて、外部装置を利用するタスクを移送する際にも、該タスクの動作を保証することができる。
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
<システム構成>
本実施形態に係る分散処理システムは、車両に搭載された複数のECU(Electronic Control Unit)からなるシステムである。従来の車両では、種々の機能を実現するために
数多くのECUが搭載されており、各ECUがそれぞれ単独の機能を担う場合が多かった。この結果、ECUの数が増大し、コストの上昇やECU設置場所の確保などが問題となってきている。そこで、近年、汎用のマイクロプロセッサを利用し、従来複数のECUに分散していた機能を一つのECUに統合する取り組みが行われている。本実施形態に係る車載システムは、このように、一つのECUが複数の機能を実行する。
図1は、本実施形態に係る車載システムの構成を示す図である。図に示すように、本車載システム1には、複数のECU101〜105がネットワークを介して接続されている。各ECUはそれぞれタスク(アプリケーションプログラム)を実行して、外部装置201〜204を制御する。外部装置として、インテリジェントデバイス201,202と、ECUに接続されたデバイス203,204とが存在する。なお、インテリジェントデバイスとは、このデバイスを制御するドライバにマイクロプロセッサが搭載されており、またネットワークインターフェースを備え、ネットワーク経由でデバイス制御の指示を受け付け可能なデバイスである。したがって、原理的には、インテリジェントデバイス201、202は、ECU104とデバイス203とを一体化したものであり、これらを特に区別して考える必要はない。
本実施形態に係る車載システム1では、外部デバイスを制御するタスクは、各ECU間で負荷分散される。図2は、本車載システム1における負荷分散処理を模式的に表した図である。実行すべきタスクは、まずスーパバイザ機能部(負荷分散処理部)300に処理依頼される。スーパバイザ機能部300は、実際にはいずれかのECU(複数可)がその機能を担当する。スーパバイザ機能部300は、各ECU101〜105の処理能力と負荷状況を考慮して、負荷の少ないECUに対してタスクを割り当てる。図では、処理能力の高いECU101,102にそれ以外のECUよりも多くのタスクが割り当てられていることを示している。タスクを割り当てられたECUは、そのタスクを周期的に実行する。
<デバイス制御>
次に、本車載システム1において、ECUがリモートにある外部デバイスを制御する仕組みについて説明する。なお、デバイスの制御には、デバイスを駆動(例えば、アクチュエータの駆動)とデバイスからの入力(例えば、アクチュエータの状態取得)の両方が含まれる。ECUが外部デバイスを制御する場合、そのデバイスが自ノードに接続されているか他のノードに接続されているかによって、実行すべき処理が異なる。このことを意識してアプリケーションプログラムを作成していては、開発効率が悪いので、外部デバイスの位置に拘わらず透過的に利用できることが望まれる。そこで、本実施形態では、仮想デバイスドライバの仕組みを採用して、外部デバイスを透過的に利用する。
図3は、仮想デバイスドライバの概要を説明する図である。図3において、仮想デバイスドライバ13は、ノード10がリモートのデバイス(図3ではインテリジェントデバイス20)を操作するためのエントリポイントである。仮想デバイスドライバ13は、通常のデバイスドライバとしてOS11に登録される。仮想デバイスドライバ13は、インテリジェントデバイス20内の実デバイスドライバ22と対応付けられ、リンクされている。
仮想デバイスドライバ13は、OS11からは従来のデバイスドライバと同様に扱われ、リモートのデバイスを透過的に利用できる。すなわち、OS11は、リモートにある外部デバイスも自ノードのデバイスと同様に、デバイスファイルによってアクセス可能とする。ノード10がインテリジェントデバイス20を制御する場合には、自ノードに接続されたデバイスを制御するのと同様に、インテリジェントデバイス20のデバイスファイルに対してOS11のシステムコールを呼ぶだけでよい。システムコールが呼ばれると、OS11のシステムコール・インタフェース12を介して、仮想デバイスドライバ13がデバイスへの要求を受け付ける。
仮想デバイスドライバ13は、ネットワークを介して、インテリジェントデバイス20を制御する実際のデバイスドライバ23と通信を行う。仮想デバイスドライバ13は、タ
スクからの要求をインテリジェントデバイス20の実デバイスドライバ23に送り、インテリジェントデバイス20を実際に制御する。
このように仮想デバイスドライバを用いて、各ECUはネットワークに接続された外部デバイスの制御が行う。
<プロセス移送>
次に、本実施形態に係る車載システムにおけるプロセス移送(プロセスマイグレーション)について説明する。プロセス(タスク)を移送する場合、その実行コード(プログラム)および実行状態(実行コンテキスト)を、あるノードから別のノードにコピーすることで、実行中の状態を維持したままタスクを実行するノードを変更することができる。これがすなわちプロセスのマイグレーション(移送)である。
本車載システムでは、負荷分散を行っているので、図4に示すようにノード間で負荷状態に差が生じた場合には、スーパバイザ機能部300が、負荷の大きいノード101で実行中のタスクを負荷の少ないノード102へと移送する。なお、ノード101が実行中のタスクは、リモートにあるインテリジェントデバイス201を仮想デバイスドライバ13を介して制御している。
図4に示すような状況でタスクをノード101からノード102に移送する際に、単にこのタスクに係るプロセスの実行コードと実行状態のみをノード102にコピーすると、図5に示すように、ノード102には仮想デバイスドライバ13が準備されていないので、移送後のタスクが外部のデバイスを利用できなくなってしまう。
そこで、本実施形態に係る車載システムでは、プロセス移送の際の処理を次のように行う。図6は本車載システムによるプロセス移送処理を概念的に説明する図であり、図7は該プロセス移送処理の流れを示すフローチャートである。
スーパバイザ機能部300によってタスクの移送が開始されると(S10)、まずタスクに係るプロセスの実行コードと実行状態とが、移送先のノードにコピーされる(S11)。そして、移送されるタスクが制御している外部のデバイス201に対応する仮想デバイスドライバ13についても、その実行コードと実行状態とを移送先のノードにコピーする(S12)。このとき、仮想デバイスドライバと実デバイスとのリンク(対応)の情報も合わせて移送される。移送先のノード102のOS11は、移送された仮想デバイスドライバ13をOSに登録し(S13)、この仮想デバイスドライバ13とインテリジェントデバイス201の実デバイスドライバとの間のリンクを再構築する(S14)。その後、移送先のノード102は、移送されたタスクの実行を開始する(S15)。
このように、タスクを移送する際に、仮想デバイスドライバも合わせて移送し、仮想デバイスドライバと実デバイスとのリンクを再構築することで、タスクが移送された場合であっても外部デバイスの制御が正しく続行されることになる。
したがって、図8(a)に示すように、一部のECUに処理が集中したときに、その負荷を平準化することが可能となる。また、図8(b)に示すように、一部のECUに故障発生が予想される場合に、そのECUが実行しているタスクを別のECUに移送することで、故障が発生してもシステム全体としては処理を続行することができる。
(変形例)
上記の説明では、移送先のノードに仮想デバイスドライバが存在しないことを前提としていた。しかしながら、移送先のノードに仮想デバイスドライバの実行コードが存在する
場合も考えられる。このような場合には、仮想デバイスドライバの実行コード自体は移送する必要がない。もっとも、仮想デバイスドライバの実行状態については移送先のノードに通知し、実行状態を移送前の状態と同じにし、かつ、仮想デバイスドライバと実デバイスドライバ間のリンクを再構築する必要がある。
上記の実施形態では、車載システムを例に説明したが、インターネットやLANなどに接続された複数のコンピュータから構成されるシステムに対して本発明を適用しても良い。
本実施形態に係る車載システムの構成を示す図である。 本実施形態に係る車載システムにおける負荷分散処理を模式的に表した図である。 仮想デバイスドライバの概要を説明する図である。 負荷分散のために実行中のタスクを移送すべき状況を表した図である。 タスクに係るプロセスのみを移送した場合に生じる問題点を説明する図である。 本実施形態に係る車載システムにおけるタスク移送処理を概念的に説明する図である。 本実施形態に係る車載システムにおけるタスク移送処理の流れを示すフローチャートである。 実行状態のタスクを別ノードに移送することによって達成できる効果を説明する図である。
符号の説明
1 車載システム
11 OS
12 システムコール・インタフェース
13 仮想デバイスドライバ
101〜105 ECU
201〜204 外部デバイス

Claims (3)

  1. 互いにネットワークに接続された複数のノードおよび少なくとも1つの外部装置から構成され、あるノード上で実行中のタスクを他のノードへ移送可能な分散処理システムであって、
    移送元のノードは、前記外部装置を透過的に利用可能とするためにデバイスファイルに対するシステムコールを前記外部装置に転送する仮想デバイスドライバを有しており、
    前記タスクの移送の際に、前記仮想デバイスドライバも移送先のノードへ移送する
    ことを特徴とする分散処理システム。
  2. 移送元のノードは、移送されるタスクが制御している外部装置に対応する仮想ドライバについて、その実行コードと実行状態を移送先のノードへ移送し、
    移送先のノードは、仮想デバイスドライバと前記外部装置とのリンクを再構築する、
    ことを特徴とする請求項1に記載の分散処理システム。
  3. 各ノードの処理負荷を監視し、処理負荷の大きいノードで実行中のタスクを、処理負荷の少ないノードに移送する負荷分散処理部を有する、
    ことを特徴とする請求項1または2に記載の分散処理システム。
JP2007237801A 2007-09-13 2007-09-13 分散処理システム Expired - Fee Related JP5060225B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007237801A JP5060225B2 (ja) 2007-09-13 2007-09-13 分散処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007237801A JP5060225B2 (ja) 2007-09-13 2007-09-13 分散処理システム

Publications (2)

Publication Number Publication Date
JP2009070135A JP2009070135A (ja) 2009-04-02
JP5060225B2 true JP5060225B2 (ja) 2012-10-31

Family

ID=40606317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007237801A Expired - Fee Related JP5060225B2 (ja) 2007-09-13 2007-09-13 分散処理システム

Country Status (1)

Country Link
JP (1) JP5060225B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013254304A (ja) * 2012-06-06 2013-12-19 Sony Corp 情報処理装置、情報処理方法およびプログラム
JP6164125B2 (ja) * 2014-03-19 2017-07-19 富士ゼロックス株式会社 印刷制御システム
JP6398864B2 (ja) * 2015-05-14 2018-10-03 株式会社デンソー 制御システム
JP6698320B2 (ja) * 2015-11-16 2020-05-27 日立オートモティブシステムズ株式会社 処理装置および車両制御システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3933587B2 (ja) * 2003-01-28 2007-06-20 株式会社東芝 計算機システム、計算機装置及びオペレーティングシステムの移送方法

Also Published As

Publication number Publication date
JP2009070135A (ja) 2009-04-02

Similar Documents

Publication Publication Date Title
JP2004533054A5 (ja)
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
US9760408B2 (en) Distributed I/O operations performed in a continuous computing fabric environment
JP4914717B2 (ja) 維持可能なグリッドマネージャ
US8725913B2 (en) Numa I/O framework
US8006254B2 (en) Bequeathing privilege to a dynamically loaded module
KR20080106908A (ko) 하드웨어 장치와 같은 자원을 소유하는 가상 컴퓨터를 이동시키기 위해 이용될 수 있는 컴퓨팅 시스템 및 방법
JP2007500386A (ja) グリッド組織
CN106980529B (zh) 基板管理控制器资源管理的电脑系统
US8473702B2 (en) Information processing apparatus, execution environment transferring method and program thereof
US9916215B2 (en) System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines
US11860737B2 (en) System and method for coordinating use of multiple coprocessors
WO2012050224A1 (ja) コンピュータリソース制御システム
WO2012087991A2 (en) Policy-based application delivery
JP5060225B2 (ja) 分散処理システム
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
US20110072432A1 (en) METHOD TO AUTOMATICALLY REDIRECT SRB ROUTINES TO A zIIP ELIGIBLE ENCLAVE
JP5516411B2 (ja) 情報処理システム
WO2006028521A1 (en) Process checkpointing and migration in computing systems
JP6653786B2 (ja) I/o制御方法およびi/o制御システム
CN114115703A (zh) 裸金属服务器在线迁移方法以及系统
JPH07334468A (ja) 負荷分散方式
CN111708631A (zh) 基于多路服务器的数据处理方法、智能终端及存储介质
JP4877608B2 (ja) 仮想マシンサーバ、仮想マシンサーバの情報保存方法及び仮想マシンサーバの情報保存用プログラム
EP4163780A1 (en) Systems, methods, and devices for near storage elasticity

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111216

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120803

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees