令和5年度 秋期 高度試験 午前I 問6

テクノロジOS・ソフトウェア組込み・IoT

この問題は2023(R5)秋 高度試験共通 午前Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

プリエンプティブな優先度ベースのスケジューリングで実行する二つの周期タスクA及びBがある。タスクBが周期内に処理を完了できるタスクA及びBの最大実行時間及び周期の組合せはどれか。ここで,タスクAの方がタスクBより優先度が高く,かつ,タスクAとBの共有資源はなく,タスク切替え時間は考慮しないものとする。また,時間及び周期の単位はミリ秒とする。

解答・解説を読む

正解: 選択肢

正解の根拠

プリエンプティブな優先度ベースのスケジューリングでは、優先度の高いタスクが実行可能になると、実行中の優先度の低いタスクを中断(プリエンプション)して実行されます。
タスクAはタスクBより優先度が高いため、タスクBが自身の周期 TBT_B 内に処理を完了するには、TBT_B の間に発生するタスクAの実行時間の合計と、タスクB自身の実行時間の和が、TBT_B 以下である必要があります。

各タスクの最大実行時間を CA,CBC_A, C_B、周期を TA,TBT_A, T_B とします。
期間 TBT_B 内にタスクAが起動する最大回数は TB/TA\lceil T_B / T_A \rceil(切り上げ)となります。
したがって、タスクBが完了できる条件は以下のようになります。
TB/TA×CA+CBTB\lceil T_B / T_A \rceil \times C_A + C_B \le T_B

各選択肢の解説

  • : 正解。タスクAが周期4で2ミリ秒実行、タスクBが周期8で3ミリ秒実行。
    • 周期8ミリ秒の間にタスクAは最大2回(8/4\lceil 8/4 \rceil)起動します。
    • タスクAの実行時間の合計は 2×2=42 \times 2 = 4 ミリ秒。
    • タスクBの実行時間と合わせると 4+3=74 + 3 = 7 ミリ秒となり、周期8ミリ秒以内に完了できます。
  • : 誤り。タスクAが周期6で3ミリ秒実行、タスクBが周期9で4ミリ秒実行。
    • 周期9ミリ秒の間にタスクAは最大2回(9/6\lceil 9/6 \rceil)起動します。
    • タスクAの実行時間の合計は 3×2=63 \times 2 = 6 ミリ秒。
    • タスクBの実行時間と合わせると 6+4=106 + 4 = 10 ミリ秒となり、周期9ミリ秒を超過するため完了できません。
  • : 誤り。タスクAが周期5で3ミリ秒実行、タスクBが周期13で5ミリ秒実行。
    • 周期13ミリ秒の間にタスクAは最大3回(13/5\lceil 13/5 \rceil)起動します。
    • タスクAの実行時間の合計は 3×3=93 \times 3 = 9 ミリ秒。
    • タスクBの実行時間と合わせると 9+5=149 + 5 = 14 ミリ秒となり、周期13ミリ秒を超過するため完了できません。
  • : 誤り。タスクAが周期6で4ミリ秒実行、タスクBが周期15で5ミリ秒実行。
    • 周期15ミリ秒の間にタスクAは最大3回(15/6\lceil 15/6 \rceil)起動します。
    • タスクAの実行時間の合計は 4×3=124 \times 3 = 12 ミリ秒。
    • タスクBの実行時間と合わせると 12+5=1712 + 5 = 17 ミリ秒となり、周期15ミリ秒を超過するため完了できません。