平成22年度春期 エンベデッドシステムスペシャリスト試験 午前II 問23
【問題23】
プリエンプティブな優先度ベーススケジューリングで動作する三つの周期タスク A, B, C がある。タスク C が実行可能になってから完了するまでの時間は最大何ミリ秒か。
【解説】
プリエンプティブな優先度ベーススケジューリングとは?
優先度が高いタスクが低いタスクよりも優先的に実行されるスケジューリング方式です。タスク C が完了するまでの時間には、優先度が高いタスク A やタスク B による妨害時間が含まれます。
1. タスク A による妨害
周期は 400 ミリ秒で、最大実行時間は 50 ミリ秒です。タスク C が実行可能になる 700 ミリ秒間でタスク A が発生する回数は、700 ÷ 450 ≒ 1.56 回。切り上げて 2 回発生します。妨害時間は 50 ミリ秒 × 2 回 = 100 ミリ秒。
2. タスク B による妨害
周期は 650 ミリ秒で、最大実行時間は 200 ミリ秒です。タスク C が実行可能になる 700 ミリ秒間でタスク B が発生する回数は、700 ÷ 850 ≒ 0.82 回。切り上げて 1 回発生します。妨害時間は 200 ミリ秒 × 1 回 = 200 ミリ秒。
3. タスク C の実行時間
タスク C の最大実行時間は 300 ミリ秒です。
4. タスク C の完了までの最大時間
タスク A の妨害時間 + タスク B の妨害時間 + タスク C の実行時間 = 100 ミリ秒 + 200 ミリ秒 + 300 ミリ秒 = 600 ミリ秒。
出典:平成22年度 春期 エンベデッドシステムスペシャリスト試験 午前II 問23