平成27年度 春期 午前Ⅱ 問10
オペレーティングシステム
プリエンプティブの問題
優先度に基づくプリエンプティブなスケジューリングで動作する,二つの周期タスクA,Bがある。AはBよりも優先度が高く,周期は2ミリ秒,実行時間は1ミリ秒である。Bの周期が10ミリ秒のとき,1周期中に実行を完了できるBの実行時間は最大何ミリ秒か。ここで,A,B以外のタスクはなく,タスク切替えによるオーバヘッドはないものとする。
- ア3
- イ5
- ウ7
- エ9
答えと解説を見る
✓ これが正解イ5
解説
Aが10ミリ秒中に5ミリ秒使うので、Bは最大5ミリ秒です。
優先度の高いタスクAは、周期2ミリ秒ごとに起動し、そのたびに1ミリ秒実行します。プリエンプティブなスケジューリングなので、Aが起動すると実行中のBは中断され、Aが先に実行されます。Bの周期10ミリ秒の間にAは10÷2=5回起動し、合計で1ミリ秒×5回=5ミリ秒CPUを使います。残る10−5=5ミリ秒が、Bの使える時間の上限です。AとBの周期の始まりがそろう場合でも、Aの実行の合間にBが1ミリ秒ずつ5回動けば、周期の終わりまでに5ミリ秒分を実行し終えます。周期の長いタスクが使える時間は、短い周期のタスクがその間に使う時間を差し引いて求めます。
ほかの選択肢はなぜ違うのか
- ア3:3ミリ秒であれば周期内に確実に終わりますが、Aが使った後に残る5ミリ秒をすべてBに充てられるので、最大の値としては小さすぎます。問われているのは完了できる実行時間の上限です。
- ウ7:7ミリ秒を実行するには、10ミリ秒の周期のうちAに残る時間が3ミリ秒しかありません。Aは周期内に5回起動して計5ミリ秒を使うので、Bは7ミリ秒分を周期内に終えられません。
- エ9:9ミリ秒は、周期10ミリ秒からAの1回分の実行時間だけを引いた値です。Aは2ミリ秒ごとに起動するので、Bの1周期の間にAが5回実行する分を差し引かなければなりません。
出典:平成27年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)