平成25年度 春期 ITパスポート試験 公開問題 問57 解説 ジョブの処理時間計算
問57 1台のCPUと1台の出力装置で構成されているシステムで,表の三つのジョブを処理する。三つのジョブはシステムの動作開始時点ではいずれも処理可能状態になっている。CPUと出力装置のそれぞれにおいて,ジョブ1,ジョブ2,ジョブ3の順に処理する。CPUと出力装置は独立して動作するが,出力処理はそれぞれのジョブのCPU処理が終了してから実施可能になる。ジョブ3の出力が完了するのは,ジョブ1の処理開始時点から何秒後か。
- ア 30
- イ 45
- ウ 100 ✓ 正答
- エ 115
解説
この問題は、CPUと出力装置が独立して動作する点に着目し、各ジョブの処理終了時刻を順番にシミュレーションすることで解けます。計算のポイントは、出力装置は「そのジョブのCPU処理が終了」し、かつ「前のジョブの出力が終わっている」必要があるという2つの条件のうち、遅い方の時刻から開始される点です。
処理の流れと計算手順
各ジョブの処理を時間軸に沿って追いかけます。CPUは連続して処理されますが、出力装置は前の処理を待つ必要があることに注意してください。
ジョブ1: CPU処理は開始0秒から35秒まで行われます。出力装置はCPU処理後の35秒から開始でき、10秒後の45秒で完了します。
ジョブ2: CPU処理はジョブ1の終了直後、35秒から開始し、20秒後の55秒に完了します。出力装置は、ジョブ2のCPU終了時刻(55秒)とジョブ1の出力完了時刻(45秒)を比較します。遅い方の55秒から出力が始まり、20秒後の75秒に完了します。
ジョブ3: CPU処理はジョブ2の終了直後、55秒から開始し、5秒後の60秒に完了します。出力装置は、ジョブ3のCPU終了時刻(60秒)とジョブ2の出力完了時刻(75秒)を比較します。遅い方の75秒から出力が始まり、25秒後の100秒に完了します。
したがって、すべての処理が完了するのは100秒後となります。
パイプライン処理と並行動作の考え方
この問題で問われているのは、コンピュータが複数の処理を効率的にこなすための並行動作の理解です。もし出力装置がCPUの終了を待たずに動くシステムであれば単純な合計になりますが、実際のコンピュータでは計算結果が出力されるまでデータは送れません。
一方で、ジョブ2のようにCPU処理が長引く場合、出力装置は前段の出力が終わっていても、次の処理結果が来るまで待機せざるを得ません。この仕組みは、一つのジョブが終わるのを待たずに次のジョブの計算をCPUに割り当てるマルチプログラミングや、処理の待ち時間を減らすための考え方そのものです。
システム性能を最適化する視点
この問題のような計算は、単なる試験問題にとどまらず、実際のシステム設計やプロジェクト管理の現場で重要になります。例えば、Webサイトのレスポンス向上において、データベースの計算(CPU負荷)とデータの描画(出力・通信負荷)をどのように重ね合わせればユーザーの待ち時間が最短になるかを考える際、このプロセスは非常に近い考え方です。
試験においては、複雑な計算式を立てようとせず、今回のように「CPU終了時刻」と「出力装置が空く時刻」を逐一書き出すことで、ミスを最小限に抑えることができます。