平成29年 秋期 基本情報技術者 午前 問19

図のメモリマップで、セグメント2が解放されたとき、セグメントを移動(動的再配置)し、分散する空き領域を集めて一つの連続領域にしたい。
1回のメモリアクセスは4バイト単位で行い、読取り、書込みがそれぞれ30ナノ秒とすると、動的再配置をするのに必要なメモリアクセス時間は合計何ミリ秒か。
ここで、1kバイトは1,000バイトとし、動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。

 ア  1.5  イ  6.0  ウ  7.5  エ  12.0


答え エ


解説
セグメント2が解放されると
 
のようになり、分散する空き領域を集めて一つの連続領域にすると
 
になるので、セグメント3の領域を移動する処理が行われ、メモリアクセスは4バイト単位で行い、読取り、書込みがそれぞれ30ナノ秒で、これをセグメント3の800kバイトに対し行うと
 800kバイト÷4バイト/アクセス×(30ナノ秒 + 30ナノ秒)
 = 200,000アクセス×60ナノ秒
 = 12,000,000ナノ秒
 = 12.0ミリ秒
(エ)かかる。


キーワード
・フラグメンテーション

キーワードの解説
  • フラグメンテーション(fragmentation、断片化)
    使用中のメモリ領域が小さな未使用領域を挟んで飛び飛びに配置され、大きな未使用領域が確保できなくなる状態のことです。
    このような状態になると、メモリ領域の新たな確保、走査に時間がかかるため、コンピュータの性能が低下します。
    これを解消するには、使用中のメモリ領域を移動させ、隣り合わせに配置し直して連続未使用領域を大きくする操作が必要で、この操作をデフラグメンテーション(defragmentation、デフラグ)もしくはメモリコンパクション(memory compaction)といいます。

もっと、「フラグメンテーション」について調べてみよう。

戻る 一覧へ 次へ