Memory Management - 2


Shared Pages


プログラムを実行します.
コード容量は150 KB、データ容量は50 KBとする.
40のプロセスがこのプログラムを使用する場合、
総容量は8000 KB[(150+50)KB*40]である.
ただし、コードはプログラムの実行中に絶対に変更できません.
コードは、セキュリティと誤操作の問題で絶対プログラムです.
実行中は変更できません.
したがって,このコードに対応する容量は変化しない.
コードを1つのスペースに配置し、複数のプロセスで参照することは問題ありません.
このとき、総使用容量は150 KB+40*50 KB=350 KBと大幅に減少した.
このように共有されているページをSharedPageと言います.

Example for Shared Pages

  • コンパイラ、ウィンドウシステム、ランタイムライブラリ、データベース
  • 共有メモリ(共有メモリ)
  • Hierarchical Page Table


    32ビットシステムには2322^{32}232個のPage Table Entryがある.
    ページサイズは4 KB(2122^{12}212 KB).
    PTE sizeが4 Byteの場合PTE 개수 : 232÷212=2202^{32}\div 2^{12}=2^{20}232÷212=220Page Table Size : 220×4=222=42^{20}\times 4=2^{22}=4220×4=222=4 MB
    4 MBの容量を連続的にアドレスすると、
    負荷が重くて遅いので、
    ブロック管理Page Tableの階層化Page Tableを導入した.

    Page of Page Table


    DRAMでページを分割管理するために、
    PageofPageTableが現れました.
    そこで、分割されたPageofPageTableにアクセスするために、
    もう一つのテーブルが必要です.このテーブルはOuterPageTableと呼ばれています.
    (PageTable of PageTableとも呼ばれます.?)

    32ビットシステムでは、仮想アドレスは32ビットです.
    仮想アドレスは次のとおりです.[p1(10) + p2(10) + d(12)] p1:Outer pageテーブルのインデックスp2:Page of Page Tableのインデックスd : Frame no

    TLB


    CPUとMMUはプロセッサ上にあり、非常に高速です.
    PageTableはDRAMにあるため、アクセス速度が比較的遅い.
    この速度を上げるために、TLBというキャッシュをプロセッサに追加します.
    CPUが仮想アドレスを発行すると、まずTLBでページ番号を検索する.
    TLB Hit
    これを物理アドレスに変換してDRAMにアクセスします.
    TLB Miss
    Page Tableで物理アドレスをインポートします.
    CPUからDRAMに再アクセスします.

    Locality


    繰り返しアクセスするメモリの位置、変数、関連する記憶位置などをLocalityと呼びます.
    void func1() { ... } // Page 1
    
    void main() // Page 2
    {
        func1();
        ... = malloc(...);
    }
    
    void* malloc(...) { ... } // Page 3
    上記のコードでPage 2を実行すると、Page 1,3は無条件に実行されます.
    このような隣接するページにアクセスする現象を空間位置と呼ぶ.
    ...
    
    int i = 1;
    int j = i;
    i = j++;
    for (i = 0; i < 10; i++) { ... }
    
    ...
    上記のコードに示すように、iは短時間で複数回アクセス可能である
    これを一時信用と言います.

    Working Set


    これは、プロセスが近い将来使用するメモリ量を計算することによって、プロセスごとにメモリ量を保持し、ページ障害を低減する理論です.
    しかし未来は予測できないので、理論でしか存在しない.

    過去のΔ\DeltaΔ時間単位でアクセスするページ数はWorkingsetのサイズになります.
    上記の例に示すように、ワークセットは時間とともに変化し、スペースの無駄になる可能性があります.