エンベデッドシステムスペシャリスト 2013年 午前2 問06
問題文
ページング方式の仮想記憶において、ページフォールト発生時の動作状況が次の場合に、主記憶の平均アクセス時間が最も改善される対策はどれか。
〔ページフォールト発生時の動作状況〕
(1) 主記憶アクセス1回の時間は200ナノ秒である。
(2) 主記憶アクセス200万回に1回の割合でページフォールトが発生する。
(3) ページフォールト1回当たり600ミリ秒のオーバヘッドを伴う。
選択肢
ア:主記憶アクセス1回の時間を1/5に改善する。
イ:主記憶アクセス1回の時間を1/8に改善する。ただし、ページフォールトの発生率は1.1倍となる。
ウ:ページフォールト1回当たりのオーバヘッドを1/3に改善する。(正解)
エ:ページフォールトの発生率を1/2に改善する。
🔒 解説は解答すると表示されます
ページフォールト時の平均アクセス時間【午前2解説】
正解の理由
平均アクセス時間は、通常の主記憶アクセス時間に、ページフォールトによる平均的な時間増加分を加えて求めます。
ページフォールト1回当たりのオーバヘッドは、主記憶アクセス時間の単位に合わせてナノ秒に変換します。
元の条件では、ページフォールト発生率が なので、ページフォールトによる平均的な時間増加分は次のとおりです。
したがって、元の平均アクセス時間は ナノ秒です。
各対策を適用した後の平均アクセス時間を比較すると、最も短くなるのはページフォールトのオーバヘッドを3分の1にするウです。オーバヘッドが200ミリ秒になるため、ページフォールトによる平均的な時間増加分は100ナノ秒となり、平均アクセス時間は300ナノ秒まで改善されます。
解法ステップ
-
ページフォールトの発生率を確認します。
元の発生率は、主記憶アクセス200万回に1回、つまり です。 -
ページフォールトのオーバヘッドをナノ秒にそろえます。
ミリ秒は ナノ秒です。 -
平均アクセス時間を計算します。
-
各選択肢について同じ式で計算し、最も小さい値を選びます。
選択肢別の誤答解説
- ア:主記憶アクセス時間は200ナノ秒から40ナノ秒になりますが、ページフォールトによる平均的な時間増加分は300ナノ秒のままです。合計は340ナノ秒です。
- イ:主記憶アクセス時間は25ナノ秒になります。一方、ページフォールトの発生率が1.1倍になるため、ページフォールトによる平均的な時間増加分は330ナノ秒です。合計は355ナノ秒です。
- ウ:オーバヘッドは600ミリ秒から200ミリ秒になります。ページフォールトによる平均的な時間増加分は100ナノ秒となり、合計は300ナノ秒です。
- エ:ページフォールトの発生率が半分になるため、ページフォールトによる平均的な時間増加分は150ナノ秒です。合計は350ナノ秒です。
よくある誤解
- ページフォールトが「200万回に1回」と聞いて、オーバヘッドの大きさを考慮しないことがあります。発生頻度が低くても、1回当たりの時間が非常に大きいため、平均アクセス時間への影響は無視できません。
- ミリ秒とナノ秒を換算せずに計算すると、桁を誤りやすくなります。単位をそろえてから計算してください。
- 主記憶アクセス時間だけを比べて、最も短くなる対策を選んでしまうことがあります。ページフォールトの発生率とオーバヘッドも含めた平均値で比較する必要があります。
補足コラム
ページフォールトは、アクセス対象のページが主記憶に存在しないときに発生します。ページを補助記憶装置から読み込む処理には時間がかかるため、通常の主記憶アクセスと比べて大きなオーバヘッドが生じます。
そのため、平均アクセス時間を改善する場合は、主記憶アクセスそのものの高速化だけでなく、ページフォールトの発生率や発生時の処理時間を下げる対策も有効です。
FAQ
Q. なぜ600ミリ秒をナノ秒に変換するのですか?
A. 主記憶アクセス時間がナノ秒で示されているため、単位をそろえて加算・比較できるようにするためです。
A. 主記憶アクセス時間がナノ秒で示されているため、単位をそろえて加算・比較できるようにするためです。
Q. ページフォールト発生率は、なぜオーバヘッドに掛けるのですか?
A. オーバヘッドはページフォールトが起きたときだけ発生します。アクセス1回当たりの平均的な追加時間を求めるには、発生率を掛けます。
A. オーバヘッドはページフォールトが起きたときだけ発生します。アクセス1回当たりの平均的な追加時間を求めるには、発生率を掛けます。
関連キーワード: ページング方式、仮想記憶、ページフォールト、平均アクセス時間、ページフォールト発生率

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

