지금까지 Anonymous Memory 타입에 대해서만 고려했다면 File-Backed memory를 고려해야 한다.

mmap 과 munmap

<aside> 💡 mmap : 디스크에 있는 파일에 대한 유저 가상 페이지를 미리 가상주소공간에 할당해 주는 것 munmap : 페이지와 물리메모리가 연결된 경우 그 연결을 끊어 주는 것

</aside>

mmap 시스템콜에 의해 매핑된 가상 메모리 위치

Untitled

mmap 시스템콜 구현

<aside> 💡 프로세스의 가상주소공간 addrfdoffset에서 length 만큼 읽어와 매핑 전체 파일이 페이지단위로 나뉘어 연속된 가상주소 페이지에 하나씩 매핑

</aside>

munmap 시스템콜 구현

<aside> 💡 addr으로 부터 유저 가상 페이지들의 변경사항을 디스크의 파일에 업데이트 하고 매핑 정보를 지운다. Present Bit을 0으로 만듬

</aside>

Dirty Bit 란?

Present Bit 란?