- bullseye-backports 4.18.1-1~bpo11+1
- testing 4.18.1-1
- unstable 4.18.1-1
SHM_OVERVIEW(7) | Руководство программиста Linux | SHM_OVERVIEW(7) |
ИМЯ¶
shm_overview - обзор общей памяти POSIX
ОПИСАНИЕ¶
API общей памяти POSIX позволяет процессам обмениваться информацией через общую область памяти.
Доступные интерфейсы:
- shm_open(3)
- Создаёт и открывает новый объект, или открывает существующий объект. Аналог open(2). Вызов возвращает файловый дескриптор, которые используется другими интерфейсами, описанными далее.
- ftruncate(2)
- Назначает размер общего объекта памяти (размер создаваемого объекта общей памяти равен нулю).
- mmap(2)
- Отображает объект общей памяти в виртуальное адресное пространство вызвавшего процесса.
- munmap(2)
- Удаляет отображение объекта общей памяти из виртуального адресного пространства вызвавшего процесса.
- shm_unlink(3)
- Удаляет объект общей памяти с заданным именем.
- close(2)
- Закрывает файловый дескриптор (выделенный shm_open(3)), когда он больше не требуется.
- fstat(2)
- Возвращает структуру stat, в которой описан объект общей памяти. Информация, возвращаемой этим вызовом: размер объекта (st_size), права (st_mode), владелец (st_uid) и группа (st_gid).
- fchown(2)
- Изменяет владельца объекта общей памяти.
- fchmod(2)
- Изменяет права на объект общей памяти.
Версии¶
Общая память POSIX стала доступна начиная с Linux 2.4 и glibc 2.2.
Устойчивость¶
Объекты общей памяти POSIX являются устойчивыми на уровне ядра. Объект будет существовать до самого отключения системы или до тех пор, пока все процессы не разорвут связь с объектом, после чего он может быть удален с помощью shm_unlink(3).
Компоновка¶
Программы, в которых используется программный интерфейс общей памяти POSIX, для компоновки с библиотекой реального времени librt должны компилироваться с помощью cc -lrt.
Доступ к объектам общей памяти через файловую систему¶
В Linux объекты общей памяти создаются в виртуальной файловой системе (tmpfs(5)), которая обычно монтируется в каталог /dev/shm. Начиная с ядра версии 2.6.19, в Linux поддерживается использование списков контроля доступа (ACL) для управления доступа к объектам в виртуальной файловой системе.
ЗАМЕЧАНИЯ¶
Обычно процессы должны синхронизировать свой доступ к объекту общей памяти, например, с использованием семафоров POSIX.
Общая память System V (shmget(2), shmop(2) и так далее) является старым API. POSIX предоставляет более простой и лучше спроектированный интерфейс. С другой стороны, общая память POSIX в какой-то мере менее распространена (особенно на старых системах), чем System V.
СМ. ТАКЖЕ¶
fchmod(2), fchown(2), fstat(2), ftruncate(2), mmap(2), mprotect(2), munmap(2), shmget(2), shmop(2), shm_open(3), shm_unlink(3), sem_overview(7)
ЗАМЕЧАНИЯ¶
Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.
ПЕРЕВОД¶
Русский перевод этой страницы руководства был сделан Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
13 августа 2020 г. | Linux |