dbo:abstract
|
- mmap (z anglického memory mapping, česky zhruba zobrazení do paměti) je v oboru výpočetní techniky označení pro systémové volání UNIXových a UN*Xových operačních systémů, kterým se zobrazuje soubor nebo hardware virtuálně do paměti. Nejde nutně o skutečné zrcadlení a fyzické využívání operační paměti (její případné využití je „líné“), ale o rezervování části jejího adresního prostoru pro komunikaci s daným zařízením nebo pro přístup do daného souboru. Vzhledem k principu fungování jej lze implementovat pouze na operačních systémech podporujících virtuální paměť a v praxi je obvykle implementováno pomocí stránkování, přesněji . K funkci mmap patří funkce munmap, která vytvořené adresní propojení naopak zruší. Funkce mmap je součástí standardu POSIX. Častým a jednoduchým využitím mmapu je namapování stejného souboru více procesy za účelem sdílení paměti. (cs)
- mmap (« memory map ») est un appel système UNIX (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 fonctionnalité, il existe aussi l'appel système shmem. La différence entre les deux est que pour mmap, les données en mémoire ne sont pas persistantes. Certains systèmes supportent une version étendue de mmap, qui permet d'allouer de la mémoire virtuelle sans la lier à un fichier. mmap est donc utilisé pour l'allocation de mémoire. (fr)
- In computing, mmap(2) 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 implements demand paging because file contents are not immediately read from disk and initially use no physical RAM at all. The actual reads from disk are performed after a specific location is accessed, in a lazy manner. After the mapping is no longer needed, the pointers must be unmapped with munmap(2). Protection information—for example, marking mapped regions as executable—can be managed using mprotect(2), and special treatment can be enforced using madvise(2). In Linux, macOS and the BSDs, mmap can create several types of mappings. Other operating systems may only support a subset of these; for example, shared mappings may not be practical in an operating system without a global VFS or I/O cache. (en)
- mmap は、UNIXのシステムコールのひとつで、ファイルやデバイスなどのオペレーティングシステム (OS) 上のリソースの一部または全部を連続した仮想アドレス空間にマッピングする関数である。 ファイルシステム上のリソースに対するアクセス方法として、ストリームI/Oを行うシステムコールとの比較で、ユーザ空間とカーネル空間の間で読み書きされるデータのが多くのアーキテクチャ上では発生しないことから、好まれる場合がある。 デバイスでは、ioctlとともにメモリマップドI/OやDMAなどの操作を抽象化するものとしてドライバからファイルI/Oサービスの一部として提供されることがある。 (ja)
- mmap – wywołanie systemowe w systemach uniksowych i uniksopodobnych, nakazujące systemowi operacyjnemu odwzorowanie danej części wybranego pliku w przestrzeni adresowej procesu. Operacja ta powoduje, że do obszaru pliku można odnosić się jak do zwykłej tablicy bajtów w pamięci, eliminując potrzebę korzystania z dodatkowych wywołań systemowych typu read lub write. Z tego powodu często używa się tej operacji do przyspieszenia działania na dużych plikach. Prototyp funkcji w języku C ma następującą postać: void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); Znaczenie poszczególnych parametrów:
* start – określa adres, w którym chcemy widzieć odwzorowanie pliku. Nie jest wymagane i nie zawsze jest przestrzegane przez system operacyjny.
* length – liczba bajtów jaką chcemy odwzorować w pamięci.
* prot – flagi określające uprawnienia jakie chcemy nadać obszarowi pamięci, np. tylko do odczytu, etc.
* flags – dodatkowe flagi określające sposób działania wywołania mmap.
* fd – deskryptor pliku, który chcemy odwzorować w pamięci.
* offset – liczba określająca od którego miejsca w pliku chcemy rozpocząć odwzorowywanie. W celu użycia funkcji mmap należy włączyć plik nagłówkowy <sys man.h></sys>. W celu zlikwidowania odwzorowania należy użyć wywołania . (pl)
- Em computação, mmap é uma chamada de sistema do Unix, em conformidade com o POSIX, que mapeia arquivos ou dispositivos na memória. É um método de E/S de arquivo mapeado em memória. Ela implementa naturalmente a paginação por pedido, pois os conteúdos iniciais dos arquivos não são inteiramente lidos do disco e não usam a memória RAM física completamente. A real leitura do disco é feita de maneira "preguiçosa", após uma posição específica ter sido acessada. (pt)
- mmap — POSIX-совместимый системный вызов Unix, позволяющий выполнить отображение файла или устройства на память. Является методом ввода-вывода через отображение файла на память и естественным образом реализует выделение страниц по запросу, поскольку изначально содержимое файла не читается с диска и не использует физическую память вообще. Реальное считывание с диска производится в «ленивом» режиме, то есть при осуществлении доступа к определённому месту. В Linux, Mac OS X и BSD mmap может создавать несколько типов отображений. Анонимные отображения — отображения пространства виртуальной памяти процесса, а не файла в пространстве файловой системы. По этой причине анонимное отображение схоже с функцией malloc и используется в некоторых реализациях malloc для определённых размещений. Следует заметить, что анонимные отображения не являются частью стандарта POSIX, хотя и реализованы почти во всех POSIX-системах. Файловые отображения позволяют отобразить файл в виртуальной памяти (практически это буферизация чтения/записи конкретного файла с прямым — по адресам памяти — доступом к буферу, как области отображения файла в памяти). Доступ к этим участкам памяти приводит к чтению/записи файла. Если отображение распределено между процессами, запись в это пространство в одном процессе окажет воздействие на другие процессы. Если используется частное (private) отображение, то изменения не будут видны другим процессам и не будут записаны в файл. Процесс чтения/записи в отображенный в виртуальную оперативную память файл не всегда приводит к ожидаемому результату, поскольку сегменты файла копируются в оперативную память и периодически выгружаются на диск, однако синхронизация может быть форсирована с помощью системного вызова . mmap файлов может значительно снизить нагрузку на диск для нескольких программ-приложений, обращающихся к одному и тому же файлу. Если файл отображён в памяти, программы-приложения могут разделять сегмент памяти, являющийся отображением файла в памяти, вместо загрузки файла для каждой программы-приложения, желающей обратиться к данному файлу. К памяти, распределённой с помощью mmap, можно осуществлять доступ из дочерних процессов. mmap можно использовать для реализации межпроцессного взаимодействия (IPC). В современных операционных системах mmap обычно предпочтительней взаимодействию через распределённую память в стиле System V. Основное различие между распределённой памятью System V (shmem) и вводом-выводом с отображением памяти (mmap) состоит в том, что распределённая память System V постоянна: не будучи явно удалены, данные будут храниться в памяти и оставаться доступными до тех пор, пока система не будет отключена. Память mmap не является постоянной между запусками прикладных программ (только если отображение не зарезервировано в файле) — сегмент памяти, созданный mmap, автоматически удаляется ядром системы, когда завершатся все использующие его программы-приложения. (ru)
|
rdfs:comment
|
- mmap (« memory map ») est un appel système UNIX (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 fonctionnalité, il existe aussi l'appel système shmem. La différence entre les deux est que pour mmap, les données en mémoire ne sont pas persistantes. Certains systèmes supportent une version étendue de mmap, qui permet d'allouer de la mémoire virtuelle sans la lier à un fichier. mmap est donc utilisé pour l'allocation de mémoire. (fr)
- mmap は、UNIXのシステムコールのひとつで、ファイルやデバイスなどのオペレーティングシステム (OS) 上のリソースの一部または全部を連続した仮想アドレス空間にマッピングする関数である。 ファイルシステム上のリソースに対するアクセス方法として、ストリームI/Oを行うシステムコールとの比較で、ユーザ空間とカーネル空間の間で読み書きされるデータのが多くのアーキテクチャ上では発生しないことから、好まれる場合がある。 デバイスでは、ioctlとともにメモリマップドI/OやDMAなどの操作を抽象化するものとしてドライバからファイルI/Oサービスの一部として提供されることがある。 (ja)
- Em computação, mmap é uma chamada de sistema do Unix, em conformidade com o POSIX, que mapeia arquivos ou dispositivos na memória. É um método de E/S de arquivo mapeado em memória. Ela implementa naturalmente a paginação por pedido, pois os conteúdos iniciais dos arquivos não são inteiramente lidos do disco e não usam a memória RAM física completamente. A real leitura do disco é feita de maneira "preguiçosa", após uma posição específica ter sido acessada. (pt)
- mmap (z anglického memory mapping, česky zhruba zobrazení do paměti) je v oboru výpočetní techniky označení pro systémové volání UNIXových a UN*Xových operačních systémů, kterým se zobrazuje soubor nebo hardware virtuálně do paměti. Nejde nutně o skutečné zrcadlení a fyzické využívání operační paměti (její případné využití je „líné“), ale o rezervování části jejího adresního prostoru pro komunikaci s daným zařízením nebo pro přístup do daného souboru. Vzhledem k principu fungování jej lze implementovat pouze na operačních systémech podporujících virtuální paměť a v praxi je obvykle implementováno pomocí stránkování, přesněji . K funkci mmap patří funkce munmap, která vytvořené adresní propojení naopak zruší. (cs)
- In computing, mmap(2) 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 implements demand paging because file contents are not immediately read from disk and initially use no physical RAM at all. The actual reads from disk are performed after a specific location is accessed, in a lazy manner. After the mapping is no longer needed, the pointers must be unmapped with munmap(2). Protection information—for example, marking mapped regions as executable—can be managed using mprotect(2), and special treatment can be enforced using madvise(2). (en)
- mmap – wywołanie systemowe w systemach uniksowych i uniksopodobnych, nakazujące systemowi operacyjnemu odwzorowanie danej części wybranego pliku w przestrzeni adresowej procesu. Operacja ta powoduje, że do obszaru pliku można odnosić się jak do zwykłej tablicy bajtów w pamięci, eliminując potrzebę korzystania z dodatkowych wywołań systemowych typu read lub write. Z tego powodu często używa się tej operacji do przyspieszenia działania na dużych plikach. Prototyp funkcji w języku C ma następującą postać: void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); (pl)
- mmap — POSIX-совместимый системный вызов Unix, позволяющий выполнить отображение файла или устройства на память. Является методом ввода-вывода через отображение файла на память и естественным образом реализует выделение страниц по запросу, поскольку изначально содержимое файла не читается с диска и не использует физическую память вообще. Реальное считывание с диска производится в «ленивом» режиме, то есть при осуществлении доступа к определённому месту. В Linux, Mac OS X и BSD mmap может создавать несколько типов отображений. (ru)
|