本講義では,組込みシステムを含む複雑なソフトゥエアシステムの設計・構築における実時間処理について学ぶ.具体的には,組込みシステムや実時間システムに関する諸概念,用語および論点を扱う.
組込み・実時間システムの開発に必要な知識や技術に加え,実時間システムの形式的なモデル化や検証についても理解する.
以下(1)〜(4)についての理解を得ること.
(1) 実時間システムとその特徴
(2) 実時間OSを使った簡単な組込みシステム/実時間システムの設計と実装
(3) タイミング,スケジューリングおよび関連する性質
(4) 実時間システムの形式化と検証
組込みシステム,実時間システム,実時間オペレーティングシステム,スケジューリング,スケジュール可能性,検証,モデル検査,時間オートマトン
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | 展開力(実践力又は解決力) |
座学およびプログラミング実習
授業計画 | 課題 | |
---|---|---|
第1回 | イントロダクション,実時間システムの概要 | 実時間システムに関する諸定義および性質の概要を理解する |
第2回 | RTOS (1): 概要,RTOSカーネルの役割,実時間タスク | 実時間OSカーネルの役割および実時間タスクについて理解する |
第3回 | RTOS (2): RTOSにおける同期機構 | RTOSにおける同期機構の概要およびアルゴリズムについて理解する |
第4回 | RTOS (3): 優先度とスケジューリング | RTOSにおける優先度の概念および実時間タスクのスケジューリングアルゴリズムについて理解する |
第5回 | RTOSプログラミング (1): 概要,C/C++によるRTOSプログラミング | RTOS上で動作するC/C++プログラムの構築方式について理解する |
第6回 | RTOSプログラミング (2): 実時間処理のための抽象化機構 | RTOSにおける実時間処理の抽象化機構について理解する |
第7回 | 実時間システムの解析 (1): スケジュール可能性解析 | スケジュール可能性の概念およびスケジュール可能性解析手法について理解する |
第8回 | 実時間システムの解析 (2): 静的スケジューリング | 実時間タスクの静的スケジューリングについて理解する |
第9回 | 実時間システムの解析 (3): 動的スケジューリング | 実時間タスクの動的スケジューリングについて理解する |
第10回 | 実時間システムのモデル化 (1): 概要 | 実時間システムのモデル化手法について理解する |
第11回 | 実時間システムのモデル化 (2): 時間オートマトン | 時間オートマトンに関する諸概念および定義について理解する |
第12回 | 実時間システムの検証 (1): 時間オートマトンのモデル検査法 | 時間オートマトンのモデル検査手法および関連アルゴリズムについて理解する |
第13回 | 実時間システムの検証 (2): UPPAALを使った検証 | モデル検査ツールUPAALによる形式検証手法について理解する |
第14回 | 進んだ話題 (1): RTOSカーネルの形式的仕様記述 | RTOSの一部に適用可能な実用的な形式的仕様記述方式について理解する |
第15回 | 進んだ話題 (2): RTOSカーネルの形式的検証 | RTOSの一部に適用可能な実用的な検証手法について理解する |
特になし (資料は講義webサイトで配布する)
H. Kopetz, Real-Time Systems: Design Principles for Distributed Embedded Applications (2nd Ed.), Springer, 2011.
E.-R. Olderog and H. Dierks, Real-Time Systems: Formal Specification and Automatic Verification, Cambridge U. Press, 2008.
レポート: 50%
プログラミング課題: 50%
履修者は関連科目を履修しているか,同等の知識があること.
履修者はUnix系OSの基本的なコマンドライン操作に慣れていることが望ましい.