車載システムにおける高信頼性と電力管理機能の実現 ――ソフトウェアにもフェイル・セーフの考えかたが必須

岡澤幸一

tag: 組み込み

技術解説 2004年1月15日

●○● Column ●○●
市販リアルタイムOSが提供する高信頼性実現機能

 筆者ら(QNX社)が開発しているリアルタイムOSを例に,高信頼性を実現するフレームワークの概要について述べます.このフレームワークの中では,ユーザ・ドメインによって異常を検知し,復旧を制御する機能があらかじめ用意されています.また,それによって高信頼性を持たせたシステムを構築することができます(図A-1)

f11_01.gif
〔図A-1〕QNXのアーキテクチャ

●システム・ドメイン

 システム・ドメインは,リアルタイムOSベンダがモジュールを提供し,かつ,品質管理を行っている領域です.この中にはマイクロカーネル,ドライバ,システム・サービス(ネットワーク,ファイル・システムなど),HA(High Availability)マネージャなどが含まれています.

 システム・ドメイン部の保守はベンダが行います.このことは,だれがソフトウェア部品を保守するかが明確であり,本OSを組み込んだ製品自体の保守にとって重要な意味を持ちます.

●ユーザ・ドメイン

 ユーザ・ドメインの部分は,ユーザがモジュールを開発して保守する領域です.ここには,ユーザが作ったドライバ,サービス,アプリケーションが含まれています.それぞれHAM(High Availability Manager)APIとHAM Libraryを介してHAマネージャとリンクすることで高信頼性を実現しています.

●HAマネージャ,ガーディアン

 高信頼性機能を実現するため,リアルタイムOSはHAマネージャを提供しています.このマネージャは2重化によって信頼性を確保しています.HAマネージャを起動したときに同じ管理データを共有したガーディアンが起動されます(図A-2).ガーディアンは,マスタのHAマネージャがダウンしたときに自分がマスタに切り替わり,そして,新たなガーディアンを起動するようになっています.このため,強じんなHAマネージャを実現できるわけです.

f11_02.gif
〔図A-2〕 HAマネージャと ガーディアン

 本フレームワーク内では異常の検知および異常からの復旧について,次のような項目が設けられています.

●シンプル・リスタート

 一つのプロセスに再起動をかける単純なリスタートです.これは,リスタートをかけてサービスを再開することが可能なものに対して利用します.

●複合リスタート

 再起動が複数のサービス・プロセス,ドライバのリスタートを要求する場合に利用します.

●停止および異常条件の通知

 プロセス(アプリケーション)の異常停止条件が発生したことを,ほかのプロセスに通知するサービスです.OSで検知する異常(メモリ異常など)と,次に示すハートビートの監視の結果として得られる異常が存在します.

●ハートビートの発生およびチェック

 ハートビートとは「鼓動」のことです.つまり,鼓動を返しているうちは生きており,鼓動を返さなくなった場合に停止したものとして異常を検知します.実際にはプログラムの中でHAM
APIを介して鼓動を発生させ,HAマネージャに生存を通知します.もし鼓動がなくなると,HAマネージャはOSで検知された異常と同じように扱います.すなわち,シンプル・リスタートや複合リスタートを起こすことができます.

●サービスの2重化

 アプリケーションとサービス,ドライバをつなぐ方法として,本OSではプロセス間通信を使います.このため,サービスを2重化したときに単純にプロセス間通信の接続先を切り替えることにより,2重化できます.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日