[Pintos - Project 3] Pintos와 실제 OS의 ELF 로딩 방식 차이
·
Pintos
Pintos Project 3 (Virutal Memory)를 구현하다가 이상한 점을 발견했다.ELF 파일을 로딩하는 load_segment는 항상 VM_ANON 타입으로 페이지를 만든다.// process.c - load_segment()if (!vm_alloc_page_with_initializer(VM_ANON, upage, // ← 왜 ANON? writable, lazy_load_segment, aux)) return false;어차피 파일에서 읽어오는 건데, 굳이 ANON 타입으로 페이지를 만들어서 파일 정보를 끊어버리는 구조가 이해가 되지 않았다.evict될 때 원본 파일에서 다시 읽으면 되는데, 왜 swap에 저장할까?..