はじめに
組込みソフトウェア開発では、処理負荷(最悪実行時間)を計測することが重要である。
炎上している大きな要因は、開発終盤での性能問題である。
炎上を退けるためには、早く性能の検証ができることが、ポイントである。
性能の検証の一つが、処理負荷(最悪実行時間)を計測することである。
私たちのプロジェクトで実施している処理負荷(最悪実行時間)計測のアプロ―を記録しておく。
私たちのプロジェクトの開発対象は、C言語で実装されたミドルウェアである。
私たちのプロジェクトでの最悪実行時間計測アプローチ
私たちのプロジェクトでは、最悪実行時間を計測するために、以下のようなハイブリッドな解析アプローチをとっている。
- 公開APIの最悪実行時間の基準値(限界値)を決める
- 関数単体で測定ベース解析により、最悪実行時間を算出
- 関数コールツリーをもとに、関数単体の最悪実行時間を合計する
- 3.で合計した最悪実行時間が、1.で決めた基準値を超える関数コールパスを特定する
- 4.で特定した関数コールパスから、関連する公開APIを特定
- 5.で特定した公開APIに対して、ソフトを結合して、実際の動作条件下で、測定ベース解析により最悪実行時間解析をする
ポイントは、難しい測定ベース解析での計測対象をできるだけ小さくする・減らすということである。
参考情報
NCESの公開講座「リアルタイム性保証技術」
名古屋大学 大学院情報学研究科 附属組込みシステム研究センター(NCES)で、最悪実行時間計測に関連する以下の講座が実施されている。
https://www.nces.i.nagoya-u.ac.jp/NEP/courses/2021/T02.html
講座概要
自動車や工作機械の制御システムなど,機械を制御する組込みシステムにおいては,与えられた時間要件を満たして動作することを保証すること(リアルタイム性保証)が求められます.
この講座では,このようなシステムにおけるリアルタイム性保証のための技術について,理論面と実践面の両面から解説します.特に,リアルタイムOSを用いて複数の処理を並行に実行している時に,各処理が時間制約を満たすことを検証するための理論体系であるリアルタイムスケジューリング理論について詳しく解説します.また,リアルタイムシステムの性能評価手法についても解説します.
講義計画
1時限
・リアルタイムシステムとリアルタイム性保証
-リアルタイムシステムとは?
-リアルタイム性保証のアプローチ
-リアルタイムOS(RTOS)とは?
・リアルタイムシステムの性能指標と最悪実行時間解析の困難性
-リアルタイムシステムの性能指標
-最悪実行時間解析の困難性
2時限
・最悪実行時間解析
-タイミングスキーマによる解析
-最適化問題への帰着による解析
・リアルタイム処理の性能評価
・リアルタイムスケジューリング理論(1)
-Rate Monotonic Analysis
3時限
・リアルタイムスケジューリング理論(2)
-Critical Instant定理
-最適な優先度割付け
-プロセッサ使用率によるスケジュール可能性判定
-優先度逆転とその解決アプローチ
4時限
・リアルタイムスケジューリング理論(3)
-非周期タスクの扱い
-過負荷に対する対策とQoS制御
-リアルタイムスケジューリング理論
-適用事例
・アプリケーション統合のためのスケジューリング
講義受講メモ
・最悪実行時間解析は重要かつ困難
・解析結果と真の最悪実行時間の差が大きい悲観的な解析になりやすい
・起こり得ない実行パスがあると最長実行時間の合計が、全体の最長の時間になるとは限らない
・解析のアプローチには、静的解析と測定ベース解析とハイブリッド解析がある
・測定ベース解析は、実行時間が最長となるパスを特定することが難しい
参考記事