anonymous pages와 달리 memort mapped pages는 file-backed mapping을 사용함.
페이지에 있는 정보는 이미 존재하고 있는 파일의 데이터를 미러함.
페이지 폴트가 발생할 때, 물리적 frame이 바로 할당 되고 파일로부터 그 내용이 바로 메모리로 복사됨.
memory-mapped pages가 unmapped 되거나 swapped out 될 때 변경된 내용이 파일에 반영됨.
mmap and munmap System call
mmap과 munmap을 구현해야함. memory mapped file들을 위한 두개의 시스템 콜임.
VM 시스템은 반드시 mmap 영역에서 레이지 로드를 해야함. 그리고 mmaped file 그 자체를 매핑을 위한 backing store로 사용해야함.
vm/file.c 에 정의 되어 있는 do_mmap과 do_munmap을 mmap과 munmap을 구현하는데 사용해야함.
void *mmap (void *addr, size_t length, int writable, int fd, off_t offset);
length 크기의 바이트를 가진 파일을 offset