過去問解きまくり研究所 ホーム

平成29年度 秋期 午前 問19

ソフトウェア

動的再配置に関する問題

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

図(メモリを左から右へ並べた帯の図):

│ セグメント1 │ セグメント2 │ セグメント3 │   空き   │
│ 500k バイト │ 100k バイト │ 800k バイト │ 800k バイト │
答えと解説を見る

✓ これが正解エ12.0

解説

八十万バイトを四バイトずつ読み書きするので、十二ミリ秒です。

二つ目の区画が空くと、その後ろの区画を前へ詰めます。動かすのは、三つ目の八十万バイトでした。一つ目は動かさず、空きは後ろへ集まります。触れる単位は四バイトなので、二十万回の出し入れになりました。一回ごとに読みと書きがあり、それぞれ三十ナノ秒です。合わせて六十ナノ秒なので、二十万を掛けました。千二百万ナノ秒になり、十二ミリ秒と出ます。だから十二を挙げた肢が当たり、動的再配置にかかる時間でした。一・五を挙げた肢は、動かす量を十万バイトと見た形です。空いた区画の大きさと取り違えました。六・〇を挙げた肢は、読みか書きの片方だけを数えた形になります。七・五を挙げた肢のほうは、五十万バイトぶんと数えました。動かす量を先に決めます。読みと書きを両方数えます。三つとも、動かす量か往復のどちらかを取り違えています。

ほかの選択肢はなぜ違うのか

出典:平成29年度 秋期 基本情報技術者試験 午前 問19

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)