図のメモリマップで、セグメント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ミリ秒
(エ)かかる。
【キーワード】
・フラグメンテーション