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

| ア | 1.5 |
|---|---|
| イ | 6.0 |
| ウ | 7.5 |
| エ | 12.0 |
答え : エ
分野 : テクノロジ系 › コンピュータシステム › ソフトウェア › オペレーティングシステム
解説 :
メモリ上に断片的に散らばった空き領域を1つにまとめる「動的再配置」(メモリコンパクション)を行うときに,どれだけの時間がかかるかを計算する問題です。図のように,メモリはセグメント1(500kバイト),セグメント2(100kバイト),セグメント3(800kバイト),空き(800kバイト)の順に並んでいます。
セグメント2が解放されると,そこは100kバイトの空き領域になりますが,このままではセグメント3の前後に空きが分かれてしまいます。そこで,セグメント2が解放された後ろにあるセグメント3(800kバイト)を,セグメント2があった位置までそのまま前方に移動させることで,空き領域を後ろに1つにまとめます。
移動させるデータ量は800kバイトで,1回のアクセスが4バイト単位,読み取りと書き込みそれぞれ30ナノ秒かかるので,1回の移動あたり60ナノ秒かかります。800kバイトを4バイトずつ移動するので,800,000÷4=200,000回の移動が必要になり,200,000回×60ナノ秒=12,000,000ナノ秒,つまり12ミリ秒となります。以上から,正解は「エ」です。
分野 : テクノロジ系 › コンピュータシステム › ソフトウェア › オペレーティングシステム
解説 :
メモリ上に断片的に散らばった空き領域を1つにまとめる「動的再配置」(メモリコンパクション)を行うときに,どれだけの時間がかかるかを計算する問題です。図のように,メモリはセグメント1(500kバイト),セグメント2(100kバイト),セグメント3(800kバイト),空き(800kバイト)の順に並んでいます。
セグメント2が解放されると,そこは100kバイトの空き領域になりますが,このままではセグメント3の前後に空きが分かれてしまいます。そこで,セグメント2が解放された後ろにあるセグメント3(800kバイト)を,セグメント2があった位置までそのまま前方に移動させることで,空き領域を後ろに1つにまとめます。
移動させるデータ量は800kバイトで,1回のアクセスが4バイト単位,読み取りと書き込みそれぞれ30ナノ秒かかるので,1回の移動あたり60ナノ秒かかります。800kバイトを4バイトずつ移動するので,800,000÷4=200,000回の移動が必要になり,200,000回×60ナノ秒=12,000,000ナノ秒,つまり12ミリ秒となります。以上から,正解は「エ」です。