メモリ管理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/11/29 15:13 UTC 版)
![]() | この記事は英語版の対応するページを翻訳することにより充実させることができます。(2024年11月) 翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
|
オペレーティングシステム |
---|
![]() |
主要項目 |
メモリ管理(メモリかんり)とは、コンピュータのメモリを管理するもの。単純化すれば、プログラム(プロセスなど)の要求に応じてメモリの一部を割り当てる方法と、そのメモリが不要となったときに再利用のために解放する方法を提供する。
今日では、CPU(メモリ管理ユニット)とオペレーティングシステムが協働して仮想記憶やメモリ保護を提供するのが一般的である。
また、各種データ構造を線形空間であるメモリに展開する場合の管理手法(アルゴリズム)についても「メモリ管理」と呼ばれる。
仮想記憶
現在のオペレーティングシステム(OS)においては、メモリ管理の1つとして仮想記憶が代表的である。
仮想記憶システムはプロセスが使用するメモリ空間 (アドレス空間) を物理アドレスから分離し、プロセス単位の分離を実現すると共に、実質的に使用可能なメモリ量を増大させる。仮想記憶管理の品質はオペレーティングシステム全体の性能に大きな影響がある。また、プロセス間通信の一種である共有メモリは多重仮想空間でのプロセス間のメモリ共有を実現する機能である。
仮想記憶以前
仮想記憶システムには、単純に言うと、メモリ管理ユニット(MMU)を付加または内蔵したCPUが必要である。一般的なCPUに専用のMMUが内蔵されるまでは、バンク切り換えなどによるメモリ管理(拡張)が行われていた。
MS-DOSではメモリマネージャと呼ばれるプログラムが開発された(バンクメモリ、EMS、XMS等)。これはOSの一部を通常の位置から移動させ、アプリケーションがより多くのメモリを使えるようにするものである。
動的メモリ確保
ガベージコレクション
関連項目
メモリ管理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/30 16:19 UTC 版)
MS-DOSにおいて、DOS自身のカーネルを含むプログラムの実行に確保できるメモリ空間(ユーザーメモリ、コンベンショナル・メモリ)は、8086のアドレス空間の最大1MBである。ほとんどのコンピュータでは、この空間にBIOS ROMやメモリマップドI/O、VRAMなどの空間も存在するため、バンク切替えや様々なメモリ拡張手段などを用いずに一時にアクセス可能なメモリ空間は最大でも640KBから768KB程度であった。 日本語入力用のFEPなどの常駐型のデバイスドライバを使用すると一度に使用できるユーザーメモリはさらに減少するため、ユーザーはEMSやXMS、HMAやUMBなどの拡張メモリの管理機能を利用して、辞書や常駐部やMS-DOSシステムの一部をそれらへ配置し、コンベンショナルメモリの圧迫を少しでも避けることが重視されるようになった。 そのため、RAMディスクドライブやディスクキャッシュなどはバンクメモリやEMS、プロテクトメモリ(80286/386以降)の機能を用いて、コンベンショナルメモリ以外の領域を使用するのが一般的であった。 これらのメモリ配分の設定はCONFIG.SYSやAUTOEXEC.BATを記述することで行い、事実上ユーザーに一任されていた。 バージョン3まではメモリドライバやデバイスドライバはOSには付属せずサードパーティー製のメモリドライバ等を使用する必要があったが、バージョン5では標準機能としてOSに付属するようになった。また、これらの環境設定を半自動的に行う設定アプリケーションも添付された。 各種デバイスドライバには自動でインストールを行うスクリプトやプログラムが整備され、動く状態を作るだけであればエンドユーザーがこれらを直接操作する必要はなくなったが、全ての環境に対応するのは難しく最適な設定や問題発生時の対応など初心者にとっては設定のハードルは高かった。
※この「メモリ管理」の解説は、「MS-DOS」の解説の一部です。
「メモリ管理」を含む「MS-DOS」の記事については、「MS-DOS」の概要を参照ください。
メモリ管理と同じ種類の言葉
- メモリ管理のページへのリンク