Chapitre 13 Chapitre LES TUBES Nous avons vu dans les chapitres précédents deux moyens pour faire communiquer des processus sous UNIX les signaux et les sémaphores Les sémaphores ainsi que les tubes les ?les de messages et les segments de mémoire partagée
Chapitre LES TUBES Nous avons vu dans les chapitres précédents deux moyens pour faire communiquer des processus sous UNIX les signaux et les sémaphores Les sémaphores ainsi que les tubes les ?les de messages et les segments de mémoire partagée constituent les IPC Inter Process Communications apparus avec UNIX System V Le ?chier usr include sys ipc h contient la dé ?nition des objets et des noms symboliques utilisés par les primitives des IPC Qu'il s'agisse des sémaphores des tubes des ?les de messages ou des segments de mémoire partagée il s'agit d'objets externes au SGF Pour chacune de ces catégories il existe une primitive get d'ouverture création cf ouverture des ?chiers Elle donne au processus une identi ?cation de l'objet interne cf descripteurs de ?chiers DEFINITION ET CARACTERISTIQUES Les tubes pipes constituent le mécanisme fondamental de communication entre processus sous UNIX Ce sont des ?les d'octets Il est conseillé de les utiliser de façon unidirectionnelle Si l'on veut une communication bidirectionnelle entre deux processus il faut ouvrir deux tubes chacun étant utilisé dans un sens Un tube est implémenté de façon proche d'un ?chier il possède un inode mais ne possède pas de nom dans le système son compteur de liens est nul puisque aucun répertoire n'a de lien avec lui Les tubes sont accessibles au niveau du shell pour rediriger la sortie d'une commande sur l'entrée d'une autre symbole Comme un tube ne possède pas de nom il n'existe que le temps de l'exécution du processus qui le crée Plusieurs processus peuvent lire ou écrire dans un même tube sans qu'on puisse di ?érencier l'origine des informations en sortie La capacité d'un tube est limitée PIPE BUF octets Les processus communiquant par un tube doivent avoir un lien de parenté par exemple descendance d'un ancêtre commun ayant créé ce tube problème classique de l'héritage des descripteurs de ?chiers par un ?ls CREATION ET UTILISATION D'UN TUBE La création d'un tube correspond à celle de deux descripteurs de ?chiers l'un permettant d'écrire dans le tube et l'autre d'y lire par les opérations classiques read et write de lecture écriture dans un ?chier Pour cela on utilise la fonction prototypée par int pipe int pdesc o? pdesc désigne le n du descripteur par lequel on lit dans le tube et p desc désigne le n du descripteur par lequel on écrit dans le tube La fonction retourne si la création s'est bien passée et - sinon La fonction C prototypée par FILE fdopen int desc char mode Systèmes d'exploitation et programmation système Yves PAGNOTTE Chapitre Cpermet d'associer un pointeur sur FILE au tube ouvert mode doit être conforme à l'ouverture déjà réalisée SECURITES APPORTEES PAR UNIX Un processus peut fermer un tube mais alors il ne pourra plus le rouvrir Lorsque tous les descripteurs d'écriture sont fermés une ?n de ?chier est perçue sur le descripteur de lecture read retourne Un processus qui tente d'écrire dans un tube plein est suspendu jusqu'à ce que de la place se libère On
Documents similaires
-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Mai 23, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 82.8kB