令和元年度 秋期 システムアーキテクト試験 午前Ⅱ 問19

ページング方式の仮想記憶において,主記憶の 1 回のアクセス時間が 300 ナノ秒で,主記憶アクセス 100 万回に 1 回の割合でページフォールトが発生し,ページフォールト 1 回当たり 200 ミリ秒のオーバヘッドを伴うコンピュータがある。主記憶の平均アクセス時間を短縮させる改善策を,効果の高い順に並べたものはどれか。

〔改善策〕

  • a: 主記憶の 1 回のアクセス時間はそのままで,ページフォールト発生時の 1 回当たりのオーバヘッド時間を 15\frac{1}{5} に短縮する。
  • b: 主記憶の 1 回のアクセス時間を 14\frac{1}{4} に短縮する。ただし,ページフォールトの発生率は 1.2 倍となる。
  • c: 主記憶の 1 回のアクセス時間を 13\frac{1}{3} に短縮する。この場合,ページフォールトの発生率は変化しない。
解答・解説

正解: エ. c, b, a

正解は エ です。

平均アクセス時間の計算

まず、時間の単位をナノ秒(ns)に統一して、現状の平均アクセス時間を求めます。
1 ミリ秒=106 ナノ秒1\text{ ミリ秒} = 10^6\text{ ナノ秒} であるため、ページフォールト1回当たりのオーバヘッド時間は以下のようになります。

200 ミリ秒=200×106 ナノ秒=2×108 ナノ秒200\text{ ミリ秒} = 200 \times 10^6\text{ ナノ秒} = 2 \times 10^8\text{ ナノ秒}

主記憶アクセス 100 万回100\text{ 万回}(106 回10^6\text{ 回})に1回の割合でページフォールトが発生するため、1回のアクセス当たりのページフォールトによる平均オーバヘッド時間は以下のとおりです。

2×108 ナノ秒106=200 ナノ秒\frac{2 \times 10^8\text{ ナノ秒}}{10^6} = 200\text{ ナノ秒}

したがって、現状の平均アクセス時間は、主記憶のアクセス時間とページフォールトの平均オーバヘッド時間の和となります。

300 ナノ秒+200 ナノ秒=500 ナノ秒300\text{ ナノ秒} + 200\text{ ナノ秒} = 500\text{ ナノ秒}


各改善策の平均アクセス時間

  1. 改善策 a

    • 主記憶のアクセス時間:300 ナノ秒300\text{ ナノ秒}(変化なし)
    • ページフォールトの平均オーバヘッド時間:200 ナノ秒×15=40 ナノ秒200\text{ ナノ秒} \times \frac{1}{5} = 40\text{ ナノ秒}
    • 平均アクセス時間:300+40=340 ナノ秒300 + 40 = 340\text{ ナノ秒}
  2. 改善策 b

    • 主記憶のアクセス時間:300 ナノ秒×14=75 ナノ秒300\text{ ナノ秒} \times \frac{1}{4} = 75\text{ ナノ秒}
    • ページフォールトの平均オーバヘッド時間:200 ナノ秒×1.2=240 ナノ秒200\text{ ナノ秒} \times 1.2 = 240\text{ ナノ秒}
    • 平均アクセス時間:75+240=315 ナノ秒75 + 240 = 315\text{ ナノ秒}
  3. 改善策 c

    • 主記憶のアクセス時間:300 ナノ秒×13=100 ナノ秒300\text{ ナノ秒} \times \frac{1}{3} = 100\text{ ナノ秒}
    • ページフォールトの平均オーバヘッド時間:200 ナノ秒200\text{ ナノ秒}(変化なし)
    • 平均アクセス時間:100+200=300 ナノ秒100 + 200 = 300\text{ ナノ秒}

平均アクセス時間が短い(短縮効果が高い)順に並べると、c(300ナノ秒) → b(315ナノ秒) → a(340ナノ秒) となります。


各選択肢の解説

  • ア(a, b, c):効果の低い順(平均アクセス時間が長い順)に並んでいるため誤りです。
  • イ(a, c, b):改善策 a の短縮効果が最も低い(340ナノ秒)ため誤りです。
  • ウ(b, a, c):改善策 c(300ナノ秒)が改善策 b(315ナノ秒)よりも効果が高いため誤りです。
  • エ(c, b, a):平均アクセス時間が短い順(300ナノ秒、315ナノ秒、340ナノ秒)に正しく並んでおり、正解です。

Spineチーム