mmap mapuje plik lub urządzenie do przestrzeni adresowej procesu, aby dostęp był jak do pamięci. Jest dobre dla dużych plików, losowego dostępu i zero-copy sharing.
Odpowiedź zaawansowana
Głębiej
mmap zamienia jawne I/O na mechanizmy pamięci wirtualnej:
OS ładuje strony na żądanie przez page fault.
Może zmniejszyć liczbę syscalli i kopiowania.
Przydatne do shared memory między procesami.
Wymaga ostrożności przy page faultach i wyrównaniu.
Przykłady
Losowy dostęp do dużego pliku:
mmap pliku -> arytmetyka wskaźników -> OS doładowuje strony
Typowe pułapki
Założenie, że mmap jest zawsze szybszy od read/write.