ページング方式の仮想記憶において,あるプログラムを実行したとき,1回のページフォールトの平均処理時間は30ミリ秒であった。
ページフォールト発生時の処理時間が次の条件であったとすると,ページアウトを伴わないページインだけの処理の割合は幾らか。
〔ページフォールト発生時の処理時間〕
(1)ページアウトを伴わない場合,ページインの処理時間は20ミリ秒である。
(2)ページアウトを伴う場合,置換えページの選択,ページアウト,ページインの合計処理時間は60ミリ秒である。
正答4
解説
正解は4です。
ページフォールトの処理には、空きがあってページインだけで済む場合と、ページアウトを伴う場合の2通りがあります。
平均処理時間30ミリ秒から、ページインだけで済んだ割合を求める加重平均の問題です。
【計算】
ページインだけの処理の割合をpとします。
ページアウトを伴う割合は1-pです。
平均処理時間=20×p+60×(1-p)です。
20p+60(1-p)=30とおきます。
60-40p=30なので、40p=30です。
p=30÷40=0.75です。
【選択肢別解説】
1:× 0.25は、ページアウトを伴う処理の割合(1-0.75)です。
問われているのはページインだけの処理の割合なので、0.75が正しい値です。
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ミリ秒となり、平均処理時間と一致します。
【ポイント】
「平均=各ケースの時間×割合の合計」という加重平均の式を立てれば、割合は1次方程式で求められます。
求めた値を元の式に代入して検算すると、取り違えを防げます。