From manual, the munmap() system call deletes the mappings for the specified address range, causing further references to addresses within the range to generate invalid memory references.
DIRTY PAGE HANDLING
How munmap() handles a dirty page, depends on what type of memory is being unmapped:
[Anonymous] If the memory is anonymous memory and if the last reference is going away, then the contents are discarded by definition of anonymous memory.
[System V Shared] If the memory mapping was created using System V shared memory, then the contents persist until the System V memory region is destroyed or the sys- tem is rebooted.
[File mapping] If the mapping maps data from a file (MAP_SHARED), then the memory will eventually be written back to disk if it's dirty. This will happen automat- ically at some point in the future (implementation dependent). Note: to force the memory to be written back to the disk, use msync(2).
If there are still other references to the memory when the munmap is done, then nothing is done to the memory itself and it may be swapped out if need be. The memory
will continue to persist until the last reference goes away