CPUが1台で,入出力装置(I/O)が同時動作可能な場合の二つのタスクA,Bのスケジューリングは図のとおりであった。
この二つのタスクにおいて,入出力装置がCPUと同様に,一つの要求だけを発生順に処理するように変更した場合,両方のタスクが終了するまでのCPU使用率はおよそ何%か。
正答3
解説
正解は3です。
この問題は、図のスケジューリングを読み取り、入出力装置(I/O)が1台に制限された場合の処理時間を求めるものです。
図は1目盛りを1単位時間として、タスクごとにCPU、I/O、待ちの時間を示しています。
図から読み取れる各タスクの処理は次のとおりです。
タスクAは、CPU2、I/O8、CPU3、I/O4、CPU3の順に処理します。
タスクBは、最初にCPUを待ち、CPU2、I/O4、CPU2、I/O4、CPU3の順に処理します。
CPU時間の合計は、タスクAが8、タスクBが7で、合わせて15です。
元の図では全体が20単位で終わっており、CPU使用率は15÷20=75%です。
【計算】
0〜2はタスクAがCPUを使います。
2〜10はタスクAがI/Oを使い、2〜4はタスクBがCPUを使います。
タスクBは4でI/Oを要求しますが、I/OはタスクAが使用中なので10まで待ち、10〜14にI/Oを使います。
タスクAは10〜13にCPUを使い、13でI/Oを要求しますが、14まで待って14〜18にI/Oを使います。
タスクBは14〜16にCPUを使い、16でI/Oを要求しますが、18まで待って18〜22にI/Oを使います。
タスクAは18〜21に最後のCPUを使って終了します。
タスクBは22〜25に最後のCPUを使って終了します。
全体の所要時間は25単位なので、CPU使用率=15÷25=0.6、つまり60%です。
【選択肢別解説】
1:× 43%は15÷35に相当し、所要時間を35単位とした値です。
実際の所要時間は25単位です。
2:× 50%は15÷30に相当し、待ち時間を多く見積もりすぎています。
3:○ I/Oの待ちを含めた所要時間は25単位で、CPU使用率は15÷25=60%です。
4:× 75%は、I/Oが同時動作できる変更前の図のCPU使用率(15÷20)です。
【ポイント】
CPUの使用時間の合計は変わらず、I/Oの競合による待ちで全体の所要時間が延びる点がポイントです。
時間軸に沿って、CPUとI/Oの空き状況を1単位ずつ確認しながら図を書き直すと確実です。