エンベデッドシステムスペシャリスト 2013年 午前2 問08
問題文
リアルタイムOSで用いられる、タスクがデッドラインを必ず守るデッドラインスケジューリングでは、周期タスクを図のように次の四つのパラメタ、、、()の組で表現することができる。二つのタスクX、Yを、という条件下で生成した場合、スケジュールが可能となる、の組合せはどれか。ここで、タスクはX、Yの順に起動され、優先度はXの方が高い。また、スケジューリングはプリエンプティブ方式であり、OSのオーバヘッドは考慮しない。


選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
周期タスクの期限内実行可能性【午前2解説】
正解の理由
、なので、各タスクは周期の開始時点で起動し、次の周期の開始時点がデッドラインになります。したがって、選択肢の各タスクについて、1周期に必要な実行時間を周期で割った値を求めると、CPUの必要量を確認できます。
イでは、タスクXの周期は2、タスクYの周期は4です。単位時間当たりに必要なCPU時間の合計は、
です。CPUをちょうど使い切るスケジュールが可能です。Xの優先度が高いため、Xを先に実行すると、次のように期限を守れます。
Xは時刻2と4のデッドラインに間に合い、Yも時刻4のデッドラインまでに実行を完了します。時刻4以降も同じスケジュールを繰り返せるため、イがスケジュール可能です。
解法ステップ
-
各タスクの周期を求めます。
条件が なので、各タスクの周期は選択肢にあるデッドライン と同じです。 -
総CPU使用率を計算します。
周期タスクの総CPU使用率は、次の式で求められます。総使用率が1を超える場合、必要な実行時間がCPUの処理能力を超えるため、スケジュールできません。 -
使用率が1以下の候補は、優先順位も考慮して確認します。
イは使用率がちょうど1です。Xを優先して実行するスケジュールを作ると、すべてのデッドラインに間に合うことを確認できます。
選択肢別の誤答解説
- ア:総CPU使用率は です。1を超えるため、長期的に必要な処理を完了できません。
- イ:総CPU使用率は です。Xを優先するスケジュールで、期限を守れることを確認できます。
- ウ:総CPU使用率は です。1を超えるため、スケジュールできません。
- エ:総CPU使用率は です。1を超えるため、スケジュールできません。
よくある誤解
-
各タスクが単独で期限に間に合えば、全体でもスケジュール可能だと思う
各タスクの は、単独で実行した場合の条件です。複数タスクが同じCPUを使う場合は、合計の処理量も考える必要があります。 -
総CPU使用率が1以下なら、必ずスケジュール可能だと思う
使用率が1を超える場合は不可能ですが、1以下であることだけでは一般に十分とは限りません。優先順位やデッドラインも確認します。この問題では、イについて実際の実行順を確認しています。 -
デッドラインと実行完了時刻は、必ずデッドラインより前でなければならないと思う
デッドラインの時刻ちょうどに実行を完了しても、期限を守ったことになります。
補足コラム
総CPU使用率が1を超えると、長い時間で見たときにCPUの処理能力以上の仕事が発生します。そのため、タスクの優先順位や実行順を工夫しても、すべての期限を守ることはできません。
一方、使用率が1の場合は、CPUが処理に使える時間をすべて使うスケジュールになります。イでは、周期4の間にXが2回分、Yが1回分の処理を行い、合計時間が4になります。
FAQ
Q. なぜイではCPUが休む時間がなくても問題ないのですか?
A. タスクの処理が途切れず、各デッドラインまでに必要な実行時間を確保できれば問題ありません。問題文ではOSのオーバヘッドも考慮しないため、CPU時間をちょうど使い切るスケジュールが成立します。
A. タスクの処理が途切れず、各デッドラインまでに必要な実行時間を確保できれば問題ありません。問題文ではOSのオーバヘッドも考慮しないため、CPU時間をちょうど使い切るスケジュールが成立します。
Q. Xの優先度が高いことは、どこで使いますか?
A. XとYの処理時間が重なる場合に、Xを先に実行します。イでは時刻2にXが起動するため、Yより先にXを実行します。その後、Yを時刻4の期限までに完了できます。
A. XとYの処理時間が重なる場合に、Xを先に実行します。イでは時刻2にXが起動するため、Yより先にXを実行します。その後、Yを時刻4の期限までに完了できます。
関連キーワード: 周期タスク、デッドライン、CPU使用率、プリエンプティブ方式、優先度スケジューリング

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

