PintOS Project3-4 Memory Mapped Files
Memory Mapped Files 개념 이전 anonymous page때와는 달리 memory-mapped page를 다뤄야 한다. anonymous page와 달리, file-backed mapping되어 있다. 페이지의 컨텐츠는 실존하는 파일들 그대로이다. page fault가 발생하면, physical frame이 즉시 할당되고 파일에서 메모리(프레임)로 컨텐츠들이 복사된다. memory-mapped page들이 매핑되지 않거나 swap-out 되면, 컨텐츠의 변동이 파일에도 반영된다. 함수 mmap과 munmap함수를 다루게 된다. memory- mapped file을 위한 시스템 콜이다. VM system은 mmap 구역으로 페이지를 최대한 lazily하게 load해야하고 mmaped file 그 자체를 백업 저장소로 사용해야 한다. 자세히 말하자면, 데이터가 메모리 지역에 데이터를 작성하고 운영체제가 그 메모리를 어떤 이유로 ‘free’해야 한다면, 그 데이터를 파일에 다시 옮겨 작성할 수 있다. 그러면 free 한 이후라도 다시 필요해지면 disk의 file에서 그 데이터를 가져올 수 있다. ...