OS
크래프톤 정글 2기 2 PintOS Virtual Memory 중간진행
김상주
2023. 6. 18. 23:07
💡 추가
- vm_type(가상 메모리 타입)
- VM_ANON ->(파일과 relate 되지 않은 페이지, aka anonymous page)
- VM_PAGE_CACHE -> (페이지 캐시를 가진 페이지) (project 4에서 사용)
- VM_FILE -> (파일과 relate 된 페이지)
- VM_UNINIT -> (초기화 되지 않은 페이지)
- 스레드 구조체는 하나의 프로세스의 페이지 테이블을 가리키는 포인터를 가지고 있다.
⇒ 그게 *pml4
- page fault가 일어나는 경우
- 유저 프로그램이 커널 가상 메모리에 접근하려고 할 때
- 커널에서 매핑되지 않은 유저 가상 주소로 접근하려고 할 때
- 기존 load_segment()
- kpage 즉 커널 주소에 파일을 모두 load함
- 유저 page와 kpage를 install_page()로 매핑
- 수정한 load_segment()
- 요청이 올때만, 필요한 file만 kpage에 load함