問題
応用情報技術者平成24年秋期 午前問17
プログラム実行時の主記憶管理に関する記述として適切なものはどれか。
- 主記憶の空き領域を結合して一つの連続した領域にすることを,可変区画方式という。
- プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを,ガーベジコレクションという。
- プログラムの実行中に主記憶内でモジュールの格納位置を移動させることを,動的リンキングという。
- プログラムの実行中に必要になった時点でモジュールをロードすることを,動的再配置という。
答え
プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを、ガーベジコレクションという。
解説
ガーベジコレクション
プログラムの実行環境がガーベジコレクション(Garbage Collection)に対応していると、使用されなくなったメモリ領域が自動的に解放されるため、メモリリークの発生を防ぐことができます。
ガベージコレクション[1](英語: garbage collection; GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾い」となる。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
主記憶管理の方法
参考
メモリコンパクション
主記憶の空き領域を結合して一つの連続した領域にすることで、フラグメンテーションを解消すること。
フラグメンテーション
フラグメンテーション(fragmentation)、断片化(だんぺんか)とは、コンピュータ上のメモリの管理上の一単位が、そのままでは有効利用できない状態になることを言う。
メモリ上での領域確保・解放の操作を長期間繰り返していると、フラグメンテーションは必然的に、主記憶・二次記憶を問わず発生する。これを解消するには、使用中のメモリ領域を移動させ、隣り合わせに配置し直すことで相対的に連続未使用領域を大きくする。この操作をデフラグメンテーション(defragmentation, デフラグ)もしくはメモリ・コンパクション(memory compaction)と呼ぶ。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
動的リンク
プログラムの実行中に必要になった時点でモジュールをロードすること。
プログラムにおける動的リンク[編集]
動的リンキング、ダイナミックリンキングとも言う。
コンピュータのプログラム作成時に、一般に大規模なプログラムをモジュールに分割して、別々にコンパイルすることが行われる。
コンパイル直後の実行ファイル生成時に、ライブラリ等を全てリンクし、必要なコードが全て揃った実行ファイルを生成する方式を、静的リンクと呼ぶ。
これに対し、実行ファイルでは不揃いなままにしておき、プログラムを実行する時に初めて他のモジュールやライブラリとリンクする方式を動的リンクと呼ぶ。この動的リンクを使ったライブラリを、ダイナミックリンクライブラリ(DLL)と呼ぶ。動的リンクライブラリを複数のプログラムから共有することには利点があるので、しばしば共有ライブラリとして運用される。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
動的再配置
仮想記憶のページング方式を使う際、動的アドレス変換機能を用いることで、CPUのメモリへの悪背う伸びに、論理アドレス空間を物理アクセス空間に変換している。このことを、動的再配置と呼ぶことがある。