次の条件で四つのジョブがCPU処理及び印刷を行う場合に,最初のCPU処理を開始してから最後の印刷が終了するまでの時間は何分か。
〔条件〕
(1) 多重度1で実行される。
(2) 各ジョブのCPU処理時間は20分である。
(3) 各ジョブはCPU処理終了時に400Mバイトの印刷データをスプーリングする。
スプーリング終了後にOSの印刷機能が働き,プリンタで印刷される。
(4) プリンタは1台であり,印刷速度は100Mバイト当たり10分である。
(5) CPU処理と印刷機能は同時に動作可能で,互いに影響を及ぼさない。
(6) スプーリングに要する時間など,条件に記述されていない時間は無視できる。
正答3
解説
正解は3です。
CPU処理と印刷が並行して進む場合の、全体の所要時間を求める問題です。
多重度1なのでCPU処理は1ジョブずつ順に行います。
プリンタも1台なので、印刷も1ジョブずつ順に行います。
【計算】
1ジョブの印刷時間は、400Mバイト÷100Mバイト×10分=40分です。
CPU処理は、ジョブ1が0〜20分、ジョブ2が20〜40分、ジョブ3が40〜60分、ジョブ4が60〜80分です。
ジョブ1の印刷は20分に始まり60分に終わります。
ジョブ2は40分に印刷可能になりますが、プリンタが空く60分から始まり100分に終わります。
ジョブ3は100分から140分まで印刷します。
ジョブ4は140分から180分まで印刷します。
したがって、最後の印刷が終わるのは180分です。
【選択肢別解説】
1:× 120分は、CPU処理4件の80分に最後の印刷40分を足した値です。
印刷1件40分がCPU処理20分より長いため、プリンタ待ちが生じることを見落としています。
2:× 160分では、印刷4件分の160分だけを数え、最初のCPU処理20分を加えていません。
3:○ 最初のCPU処理20分のあと、印刷40分×4件の160分が途切れなく続きます。
合計20+160=180分です。
4:× 240分は、CPU処理と印刷を同時に動かさず、20分×4+40分×4と足した値です。
条件(5)により両者は同時に動作できます。
【ポイント】
並行処理の問題では、どの資源がボトルネックになるかを見極めます。
本問ではプリンタが常に埋まるので、最初のCPU処理と印刷時間の合計で答えが出ます。