四つのジョブA〜Dを次の条件で実行し印刷する。
全ての印刷が完了するのは,ジョブを起動してから何秒後か。
〔条件〕
(1) ジョブは一斉に起動され,多重度1で実行される。
(2) 優先順位はAが最も高く,B,C,Dの順に低くなる。
(3) 各ジョブの実行後,スプーリング機能が1台のプリンタを用いて逐次印刷を行う。
(4) 各ジョブを単独で実行した場合の実行時間と印刷時間は,表のとおりである。
(5) その他のオーバヘッドは考慮しない。
単位 秒
ジョブ/実行時間/印刷時間
A|50|50
B|30|40
C|20|30
D|40|20
正答3
解説
正解は3です。
多重度1の実行とスプーリングによる印刷を時間順にたどる問題です。
多重度1なのでCPUで同時に実行できるジョブは1つで、優先順位の高いAから順に実行します。
印刷はスプーリングにより実行と並行して行えますが、プリンタは1台なので実行が終わった順に1つずつ印刷します。
【計算】
実行は、Aが0〜50秒、Bが50〜80秒、Cが80〜100秒、Dが100〜140秒です。
Aの印刷は、Aの実行が終わる50秒から始まり100秒に終わります。
Bの印刷は、Bの実行は80秒に終わっていますが、プリンタが空く100秒から始まり140秒に終わります。
Cの印刷は、プリンタが空く140秒から始まり170秒に終わります。
Dの印刷は、Dの実行が終わった140秒以降でプリンタが空く170秒から始まり190秒に終わります。
よって全ての印刷が完了するのは190秒後です。
【選択肢別解説】
1:× 100秒はCの実行が終わる時刻であり、印刷はまだ残っています。
2:× 160秒は、実行時間140秒に最後のDの印刷時間20秒を足しただけの値です。
プリンタの待ちを考慮していません。
3:○ プリンタの待ちを含めて時間順にたどると、Dの印刷が190秒に終わります。
4:× 280秒は、全ての実行時間と印刷時間を単純に足した値です。
実行と印刷が並行することを考慮していません。
【ポイント】
スプーリングでは、CPUでの実行とプリンタでの印刷が並行して進みます。
時間軸に沿って、資源ごとの使用時間を書き出すと確実に解けます。