shm_overview - Panorama de la mémoire partagée POSIX
L'API de mémoire partagée POSIX permet aux processus de
communiquer entre eux en partageant une région de la mémoire.
Les interfaces utilisées dans l'API sont :
-
shm_open(3)
- Créer et ouvrir un nouvel objet, ou ouvrir un objet
existant. Elle est analogue à open(2). La fonction renvoie
un descripteur de fichiers qui pourra être utilisé par les
interfaces décrites ci-dessous.
-
ftruncate(2)
- Définir la taille de l'objet en mémoire
partagée. (Un objet nouvellement créé en
mémoire partagée a une taille nulle.)
-
mmap(2)
- Projeter l'objet en mémoire partagée dans
l'espace d'adresses virtuel du processus appelant.
-
munmap(2)
- Déprojeter l'objet en mémoire partagée
de l'espace d'adresses virtuel du processus appelant.
-
shm_unlink(3)
- Supprimer le nom d'un objet en mémoire
partagée.
-
close(2)
- Fermer le descripteur de fichier alloué avec
shm_open(3) lorsqu'on en a plus besoin.
-
fstat(2)
- Obtenir une structure stat décrivant l'objet
en mémoire partagée. Parmi les informations renvoyées
par cet appel, on trouve la taille de l'objet ( st_size), ses
permissions ( st_mode), son propriétaire (st_uid) et
le groupe ( st_gid) auquel il appartient.
-
fchown(2)
- Pour modifier l'appartenance d'un objet en mémoire
partagée.
-
fchmod(2)
- Pour modifier les permissions d'accès d'un objet en
mémoire partagée.
La mémoire partagée POSIX est gérée depuis
Linux 2.4 et la glibc 2.2.
Les objets en mémoire partagée POSIX ont la persistance du
noyau : un objet en mémoire partagée existera
jusqu'à ce que le système soit éteint, ou bien
jusqu'à ce que tous les processus aient déprojetés
l'objet et que celui-ci ait été supprimé avec
shm_unlink(3).
Les programmes utilisant l'API de mémoire partagée POSIX doit
être compilé avec
cc -lrt pour le lier à la
bibliothèque temps-réel
librt.
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.
Typiquement, les processus doivent synchroniser leur accès à un
objet en mémoire partagée en utilisant, par exemple, les
sémaphores POSIX.
La mémoire partagée System V (
shmget(2),
shmop(2), etc.) est une ancienne API de mémoire partagée.
La mémoire partagée POSIX offre une interface plus simple et
mieux conçue ; d'un autre coté, la mémoire
partagée POSIX est moins largement disponible (particulièrement
sur d'anciens systèmes) que la mémoire partagée
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)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]> et David Prévot <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]