ページング方式の仮想記憶において,あるプログラムを実行したとき,1回のページフォールトの平均処理時間は30ミリ秒であった。
ページフォールト発生時の処理時間が次の条件であったとすると,ページアウトを伴わないページインだけの処理の割合は幾らか。
〔ページフォールト発生時の処理時間〕
(1) ページアウトを伴わない場合,ページインの処理時間は20ミリ秒である。
(2) ページアウトを伴う場合,置換えページの選択,ページアウト,ページインの合計処理時間は60ミリ秒である。
正答4
解説
正解は4です。
この問題は、ページフォールト1回の平均処理時間から、ページアウトを伴わない(ページインだけで済む)場合の割合を求める加重平均の問題です。
【計算】
ページインだけの割合をpとすると、ページアウトを伴う割合は1-pです。
平均処理時間について 20p+60(1-p) = 30 が成り立ちます。
展開すると 20p+60-60p = 30 です。
整理すると -40p = -30 です。
よって p = 30÷40 = 0.75 です。
【選択肢別解説】
1:× 0.25はページアウトを伴う場合の割合(1-p)です。
問われているのはページインだけの割合です。
2:× 0.33を代入すると、20×0.33+60×0.67≒46.8ミリ秒となり、平均30ミリ秒と合いません。
3:× 0.67を代入すると、20×0.67+60×0.33≒33.2ミリ秒となり、平均30ミリ秒と合いません。
4:○ 0.75を代入すると、20×0.75+60×0.25=15+15=30ミリ秒となり、条件と一致します。
【ポイント】
平均値が2つの値の間にある加重平均は、割合をpとおいた1次方程式で解けます。
平均30ミリ秒は20ミリ秒寄りなので、20ミリ秒の割合が半分より大きいと見当をつけることもできます。