Skip to content

Latest commit

 

History

History
33 lines (19 loc) · 2.7 KB

README.md

File metadata and controls

33 lines (19 loc) · 2.7 KB

Системный вызов mmap

Лекция

Пример использования mmap в режиме MAP_SHARED - можно запустить параллельно несколько процессов, и они будут видеть изменения других процессов.

Пример использования mmap в режиме MAP_ANONYMOUS | MAP_SHARED - можно запустить параллельно несколько процессов, но каждый процесс будет работать со своими данными.

Пример использования mmap в режиме MAP_ANONYMOUS | MAP_SHARED - будет создан сыновний процесс, и родитель и сын будут читать и модифицировать общие данные.

Пример использования mmap в режиме MAP_ANONYMOUS | MAP_PRIVATE будет создан сыновний процесс, родитель и сын будут работать со своими данными.

Пример использования mmap в режиме MAP_PRIVATE - изменения в одном процессе не будут видны в других процессах. Обратите внимание, что файл открыт O_RDONLY, а mmap выполняется с правами PROT_READ | PROT_WRITE.

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

Пример использования mmap в режиме MAP_SHARED - файл открыт в режиме "только для чтения", а mmap пытается подключить его как "чтение-запись", и mmap завершится с ошибкой EPERM - Permission denied.

Файловая система /proc

Описание /proc/[pid]/maps и справка по procfs.

elf

man 5 elf

Поясняющие картинки by corkami (кликабельно):