[kernel]ページテーブル

page table
– OSの中の仮想記憶システムで仮想アドレスと物理アドレスを対応づけるために使われる
– 仮想アドレスはそれにアクセスするプロセスによって実行されるプログラムによって使われ、実際には物理アドレスはRAMサブシステム等のハードウェアによって使われる
– それぞれのプロセスのメモリは物理メモリの色々な領域に散らばっているか、HD等のストレージに移されている

アドレス空間は4Kiバイトに分割され、この塊をページという、物理メモリはフレームと呼ぶ
仮想記憶システムは、仮想アドレスを物理アドレスに変換することで、ページとフレームにマッピングする
TLBはページとフレームのマッピングを格納し、全体の性能を向上させる

CPU <-> MMU(page table) <-> Memory
※MMUはMemory Management Unit
仮想アドレスのうち、上位はMMUに変換し、下位はそのままメモリに送られる

$ objdump -f main

main: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x00000000000005a0

この、start address 0x00000000000005a0が仮想アドレス

### 物理メモリの構造
カーネルテキスト(カーネルの実行可能なコード領域)、カーネルデータ(カーネルが使用する変数領域)、ユーザページ

### 仮想記憶システム
アプリケーションがアクセスするアドレスは、 直接物理メモリのアドレスへ変換されずに、アドレス変換表を利用して、 間接的に物理メモリにアクセスする

静的領域とは、プログラム開始時にメモリに確保され、プログラムが終わるまで解放されないメモリ領域
局所領域とは、関数開始時にメモリに確保され、その関数の終了時に解放されるメモリ領域
ヒープ領域とは、上記の二つと異なり、確保するタイミングも解放されるタイミングも任意