La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

7 – COMMUNICATION INTER PROCESSUS SEGMENTS DE MÉMOIRE PARTAGEE

Présentations similaires


Présentation au sujet: "7 – COMMUNICATION INTER PROCESSUS SEGMENTS DE MÉMOIRE PARTAGEE"— Transcription de la présentation:

1 7 – COMMUNICATION INTER PROCESSUS SEGMENTS DE MÉMOIRE PARTAGEE
UNIX AVANCE 7 – COMMUNICATION INTER PROCESSUS SEGMENTS DE MÉMOIRE PARTAGEE Yves PAGNOTTE – Janvier 2011

2 OUTILS DE COMMUNICATION INTER PROCESSUS
(IPC) sémaphores tubes files de messages  segments de mémoire partagée

3 SEGMENT DE MEMOIRE PARTAGEE
- c’est le concept de variable globale à plusieurs processus : zone d’octets consécutifs en mémoire - identifié dans UNIX par un identificateur entier - tout processus qui connaît l’existence d ’un segment de mémoire partagée peut réaliser des opérations sur celle-ci - un segment de mémoire partagée : pas seulement accessible à la descendance du processus qui crée la file, mais à tout processus dans le cadre des droits d’accès

4 OPERATIONS SUR UN SEGMENT DE MEMOIRE
- création d’un segment - opération de contrôle d’un segment : - parmi lesquelles la suppression du segment - attachement  d’un segment à un processus - détachement d’un segment d’un processus - lire et écrire dans un segment

5 LE FICHIER /usr/include/sys/shm.h
contient des définitions : - constantes relatives aux droits - structures - shmid_ds qui correspond à peu près au type segment de mémoire - shminfo, contient des informations sur l’ensemble des segments définis dans le système

6 CREATION D’UN SEGMENT DE MEMOIRE
la fonction shmget retourne l’identificateur entier du segment ou -1 en cas d’erreur : #include <stdio.h> #include <sys/types.h> #include <sys/shm.h> ..... Id = shmget (IPC_PRIVATE, nb_octets, IPC_CREAT | IPC_EXCL | 0666);

7 CONTROLE D’UN SEGMENT DE MÉMOIRE
la fonction shmctl retourne 0 (- 1 en cas d’erreur) Exemple : shmctl (id, IPC_RMID, 0); supprime le segment d’identificateur id

8 ATTACHEMENT D’UN SEGMENT A UN PROCESSUS
la fonction shmat retourne l’adresse de début du segment sous forme d’un void * Exemple d’un segment contenant des entiers, p contient l’adresse de début du segment int *p; p = (int*) shmat (id, NULL, 0); Le pointeur p permet ensuite de gérer tous les emplacements du segment comme un tableau pour les opérations classiques de lecture ou écriture dans le segment.

9 DETACHEMENT D ’UN SEGMENT D ’UN PROCESSUS
la fonction shmdt retourne 0 (- 1 en cas d’échec) Exemple avec les notations précédentes : shmdt ((void *) p);


Télécharger ppt "7 – COMMUNICATION INTER PROCESSUS SEGMENTS DE MÉMOIRE PARTAGEE"

Présentations similaires


Annonces Google