平成28年度 春期 午前Ⅱ 問10
オペレーティングシステム
優先度に関する問題
リアルタイムOSにおいて,タスクA〜Eの発生時刻,処理時間及び優先度が次のように定められている場合,タスクCの終了時刻はタスクAが発生してから何ミリ秒後となるか。ここで,優先度は1が最も高く,優先度の高いタスクが優先的に処理されるものとする。また,OSのオーバヘッドは考慮しないものとする。
| タスク | 発生時刻(ミリ秒) | 処理時間(ミリ秒) | 優先度 |
|---|---|---|---|
| A | 0 | 5 | 5 |
| B | 5 | 10 | 2 |
| C | 10 | 15 | 3 |
| D | 15 | 10 | 4 |
| E | 20 | 5 | 1 |
- ア25
- イ30
- ウ35
- エ40
答えと解説を見る
✓ これが正解ウ35
解説
Cは15〜20ミリ秒に実行し、Eに中断された後、35ミリ秒に終わります。
優先度は数字が小さいほど高く、より高い優先度のタスクが発生すると、実行中のタスクは中断されます。時刻を順に追います。0〜5ミリ秒はAが実行して終わります。5ミリ秒にBが発生し、10ミリ秒にCが発生しますが、Bの優先度2はCの3より高いので、Bが5〜15ミリ秒に実行して終わります。15ミリ秒にDが発生しますが、Cの優先度3のほうが高いので、Cが15〜20ミリ秒に5ミリ秒分を実行します。20ミリ秒に優先度1のEが発生してCを中断し、20〜25ミリ秒に実行します。Cは25ミリ秒から残りの10ミリ秒を実行し、35ミリ秒に終わります。時刻ごとに実行可能なタスクを並べ、最も優先度の高いものを選ぶと追えます。
ほかの選択肢はなぜ違うのか
- ア25:25ミリ秒は、Cが発生した10ミリ秒に処理時間の15ミリ秒をそのまま足した値です。実際にはBの実行が15ミリ秒まで続き、途中でEにも中断されるので、Cはそれより遅れて終わります。
- イ30:30ミリ秒は、Bが終わった15ミリ秒からCが中断されずに15ミリ秒実行した場合の終了時刻です。20ミリ秒に優先度1のEが発生してCを5ミリ秒中断させるので、終了はその分遅れます。
- エ40:40ミリ秒は、正しく追った35ミリ秒より5ミリ秒遅い値です。Dは優先度4でCより低いので、Cの実行中にDが割り込むことはなく、Cを中断させるのは優先度1のEだけです。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)