SlideShare une entreprise Scribd logo
1  sur  20
Programmation Système et Réseau
1
Programmation Système et Réseau
2
Communication Inter
Processus
Chapitre 3
PLAN
3
• Introduction
•Les tubes de communication anonymes
•Les signaux
Introduction
4
 Les systèmes d’exploitation actuels offrent la possibilité
de créer plusieurs processus(threads) concurrents qui
coopèrent pour réaliser des traitements complexes d’une
même application.
 Ces processus s’exécutent sur un même ordinateur
(monoprocesseur) ou multiprocesseur ou sur différents
ordinateurs, et peuvent s’échanger des informations
(communication inter processus).
Introduction
5
 Il existe plusieurs mécanismes de communication
interprocessus :
 Les données communes (variables,
fichiers, segments de données)
 Les signaux
 Les messages.
Introduction
6
Les threads (POSIX) d’un processus partagent :
 La zone de données globales
 Le code
 La table des descripteurs de fichiers du processus.
Lors de la création d’un processus (fork) :
 la table des descripteurs de fichiers est dupliquée
 Les processus créateur et créé partageront le même pointeur de
fichier pour chaque fichier déjà ouvert lors de la création.
Les tubes de communications unix
7
Définition:
Les tubes (pipes) de communications permettent entre deux
ou plusieurs processus s’exécutant sur une même machine
d’échanger des informations.
Deux types :
 Les tubes anonymes
 Les tubes nommés, qui ont une existence dans
le systèmes de fichiers : Donc un chemin
d’accès
Les tubes Anonymes : Création
8
Un tube de communication est créé par l’appel système :
int pipe(int p[2])
Cette appel système crée deux descripteurs de fichiers, il
retourne, dans p, les descripteurs de fichiers créés.
• p[0] : contient le descripteur réservés aux
lectures à partir du tube.
• p[1] : contient le descripteur réservés aux
écritures dans le tube.
Les tubes Anonymes : Création
9
Les descripteurs crées sont ajoutés aux tables de
descripteurs de fichiers du processus appelant.
Seul le processus créateur du tube et ses descendants
peuvent accéder au tube. (Duplication de la table de
descripteurs de fichiers).
Si le tube n’est pas créé: manque d’espace, l’appel système
renvoie -1, sinon il retourne la valeur 0.
L’accès au tubes se fait via les descripteurs de fichiers.
Les tubes Anonymes : Création
10
Communications unidirectionnels:
Les tubes Anonymes
11
Communications unidirectionnels:
Les tubes Anonymes
12
Communications unidirectionnels:
Les tubes anonymes sont, en général, utilisés entre un
processus père et son fils.
Scénario:
Père : Crée un tube.
Père : Crée un ou plusieurs fils
Père Lecteur
Fils Ecrivain
Ecrivain : ferme le fichier non utilisé : de lecture.
Lecteur : Ferme le fichier non utilisé : d’écriture
Les processus (lecteur et écrivain) communiquent en
utilisant les primitives read et write.
Les tubes Anonymes
13
Les tubes Anonymes
14
Communications unidirectionnels:
Exemple 1:
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define R 0
#define W 1
int main()
{
int pid;
int fd[2];
char message[100];
int Nboctects;
char* phrase="VOICI MON MESSAGE POUR TOI PERE";
system("clear");
Les tubes Anonymes
15
Communications unidirectionnels:
Exemple :
printf("_____________________________________________n");
printf("ttProcessus Courant:: %dn",(int)getpid());
printf("_____________________________________________n");
if (pipe(fd) == -1)
{
perror ("Creation du pipe a échoué ");
exit(1);
}
pid=fork();
if(!pid)
{
close(fd[0]);//fermeture du fichier de lecture par le fils
printf("tttttt+++++++++++++++++++++++++++++++++++++++e[mn");
printf("ttttttt e[29m Processus FILS:: %dn",(int)getpid());
printf("tttttt+++++++++++++++++++++++++++++++++++++++n");
printf("tttttt e[29mProcessus FILS::PERE JE T'ENVOIE UN MESSAGEn");
Les tubes Anonymes
16
Communications unidirectionnels:
Exemple :
if (write(fd[1],phrase,strlen(phrase)+1)== -1)
{
perror("write : Ecriture dans le pipe à échoué ");
exit(4);
}
close(fd[W]);//fermeture du fichier d'écriture par le fils
//sleep(2);
exit(3);
}
printf("%c[%d;%dm J'attends la terminaison du fils%c[%dmn",27,1,33,27,0);
wait(NULL);
close(fd[1]);//fermeture du fichier de lecture par le pere
Les tubes Anonymes
17
Communications unidirectionnels:
Exemple :
if (( Nboctects = read (fd[0],message, 100)) == -1)
{
perror ("read : Lecture échoué ");
exit(5);
}
message[Nboctects]='0';
printf("%c[%d;%dmMESSAGE RECU :: nboctets = %d Message=
%s%c[%dmn",27,1,33,Nboctects,message,27,0);
close(fd[R]);//fermeture du fichier d'écriture par le pere
return 0;
}
Les tubes Anonymes
18
Communications unidirectionnels:
Redirection des entrées standards et des sorties standards
La duplication de descripteur permet à un processus de créer
un nouveau descripteur (dans la table de descripteur )
synonyme d’un descripteur déjà existant.
#include<unistd.h>
int dup(int desc);
int dup2(int desc1, int desc2);
dup crée et retourne un descripteur synonyme à desc, le
numéro associé au descripteur crée est le plus petit
descripteur disponible dans la table des descripteurs des
fichiers du processus
dup2 transforme le desc2 à un descripteur synonyme au
descripteur desc1
Les tubes Anonymes
19
Communications unidirectionnels:
Redirection des entrées standards et des sorties standards
Les fonctions dup et dup2 permettent la redirection des
entrées sorties vers les tubes de communications.
who wc
Les tubes Anonymes
20
Communications unidirectionnels:
EXERCICE
On veut établir, en utilisant les tubes nommés, une
communication de type anneau unidirectionnel entre trois
processus fils. Pour ce faire, la sortie standard de l’un doit être
redirigée vers l’entrée standard d’un autre.

Contenu connexe

Tendances

Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesInes Ouaz
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Faycel Chaoua
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Examen principal + Correction ASD
Examen principal + Correction ASDExamen principal + Correction ASD
Examen principal + Correction ASDInes Ouaz
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1Stephen Salama
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap IInes Ouaz
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniShellmates
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1vangogue
 
Correction TD Adressage IP.pdf
Correction  TD Adressage IP.pdfCorrection  TD Adressage IP.pdf
Correction TD Adressage IP.pdfssuser18776b
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionInes Ouaz
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitationAmel Morchdi
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Introduction aux réseaux informatiques
Introduction aux réseaux informatiquesIntroduction aux réseaux informatiques
Introduction aux réseaux informatiquessarah Benmerzouk
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 

Tendances (20)

Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2Manuel des TP : Atelier systèmes 2
Manuel des TP : Atelier systèmes 2
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Examen principal + Correction ASD
Examen principal + Correction ASDExamen principal + Correction ASD
Examen principal + Correction ASD
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1
 
Algorithme & structures de données Chap I
Algorithme & structures de données Chap IAlgorithme & structures de données Chap I
Algorithme & structures de données Chap I
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
Correction TD Adressage IP.pdf
Correction  TD Adressage IP.pdfCorrection  TD Adressage IP.pdf
Correction TD Adressage IP.pdf
 
Examen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correctionExamen principal - Fondement Multimedia - correction
Examen principal - Fondement Multimedia - correction
 
Tubes.pdf
Tubes.pdfTubes.pdf
Tubes.pdf
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitation
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Introduction aux réseaux informatiques
Introduction aux réseaux informatiquesIntroduction aux réseaux informatiques
Introduction aux réseaux informatiques
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 

Similaire à Chap3 Communication Inter Processus.pptx

Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXSoukaina Boujadi
 
05_ProgrammationSystemeLinux_Tubes.pdf
05_ProgrammationSystemeLinux_Tubes.pdf05_ProgrammationSystemeLinux_Tubes.pdf
05_ProgrammationSystemeLinux_Tubes.pdfLarbaSAWADOGO2
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuEl7fe Eternal
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windowsSelman Dridi
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxKhalil BOUKRI
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 
Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralitésSinovatia
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux ImnaTech
 
Mouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horairesMouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horairesMoussaFatah
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de coursISIG
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxYallaHabibi5
 
Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxManipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxolfaharrabi2
 
Gestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdfGestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdfMadaniAhlem2
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)Souhaib El
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBFerjani Bassem
 

Similaire à Chap3 Communication Inter Processus.pptx (20)

Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIX
 
05_ProgrammationSystemeLinux_Tubes.pdf
05_ProgrammationSystemeLinux_Tubes.pdf05_ProgrammationSystemeLinux_Tubes.pdf
05_ProgrammationSystemeLinux_Tubes.pdf
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntu
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windows
 
Unix 1.pdf
Unix 1.pdfUnix 1.pdf
Unix 1.pdf
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Ch1 p1
Ch1 p1Ch1 p1
Ch1 p1
 
Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralités
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux
 
Mouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horairesMouhi nous-mêmes informations financières horaires
Mouhi nous-mêmes informations financières horaires
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
cours-Linux.PPT
cours-Linux.PPTcours-Linux.PPT
cours-Linux.PPT
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsx
 
Manip fichier
Manip fichierManip fichier
Manip fichier
 
Manipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptxManipulation des fichiers en C.pptx
Manipulation des fichiers en C.pptx
 
Gestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdfGestion d'E_S - Sérialisation.pdf
Gestion d'E_S - Sérialisation.pdf
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
 

Dernier

Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 

Dernier (15)

Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 

Chap3 Communication Inter Processus.pptx

  • 2. Programmation Système et Réseau 2 Communication Inter Processus Chapitre 3
  • 3. PLAN 3 • Introduction •Les tubes de communication anonymes •Les signaux
  • 4. Introduction 4  Les systèmes d’exploitation actuels offrent la possibilité de créer plusieurs processus(threads) concurrents qui coopèrent pour réaliser des traitements complexes d’une même application.  Ces processus s’exécutent sur un même ordinateur (monoprocesseur) ou multiprocesseur ou sur différents ordinateurs, et peuvent s’échanger des informations (communication inter processus).
  • 5. Introduction 5  Il existe plusieurs mécanismes de communication interprocessus :  Les données communes (variables, fichiers, segments de données)  Les signaux  Les messages.
  • 6. Introduction 6 Les threads (POSIX) d’un processus partagent :  La zone de données globales  Le code  La table des descripteurs de fichiers du processus. Lors de la création d’un processus (fork) :  la table des descripteurs de fichiers est dupliquée  Les processus créateur et créé partageront le même pointeur de fichier pour chaque fichier déjà ouvert lors de la création.
  • 7. Les tubes de communications unix 7 Définition: Les tubes (pipes) de communications permettent entre deux ou plusieurs processus s’exécutant sur une même machine d’échanger des informations. Deux types :  Les tubes anonymes  Les tubes nommés, qui ont une existence dans le systèmes de fichiers : Donc un chemin d’accès
  • 8. Les tubes Anonymes : Création 8 Un tube de communication est créé par l’appel système : int pipe(int p[2]) Cette appel système crée deux descripteurs de fichiers, il retourne, dans p, les descripteurs de fichiers créés. • p[0] : contient le descripteur réservés aux lectures à partir du tube. • p[1] : contient le descripteur réservés aux écritures dans le tube.
  • 9. Les tubes Anonymes : Création 9 Les descripteurs crées sont ajoutés aux tables de descripteurs de fichiers du processus appelant. Seul le processus créateur du tube et ses descendants peuvent accéder au tube. (Duplication de la table de descripteurs de fichiers). Si le tube n’est pas créé: manque d’espace, l’appel système renvoie -1, sinon il retourne la valeur 0. L’accès au tubes se fait via les descripteurs de fichiers.
  • 10. Les tubes Anonymes : Création 10 Communications unidirectionnels:
  • 12. Les tubes Anonymes 12 Communications unidirectionnels: Les tubes anonymes sont, en général, utilisés entre un processus père et son fils. Scénario: Père : Crée un tube. Père : Crée un ou plusieurs fils Père Lecteur Fils Ecrivain Ecrivain : ferme le fichier non utilisé : de lecture. Lecteur : Ferme le fichier non utilisé : d’écriture Les processus (lecteur et écrivain) communiquent en utilisant les primitives read et write.
  • 14. Les tubes Anonymes 14 Communications unidirectionnels: Exemple 1: #include<sys/types.h> #include<sys/wait.h> #include<unistd.h> #include<stdio.h> #include<string.h> #include<stdlib.h> #define R 0 #define W 1 int main() { int pid; int fd[2]; char message[100]; int Nboctects; char* phrase="VOICI MON MESSAGE POUR TOI PERE"; system("clear");
  • 15. Les tubes Anonymes 15 Communications unidirectionnels: Exemple : printf("_____________________________________________n"); printf("ttProcessus Courant:: %dn",(int)getpid()); printf("_____________________________________________n"); if (pipe(fd) == -1) { perror ("Creation du pipe a échoué "); exit(1); } pid=fork(); if(!pid) { close(fd[0]);//fermeture du fichier de lecture par le fils printf("tttttt+++++++++++++++++++++++++++++++++++++++e[mn"); printf("ttttttt e[29m Processus FILS:: %dn",(int)getpid()); printf("tttttt+++++++++++++++++++++++++++++++++++++++n"); printf("tttttt e[29mProcessus FILS::PERE JE T'ENVOIE UN MESSAGEn");
  • 16. Les tubes Anonymes 16 Communications unidirectionnels: Exemple : if (write(fd[1],phrase,strlen(phrase)+1)== -1) { perror("write : Ecriture dans le pipe à échoué "); exit(4); } close(fd[W]);//fermeture du fichier d'écriture par le fils //sleep(2); exit(3); } printf("%c[%d;%dm J'attends la terminaison du fils%c[%dmn",27,1,33,27,0); wait(NULL); close(fd[1]);//fermeture du fichier de lecture par le pere
  • 17. Les tubes Anonymes 17 Communications unidirectionnels: Exemple : if (( Nboctects = read (fd[0],message, 100)) == -1) { perror ("read : Lecture échoué "); exit(5); } message[Nboctects]='0'; printf("%c[%d;%dmMESSAGE RECU :: nboctets = %d Message= %s%c[%dmn",27,1,33,Nboctects,message,27,0); close(fd[R]);//fermeture du fichier d'écriture par le pere return 0; }
  • 18. Les tubes Anonymes 18 Communications unidirectionnels: Redirection des entrées standards et des sorties standards La duplication de descripteur permet à un processus de créer un nouveau descripteur (dans la table de descripteur ) synonyme d’un descripteur déjà existant. #include<unistd.h> int dup(int desc); int dup2(int desc1, int desc2); dup crée et retourne un descripteur synonyme à desc, le numéro associé au descripteur crée est le plus petit descripteur disponible dans la table des descripteurs des fichiers du processus dup2 transforme le desc2 à un descripteur synonyme au descripteur desc1
  • 19. Les tubes Anonymes 19 Communications unidirectionnels: Redirection des entrées standards et des sorties standards Les fonctions dup et dup2 permettent la redirection des entrées sorties vers les tubes de communications. who wc
  • 20. Les tubes Anonymes 20 Communications unidirectionnels: EXERCICE On veut établir, en utilisant les tubes nommés, une communication de type anneau unidirectionnel entre trois processus fils. Pour ce faire, la sortie standard de l’un doit être redirigée vers l’entrée standard d’un autre.