問題プレビューID: 483d4504

問 18

CPU が 1 台で,入出力装置(I/O)が同時動作可能な場合の二つのタスク A,B のスケジューリングは図のとおりであった。この二つのタスクにおいて,入出力装置が CPU と同様に,一つの要求だけを発生順に処理するように変更した場合,両方のタスクが終了するまでの CPU 使用率はおよそ何 % か。

(凡例:# は CPU 処理,: は入出力処理,空白は待ちを表す。タスク A は CPU→I/O(A)→CPU→I/O(A)→CPU の順,タスク B は待ち→CPU→I/O(B)→CPU→I/O(B)→CPU の順に処理される。)

解説

変更前は,二つのタスクの入出力処理を同時に実行できました。CPU 処理時間の合計はタスク A が 2+3+3=8,タスク B が 2+2+3=7 の計 15 時間単位であり,全体の処理時間が 20 時間単位であるため,CPU 使用率は 15÷20=0.7515 \div 20 = 0.75(75 %)です。

変更後は,入出力装置が CPU と同様に一度に一つの要求だけを発生順に処理するため,入出力要求を直列化しなければなりません。このときの処理の流れは次のようになります。

時間CPU入出力
0〜2A の CPU−
2〜4B の CPUA の I/O(A)
4〜10待ちA の I/O(A)(B の I/O は待ち)
10〜13A の CPUB の I/O(B)
13〜14待ちB の I/O(B)
14〜16B の CPUA の I/O(A)
16〜18待ちA の I/O(A)
18〜21A の CPUB の I/O(B)
21〜22待ちB の I/O(B)
22〜25B の CPU−

両方のタスクが終了するまでの処理時間は 25 時間単位となり,CPU 処理時間の合計は変わらず 15 時間単位です。したがって,CPU 使用率は

15÷25=0.615 \div 25 = 0.6

より,およそ 60 % となります。正解は「ウ」です。