table of contents
shm_overview(7) | Miscellaneous Information Manual | 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.
Доступ к объектам общей памяти через файловую систему¶
On Linux, shared memory objects are created in a (tmpfs(5)) virtual filesystem, normally mounted under /dev/shm. Since Linux 2.6.19, Linux supports the use of access control lists (ACLs) to control the permissions of objects in the virtual filesystem.
ПРИМЕЧАНИЯ¶
Обычно процессы должны синхронизировать свой доступ к объекту общей памяти, например, с использованием семафоров POSIX.
Общая память System V (shmget(2), shmop(2) и так далее) является старым API. POSIX предоставляет более простой и лучше спроектированный интерфейс. С другой стороны, общая память POSIX в какой-то мере менее распространена (особенно на старых системах), чем System V.
СМОТРИТЕ ТАКЖЕ¶
fchmod(2), fchown(2), fstat(2), ftruncate(2), memfd_create(2), mmap(2), mprotect(2), munmap(2), shmget(2), shmop(2), shm_open(3), shm_unlink(3), sem_overview(7)
ПЕРЕВОД¶
Русский перевод этой страницы руководства разработал 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 (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.
2 мая 2024 г. | Linux man-pages (unreleased) |