mmap

mmap

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

В Linux, Mac OS X и BSD mmap может создавать несколько типов отображений.

Анонимные отображения — отображения пространства виртуальной памяти процесса, а не файла в пространстве файловой системы. По этой причине анонимное отображение схоже с функцией malloc и используется в некоторых реализациях malloc для определённых размещений. Следует заметить, что анонимные отображения не являются частью стандарта POSIX, хотя и реализованы почти во всех системах.

Файловые отображения позволяют отобразить файл в виртуальной памяти. Доступ к этим участкам памяти приводит к чтению файла. Если отображение распределено между процессами, запись в это пространство в одном процессе окажет воздействие на другие процессы. Если используется частное (private) отображение, то изменения не будут видны другим процессам и не будут записаны в файл.

Процесс чтения или записи в связанный файл не всегда приводит к ожидаемому результату, поскольку сегменты файла копируются в оперативную память и периодически выгружаются на диск, однако синхронизация может быть форсирована с помощью системного вызова msync.

mmap файлов может значительно уменьшить нагрузку на диск для приложений, осуществляющих доступ к одному файлу. Если файл отображён в памяти, приложения могут разделять участок памяти, заключающей файл, вместо загрузки файла для каждого приложения, желающего осуществить доступ к нему.

К памяти, распределённой с помощью mmap, можно осуществлять доступ из дочерних процессов.

mmap можно использовать для реализации межпроцессного взаимодействия (IPC). В современных операционных системах mmap обычно предпочтительней взаимодействию через распределённую память в System V.

Основное различие между распределённой памятью System V (shmem) и вводом-выводом с распределением памяти (mmap) состоит в том, что распределённая память System V постоянна: не будучи явно удалены, данные будут храниться в памяти и оставаться доступными до тех пор, пока система не будет отключена. Память mmap не является постоянной между запусками приложения (только если отображение не зарезервировано в файле).

См. также

Ссылки

  • Windows

Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "mmap" в других словарях:

  • 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 — 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


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»