メモリ管理
出典: フリー百科事典『ウィキペディア(Wikipedia)』
メモリ管理(- かんり)とは、コンピュータのメモリを管理するもの。単純化すれば、プログラム(プロセスなど)の要求に応じてメモリの一部を割り当てる方法と、そのメモリが不要となったときに再利用のために解放する方法を提供する。
今日では、CPU(メモリ管理ユニット)とオペレーティングシステムが協働して仮想記憶やメモリ保護機能を提供するのが一般的である。
また、各種データ構造を線形空間であるメモリに展開する場合の管理手法(アルゴリズム)についても「メモリ管理」と呼ばれる。
目次 |
[編集] 仮想記憶
詳細は仮想記憶を参照
現在のオペレーティングシステム(OS)においては、メモリ管理の1つとして仮想記憶が代表的である。
仮想記憶システムはプロセスが使用するメモリ空間 (アドレス空間) を物理アドレスから分離し、プロセス単位の分離を実現すると共に、実質的に使用可能なメモリ量を増大させる。仮想記憶管理の品質はオペレーティングシステム全体の性能に大きな影響がある。また、プロセス間通信の一種である共有メモリは多重仮想空間でのプロセス間のメモリ共有を実現する機能である。
[編集] 仮想記憶以前
仮想記憶システムには、単純に言うと、メモリ管理ユニット(MMU)を付加しまたは内蔵したCPUが必要である。一般的なCPUに専用のMMUが内蔵されるまでは、バンク切り換えなどによるメモリ管理(拡張)が行われていた。
MS-DOSではメモリマネージャと呼ばれるプログラムが開発された(バンクメモリ、EMS、XMS等)。これはOSの一部を通常の位置から移動させ、アプリケーションがより多くのメモリを使えるようにするものである。
[編集] メモリアロケーション
ガベージコレクションはプログラムの使用するメモリ資源の自動的な確保と解放を実現するものである。これは一般にプログラミング言語レベルで実装され、明示的な確保と解放を行う必要のある手動メモリ管理の対極にある。