IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧

特許7375643車載情報処理装置、制御方法及びコンピュータプログラム
<>
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図1
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図2
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図3
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図4
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図5
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図6
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図7
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図8
  • 特許-車載情報処理装置、制御方法及びコンピュータプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-30
(45)【発行日】2023-11-08
(54)【発明の名称】車載情報処理装置、制御方法及びコンピュータプログラム
(51)【国際特許分類】
   G06F 9/4401 20180101AFI20231031BHJP
   B60R 16/02 20060101ALI20231031BHJP
【FI】
G06F9/4401
B60R16/02 660X
【請求項の数】 12
(21)【出願番号】P 2020051504
(22)【出願日】2020-03-23
(65)【公開番号】P2021149840
(43)【公開日】2021-09-27
【審査請求日】2022-09-30
(73)【特許権者】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(73)【特許権者】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】塩澤 孝之
【審査官】土谷 慎吾
(56)【参考文献】
【文献】特開2012-003510(JP,A)
【文献】特開2000-222376(JP,A)
【文献】特開2006-031203(JP,A)
【文献】米国特許出願公開第2015/0278046(US,A1)
【文献】出原 章雄 等,組込みCPU向けS/W機能分離アーキテクチャの提案,情報処理学会 組込みシステムシンポジウム 2013,日本,2013年10月09日,p.123-130
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/4401
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両に搭載され、共通のハードウェア上で動作する複数のOS(Operating System)を制御する制御部を備える車載情報処理装置であって、
動作させるOS及びアプリケーションプログラムを一時的に記憶する記憶部を備え、
前記制御部は、
前記複数のOSの再起動の要否を判定し、
一のOSを再起動する必要があると判定した場合、前記一のOS上で動作しているアプリケーションプログラムを、前記一のOSとは異なる他のOS上で動作させ、
前記一のOS上で動作しているアプリケーションプログラムを前記他のOS上で動作させる場合に、前記一のOSが使用する前記記憶部の一の記憶領域に記憶された前記アプリケーションプログラムを、前記他のOSが使用する前記記憶部の他の記憶領域へコピーし、
前記一のOSを再起動し、
再起動の完了後に、前記他のOS上で動作している前記アプリケーションプログラムを、前記一のOS上で動作させる、
車載情報処理装置。
【請求項2】
前記制御部は、前記一のOSを再起動している間、前記他のOSを並行して動作させる、
請求項1に記載の車載情報処理装置。
【請求項3】
記制御部は、前記一のOSの再起動が完了した後に、前記他の記憶領域にコピーした前記アプリケーションプログラムを削除する、
請求項1又は請求項2に記載の車載情報処理装置。
【請求項4】
前記制御部は、
前記一のOSを再起動する必要があると判定した場合に、前記一のOS上で動作している一又は複数のアプリケーションプログラムの中から、前記一のOSの再起動中に動作を継続させるべきアプリケーションプログラムを判定し、
動作を継続させるべきと判定したアプリケーションプログラムを動作させることができる他のOSの有無を判定し、
前記アプリケーションプログラムを動作させることができると判定した他のOSが使用する他の記憶領域に、前記アプリケーションプログラムを記憶する空き容量が存在するか否かを判定し、
空き容量が存在すると判定した場合に、前記アプリケーションプログラムを前記他の記憶領域へコピーする、
請求項3に記載の車載情報処理装置。
【請求項5】
前記制御部は、前記空き容量が存在しないと判定した場合、前記一のOSの再起動を待機する、
請求項4に記載の車載情報処理装置。
【請求項6】
前記制御部は、前記車両のイグニッションスイッチがオン状態からオフ状態へ切り替えられた後、待機した前記一のOSの再起動を実施する、
請求項5に記載の車載情報処理装置。
【請求項7】
前記制御部は、
前記他のOSが存在しないと判定した場合に、前記一のOSの代替となる代替OSを起動し、
前記アプリケーションプログラムを前記代替OS上で動作させる、
請求項3から請求項6までのいずれか1つに記載の車載情報処理装置。
【請求項8】
前記代替OSは、前記一のOSが備える複数の機能の一部を有するOSである、請求項7に記載の車載情報処理装置。
【請求項9】
各アプリケーションプログラムには優先度が設定されており、
前記制御部は、前記優先度に応じて前記一のOSの再起動中に動作を継続させるべきアプリケーションプログラムを判定する、
請求項3から請求項8までのいずれか1つに記載の車載情報処理装置。
【請求項10】
前記制御部は、前記ハードウェアを仮想化した仮想環境で前記複数のOSを動作させる、
請求項1から請求項9までのいずれか1つに記載の車載情報処理装置。
【請求項11】
車両に搭載された車載情報処理装置が、共通のハードウェア上で動作する複数のOSを制御する制御方法であって、
前記車載情報処理装置は、動作させるOS及びアプリケーションプログラムを一時的に記憶する記憶部を備え、
前記車載情報処理装置の制御部が、
前記複数のOSの再起動の要否を判定し、
一のOSを再起動する必要があると判定した場合、前記一のOS上で動作しているアプリケーションプログラムを、前記一のOSとは異なる他のOS上で動作させ、
前記一のOS上で動作しているアプリケーションプログラムを前記他のOS上で動作させる場合に、前記一のOSが使用する前記記憶部の一の記憶領域に記憶された前記アプリケーションプログラムを、前記他のOSが使用する前記記憶部の他の記憶領域へコピーし、
前記一のOSを再起動し、
再起動の完了後に、前記他のOS上で動作している前記アプリケーションプログラムを、前記一のOS上で動作させる、
制御方法。
【請求項12】
車両に搭載されたコンピュータに、共通のハードウェア上で動作する複数のOSを制御する処理を実行させるコンピュータプログラムであって、
前記コンピュータは、動作させるOS及びアプリケーションプログラムを一時的に記憶する記憶部を備え、
前記コンピュータに、
前記複数のOSの再起動の要否を判定し、
一のOSを再起動する必要があると判定した場合、前記一のOS上で動作しているアプリケーションプログラムを、前記一のOSとは異なる他のOS上で動作させ、
前記一のOS上で動作しているアプリケーションプログラムを前記他のOS上で動作させる場合に、前記一のOSが使用する前記記憶部の一の記憶領域に記憶された前記アプリケーションプログラムを、前記他のOSが使用する前記記憶部の他の記憶領域へコピーし、
前記一のOSを再起動し、
再起動の完了後に、前記他のOS上で動作している前記アプリケーションプログラムを、前記一のOS上で動作させる、
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、共通のハードウェア上で動作する複数のOS(Operating System)を制御する車載情報処理装置、制御方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、車両に搭載される情報処理装置は高機能化しており、種々のアプリケーションプログラムの実行が可能となっている。更に車載情報処理装置は、複数のOSを並列的に動作させることができ、異なるOS上で動作する複数のアプリケーションプログラムを並列的に動作することができる場合がある。車載情報処理装置において例えばOSの更新処理が行われた場合又はOSの異常停止が発生した場合等に、OSの再起動を行う必要が生じることがあり、OSの再起動中にはこのOS上で動作するアプリケーションプログラムを動作させることができない。
【0003】
特許文献1においては、仮想化環境において第1のOSと第2のOSとを稼働させ、表示手段に画像を表示させる第1のアプリケーションを第1のOS上で動作させているときに、第1のOSに再起動の必要が生じたことが検知された場合に、少なくとも第1のOSの再起動が完了するまでの間、表示手段に再起動時用画像を表示させる第2のアプリケーションを第2のOS上で動作させる情報処理装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2013/132646号
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の情報処理装置は、第1のOS上で動作させる表示用の第1のアプリケーションとは別に、第2のOS上で動作させる第2のアプリケーションを別に用意しておく必要があり、メモリ等の記憶領域を無駄に消費する虞がある。また特許文献1において第2のアプリケーションは第1のアプリケーションの簡易版であり、第1のOSの再起動中は限定的な処理しか実行することができない。
【0006】
本開示は、斯かる事情に鑑みてなされたものであって、その目的とするところは、OSの再起動中であっても、このOS上で動作するアプリケーションプログラムを継続的に実行することが期待できる車載情報処理装置、制御方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本態様に係る車載情報処理装置は、車両に搭載され、共通のハードウェア上で動作する複数のOS(Operating System)を制御する制御部を備える車載情報処理装置であって、動作させるOS及びアプリケーションプログラムを一時的に記憶する記憶部を備え、前記制御部は、前記複数のOSの再起動の要否を判定し、一のOSを再起動する必要があると判定した場合、前記一のOS上で動作しているアプリケーションプログラムを、前記一のOSとは異なる他のOS上で動作させ、前記一のOS上で動作しているアプリケーションプログラムを前記他のOS上で動作させる場合に、前記一のOSが使用する前記記憶部の一の記憶領域に記憶された前記アプリケーションプログラムを、前記他のOSが使用する前記記憶部の他の記憶領域へコピーし、前記一のOSを再起動し、再起動の完了後に、前記他のOS上で動作している前記アプリケーションプログラムを、前記一のOS上で動作させる。
【0008】
本願は、このような特徴的な制御部を備える装置として実現することができるだけでなく、かかる特徴的な処理をステップとする方法として実現したり、かかるステップをコンピュータに実行させるためのコンピュータプログラムとして実現したりすることができる。これらの装置の一部又は全部を実現する半導体集積回路として実現したり、これらの装置を含むその他の装置又はシステムとして実現したりすることができる。
【発明の効果】
【0009】
上記によれば、OSの再起動中であっても、このOS上で動作するアプリケーションプログラムを継続的に実行することが期待できる。
【図面の簡単な説明】
【0010】
図1】本実施の形態に係る車載情報処理システムの一構成例を示す模式図である。
図2】本実施の形態に係るGWの構成を示すブロック図である。
図3】本実施の形態に係るGWのソフトウェア構成を説明するための模式図である。
図4】GWのアプリテーブルの一例を示す模式図である。
図5】本実施の形態に係るGWがOSの再起動を行う場合のソフトウェア構成を説明するための模式図である。
図6】本実施の形態に係るGWが行うOS再起動処理の手順を示すフローチャートである。
図7】本実施の形態に係るGWが行うOS再起動処理の手順を示すフローチャートである。
図8】本実施の形態に係るGWが行う待機処理の手順を示すフローチャートである。
図9】変形例に係るGWのアプリテーブルの一例を示す模式図である。
【発明を実施するための形態】
【0011】
[本開示の実施の形態の説明]
最初に本開示の実施態様を列記して説明する。以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0012】
(1)本態様に係る車載情報処理装置は、車両に搭載され、共通のハードウェア上で動作する複数のOSを制御する制御部を備える車載情報処理装置であって、前記制御部は、前記複数のOSの再起動の要否を判定し、一のOSを再起動する必要があると判定した場合、前記一のOS上で動作しているアプリケーションプログラムを、前記一のOSとは異なる他のOS上で動作させ、前記一のOSを再起動し、再起動の完了後に、前記他のOS上で動作している前記アプリケーションプログラムを、前記一のOS上で動作させる。
【0013】
本態様にあっては、車載情報処理装置が共通のハードウェア上で動作する複数のOSを制御する制御部を備える。車載情報処理装置の制御部は、複数のOSについて再起動の要否を判定し、一のOSを再起動する必要があると判定した場合、この一のOS上で動作しているアプリケーションプログラムを他のOS上で動作させる。その後に制御部は一のOSを再起動し、再起動の完了後に他のOS上で動作させたアプリケーションプログラムを一のOS上で動作させる。これにより車載情報処理装置は、一のOS上で動作していたアプリケーションプログラムと同じプログラムを他のOS上で実行することができ、一のOSの再起動中であってもアプリケーションプログラムの処理を継続的に行うことが期待できる。
【0014】
(2)前記制御部は、前記一のOSを再起動している間、前記他のOSを並行して動作させることが好ましい。
【0015】
本態様にあっては、車載情報処理装置が一のOSを再起動している間、他のOSを並行して動作させる。これにより、一のOSの再起動中に、他のOS上でアプリケーションプログラムを並行して実行させることができる。
【0016】
(3)動作させるOS及びアプリケーションプログラムを一時的に記憶する記憶部を備え、前記制御部は、前記一のOS上で動作しているアプリケーションプログラムを前記他のOS上で動作させる場合に、前記一のOSが使用する前記記憶部の一の記憶領域に記憶された前記アプリケーションプログラムを、前記他のOSが使用する前記記憶部の他の記憶領域へコピーし、前記一のOSの再起動が完了した後に、前記他の記憶領域にコピーした前記アプリケーションプログラムを削除することが好ましい。
【0017】
本態様にあっては、車載情報処理装置が一のOS上で動作するアプリケーションプログラムを他のOS上で動作させる場合に、一のOSが使用する記憶領域に記憶されたアプリケーションプログラムを、他のOSが使用する記憶領域へコピーする。一のOSの再起動完了後、車載情報処理装置は、コピーしたアプリケーションプログラムを他のOSの記憶領域から削除する。これにより車載情報処理装置は、一のOSの記憶領域からアプリケーションプログラムをコピーして他のOS上で動作させることができるため、他のOS上で動作させるアプリケーションプログラムを別途用意する必要がない。
【0018】
(4)前記制御部は、前記一のOSを再起動する必要があると判定した場合に、前記一のOS上で動作している一又は複数のアプリケーションプログラムの中から、前記一のOSの再起動中に動作を継続させるべきアプリケーションプログラムを判定し、動作を継続させるべきと判定したアプリケーションプログラムを動作させることができる他のOSの有無を判定し、前記アプリケーションプログラムを動作させることができると判定した他のOSが使用する他の記憶領域に、前記アプリケーションプログラムを記憶する空き容量が存在するか否かを判定し、空き容量が存在すると判定した場合に、前記アプリケーションプログラムを前記他の記憶領域へコピーすることが好ましい。
【0019】
本態様にあっては、車載情報処理装置が再起動の必要があると判定した一のOS上で動作している一又は複数のアプリケーションプログラムの中から、一のOSの再起動中に動作を継続させるべきアプリケーションプログラムを判定する。車載情報処理装置は、動作を継続させるべきアプリケーションプログラムを動作させることができる他のOSの有無を判定する。車載情報処理装置は、アプリケーションプログラムを動作させることができると判定した他のOSの記憶領域に、このアプリケーションプログラムを記憶するだけの空き容量が存在するか否かを判定する。空き容量があると判定した場合、車載情報処理装置は、アプリケーションプログラム他のOSの記憶領域へコピーして動作させる。これらの処理により車載情報処理装置は、OSの再起動中に動作を継続させるべきアプリケーションプログラムをより確実に動作させることが期待できる。
【0020】
(5)前記制御部は、前記空き容量が存在しないと判定した場合、前記一のOSの再起動を待機することが好ましい。
【0021】
本態様にあっては、他のOSの記憶領域にアプリケーションプログラムを記憶するだけの空き容量が存在しない場合、車載情報処理装置はこのアプリケーションプログラムが動作している一のOSの再起動を行わずに待機する。これにより、動作を継続させるべきアプリケーションプログラムの動作が停止されることを防止できる。
【0022】
(6)前記制御部は、前記車両のイグニッションスイッチがオン状態からオフ状態へ切り替えられた後、待機した前記一のOSの再起動を実施することが好ましい。
【0023】
本態様にあっては、OSの再起動を待機した場合、車載情報処理装置は、車両のイグニッションスイッチがオン状態からオフ状態へ切り替えられた後にOSの再起動を実施する。これにより車載情報処理装置は、ユーザが車両の使用を終えた可能性が高い段階、即ちアプリケーションプログラムの処理が停止しても問題が生じない可能性が高い段階で、OSを再起動することができる。
【0024】
(7)前記制御部は、前記他のOSが存在しないと判定した場合に、前記一のOSの代替となる代替OSを起動し、前記アプリケーションプログラムを前記代替OS上で動作させることが好ましい。
【0025】
本態様にあっては、動作を継続させるべきアプリケーションプログラムを動作させることができる他のOSが存在しないと判定した場合、車載情報処理装置は、再起動する一のOSの代替となる代替OSを起動して、このアプリケーションプログラムを代替OS上で動作させる。これにより車載情報処理装置は、動作を継続させるべきアプリケーションプログラムをより確実に動作させることができる。
【0026】
(8)前記代替OSは、前記一のOSが備える複数の機能の一部を有するOSであることが好ましい。
【0027】
本態様にあっては、再起動する一のOSの機能の一部を有するOSを、車載情報処理装置は代替OSとして用いる。これにより、一のOSの全機能を有するOSを代替OSとする場合と比較して、車載情報処理装置の記憶領域の使用量を低減することができる。
【0028】
(9)各アプリケーションプログラムには優先度が設定されており、前記制御部は、前記優先度に応じて前記一のOSの再起動中に動作を継続させるべきアプリケーションプログラムを判定することが好ましい。
【0029】
本態様にあっては、アプリケーションプログラムに設定された優先度に応じて、車載情報処理装置がOSの再起動中に動作を継続させるべきアプリケーションプログラムを判定する。これにより車載情報処理装置は、例えば優先度が高いアプリケーションプログラムを他のOS上で優先して動作させることができる。
【0030】
(10)前記制御部は、前記ハードウェアを仮想化した仮想環境で前記複数のOSを動作させることが好ましい。
【0031】
本態様にあっては、ハードウェアを仮想化した仮想環境を車載情報処理装置が提供し、この仮想環境上で複数のOSを動作させる。これにより、車載情報処理装置にて動作させるOSの汎用性の向上及び開発の容易化等が期待できる。
【0032】
(11)本態様に係る制御方法は、車両に搭載された車載情報処理装置が、共通のハードウェア上で動作する複数のOSを制御する制御方法であって、前記車載情報処理装置の制御部が、前記複数のOSの再起動の要否を判定し、一のOSを再起動する必要があると判定した場合、前記一のOS上で動作しているアプリケーションプログラムを、前記一のOSとは異なる他のOS上で動作させ、前記一のOSを再起動し、再起動の完了後に、前記他のOS上で動作している前記アプリケーションプログラムを、前記一のOS上で動作させる。
【0033】
本態様にあっては、態様(1)と同様に、OSの再起動中であってもアプリケーションプログラムの処理を継続的に行うことが期待できる。
【0034】
(12)本態様に係るコンピュータプログラムは、車両に搭載されたコンピュータに、共通のハードウェア上で動作する複数のOSを制御する処理を実行させるコンピュータプログラムであって、前記コンピュータに、前記複数のOSの再起動の要否を判定し、一のOSを再起動する必要があると判定した場合、前記一のOS上で動作しているアプリケーションプログラムを、前記一のOSとは異なる他のOS上で動作させ、前記一のOSを再起動し、再起動の完了後に、前記他のOS上で動作している前記アプリケーションプログラムを、前記一のOS上で動作させる処理を実行させる。
【0035】
本態様にあっては、態様(1)と同様に、OSの再起動中であってもアプリケーションプログラムの処理を継続的に行うことが期待できる。
【0036】
[本開示の実施形態の詳細]
本開示の実施形態に係る車載情報処理システムの具体例を、以下に図面を参照しつつ説明する。本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0037】
<システム構成>
図1は、本実施の形態に係る車載情報処理システムの一構成例を示す模式図である。本実施の形態に係る車載情報処理システムは、車両1に搭載されたGW(ゲートウェイ)2及び複数のECU3が複数の通信線を介して通信を行い、これら複数の車載装置が協働することで車両1の走行制御等に係る種々の情報処理を行うシステムである。図示の例では、GW2に4つのECU3がそれぞれ個別の通信線を介して接続されている。GW2は通信線間でのメッセージ送受信を中継する処理を行い、これにより4つのECU3は通信線及びGW2を介して相互にメッセージの送受信を行うことができる。
【0038】
また車載情報処理システムは、車両1の外部との間で無線通信を行う無線通信装置5を備えている。無線通信装置5は、例えば携帯電話通信網又は無線LAN(Local Area Network)等を利用した無線通信を行うことによって、車両1の外部に設けられたサーバ装置又はユーザが所持するスマートフォン等との間でメッセージの送受信を行うことができる。無線通信装置5は通信線を介してGW2に接続されている。GW2は、無線通信装置5を介して車両1の外部のサーバ装置等との間でメッセージの送受信を行うことができる。またGW2がECU3と無線通信装置5との間の通信を中継することによって、ECU3はGW2及び無線通信装置5を介して車両1の外部のサーバ装置等との間でメッセージの送受信を行うことができる。
【0039】
GW2には、車両1に設けられたIG(イグニッション)スイッチ6からのIG信号が入力されている。GW2は、入力されたIG信号に基づいて、車両1の状態の判定、例えば車両1が走行する可能性がある状態であるか否かの判定を行うことができる。なお車両1の状態の判定は、IGスイッチ6からのIG信号ではなく、例えば車両1の速度、加速度、エンジンの回転数、シフトレバーの状態又はアクセルの状態等の種々の情報に基づいて行われてよい。GW2には、車両1の状態を判定するために必要な情報が直接的に又は通信を介して間接的に入力される。
【0040】
GW2は、メッセージの中継処理及び車両1の制御処理等の種々の処理を行うために、複数のアプリケーションプログラムを実行して動作させている。アプリケーションプログラムの実行には、プログラムの実行管理及びハードウェア資源の管理等を行うOSが必要である。本実施の形態に係るGW2は、複数のOSを動作させており、これにより異なるOS用に開発された複数のアプリケーションプログラムを1つの装置で動作させることが可能となっている。またGW2は、複数のOSを並行して動作させると共に、各OS上で複数のアプリケーションプログラムを並行して動作させる。GW2は、例えば複数のOS及び複数のアプリケーションプログラムを時分割で切り替えて実行することによって、複数のOS及び複数のアプリケーションプログラムを実質的に同時に並行して動作させることができる。また例えばGW2がCPU(Central Processing Unit)又はMPU(Micro-Processing Unit)等の演算処理装置を複数備える場合には、複数のOS及び複数のアプリケーションプログラムを複数の演算処理装置で実際に並行して動作させてもよい。
【0041】
アプリケーションプログラム及びOS等のソフトウェアは、不具合の修正又は新機能の追加等のためにアップデート(更新処理)が行われる。GW2は、無線通信装置5を介して所定のサーバ装置との通信を行うことでアップデート用のソフトウェアを取得し、フラッシュメモリ又はハードディスク等の二次記憶装置に記憶されたソフトウェアを書き換えることでアップデートを行う。例えばOSのアップデートを行った場合、GW2は、ソフトウェアの書き換えを完了した後に、OSの再起動を行う必要がある。なおOSの再起動の要因には、上記のアップデートのみでなく、例えば何らかの不具合が発生した場合等の種々の要因が含まれ得る。
【0042】
従来はOSの再起動が行われた場合、このOS上で動作する一又は複数のアプリケーションプログラムは、再起動が完了するまで動作することができない。本実施の形態に係るGW2は、OSの再起動中であっても動作を継続させるべきアプリケーションプログラムについて、OSの再起動に伴って動作を停止させずに継続させることが可能である。なお本実施の形態においてはGW2を例に説明を行うが、同様の技術がECU3又はこれ以外の種々の車載情報処理装置に適用可能である。
【0043】
図2は、本実施の形態に係るGW2の構成を示すブロック図である。本実施の形態に係るGW2は、制御部(プロセッサ)21、一次記憶部(ストレージ)22、二次記憶部(ストレージ)23及び複数の通信部(トランシーバ)24等を備えて構成されている。制御部21は、例えばCPU又はMPU等の演算処理装置を用いて構成されている。制御部21は、二次記憶部23に記憶されたプログラムを一次記憶部22に読み出して実行することにより、種々の処理を行うことができる。
【0044】
一次記憶部22は、例えばSRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)等のメモリ素子を用いて構成されている。一次記憶部22は、二次記憶部23と比較して記憶容量が少ないが、制御部21がデータの読み書きを二次記憶部23よりも高速に行うことができる記憶部である。本実施の形態において一次記憶部22は、揮発性の記憶部とするが、不揮発性であってもよい。
【0045】
二次記憶部23は、例えばフラッシュメモリもしくはEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発のメモリ素子、又は、ハードディスク等の磁気記憶装置等を用いて構成されている。二次記憶部23は、制御部21が実行する各種のプログラム、及び、制御部21の処理に必要な各種のデータを記憶する。本実施の形態において二次記憶部23は、制御部21が実行するプログラム23aと、アプリケーションプログラムに関する情報を有するアプリテーブル23bとを記憶している。
【0046】
本実施の形態に係るGW2は、一次記憶部22及び二次記憶部23の2つの記憶部により階層構造の記憶手段、いわゆるメモリ階層を実現している。GW2の制御部21がプログラム23aを実行する場合、二次記憶部23に記憶されたプログラム23aが一次記憶部22に読み出され、一次記憶部22に記憶されたプログラム23aを制御部21が読み出して実行する。本実施の形態において制御部21は、プログラム23aを実行することにより、OSによるアプリケーションプログラムの管理、アプリケーションプログラムによる車両1の制御、並びに、OS及びアプリケーションプログラムの管理等の種々の処理を行う。
【0047】
なお図2においてプログラム23aと示されているものには、OSのプログラム及びアプリケーションプログラム等の種々のプログラムが含まれ、更にはOS及びアプリケーションプログラムの動作を管理するプログラムが含まれ得る。プログラム23aは、例えばGW2の製造段階において二次記憶部23に書き込まれてよい。また例えばプログラム23aは遠隔のサーバ装置などにより配信されてもよく、GW2はサーバ装置との通信にてプログラム23aを取得して二次記憶部23に書き込んでもよい。また例えばメモリカード又は光ディスク等の記録媒体99に記録されたプログラム23aをGW2が読み出して二次記憶部23に記憶してもよい。また例えば記録媒体99に記録されプログラム23aを書込装置が読み出してGW2の二次記憶部23に書き込んでもよい。プログラム23aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体99に記録された態様で提供されてもよい。プログラム23aに含まれるOS及びアプリケーションプログラム等の種々のプログラムは、一括で提供されてもよく、個別に異なる方法で提供されてもよい。
【0048】
二次記憶部23のアプリテーブル23bは、GW2が実行するアプリケーションプログラムに関する情報を記憶したテーブルである。GW2は、アプリテーブル23bに記憶された情報に基づいて、OSの再起動時に動作を継続させるべきアプリケーションプログラムがいずれであるか等を判断することができる。アプリテーブル23bの詳細構成は後述する。アプリテーブル23bは、例えば本システムの開発者等により予め作成されて、二次記憶部23に記憶される。アプリテーブル23bは、プログラム23aと共に提供されてもよく、プログラム23aとは別に提供されてもよい。プログラム23aに含まれるOS又はアプリケーションプログラム等のアップデートが行われた場合には、アプリテーブル23bの内容が更新されてもよい。
【0049】
複数の通信部24にはそれぞれ通信線が接続され、通信線を介してECU3又は無線通信装置5等の車載装置との間でメッセージの送受信を行う。本実施の形態において通信部24は、例えばイーサネット(登録商標)の通信規格に従ってメッセージの送受信を行う。通信部24は、例えばイーサネットPHY(physical layer)のIC(Integrated Circuit)等を用いて構成され得る。ただし通信部24が用いる通信規格はイーサネットに限らず、例えばCAN(Controller Area Network)又はFlexRay等の種々の通信規格が採用され得る。通信部24は、制御部21から与えられたデータを電気信号として通信線へ出力することによりメッセージ送信を行う。また通信部24は、通信線の電位をサンプリングして取得することにより、通信線上の電気信号をデジタルデータに変換し、変換したデータを受信メッセージとして制御部21へ与える。
【0050】
また本実施の形態にGW2は、二次記憶部23に記憶されたプログラム23aを制御部21が読み出して実行することにより、再起動判定部21a、OS制御部21b及びアプリ制御部21c等が制御部21にソフトウェア的な機能部として実現される。再起動判定部21aは、動作中のOSについて、再起動を行う必要があるか否かを判定する処理を行う。再起動判定部21aは、例えばOSのアップデート処理が行われ、この処理が完了した場合にアップデートされたOSの再起動が必要であると判定することができる。なおOSの再起動の要因はアップデートに限らない。
【0051】
OS制御部21bは、GW2にて実行されるOSを管理する処理を行う。OS制御部21bは、OSの起動、停止、再起動及びアップデート等の制御を行う。また本実施の形態においてOS制御部21bは、OSの再起動を行う際に、このOSの代替OSを生成して起動する処理を行う。
【0052】
アプリ制御部21cは、GW2にて実行されるアプリケーションプログラムを管理する処理を行う。本実施の形態においてアプリ制御部21cは、再起動されるOS上で動作しているアプリケーションプログラムの中から、OSの再起動中に動作を停止すべきでない、動作を継続させるべきアプリケーションプログラムを、二次記憶部23のアプリテーブル23bに基づいて判定する。アプリ制御部21cは、動作を継続させるべきアプリケーションプログラムを、再起動するOSとは異なるOSで実行すると共に、再起動の完了後にこのアプリケーションプログラムを元のOSで実行する。
【0053】
<アプリケーションプログラム制御処理>
図3は、本実施の形態に係るGW2のソフトウェア構成を説明するための模式図である。本実施の形態に係るGW2は、制御部21が二次記憶部23に記憶されたプログラム23aを一次記憶部22に読み出して実行することによって、図3に示すソフトウェアの構成が実現される。図3のハードウェアは制御部21及び一次記憶部22等のハードウェアに関するリソースを示しており、本実施の形態に係るGW2は、このハードウェアを仮想化した仮想環境をOSに対して提供する。仮想環境は、実際のハードウェアの構成等に関係なく、所定の仮想的なハードウェア構成を前提としたインタフェースをOSに提供する。仮想環境は、OSからの命令等を実際のハードウェアに適した命令に変換してハードウェアを制御する。OS及びハードウェアの間に仮想環境が介在することによって、ハードウェアの構成が異なる他のGW2についても同じOS及びアプリケーションプログラムを実行することができる。仮想環境を実現するためのプログラムは、ハードウェアの構成毎に作成され得る。
【0054】
本実施の形態に係るGW2では、通常の動作状態において、例えばOS1及びOS2の2つのOSが仮想環境上で動作している。また例えばOS1条ではアプリ1~アプリ3の3つのアプリケーションプログラムが動作し、OS2上ではアプリ4の1つのアプリケーションプログラムが動作している。なお本実施の形態においては、OSの識別情報として「OS1」が付されたOSを単にOS1と呼び、識別情報として「OS2」が付されたOSを単にOS2と呼ぶ。同様に、アプリケーションプログラムの識別情報として「アプリ1」が付されたアプリケーションプログラムを単にアプリ1と呼び、「アプリ2」が付されたアプリケーションプログラムを単にアプリ2と呼び、「アプリ3」が付されたアプリケーションプログラムを単にアプリ3と呼ぶ。
【0055】
例えば、GW2の制御部21がシングルプロセッサ又はシングルコア等の演算処理装置である場合には、アプリ1~4はタイムシェアリングにより切り替えられて並列的に動作する。また例えばGW2の制御部21がマルチプロセッサ又はマルチコア等の演算処理装置である場合には、アプリ1~4が同時的に並列的に動作する。このようなハードウェアの構成の差異は仮想環境により吸収されるため、OS1,2及びアプリ1~4は実際のハードウェアの構成に関係なく動作する。
【0056】
本実施の形態に係るGW2が動作させる2つのOS1,2は、例えばLinux(登録商標)及びWindows(登録商標)等のような種類の全く異なるOSであってもよく、例えば同じ種類のOSのバージョン違いなどであってもよい。アプリ1~4は、例えば対応するOSに専用のアプリケーションプログラムであってもよく、また例えば複数のOSで動作する汎用的なアプリケーションプログラムであってもよい。
【0057】
本実施の形態に係るGW2は、二次記憶部23にプログラム23aとして記憶されたOS及びアプリケーションプログラムを読み出して一次記憶部22に記憶し、一次記憶部22に記憶されたOS及びアプリケーションプログラムを制御部21が読み出して実行する。GW2は、二次記憶部23からOSを一次記憶部22に読み出して実行する際に、OS毎に一次記憶部22の所定サイズの記憶領域を割り当てる。ず3においては、各OSに割り当てられた記憶領域を破線の矩形で示している。各OSは、自身に割り当てられた記憶領域を用いて処理を行い、他のOSに割り当てられた記憶領域にアクセスすることはできない。
【0058】
またGW2は、二次記憶部23に記憶されたアプリケーションプログラムを一次記憶部22に読み出す場合、アプリケーションプログラムを管理するOSに割り当てられた記憶領域に、読み出したアプリケーションプログラムを記憶する。図3に示す例では、OS1の記憶領域にアプリ1~3が記憶され、OS2の記憶領域にアプリ4が記憶されている。
【0059】
図4は、GW2のアプリテーブル23bの一例を示す模式図である。本実施の形態に係るアプリテーブル23bは、OSを識別するための識別情報であるOSIDと、アプリケーションプログラムに関するアプリ情報と、アプリケーションプログラムを実行するために必要なOSの機能を示す必要機能情報とを対応付けて記憶している。アプリ情報には、アプリケーションプログラムを識別するための識別情報であるアプリIDと、アプリケーションプログラムのデータ量と、OSの再起動時におけるアプリケーションプログラムの停止の可否とが含まれる。必要機能情報には、アプリケーションプログラムの実行に必要なOSのカーネルの種類と、ドライバA~Cの要否と、ライブラリA,Bの要否と、必要な機能のデータ量とが含まれる。本例では、図3に示したように、GW2がOS1及びOS2の2つのOSを動作させ、OS1上でアプリ1~3を動作させ、OS2上でアプリ4を動作させるものとして、アプリテーブル23bの構成例が示されている。
【0060】
図示のアプリテーブル23bにおいて、通常動作時にOS1上で動作するアプリ1は、プログラムのデータ量が5MB(メガバイト)であり、OS1の再起動に際して動作を停止することが不可(禁止)に設定されている。またアプリ1は、OS1又はOS2のカーネルのいずれでも動作可能であり、ドライバA,C及びライブラリBが必要であり、これらの必要機能に関するプログラムのデータ量が30MBである。
【0061】
同様に、通常動作時にOS1上で動作するアプリ2は、プログラムのデータ量が3MBであり、OS1の再起動に際して動作を停止することが不可に設定されている。またアプリ2は、OS1のカーネルでのみ動作可能であり、ドライバB及びライブラリA,Bが必要であり、これらの必要機能に関するプログラムのデータ量が20MBである。
【0062】
通常動作時にOS1上で動作するアプリ3は、プログラムのデータ量が10MBであり、OS1の再起動に際して動作を停止することが可(許可)に設定されている。またアプリ3は、OS1のカーネルでのみ動作可能であり、ドライバA,B,C及びライブラリA,Bが必要であり、これらの必要機能に関するプログラムのデータ量が50MBである。
【0063】
通常動作時にOS2上で動作するアプリ4は、プログラムのデータ量が5MBであり、OS2の再起動に際して動作を停止することが可に設定されている。またアプリ4は、OS1又はOS2のカーネルのいずれでも動作可能であり、ドライバA,C及びライブラリBが必要であり、これらの必要機能に関するプログラムのデータ量が30MBである。
【0064】
図5は、本実施の形態に係るGW2がOS1の再起動を行う場合のソフトウェア構成を説明するための模式図である。例えばOS1のアップデートが完了して再起動を行う必要が生じた場合、GW2は、二次記憶部23に記憶されたアプリテーブル23bを参照して、OS1上で動作しているアプリ1~3を再起動中に停止不可が設定されているアプリケーションプログラム、即ち動作を継続させるべきアプリケーションプログラムを判定する。本例では、OS1上で動作するアプリ1及びアプリ2が停止不可に設定されている。
【0065】
停止不可のアプリケーションプログラムのうち、本例ではアプリ1はOS2上で動作させることができる。GW2は、OS2の記憶領域の空き容量を取得し、アプリ1を動作させるために必要なデータ量である5MBがOS2の記憶領域に確保できるか否かを判定する。OS2の記憶領域の空き容量が5MB以上である場合、GW2は、OS1の記憶領域に記憶されているアプリ1をOS2の記憶領域へコピーする。このときにGW2は、アプリ1のプログラムコードのみではなく、その時点においてアプリ1が処置に用いているデータ(例えば変数に格納された値)をコピーする。その後にGW2は、OS1上のアプリ1からOS2上のアプリ1へ動作を切り替える。
【0066】
停止不可のアプリケーションプログラムのうち、本例ではアプリ2はOS1上でのみ動作する。GW2は、アプリテーブル23bを参照してアプリ2の動作に必要なOSの機能を判定する。本例では、OS1のカーネル、ドライバB及びライブラリA,Bが必要である。GW2は、一次記憶部22の空き容量を取得し、アプリ2のデータ量である3MBと、アプリ2の動作に必要な機能に関するデータ量である20MBとが、一次記憶部22の空き領域に確保できるか否かを判定する。一次記憶部22の空き容量が23MB以上である場合、GW2は、まずまずOS1から必要な機能(本例ではOS1のカーネル、ドライバB及びライブラリA,B)を抽出した簡易OS1を生成し、仮想環境上で簡易OS1を起動して動作させる。なお簡易OS1は、OS1と全く同じものとなり得る。次いでGW2は、OS1の記憶領域に記憶されているアプリ2を簡易OS1の記憶領域へコピーし、OS1上のアプリ2から簡易OS1上のアプリ2へ動作を切り替える。
【0067】
OS2の記憶領域にアプリ1を記憶するだけの空き容量がない場合、又は、一次記憶部22に簡易OS1及びアプリ2を記憶するだけの空き容量がない場合、GW2は、OS1の再起動中にアプリ1,2を動作させることができないため、OS1の再起動を行わずに待機する。ただしGW2は、車両1のIGスイッチ6がオフ状態であれば、OS1の再起動を行ってよい。車両1のIGスイッチ6がオン状態であれば、GW2は、IGスイッチ6がオン状態からオフ状態へ切り替えられた場合に、OS1の再起動を行う。なおIGスイッチ6がオフ状態でOS1の再起動を行う場合、GW2は、上述のようなアプリ1,2の継続動作を行わずに、アプリ1,2の動作を停止させてOS1の再起動を行ってよい。
【0068】
OS1の再起動が完了した後、GW2は、OS2上で動作していたアプリ1と、簡易OS1上で動作していたアプリ2とを、再起動したOS1上で動作させる。このときにGW2は、OS2の記憶領域からOS1の記憶領域へアプリ1をコピーし、OS2上のアプリ1からOS1上のアプリ1へと動作を切り替える。同様にGW2は、簡易OS1の記憶領域からOS1の記憶領域へアプリ2をコピーし、簡易OS1上のアプリ2からOS1上のアプリ2へと動作を切り替える。またGW2は、OS1の再起動に伴って動作を停止していたアプリ3を起動して動作させる。
【0069】
なおGW2は、OS1の再起動が完了し、OS1上のアプリ1,2が動作を開始した後、OS2の記憶領域に記憶されているアプリ1と、一次記憶部22に記憶されている簡易OS1及びこの簡易OS1の記憶領域に記憶されているアプリ2とを消去する。なお本実施の形態において、一次記憶部22に記憶されたプログラム及びデータ等の情報の消去は、これらの情報が記憶されていた領域が例えばオール”0”等の初期値に初期化されることのみでなく、これらの情報が記憶された領域に対して別の情報の書き込みが可能となるよう記憶領域が管理されることを含む。
【0070】
<フローチャート>
図6及び図7は、本実施の形態に係るGW2が行うOS再起動処理の手順を示すフローチャートである。本実施の形態に係るGW2の制御部21の再起動判定部21aは、動作中の一又は複数のOSについて、再起動が必要であるか否かを判定する(ステップS1)。全てのOSについて再起動の必要がないと判定した場合(S1:NO)、再起動判定部21aは、OSの再起動が必要になるまで待機する。
【0071】
少なくとも1つのOSについて再起動が必要であると判定した場合(S1:YES)、制御部21のアプリ制御部21cは、アプリテーブル23bを参照する(ステップS2)。アプリテーブル23bに基づいてアプリ制御部21cは、その時点で動作中のアプリケーションプログラムの中に、OSの再起動中に停止不可のアプリケーションプログラムが存在するか否かを判定する(ステップS3)。停止不可のアプリケーションプログラムが存在しない場合(S3:NO)、制御部21のOS制御部21bは、再起動が必要なOSについて再起動を行い(ステップS4)、処理を終了する。
【0072】
停止不可のアプリケーションプログラムが存在する場合(S3:YES)、アプリ制御部21cは、停止不可の一又は複数のアプリケーションプログラムの中から、処理対象とする1つのアプリケーションプログラムを選択する(ステップS5)。アプリ制御部21cは、アプリテーブル23bに基づいて、ステップS5にて選択したアプリケーションプログラムが別のOSで動作可能であるか否かを判定する(ステップS6)。別のOSで動作可能である場合(S6:YES)、アプリ制御部21cは、この別のOSの記憶領域の空き容量を取得する(ステップS7)。アプリ制御部21cは、ステップS7にて取得した空き容量と、処理対象のアプリケーションプログラムの動作に必要な容量とを比較し、空き容量が必要容量以上であるか否かを判定する(ステップS8)。空き容量が必要容量に満たない場合(S8:NO)、制御部21はOSの再起動を待機して(ステップS9)、処理を終了する。
【0073】
空き容量が必要容量以上である場合(S8:YES)、アプリ制御部21cは、処理対象のアプリケーションプログラムを、再起動するOSの記憶領域から別のOSの記憶領域へコピーする(ステップS10)。アプリ制御部21cは、停止不可のアプリケーションプログラムの全てについて、他のOSへのコピーを終了したか否かを判定する(ステップS11)。全ての停止不可のアプリケーションプログラムについてコピーを終了していない場合(S11:NO)、アプリ制御部21cは、ステップS5へ処理を戻し、別のアプリケーションプログラムを選択して同様の処理を行う。全ての停止不可のアプリケーションプログラムについてコピーを終了した場合(S11:YES)、アプリ制御部21cは、ステップS18へ処理を進める。
【0074】
またアプリ制御部21cは、ステップS5にて選択したアプリケーションプログラムが別のOSで動作可能でないと判定した場合(S6:NO)、一次記憶部22の空き容量を取得する(ステップS12)。アプリ制御部21cは、ステップS12にて取得した空き容量と、処理対象のアプリケーションプログラム及びこれを動作させる簡易OSの動作に必要な容量とを比較し、空き容量が必要容量以上であるか否かを判定する(ステップS13)。空き容量が必要容量に満たない場合(S13:NO)、制御部21はOSの再起動を待機して(ステップS14)、処理を終了する。
【0075】
空き容量が必要容量以上である場合(S14:YES)、OS制御部21bは、再起動するOSからアプリケーションプログラムの動作に必要な機能を抽出した簡易OSを生成して起動する(ステップS15)。アプリ制御部21cは、処理対象のアプリケーションプログラムを、再起動するOSの記憶領域からステップS15にて起動した簡易OSの記憶領域へコピーする(ステップS16)。アプリ制御部21cは、停止不可のアプリケーションプログラムの全てについて、他のOS(簡易OS)へのコピーを終了したか否かを判定する(ステップS17)。全ての停止不可のアプリケーションプログラムについてコピーを終了していない場合(S17:NO)、アプリ制御部21cは、ステップS5へ処理を戻し、別のアプリケーションプログラムを選択して同様の処理を行う。全ての停止不可のアプリケーションプログラムについてコピーを終了した場合(S17:YES)、アプリ制御部21cは、ステップS18へ処理を進める。
【0076】
アプリ制御部21cは、ステップS10及びS16にてコピーしたアプリケーションプログラムを起動する(ステップS18)。アプリ制御部21cは、再起動するOS上で動作しているアプリケーションプログラムから、ステップS18にて起動したアプリケーションプログラムへの切り替えを行う(ステップS19)。OS制御部21bは、再起動が必要なOSについて再起動を行う(ステップS20)。OSの再起動が完了した後、他のOS又は簡易OSにて一時的に動作させたアプリケーションプログラムを再起動が完了したOSの記憶領域へコピーして起動し、他のOS又は簡易OSにて動作しているアプリケーションプログラムから、再起動したOSのアプリケーションプログラムへの切り替えを行う(ステップS21)。アプリ制御部21cは、他のOS及び簡易OSの記憶領域に一時的にコピーしたアプリケーションプログラムを削除して(ステップS22)、処理を終了する。
【0077】
図8は、本実施の形態に係るGW2が行う待機処理の手順を示すフローチャートである。本実施の形態に係るGW2の制御部21は、図7に示したフローチャートのステップS9又はS14にてOSの再起動を待機した場合に、図8に示したフローチャートの処理を開始する。制御部21は、車両1のIGスイッチ6から与えられるIG信号を取得する(ステップS31)。制御部21は、取得したIG信号に基づいて、IGスイッチ6がオフ状態であるか否かを判定する(ステップS32)。IGスイッチ6がオン状態である場合(S32:NO)、制御部21は、ステップS31へ処理を戻し、IGスイッチ6がオン状態からオフ状態へ切り替えられるまでOSの再起動を待機する。IGスイッチ6がオフ状態である場合(S32:YES)、制御部21のOS制御部21bは、待機していたOSの再起動を行い(ステップS33)、処理を終了する。
【0078】
<まとめ>
以上の構成の本実施の形態に係るGW2は、共通のハードウェア上で動作する複数のOSを制御する。GW2は、複数のOSについて再起動の要否を判定し、一のOSを再起動する必要があると判定した場合、この一のOS上で動作しているアプリケーションプログラムを他のOS上で動作させる。その後にGW2は、一のOSを再起動し、再起動の完了後に他のOS上で動作させたアプリケーションプログラムを一のOS上で動作させる。これによりGW2は、一のOS上で動作していたアプリケーションプログラムを他のOS上で実行することができ、一のOSの再起動中であってもアプリケーションプログラムの処理を継続的に行うことができる。
【0079】
また本実施の形態に係るGW2は、一のOSを再起動している間、他のOSを並行して動作させる。これによりGW2は、一のOSの再起動中に、他のOS上でアプリケーションプログラムを並行して実行させることができる。
【0080】
また本実施の形態に係るGW2は、一のOS上で動作するアプリケーションプログラムを他のOS上で動作させる場合に、一のOSが使用する記憶領域に記憶されたアプリケーションプログラムを他のOSが使用する記憶領域へコピーする。一のOSの再起動完了後、GW2は、コピーしたアプリケーションプログラムを他のOSの記憶領域から削除する。これによりGW2は、一のOSの記憶領域からアプリケーションプログラムをコピーして他のOS上で動作させることができるため、他のOS上で動作させるアプリケーションプログラムを別途用意する必要がない。
【0081】
また本実施の形態に係るGW2は、再起動の必要があると判定した一のOS上で動作している一又は複数のアプリケーションプログラムの中から、一のOSの再起動中に動作を継続させるべきアプリケーションプログラムを判定する。GW2は、動作を継続させるべきアプリケーションプログラムを動作させることができる他のOSの有無を判定する。GW2は、アプリケーションプログラムを動作させることができると判定した他のOSの記憶領域に、このアプリケーションプログラムを記憶するだけの空き容量が存在するか否かを判定する。空き容量があると判定した場合、GW2は、アプリケーションプログラムを他のOSの記憶領域へコピーして動作させる。これらの処理によりGW2は、OSの再起動中に動作を継続させるべきアプリケーションプログラムをより確実に動作させることが期待できる。
【0082】
また本実施の形態に係るGW2は、他のOSの記憶領域にアプリケーションプログラムを記憶するだけの空き容量が存在しない場合、GW2は、このアプリケーションプログラムが動作している一のOSの再起動を行わずに待機する。これにより、動作を継続させるべきアプリケーションプログラムが停止されることを防止できる。
【0083】
また本実施の形態に係るGW2は、OSの再起動を待機した場合、車両1のIGスイッチ6がオン状態からオフ状態へ切り替えられた後にOSの再起動を実施する。これによりGW2は、ユーザが車両1の仕様を終えた可能性が高い段階、即ちアプリケーションプログラムの処理が停止しても問題が生じない可能性が高い段階で、OSを再起動することができる。
【0084】
また本実施の形態に係るGW2は、動作を継続させるべきアプリケーションプログラムを動作させることができる他のOSが存在しないと判定した場合、再起動する一のOSの代替となる代替OS(簡易OS)を起動して、アプリケーションプログラムを代替OS上で動作させる。これによりGW2は、動作を継続させるべきアプリケーションプログラムをより確実に動作させることができる。
【0085】
また本実施の形態に係るGW2は、再起動する一のOSの機能の一部を有する簡易OSを代替OSとして用いる。これにより、一のOSの全機能を有するOSを代替OSとする場合と比較して、GW2の記憶領域の使用量を低減することができる。
【0086】
また本実施の形態に係るGW2は、ハードウェアを仮想化した仮想環境をOSに対して提供し、仮想環境上で複数のOSを動作させる。これにより、GW2にて動作させるOSの汎用性の向上及び開発の容易化等が期待できる。
【0087】
なお本実施の形態においては、複数のOSに対して個別の記憶領域を割り当てる構成としたが、これに限るものではない。例えば複数のOSが1つの記憶領域を共有する構成であってもよく、この場合にはアプリケーションプログラムのコピーを行うことなく、他のOSにてこのアプリケーションプログラムを動作させることができる。また本実施の形態において再起動するソフトウェアをOSとしたが、これに限るものではなく、例えばインタープリタ又はVM(Virtual Machine)等のソフトウェアであってよく、何らかのアプリケーションプログラムの実行環境を提供する基本ソフトウェアであってよい。
【0088】
(変形例)
図9は、変形例に係るGW2のアプリテーブル23bの一例を示す模式図である。図9に示す変形例に係るアプリテーブル23bは、図4に示したアプリテーブル23bの「停止可否」に代えて、「優先度」の情報が各アプリケーションプログラムについて設定されている。本例では、優先度は1~3の3段階で設定され、優先度1が最も優先度が高いものとする。
【0089】
変形例に係るGW2は、優先度1のアプリケーションプログラムについて、OSの再起動の際に動作の停止不可のアプリケーションプログラムと判断し、他のOSでの動作を行う。優先度1のアプリケーションプログラムを他のOSで動作させることができない場合、GW2は、OSの再起動を待機する。即ち、優先度1のアプリケーションプログラムは、図4に示したアプリテーブル23bにて停止可否に不可が設定されたアプリケーションプログラムと同様に扱われる。
【0090】
変形例に係るGW2は、優先度2のアプリケーションプログラムについて、OSの再起動の際に、可能であれば動作を継続させる。GW2は、先に優先度1のアプリケーションプログラムについてコピー等の他のOSでの実行の準備を行った後、優先度2のアプリケーションプログラムを他のOSで動作させることができるか否か判定する。他のOSの記憶領域に十分な空きがある場合など、他のOSで優先度2のアプリケーションプログラムを動作させることができる場合、GW2は、優先度2のアプリケーションプログラムを他のOSの記憶領域にコピーして動作させる。優先度2のアプリケーションプログラムを他のOSで動作させることができない場合であっても、GW2は、OSの再起動を行う。
【0091】
変形例に係るGW2は、優先度3のアプリケーションプログラムについて、OSの再起動の際に、動作を継続させる必要がないアプリケーションプログラムであると判定する。即ち、優先度3のアプリケーションプログラムは、図4に示したアプリテーブル23bにて停止可否に可が設定されたアプリケーションプログラムと同様に扱われる。ただしGW2は、優先度3のアプリケーションプログラムについても、他のOSにて動作させることが可能であれば、OSの再起動中に動作を継続して行わせてもよい。
【0092】
以上の構成の変形例に係るGW2は、アプリケーションプログラムに設定された優先度に応じて、OSの再起動中に動作を継続させるべきアプリケーションプログラム判定する。これによりGW2は、例えば優先度が高いアプリケーションプログラムを他のOS上で優先して動作させることができる。
【0093】
車載情報処理システムにおける各装置は、マイクロプロセッサ、ROM及びRAM等を含んで構成されるコンピュータを備える。マイクロプロセッサ等の演算処理部は、図6図8に示すような、シーケンス図又はフローチャートの各ステップの一部又は全部を含むコンピュータプログラムを、ROM、RAM等の記憶部からそれぞれ読み出して実行してよい。これら複数の装置のコンピュータプログラムは、それぞれ、外部のサーバ装置等からインストールすることができる。また、これら複数の装置のコンピュータプログラムは、それぞれ、CD-ROM、DVD-ROM、半導体メモリ等の記録媒体に格納された状態で流通する。
【0094】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本開示の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0095】
1 車両
2 GW
3 ECU
5 無線通信装置
6 IGスイッチ
21 制御部
21a 再起動判定部
21b OS制御部
21c アプリ制御部
22 一次記憶部
23 二次記憶部
23a プログラム
23b アプリテーブル
24 通信部
図1
図2
図3
図4
図5
図6
図7
図8
図9