学位論文要旨



No 126598
著者(漢字) 戴,毛兵
著者(英字)
著者(カナ) タイ,モウヘイ
標題(和) 実時間システムための割り込み処理と排他期間処理
標題(洋) Interrupt and Critical Section Arrangements For The Real-Time Systems
報告番号 126598
報告番号 甲26598
学位授与日 2011.03.14
学位種別 課程博士
学位種類 博士(情報理工学)
学位記番号 博情第300号
研究科 情報理工学系研究科
専攻 コンピュータ科学専攻
論文審査委員 主査: 東京大学 教授 平木,敬
 東京大学 教授 米澤,明憲
 東京大学 准教授 須田,礼仁
 東京大学 准教授 五島,正裕
 名古屋大学 教授 高田,広章
内容要旨 要旨を表示する

リアルタイムオペレーティングシステムは広い範囲で使われている。その環境は複雑な大規模システムでもあり、小さな組み込みシステムでもある。この上、システムにおける実時間タスクの時間制限も多様である。そのため、静的に作り上げたリアルタイムオペレーティングシステムをすべてのハードウェア環境とソフトウェア環境に適用するには、無理がある。本論文では、一つ動的なリアルタイムシステムを提示する。このシステムでは、ユーザはシステムが使われている環境によって、動的にシステムの時間精度と優先度の指定ができ、最適化したリアルタイムシステムを作ることができる。また、このシステムは実時間タスクのデッドライン時間内の実行終了を保証する上、実時間タスクの実行によって、非実時間タスクへの性能影響を最大限に抑える。

リアルタイムオペレーティングシステムの開発には、一つ重要な目標は実時間タスクのデッドライン時間内にその実行を終了させることである。そのため、カーネルは実時間タスクを迅速にスタートさせる必要がある。実時間タスクのスタートは一般にタイマー割り込みを指定した時間とおりにカーネルに来ることによって実現する。しかし、通常のカーネルには、多くの割り込み禁止期間がある。タスクは割り込み禁止期間中にいるとき、ハードウェア割り込みが禁止され、割り込みハンドラの実行も遅延される。この原因で、タイマー割り込みは即時にカーネルに入らず、実時間タスクのスタートも遅延される。この問題を解決するため、本論本では、遅延した割り込み処理方式を提案する。この方式では、周辺デバイスからの割り込みは禁止されず、割り込みは即時にカーネルに入ることができる。また、共有リソースへの同時アクセスを回避するため、元の割り込みハンドラの実行は割り込み禁止期間の後に回される。この方式を用いて、タイマー割り込みが軽量な遅延時間でカーネルに入ることができ、システムがスタートラインに立っている実時間タスクのありを迅速に知ることができる。遅延した割り込み処理方式は、ただタイマー割り込みを迅速にカーネルに入らせることだけではなく、システムに精確な時間サービスを提供する仕組みも作り上げた。実時間タスクの時間関連の要求は、この仕組みによって、精確に提供することができる。本論本では、追加したシステムコールによって、実時間タスクが指定した時間に、優先度変更とタスクのウェークアップの例を示した。

カーネルはスタートラインに立っている実時間タスクがあることを知った後、実時間タスクを迅速にスタートさせるため、カーネルスケジューラの実行が期待される。しかし、カーネル内に多くのノンプリエンプション期間がある。タスクがノンプリエンプション期間中にいるとき、共有リソースへの同時アクセスを排除するため、一つのコアに他タスクへの実行は許されていない。このとき、カーネルスケジューラの実行も許されず、結果としては、実時間タスクのスタートが遅延される。この問題を解決するため、本論文では、遅延したロック処理方式を提案する。この方式では、実時間タスクの先行実行を実現させるため、通常タスクは以下の条件でノンプリエンプション期間の前でウェートする:実時間タスクのスタート時間から、通常タスクが現在のノンプリエンプション期間の実行を終了する予測時間までの長さは、システム精度時間MTV(Maximum Tolerable Value)より大きい。通常カーネルでは、多くのノンプリエンプション期間の長さは短いものであり、実時間タスクへの影響は小さい。したがって、通常タスクが多くのノンプリエンプション期間の前に待たされることはなく、実時間タスクの実行により、通常タスクへの影響は従来の手法より軽減することができる。また、ユーザはシステムが使われている環境によって動的にMTVを設定することができ、システムは実時間タスクのデッドライン時間内の終了を保証することと同時に、非実時間タスクの実行への影響を最大限に抑える。

実時間タスクがカーネルスケジューラに選択され、その実行が開始される。しかし、実時間タスクの実行は頻繁にハードウェア割り込みハンドラの実行に阻害される。この問題を解決するため、本論文では、動的な優先度空間を提案する。この機構では、従来の独立したハードウェア優先度空間とソフトウェア優先度空間が統合される。割り込みは優先度ベースに三つのタイプに分けられる。それぞれは、緊急わりこみ、実時間割り込み、非実時間割り込みである。緊急割り込みはシステム内で重要な役割があり、その優先度がもっとも高い。タイマー割り込みがその一つである。実時間割り込みは実時間タスクとの関連があり、その優先度が実時間タスクから継承される。非実時間タスクはその他の一般な割り込みであり、その優先度が実時間タスクにより低く、通常タスクにより高くに設定される。このアプローチを用いて、実時間タスクは一部割り込みの優先度よりも高い優先度を得ることができる。また、実時間タスクとハードウェア割り込みの関係によって、ユーザは動的に割り込みの優先度を決定することができる。したがって、実時間タスクの実行は優先度の低い割り込みハンドラの実行に阻害されない。

以上の手法と機構を用いて、本論文で作り上げたシステムは、動的にハードウェア環境とソフトウェア環境に適合することができる。また、本論文は、ただ従来の手法で残されている問題を解決するだけでなく、非実時間タスクの実行性能にも目を向き、最適化したリアルタイムシステムを成功した。

審査要旨 要旨を表示する

車載コンピュータ、ロボット制御などの組み込みシステムは社会基盤として重要性を増している。複雑化する組み込みシステム系では、厳密な時間制約が課せられるハードリアルタイムタスク、緩やかな時間制約で良いソフトリアルタイムタスク、時間制約を持たない通常タスクが混在する。リアルタイムタスクが時間制約を満たせなくなるのは、複数タスクの共有資源排他制御機構およびタスク実行優先順位機構によりそのタスクが実行できなくなるからである。複数タスクの共有資源を管理するための排他制御機構およびタスク実行順序機構には、1)ハードウェア割り込みの禁止、2)資源ロック、3)タスク実行優先順位、の3機構がある。本論文では、これら3機構において、ハードリアルタイムタスクが最小限の待ち時間で実行を開始あるいは再開できるようにするために、3つの手法、Delayed Interrupt Processing (DIP), Delayed Long Lock Section (DLLS)、Dynamic Priority Space (DPS)を提案、実装し、評価している。本論文は7章から構成されている。

第1章では、提案手法の概要を述べた後、本論文の動機および背景について述べている。第2章で、本論文で提案される3手法を使うことによる新しいリアルタイムオペレーティングシステム像について述べた後、続く章では各手法について提案、実装、評価、関連研究との比較を通した新規性の言及、を行っている。

第3章ではDIP (Delayed Interrupt Processing)手法を提案している。DIPはリアルタイムタスクが実行を開始しなければいけない時刻に最小限の遅延で実行が開始できるようにする手法である。従来、割り込み禁止区間中にリアルタイムタスクの実行が開始されなければいけない時、タイマー割り込み処理も割り込み禁止区間終了後に処理されるため、割り込み禁止区間中に実行開始しなければいけないリアルタイムタスクがあっても実行が遅延していた。DIPにより、割り込み禁止区間であっても周辺デバイスからの割り込みは禁止されない。割り込み発生時、タイマー割り込み処理以外の割り込みハンドラの実行は、割り込み禁止区間の後に回される。これは、割り込み禁止区間は共有資源へのアクセスが制限されなければならないことによる。タイマー割り込み処理は遅延なく実行される。これにより、共有資源を利用しないリアルタイムタスクの実行を遅延なく開始させることが可能となる。Linuxカーネルに本手法を適用し実験によってその有用性を検証している。

第4章ではDLLS(Delayed Long Lock Section)を提案している。DLLSは、共有資源を排他制御するタスクに対して、排他制御のための資源ロックを遅延させる手法である。通常タスクが共有資源をロックし続けていると、リアルタイムタスクがその共有資源を利用しようとすると待たされる。リアルタイムタスク実行期間中に共有資源が他のタスクで利用されていないことを保証するためには、リアルタイムタスク実行開始時に使用する資源が排他制御されていないことを保証する必要がある。このためには、通常タスクが資源をロックし排他制御されている期間内にリアルタイムタスクの実行が開始しないことを保証すればよい。しかし、リアルタイムタスクは必ずしも実行開始時間を厳密に守らなくても時間制約(ここでは終了時刻の制約)を満たす場合がある。そこで、DLLSではリアルタイムタスクの実行開始時刻の最大遅延許容値MTV(Maximum Tolerable Value)を導入している。これにより、通常タスクが資源をロックする時、通常タスクが資源をロックし続ける時刻が、リアルタイムタスクの実行開始時刻から最大許容値MTV(Maximum Tolerable Value)より大きい場合に、通常タスクの資源ロックは待たされる。本方式により、リアルタイムシステムに要求される実時間制約環境によって動的にMTVを設定することができ、リアルタイムタスクの時間制約を保証することができる。Linuxカーネルに本手法を適用し実験によってその有用性を検証している。

第5章ではDPS(Dynamic Priority Space)を提案している。DPSでは、従来の独立したハードウェア優先度空間とソフトウェア優先度空間が統合され、動的な優先度空間を提供する手法である。本手法により、リアルタイムタスクはハードウェアの割り込み優先度よりも高い優先度を得ることが出来る。これにより、リアルタイムタスクの実行は優先度の低い割り込みハンドラの実行に阻害されなくなる。Linuxカーネルに本手法を適用し実験によってその有用性を検証している。

第6章では、提案3手法全体を統合したリアルタイムオペレーティングシステムの全体像を示している。そして、第7章で本論文の結論を述べている。

本論文では、リアルタイムタスクの時間制約を満たせなくさせる要因を分析し、1)ハードウェア割り込みの禁止、2)資源ロック、3)タスク実行優先順位、の3つの問題点をそれぞれ解決し、システム全体としてまとめあげている。個々の問題点解決手法は既存解決手法の改良ではあるが、これら3つの手法をLinuxリアルタイムオペレーティングシステムに統合し、その有効性を実験で検証していることは、リアルタイムオペレーティングシステム研究領域に大きな貢献をしていると言える。

よって本論文は博士(情報理工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク