令和5年度 秋期 高度試験 午前I 問6
テクノロジOS・ソフトウェアタスク管理・排他制御
プリエンプティブな優先度ベースのスケジューリングで実行する二つの周期タスクA及びBがある。タスクBが周期内に処理を完了できるタスクA及びBの最大実行時間及び周期の組合せはどれか。ここで,タスクAの方がタスクBより優先度が高く,かつ,タスクAとBの共有資源はなく,タスク切替え時間は考慮しないものとする。また,時間及び周期の単位はミリ秒とする。
解答・解説
正解: ア.
正解の根拠
プリエンプティブな優先度ベースのスケジューリングでは、優先度の高いタスクが実行可能になると、実行中の優先度の低いタスクを中断(プリエンプション)して実行されます。
タスクAはタスクBより優先度が高いため、 の間に発生するタスクAの実行時間の合計と、タスクB自身の実行時間の和が 以下であれば、タスクBは自身の周期 内に処理を完了できます。
各タスクの最大実行時間を 、周期を とします。
期間 内にタスクAが起動する最大回数は (切り上げ)となります。
したがって、タスクBが完了できる条件(十分条件)は以下のようになります。
この式は周期の終わりにはみ出すタスクAの実行も丸ごと数える安全側の見積もりなので、満たさないときは、周期内で実際にタスクAが使う時間を数えて確かめます(イ・ウは周期内に始まるタスクAの実行がすべて周期内に終わるので、見積もりと実際が一致します)。
各選択肢の解説
- ア: 正解。タスクAが周期4で2ミリ秒実行、タスクBが周期8で3ミリ秒実行。
- 周期8ミリ秒の間にタスクAは最大2回()起動します。
- タスクAの実行時間の合計は ミリ秒。
- タスクBの実行時間と合わせると ミリ秒となり、周期8ミリ秒以内に完了できます。
- イ: 誤り。タスクAが周期6で3ミリ秒実行、タスクBが周期9で4ミリ秒実行。
- 周期9ミリ秒の間にタスクAは最大2回()起動します。
- タスクAの実行時間の合計は ミリ秒。
- タスクBの実行時間と合わせると ミリ秒となり、周期9ミリ秒を超過するため完了できません。
- ウ: 誤り。タスクAが周期5で3ミリ秒実行、タスクBが周期13で5ミリ秒実行。
- 周期13ミリ秒の間にタスクAは最大3回()起動します。
- タスクAの実行時間の合計は ミリ秒。
- タスクBの実行時間と合わせると ミリ秒となり、周期13ミリ秒を超過するため完了できません。
- エ: 誤り。タスクAが周期6で4ミリ秒実行、タスクBが周期15で5ミリ秒実行。
- 周期15ミリ秒の間にタスクAは最大3回()起動します。
- 3回目(12〜16ミリ秒)のうち周期15ミリ秒以内は3ミリ秒なので、周期内のタスクAの実行時間の合計は ミリ秒。
- タスクBの実行時間と合わせると ミリ秒となり、周期15ミリ秒を超過するため完了できません。



