..

PintOS 64bit - VM

  1. 메모리 모델 잡기: Page / Frame / Page table / Alias(커널 매핑) / PAL_USER의 의미
    • Page: 사용자 프로그램이 보는 메모리 단위(4 KB), 페이지 테이블을 통해 실제 물리 프레임과 매핑
    • Frame: 실제 물리 메모리의 4 KB 블록 (할당기는 palloc, 한장 - palloc_get_page, 여러장 - palloc_get_multiple(), PAL_ZERO - 프레임을 0으로 초기화)
    • Page Table: VA -> PA 변환을 위한 4단계 테이블
    • alias: 물리 주소를 커널 가상주소 영역에 상수 오프셋만 더해 1:1로 대응시키는 맵
    • PAL_USER: 할당 풀을 고르는 플래그 -> 있으면 user pool, 없으면 kernel pool
    • palloc_get_page(): 프레임 확보
    • pml4_set_page(): VA↔프레임 연결

 

  1. 유저와 커널의 뜻
    • 유저(사용자 모드): 제한된 권한으로 실행되는 사용자 프로그램 영역
    • 커널(커널 모드): 운영체제의 핵심 코드가 도는 특권 모드

anon.c

file.c

inspect.c

uninit.c

vm.c