9.3. VM as a Tool for Caching
DUMP#
- 가상메모리는 디스크 공간의 주소로부터 페이지 단위의 공간을 메인메모리 (DRAM) 로 캐시한다.
- 메인 메모리의 주소로부터 페이지 단위의 공간을 SRAM (L1~3 cache)로 캐시한다.
- DRAM => SRAM 의 10배
- Disk => DRAM 의 100,000배
- 따라서 캐시미스가 최대한 나지 않게 잘 관리하는 것이 중요하겠지?
9.3.2. Page Tables#
어떤 페이지를 상위 캐시에 올려야 한다면 내려야 하는 페이지도 있다. OS는 어떤 페이지를 올리고 내릴지에 대한 결정을 내릴 책임이 있다. 그래서 페이지 테이블 엔트리 (Page Table Entry)라고 불리우는 캐시여부를 저장한 배열을 페이지 테이블에 저장해놓는다. PTE는 valid bit와 n-bit 주소 필드로 이루어져 있다.
9.3.3. Page Hits#
CPU가 가상메모리 주소값을 요청하면 MMU가 먼저 Page Table을 읽는다. 그 안에 해당하는 페이지 주소의 유효비트가 1이라면 곧장 DRAM으로 넘어가 물리주소에 있는 데이터를 끌어온다.
9.3.4. Page Faults#
유효비트가 0인 경우 해당 페이지는 캐시가 되어있지 않음으로 Page Fault 예외를 발생시키게 된다. 커널에서 DRAM 내 희생자 페이지를 결정하게 되며, 페이지 테이블에 디스크에 저장된 가상 메모리 페이지의 주소를 넣고