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