メモリの管理機能についてメモ
メモリの種類
ROM...Read Only Memoryの略。消去不可と消去可がある。
RAM...Random Access Memoryの略。揮発性のデータを保持。
キャッシュ
学習前の理解で合ってるので略
セクション
プログラムが、その内容ごとに分けられる単位。大きく分けてProgram(コード), Const(更新されないデータ), Data(変数的な), BBS(初期値未設定の変数)。最初の2つはROM。
メモリの効率的な利用方法
メモリホール
複数のプロセスを連続してメモリに展開すると、最初はいいが、特定のメモリの終了や新たなメモリの開始に伴って、使用されない(最小のメモリ領域を要求するプロセスでも展開不可能な)メモリ領域ができてしまう。これをメモリホールという。
論理アドレスと物理アドレス
同じアドレス(論理アドレス)を指定しているつもりのプロセスでも、実際にはOSによって割り当てられた、プロセス固有の物理アドレスが利用される。そのアドレス変換は**MMU(Memory Management Unit)**によって行われる。
ページとページ変換
MMUがアドレス変換を行う範囲のことをページと呼び、アドレス変換はページ単位で行われるので、ページ変換とも呼ぶ。どのページの、どのオフセットへ変換されるかはページ(変換)テーブルとビットマスキングで実現される。
仮想メモリ
すべてのメモリ領域に対してページを割り当てると、もうそれ以上できることがなくなってしまうので、ここで仮想メモリを考える
ページアウト...メモリに空きがない状態でページフォルトが発生すると、OSはメモリに空き容量を確保するため、使用頻度の少ないページを選択し、外部記憶装置に保存
ページイン...対照的に、外部記憶装置からページデータをメモリへコピーすること
これらにより、実際には確保されていないページでも、外部記憶装置への一時保存を通せばのページを仮想的に拡張していることになる(実は使いまわしてるだけだけと理解)