今回は,組込みリアルタイムの基礎に関しての例題を取り上げます。いずれもTRON系OSでの開発に限らず,組込みリアルタイムOSを用いたシステム開発における基礎的な知識ですので,第一区分の問題になります。
例題1 テーマ:リアルタイムシステムとは何か
【問題】
【選択肢】
正解(マウスでドラッグして文字を反転させてください)=
2 |
【解説】
この問題は,リアルタイムシステムに関しての基本的な概念を問うものです。
リアルタイムシステムとは,高速に処理を行うシステムという意味ではありません。リアルタイムシステムとは,例えば,事前に定められたデッドラインまでに必ず結果を出す,あるいは,決められた時刻に合わせて結果を出すといった,時間や時刻に関しての制約条件が要求されるシステムのことです。
この時間制約は,ミリ秒やマイクロ秒のオーダーでの条件が必要とされることもありますし,逆に,数秒,数十秒という長いオーダーでの条件が要求される場合もあります。このような様々な時間制約条件を持ったタスクが組み合わさり,全体のリアルタイムシステムが構築されています。
また,そのような時間制約が守られなかった場合に,致命的な障害となるシステムをハードリアルタイムシステム,時間制約が守られなくても致命的な障害にならないシステムをソフトリアルタイムシステムと呼びます。
---
選択肢1は,「特定の処理を要求された時に,即座に反応して高速で処理するシステムのことをリアルタイムシステムという」と定義していますが,時間制約に関しては全く触れていないため,誤りとなります。
---
選択肢2は,リアルタイムシステムの定義に合致しています。また,エンジン制御などの厳しい時間制約が必要なシステムは,まさにリアルタイムシステムが対象としている代表的なシステムですので,これが正解となります。
---
選択肢3は,リアルタイムシステムのスケジューリングに関しての記述ですが,ラウンドロビンスケジューリングという部分が誤りです。多くのリアルタイムシステムでは,プリエンプティブな優先度ベース・スケジューリングが採用されています。
「優先度ベース・スケジューリング」とは,実行可能なタスクの中で最も高い優先度のタスクから実行し,優先度の高いタスクが実行できなくなるまで,優先度の低いタスクは実行されないというスケジューリングです。また,「プリエンプティブ」とは「先取り可能」という意味で,優先度の高いタスクが実行可能になると,優先度の低いタスクが実行途中であってもタスク切り替えが発生して,優先度の高いタスクの実行が開始されることを指します。
例えば図1では,最初は中優先度のタスクが実行されていますが,(A)の時点で高優先度のタスクが実行可能となるためプリエンプトされ,高優先度のタスクの実行が開始されます。
---
選択肢4は,「処理速度の平均値が特に重視され,最悪値は問われない」という部分が誤りです。リアルタイムシステムでは,定められたデッドラインまでに必ず結果を出す必要があるわけですから,最悪値がどのくらいかということが重要となります。