階層型スケジューラによる自動車制御システム向け時間保護環境

階層型スケジューラによる自動車制御システム向け時間保護環境
松
原
豊†
冨
山
宏
之†
高
田
広
章†
近年,自動車制御システムは自動車の高性能化に伴い,制御コンピュータの数が急激に増加してい
る.そのため,製造コストの増加,車内スペースの不足,車載ネットワークの複雑化などの問題が深
刻となっている.本稿では,複数の制御コンピュータ上で動作していた制御用ハードリアルタイムア
プリケーションを単一の制御コンピュータ上に統合して動作させる手法として,階層型スケジューラ
による時間保護環境を提案する.本手法により,車両に搭載される制御コンピュータの数を削減でき
ると考えられる.
Time Protection Environment
for Automotive Control System with Hierarchical Scheduler
Yutaka Matsubara,† Hiroyuki Tomiyama†
and Hiroaki Takada†
Recently, the number of control computers for the automotive control system increases
rapidly along with making of automovite efficient. Therefore, the problem of an increase of
the manufacturing cost, the complication of automotive network and lack of space in the
automotive is serious. In this paper, we propose a hierarchical scheduler that can achieve the
time protection environment as a method for the integration of hard real-time application
for the automotive control on a single control computers. It is thought that the number of
control computers installed in the automotive can be reduced by this method.
1. は じ め に
いる.
ECU 数を削減する方法として,単一の ECU 上に
近年,自動車制御システムは,低燃費化,走行性能
複数のアプリケーションを統合する手法が考えられ
の向上, 排気ガス規制への対応などの目的から大規模
る.すなわち,従来システムでは,一つのアプリケー
化,複雑化している.それに伴い,自動車に搭載され
ションが一つの ECU を占有していたが,複数のアプ
る ECU(Electronic Control Unit; 電子制御ユニッ
リケーションをまとめて単一の ECU 上で動作させる
ト)数の増加や制御アプリケーションの大規模化,複
ことで,ECU 数を減らすことが可能となる.ここで
雑化が大きな問題となっている.例えば,一般的な自
問題となるのは,
,従来のようにアプリケーション毎
動車に搭載される ECU の数は,1998 年では 30 個程
の動作検証が完了しているだけではシステムの動作検
度であったが,2003 年には 70 個程度まで増加してい
証としては不十分で,アプリケーション間での時間制
るといわれている.
約を考慮する必要があることである.複数のハードリ
ECU 数の増加は,自動車製造コストの増加だけで
アルタイム性が要求される制御アプリケーションを,
はなく,自動車制御システムの配置スペースの圧迫,
単純に単一の ECU 上で動作させるだけでは,アプリ
ECU 間の通信ネットワークの複雑化といった問題を
ケーション間でプロセッサ実行時間を取り合い,その
誘発する.一方,制御アプリケーションの大規模化は,
結果,アプリケーション内の全てのタスクについて,
ソフトウエアの品質,信頼性の低下や開発コストの増
リアルタイム性を保証することが困難になる.また,
加を招く.さらなる自動車の高性能化に伴い,今後も
あるアプリケーション内のタスクに含まれるバグが原
ECU の数は増加すると思われる.そこで,自動車制
因で,他のアプリケーションのタスクの実行が遅れ,
御システムに用いられる ECU 数の削減が求められて
バグをもつタスクとは無関係なタスクがデッドライン
をミスしてしまう可能性もある.そこで,特定のタス
† 名古屋大学大学院 情報科学研究科 情報システム学専攻
Department of Information Engineering, Graduate
School of Information Science, Nagoya University
クについてのみ時間制約を考慮するのではなく,アプ
リケーションレベルから,タスクのデッドラインを考
慮するタスクスケジューリング手法が必要となる.
本稿では,自動車制御システムに搭載されるハード
リアルタイムアプリケーションを主な適応対象として,
複数のアプリケーションを単一の ECU 上で容易に統
合可能な環境を構築するためのタスクスケジューリン
グ手法を提案する.具体的にはまず,ハードリアルタ
イムアプリケーションが時間制約を満たしつつ,実行
時間に関する独立性を高めるための環境として,時間
保護の概念を提案する.そして,時間保護を実現する
ためのバジェット割当て方式の階層型スケジューラを
図 1 時間保護によるアプリケーションの統合の例
Fig. 1 Example of Integration of Hard Real-Time
Applications on Time Protection Environment
提案する.
階層型スケジューラは,各アプリケーションに対し
て,アプリケーション内のタスクのリリース時刻とデッ
2.2 タスクの実行時間保証
時間保護の満たすべき性質の一つ目は,タスクの実
ドラインを考慮して,プロセッサ実行時間を割当てる.
行時間を保証することである.ここでは,タスクが時
これにより,アプリケーション単位での実行時間の保
間制約を満たすとは,タスクがリリースされてから,
護と,アプリケーション内のタスクのリアルタイム性
そのデッドラインまでに必ず実行が完了することと
を保証することが可能となる.
する.
以下,本稿ではまず,2 章で時間保護の概要とその
それぞれが複数のタスクで構成された N 個のアプリ
満たすべき性質について述べる.3 章で関連研究につ
ケーションがあるとする.さらに,各アプリケーショ
いて述べる.そして,4 章でスケジューリング対象と
ンはそれぞれ,速度 σ1 , σ2 , . . . , σN のプロセッサ上で
なるタスクとアプリケーションをモデル化し,5 章で
それぞれ時間制約を満たして実行できるとする.タス
時間保護環境を実現するための階層型スケジューラに
クの実行時間を保証するとは,速度
ついて詳細に述べる.最後に,6 章で今後の課題を述
セッサで,すべてのアプリケーション内のタスクを,
べる.
その時間制約を満たすようにスケジュールすることで
2. 時 間 保 護
2.1 概
要
提案する時間保護の概念は,従来では一つの ECU
を独占して動作していたエンジン制御,ギア制御,ド
PN
i=1
σi のプロ
ある.
タスクの実行時間について考えると以下のように
なる.すなわち,アプリケーション内のあるタスクの
リリース時刻を r,起動時刻を a,実行完了時刻を e,
デッドラインを d とすると,速度 σk (1 ≤ k ≤ N ) の
ア制御,シート制御などといった各種の制御アプリ
プロセッサ上で,そのタスクは時間制約が満たすこと
ケーションを,単一の ECU 上でまとめて動作させる
から,r ≤ a かつ,e ≤ d の関係が成り立ち,タスク
ことを可能とする.例えば,図 1 に示すように,3 つ
ECU 上でそれぞれ単体で動作している 3 つのアプリ
ケーションを一つの ECU で統合動作させることによ
り,自動車制御システムに用いられる ECU 数を削減
の実行時間は e − a となる.この時,同じタスクを速
度
PN
i=1
σi のプロセッサ上で実行した場合にも,そ
のタスクについて,r ≤ a かつ e ≤ d の関係が成り立
ち,さらに,その実行時間が (e − a)σk /
PN
i=1
σi に
することが可能となる.また,アプリケーション毎に
なることが保証される.ただし,アプリケーション間
プロセッサ実行時間を保護するため,アプリケーショ
の切換えやスケジューリングにかかるオーバヘッドは
ンの独立性が高まり,動作検証時におけるアプリケー
無視する.
ションの問題の切り分けや,異なる検証レベルのアプ
この性質により,複数のアプリケーションを統合し
リケーション統合,アプリケーション自体の再利用性
た場合でも,それぞれのアプリケーション内のタスク
の向上が期待できる.
について,時間制約を満たすことが保証される.した
本稿では,この時間保護を実現するスケジューラと
がって,制御アプリケーションの開発者は,アプリケー
して,バジェット割当て方式の階層型スケジューラを
ション開発段階において,統合時の状況をほとんど考
提案するが,詳細は 5 章で述べる.ここではまず,時
慮する必要がなく,アプリケーション単体の開発に集
間保護環境が制御アプリケーションの統合環境を実現
中できる.一方,インテグレータの立場では,アプリ
するために,満たすべき 2 つの性質について述べる.
ケーション単体の検証が完了していれば,アプリケー
ションを統合する段階で,統合検証に高いコストを費
やす必要がなくなる.さらに,統合するアプリケーショ
ンを入れ替える場合も,単体で動作が保証された時の
プロセッサ性能に応じて,統合時のプロセッサ性能を
調節し,簡単な再検証するだけで柔軟に対応すること
ができると考えられる.
2.3 アプリケーションの実行時間保護
2 つ目の性質はアプリケーション毎に実行時間が保
護されることである.
先に述べたタスクの実行時間保証では,統合する前
に時間制約を満たすタスクが,統合した後にも時間制
図 2 デッドライン監視ではデッドラインミスを検出できない例
Fig. 2 Example of which Deadline Monitoring cannot
detect deadline miss
ドリアルタイムアプリケーションのリアルタイム性の
保証には適していない.
約を満たすことを,タスクレベルで保証するものであ
タスクのデッドラインミスの検出を目的とした,デッ
る.しかし,アプリケーションレベルで考えると,あ
ドライン監視の手法は,従来よりさまざまなものが提
るタスクのバグや障害,もしくは意図的にデッドライ
案されている.例えば,HIS☆ から,OSEK/VDX 仕
ンミスをするような処理設計をしている場合に,その
様2) を拡張してデッドライン監視機能を実現する手
タスクが所属するアプリケーション以外のアプリケー
法が提案されている1) .提案される手法では,タスク
ションの実行時間を奪ってしまう可能性がある.
モニタリングタイマで,タスクが実行を開始した時
そこで,アプリケーションの実行時間保護は,その
刻からの相対実行時間を監視する.タスクのデッドラ
ようなタスクが,想定される実行時間以上に実行する
イン・ミスが発生すると,予めタスクモニタリングタ
可能性がある場合に,アプリケーションレベルで実行
イマに対して設定したアプリケーションを起動する.
時間を保護する役割を持つ
デッドライン監視機能を,時間保護の観点から考える
例えば,システム上のあるアプリケーションがデッ
と,デッドライン・ミスの検出機能に留まっているた
ドラインをミスしても,その他のアプリケーションの
め,別のタスクに切り替えるといった機能がなく,十
動作に影響を及ぼさないようにそれぞれのアプリケー
分な保護機能が実現されているとはいえない.具体的
ションの実行時間をアプリケーションレベルで保護す
には,時間保護の性質の一つであるアプリケーション
る.すなわち,アプリケーション毎に実行時間が保護
の実行時間保護を実現できない.例えば,表 1 に示す
される環境では,速度 σk のプロセッサ上で正常に動
タスクセットを EDF(Eariest Deadline First)アル
作するアプリケーションが,速度
PN
i=1
σi のプロセッ
サ上で動作する場合には,全プロセッサ実行時間の内,
σk /
PN
i=1
σi が割当てられることが保証される.
この性質により,予めデッドラインのミスを前提と
ゴリズムに基づいてスケジューリングすると,図 2 に
示すように,タスク 2 のオーバランが原因で,タスク
3 がデッドラインをミスする.タスク 2 のデッドライ
ン監視時間をその最大レスポンス時間の 3 に設定し
したアプリケーション同士や,異なる検証レベルをも
ても,タスク 2 のデッドラインミスを検出できない.
つアプリケーションなど,設計が異なるアプリケーショ
さらに,タスク 1,2 を一つのアプリケーション,タ
ンを同一の環境で統合して動作させることが可能にな
スク 3 をもう一つのアプリケーションとした場合に,
る.さらに,このような特殊な場合でも,統合検証の
アプリケーションの実行時間が保護されないことがわ
段階で発生した問題の原因がどのアプリケーションあ
かる.
るのかを明確化し,問題の切り分けが容易になると考
また,時間保護を実現可能なスケジューリング手法
が Z.Deng らによって提案されている4) .しかし,提
えられる.
3. 関 連 研 究
案される手法では,タスクのリリース時刻と実行時間
を基にアプリケーションのスケジューリングを行うた
汎用 PC 向け OS の分野では,プロセッサ実行時間
め,全てのタスクの正確な実行時間が予め得られるこ
をリソースの一つとして捉え,指定した時間,もしく
とを想定している.設計段階において,全てのタスク
は一定の割合でタスクを実行するリソース管理機能が
の正確な実行時間を見積もることは現実的とはいえな
3)
提案されている .これらのリソース管理手法では,特
定の割合でプロセッサ実行時間を割当てることを可能
としているが,QoS 制御を主な目的としており,ハー
☆
Hersteller Initiative Software
ドイツの自動車業界の主要企業 5 社により設立された規格化団
体
表 1 タスクセットの例
Table 1 Sample of Task Set
task 1
task 2
task 3
period
4
6
10
related deadline
4
6
10
maximum excution time
1
2
3
Processor utilization ratio
25%
33.3%
30%
maximum response time
1
3
10
い.したがって,Z.Deng らの手法をそのままの形で
実用化することは困難であると考えられる.
4. モ デ ル 化
4.1 タスクモデル
自動車制御用アプリケーションは,周期タスクや,
実行前に発生時刻をある程度予測可能なイベントに基
づいて起動されるイベントドリブンタスクから構成さ
図 3 階層型スケジューラの構成
Fig. 3 Composition of Hierarchical Scheduler
れることが多い.そこで,タスクモデルは,実行前に
タスクの各ジョブのリリース時刻とデッドラインの情
ス時刻からデッドラインの間に完了する.一方,タス
報が得られるタスクとする.タスクモデルに関して,
クの集合であるアプリケーションでは,所属するタス
以下を定義する.
クのリリース時刻とデッドラインの間で完了する.そ
T :タスクモデル
こで,タスクとアプリケーションの処理について,そ
r:T のリリース時刻
の開始時刻と完了時刻をそれぞれ,タスクイベントと
d:T のデッドライン
アプリケーションイベントと呼ぶ.タスクイベントは,
4.2 アプリケーションモデル
そのタスクのリリース時刻とデッドラインである.ア
タスクと同様に,アプリケーションのモデルを定義
プリケーションイベントは,所属するタスクの全ての
する.アプリケーションモデルは,タスクモデルの集
合と定義する.全てのタスクモデルは,必ずアプリ
ケーションモデルに属する.後に説明するアプリケー
ションスケジューラは,このアプリケーションモデル
を対象に,実行時間を割当てる.アプリケーションモ
さらに,タスク T とアプリケーション A について,
以下を定義する.
N T E :ある時刻の T について,次に発生する
タスクイベント(次タスクイベントと
呼ぶ).
デルに関して,以下を定義する.
A:アプリケーションモデル
N AE :ある時刻の A について,次に発生する
S :全プロセッサ実行時間のうち,A が実行され
る時間の割合(シェアと呼ぶ).
てられる実行時間(バジェットと呼ぶ).
シェアはプロセッサ性能とアプリケーションのプロ
セッサ利用率に応じて決定する.例えば,速度 σk の
プロセッサ上で動作が保証された,プロセッサ利用率
PN
アプリケーションイベント(次アプリ
ケーションイベントと呼ぶ).
B :アプリケーションスケジューラによって割当
が 100 %のアプリケーションを,速度
タスクイベントの集合である.
5. 階層型スケジューラ
5.1 全 体 構 成
時間保護環境を実現する階層型スケジューラの全体
構成を図 3 に示す.
σi のプロ
アプリケーションは,先に定義したタスクモデルか
セッサ上で動作させる場合には,そのアプリケーショ
ら構成されるアプリケーションモデルとして表現され
PN
ンのシェアを σk /
i=1
σ に設定する.
i=1 i
バジェットは各アプリケーション毎に定められたシェ
る.スケジューラは,アプリケーション内のタスクを
スケジューリングするためのタスクスケジューラと,
アに基づいて設定され,アプリケーション内のタスク
アプリケーションをスケジューリングするためのアプ
が実行された分だけ減少する.アプリケーションに対
リケーションスケジューラを階層的に配置した階層型
するバジェットの割当てに関しては,5.3 節で述べる.
スケジューラである.
4.3 イ ベ ン ト
5.2 タスクスケジューラ
タスクの処理は,時間制約が満たされる限り,リリー
タスクスケジューラは,アプリケーション毎に存在
し,対応するアプリケーションのタスクをスケジュー
(1)
リングポリシに基づいてスケジューリングする.スケ
ジューリングポリシは,アプリケーション毎に定める
タスクスケジューラによって,N AEi が更新
される.
(2)
アプリケーション内に実行可能なタスクがな
い場合,Bi = 0 とする.
ことができ,他のタスクスケジューラのスケジューリ
アプリケーションのスケジューリングを行う.
ングポリシと異なっても構わない.また,タスクスケ
(3)
ジューラは 4.3 節で定義した N T E ,N AE を管理す
• Ai の Bi が 0 になった時
る.タスク Tj ∈ Ai (1 ≤ j ≤ M, 1 ≤ i ≤ N ) につい
て,タスクスケジューラは以下のように動作する.
• Tj ∈ Ai がリリース時刻 rj でリリースされた時
(1)
アプリケーションのスケジューリングを行う.
• Ai のデッドラインである N AEi になった時
(1)
タスクスケジューラによって,N AEi が更新
(2)
実行可能タスクがあれば,更新前の次アプリ
(1)
N T Ej を rj から dj に更新する.
(2)
N AEi を更新する.
(3)
タスクのスケジューリングを行う.
ケーションイベント N AEi0 を用いて,以下
(4)
アプリケーションスケジューラに対して,
のように Bi を更新する
される.
Bi =(N AEi − N AEj0 )× Si
N AEi を通知する.
• Tj ∈ Ai の実行が終了した時
(1)
N T Ej を dj から,次の rj に更新する.
(2)
実行可能タスクがあれば,タスクのスケジュー
(3)
アプリケーションのスケジューリングを行う.
5.4 階層型スケジューラの時間保護機能
次に,提案するバジェット方式のスケジューリング
リングを行う.
アルゴリズムが,2.2 節と 2.3 節で述べた時間保護の
実行可能タスクがなければ,N AEi を更新
2 つの性質を満たすことを示す.
する.
(4)
(3)
まず,2.3 節で述べたタスクの実行時間保証につい
アプリケーションスケジューラに対して,
て示す.提案する階層型スケジューラがタスクの実行
N AEi を通知する.
時間を保証することは,すべてのアプリケーションに
• Ai の Bi が 0 になった時
ついて,以下の 2 つを示せすことで説明できる.
(1)
N AEi を更新する.
(2)
アプリケーションスケジューラに対して,
に割当てられる処理量が速度 σk のプロセッサ
N AEi を通知する.
上と,速度
5.3 アプリケーションスケジューラ
アプリケーションスケジューラは,各タスクスケ
(1)
(2)
アプリケーションイベント間において,タスク
PN
i=1
σi のプロセッサ上で等しい.
速度 σk のプロセッサ上でのタスク実行順序が
速度
PN
i=1
σi のプロセッサ上で保存される.
ジューラにより通知された次アプリケーションイベン
まず,バジェット割当てアルゴリズムにより,アプ
トに基づいて,バジェットの割当てとアプリケーショ
リケーションイベント間で,両プロセッサ上で実行さ
ンのスケジューリングを行う.スケジューリングアル
れるタスク処理量は一致する.例えば,あるタスク Tj
ゴリズムは,次アプリケーションイベントをそのアプ
のリリース時刻 rj で,両プロセッサ上で同一のタス
リケーションのデッドラインとした 拡張 EDF アルゴ
クの実行を開始した場合,次アプリケーションイベン
リズムとする.拡張 EDF アルゴリズムでは,バジェッ
トを Ti のデッドライン dj とすると,速度 σk のプロ
トが 0 でないアプリケーションの中で,最もデッドラ
セッサ上では,タスク Tj を dj − rj だけ実行する.一
PN
インが近いアプリケーションから実行する.各アプリ
方,速度
ケーションのバジェットは 0 で初期化する.
ションスケジューラにより,(dj − rj )Sk のバジェット
アプリケーションスケジューラは以下のように動作
i=1
σi のプロセッサ上では,アプリケー
が割当てられ,その分だけ Tj が実行される.Sk は
プロセッサ速度比 σk /
する.
• Tj ∈ Ai がリリース時刻 rj でリリースされた時
PN
i=1
σi と設定すると,両プロ
セッサ上で Tj を処理する量は同じである.
(1)
タスクスケジューラによって,N AEi が更新
される.
ンを実行する場合でも,タスクの実行順序が保存され
(2)
Bi を以下のように更新する.
ることを示す.まず,両プロセッサ上では,タスクリ
Bi =(N AEi − rj )× Si
リース時刻とデッドラインは一致する.さらにタスク
(3)
アプリケーションのスケジューリングを行う.
• Tj ∈ Ai の実行が終了した時
次に,速度が異なるプロセッサ上で,アプリケーショ
切換えが発生する可能性があるのは,実行中タスクよ
り高優先度のタスクがリリースされる時刻と,実行中
タスクが終了する時刻である.この時,2 つのタスク
切換えポイントで,両プロセッサ上のタスクレディー
キューが等しくなる.前者の高優先度タスクのリリー
ス時刻では,両プロセッサのタスクスケジューリング
ポリシが一致していることから,タスクレディーキュー
の状態も同じである.また,後者の実行中タスクの終
了時刻では,タスクリリース時刻でのタスクレディー
キューが一致していることと,アプリケーションイベ
ント間で,両プロセッサでは同じ処理量を実行するこ
とから,両プロセッサ上でそれぞれタスクの実行が終
了した時刻のタスクレディーキューの状況は一致する.
よって,タスク切換えが発生する時刻において,常に
両プロセッサ上のタスクレディーキューの状況が一致
するため,速度が異なるプロセッサ上でもタスクの実
図 4 階層型スケジューラによるアプリケーションの動作例
Fig. 4 Application Scheduling by Hierarchical Scheduler
行順序は一致する.
以上より,速度の異なるプロセッサ上で,タスクの
のアプリケーションは EDF をベースとしているアプ
実行順序が保存され,かつアプリケーションイベント
リケーションスケジューラによりスケジュール可能で
間でのタスク処理量も一致することが示せた.した
あるといえる.アプリケーションがスケジュール可能
がって,遅いプロセッサ上で,全てのタスクが時間制
であるとは,アプリケーション毎の実行時間割り当て
約を満たすことが示されている場合,早いプロセッサ
が互いに独立であることを意味する.
以上より,提案するバジェット方式の階層型スケ
上でも時間制約を満たすことが保証される.
次に,2.3 節のアプリケーション間の実行時間保護
ジューラは時間保護の 2 つの特性を満たすといえる.
について示す.アプリケーションレベルで,実行時間
5.5 スケジューラ間インタフェース
が保護されることを示すには,アプリケーション毎に
タスクスケジューラとアプリケーションスケジュー
割当てられたプロセッサ実行時間が必ず保証されるこ
ラ間のインタフェースは,次アプリケーションイベン
とを示せば良い.
トのみである.したがって,上位層であるアプリケー
これは,アプリケーションをタスクとして捉えるこ
ションとタスクスケジューラと下位層であるアプリ
とで説明できる.すなわち,アプリケーション内の何
ケーションスケジューラは独立している.今後,タス
らかのタスクが実行可能状態もしくは実行状態にある
クモデルやタスクスケジューラのスケジューリングポ
場合を,それぞれアプリケーションの実行可能状態と
リシが変化しても,アプリケーションスケジューラに
実行状態,どのタスクも実行可能状態にない場合をア
は影響しない.
5.6 動 作 例
プリケーションの休止状態と考える.
あるアプリケーション Ak は,速度 σk のプロセッサ
ここでは,表 1 で示したタスクセットをスケジュー
上でスケジュール可能であるため,プロセッサ利用率
リング対象する.タスク 1 とタスク 2 をアプリケー
Uk は 1 以下である.また,速度
ション A,タスク 3 をアプリケーション B とした場
PN
σ のプロセッサ
i=1 i
上で,Ak に割り当てられるプロセッサ実行時間は全体
の σk /
PN
σ である.すると,速度
i=1 i
PN
σ のプロ
i=1 i
セッサ上でのプロセッサ利用率は,Uk ×σk /
PN
合の階層型スケジューラの動作例を図 4 に示す.
シェアは,各アプリケーションのプロセッサ利用率
σ
i=1 i
の値から設定する.例では,アプリケーション A に
となる.全てのアプリケーションについて同様に考え
ついては,タスク 1 と 2 のプロセッサ利用率が,それ
ると,∀i.Ui ≦ 1 かつ,
ぞれ 25 %と 33.3 %なので,少し余裕を見てシェアを
N
X
k=1
(Uk ×σk /
N
X
i=1
PN
(σk /
k=1
σi ) ≤ 1
PN
σ ) = 1 より,
i=1 i
0.6 としている.また,プロセッサの速度は,各アプ
リケーションが同じプロセッサ上で正常に動作してい
たことを想定して 2 倍とする.すなわち,それぞれの
となる.プロセッサ利用率の合計が 1 以下となるタス
タスクについて,表 1 の最大実行時間が統合した環境
クセットは,EDF アルゴリズムによりスケジューリ
ではそれぞれ半分になる.
ング可能であることが知られている6) .よって,全て
実線は各アプリケーションのバジェットの推移を示し
ている.例えば時刻 4 では,アプリケーション A のタ
様準拠の TOPPERS/JSP カーネル5) と自動車制御
スク 1 がリリースされ,次アプリケーションイベント
システムで標準となっている OSEK/VDX 仕様準拠
が時刻 5 であるので,バジェットは (5−4) × 0.6 = 0.6
の TOPPERS/OSEK カーネル5) に,それぞれ実装
が設定される.一方,アプリケーション B のタスク 3
すること検討してる.これにより,時間保護機能をも
もリリースされ,バジェットが (14 − 4) × 0.3 = 3 に
つ RTOS を構築できると考えている.
設定される.アプリケーションのデッドライン(すな
わち,次アプリケーションイベント)が時刻 5 と時刻
7. お わ り に
14 で,アプリケーション A の方が早いので,EDF に
自動車制御システムに用いられる ECU の数を削減
従って,アプリケーション A から実行する.アプリ
する手法として,階層型スケジューラによる時間保護
ケーション A の実行が完了すると,次にアプリケー
環境を提案した.
ション B を実行する.
本稿ではまず,個別に設計,検証されたアプリケー
点線は,各アプリケーションの累積の実行時間を示
ションの動作が統合した環境においても,時間制約を
している.例えば,タスク 2 の 1 回目のジョブは,タ
満たすことを保証するために,時間保護の概念を導入
スク 1 が 2 回実行した後にリリースされるので,累積
した.さらに,時間保護環境では,スケジューリング
実行時間が 1 から 2 になる間に実行されていることに
アルゴリズムが,タスクの実行時間保証とアプリケー
なる.その時刻に着目すると,時刻 5 から実行が開始
ションの実行時間保護の 2 つの性質を満たす必要があ
され,時刻 6 で累積実行時間が 2 に達していることか
ることを述べた.さらに,時間保護を実現する手法と
ら,時刻 11 のデッドラインより前に実行が完了して
して,バジェット方式の階層型スケジューラを提案し,
いることがわかる.
アプリケーション毎の実行時間をバジェットとして管
縦の点線は,アプリケーションイベントを示してい
理することで,時間保護が実現できることを示した.
る.割当てられたバジェットと累積実行時間の推移を
また,2 つのアプリケーションを単一のプロセッサ上
見てわかるように,各アプリケーションは,シェアに
でスケジューリングする動作例を示した.
基づくバジェットとして,プロセッサ実行時間が割当
今後の主な課題として,スケジューリングアルゴリ
てられ,アプリケーションイベント間で全て消費され
ズムの改良と提案した階層型スケジューラを既存の
ていることが分かる.
RTOS に対して実装することなど挙げた.
6. 今後の課題
6.1 スケジューリングアルゴリズムの改良
スケジューリングアルゴリズムの改良については,
タスク切換え回数の削減や制約条件を緩和したタスク
モデルへの対応が考えられる.タスク切換え回数の削
減については,時間保護の性質を満たす範囲で,タス
クの実行終了時に,アプリケーションに対してバジェッ
トを先行的に割当てる手法が考えられる.また,制約
条件を緩和したタスクモデルへの対応については,今
回のタスクモデルがリリース時刻が分かるタスクであ
ることに対し,タスクのデッドラインしか得られない
タスクモデルに対応したスケジューリングアルゴリズ
ムなどが考えられる.また,割込みや,従来の ECU
間通信をアプリケーション間通信として実現する手法
についても検討していく.
6.2 RTOS への実装
実装については,本稿で提案した階層型スケジュー
ラの実現及び,タスク切換えのオーバヘッドの評価
を行うため,既存の RTOS への実装を予定している.
具体的には,提案する時間保護環境をμ ITRON 仕
謝辞 本研究の成果は,2005 年度 IPA 未踏ソフト
ウエア創造事業の援助を受けた.プロジェクトマネー
ジャの並木美太郎先生に感謝致します.
参 考 文 献
1) HIS Standard Software Working Group.
OSEK OS Extensions for Protected Applications Version1.0. HIS, 2003.
2) OSEK Group. OSEK/VDX Operating System
Specification 2.2.1. 2003.
3) Shuichi Oikawa and Ragunathan Rjkumar.
Portable rk:a portable resource kernel for guaranteed and enforced timing behavior. IEEE
Real Time Technology and Applications Symposium, 1999.
4) Z.Deng, J.W.S.Liu, and J.Sun. A scheme for
scheduling hard real-time applications in open
system environment. 9th Euromicro Workshop
on Real-Time Systems, 1997.
5) TOPPERS プロジェクト. http://www.toppers.jp.
6) 白川洋充, 竹垣盛一. リアルタイムシステムとそ
の応用. システム制御情報ライブラリー. 朝倉書
店, 2001.