mmap 시스템 콜을 호출한다는 것은 특정 가상메모리 주소 공간(페이지)에 특정 파일의 일부를 매핑시키겠다는 것

매핑이란 : 결국 이 가상주소 공간의 페이지에 파일을 올리겠다는 것 → 페이지에 접근하므로써 파일에 접근하겠다는 의미. 접근 후에는 가상메모리에 쓰기를 함으로써 파일에 쓸 수 있게 된다

mmap 으로 매핑한 내용은 munmap 으로 매핑을 해제하게 된다. 매핑 해제 시 가상메모리에 쓰기가 발생한다면 다시 파일에 ‘쓰기’를 함으로서 파일에 변경 내용을 반영하게 된다.

mmap

유저의 mmap 호출 → … → syscall_handler → mmap_handler

💡 mmap 된 페이지는 ?

munmap

munmap이 발생하는 두 가지 경우

  1. munmap 시스템 콜 호출→ … → syscall_handler → mmap_handler → do_munmap
  2. 프로세스가 종료되면서 do_munmap이 호출되는 경우

munmap 시스템콜을 직접 호출하는 경우

munmap 시스템 콜 호출→ … → syscall_handler → munmap_handler → do_munmap 실행