mmap

mmap

In computing, mmap is a POSIX-compliant Unix system call that maps files or devices into memory. It is a method of memory-mapped file I/O. It naturally implements demand paging, because initially file contents are not entirely read from disk and do not use physical RAM at all. The actual reads from disk are performed in "lazy" manner, after a specific location is accessed.

In Linux, Mac OS X and the BSDs, mmap can create several types of mappings.

Anonymous mappings are mappings of that area of the process's virtual memory backed by the swap space instead of by a file in the file system name space. In this respect an anonymous mapping is similar to malloc, and is used in some malloc implementations for certain allocations. However, anonymous mappings are not part of the POSIX standard, though implemented by almost all systems.

File-backed mappings are mappings of virtual memory to files. Access to those areas of memory causes the file to be read. If the mapping is shared, writes to that area in one process will affect other processes with that area mapped and the underlying file; otherwise, if the mapping is private, the changes will not be seen by other processes nor written to the file.

A process reading from or writing to the underlying file will not always see the same data as a process that has mapped the file, since the segment of the file is copied into RAM and periodically flushed to disk. Synchronization can be forced with the msync system call.

mmaping files can significantly reduce memory overhead for applications accessing the same file. If the file is mmaped, the applications can then share the memory area that the file encompasses, instead of loading the file for each application that wants access to it.

Memory shared by mmap is kept visible across a fork.

mmap is sometimes used for Interprocess Communication (IPC). On modern operating systems mmap is typically preferred to the System V IPC Shared Memory facility.

The main difference between System V shared memory (shmem) and memory mapped I/O (mmap) is that SystemV shared memory is persistent: unless explicitly removed by a process, it is kept in memory and remains available until the system is shut down. mmap'd memory is not persistent between application executions (unless it is backed by a file).

See also

  • Virtual memory for a general context of possessing more addresses than physical memory

References and further reading

  • Windows

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • mmap — mmap  POSIX совместимый системный вызов Unix, позволяющий выполнить отображение файла или устройства на память. Является методом ввода/вывода через отображение файла на память и естественным образом реализует выделение страниц по запросу,… …   Википедия

  • Mmap — (« memory map ») est un appel système UNIX (qui fait partie de la norme POSIX). Il établit une projection en mémoire des fichiers ou périphériques. mmap est parfois utilisé pour la communication inter processus. Pour cette… …   Wikipédia en Français

  • mmap — (« memory map ») est un appel système UNIX (qui fait partie de la norme POSIX). Il établit une projection en mémoire des fichiers ou périphériques. mmap est parfois utilisé pour la communication inter processus. Pour cette… …   Wikipédia en Français

  • Mmap — In computing, mmap is a POSIX compliant Unix system call that maps files or devices into memory. It is a method of memory mapped file I/O. It naturally implements demand paging, because initially file contents are not entirely read from disk and… …   Wikipedia

  • MMAP — * Memory map * Marked Markovian Arrival Process …   Wikipedia

  • MMAP — mean maternal arterial blood pressure …   Medical dictionary

  • MMAP — Mission Manifest And Planning NASA …   Acronyms

  • MMAP — Mission Manifest And Planning ( > NASA Acronym List ) …   Acronyms von A bis Z

  • MMAP — abbr. Microgravity Measurement and Analysis Project …   Dictionary of abbreviations

  • MMAP — • mean maternal arterial blood pressure …   Dictionary of medical acronyms & abbreviations

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”