1
요구 페이징의 원리
왜 모든 페이지를 올리지 않는가 프로세스의 코드와 데이터를 전부 메모리에 올리면: 실행 시작이 느려집니다 (수 MB~수 GB를 디스크에서 읽어야 함).
가상 메모리의 핵심 아이디어는, 프로세스의 모든 페이지를 미리 메모리에 올리지 않아도 된다는 것입니다. 실제로 필요한 페이지만 메모리에 올리면 됩니다.
왜 모든 페이지를 올리지 않는가와 지역성이 동작하는 이유를 중심으로 요구 페이징과 페이지 폴트의 판단 흐름을 읽습니다.
왜 모든 페이지를 올리지 않는가 프로세스의 코드와 데이터를 전부 메모리에 올리면: 실행 시작이 느려집니다 (수 MB~수 GB를 디스크에서 읽어야 함).
CPU가 유효 비트 0인 페이지에 접근하면 페이지 폴트(Page Fault) 트랩이 발생합니다.
fork() 시스템 콜로 자식 프로세스를 만들면, 부모의 전체 주소 공간을 복사해야 합니다.
물리 메모리가 가득 차서 빈 프레임이 없는 상태에서 페이지 폴트가 발생하면, 기존에 메모리에 있던 페이지 중 하나를 내보내야(Evict) 합니다.