systeme
Tubes et Tubes Nomm´s e Les tubes sont un m´canisme de communication qui permet de r´aliser des communications e e entre processus sous forme d’un flot continu d’octets. Les tubes sont un des ´l´ments de l’agr´ment ee e d’utilisation d’UNIX. C’est ce m´canisme qui permet l’approche filtre de la conception sous UNIX. e M´canisme de communication li´ au syst`me de gestion de fichier, les tubes nomm´s ou non e e e e sont des paires d’entr´es de la table des fichiers ouverts, associ´es ` une inode en m´moire g´r´e e e a e ee par un driver sp´cifique. Une entr´e est utilis´e par les processus qui ´crivent dans le tube, une e e e e entr´e pour les lecteurs du tube. e L’op´ration de lecture y est destructive ! e L’ordre des caract`res en entr´e est conserv´ en sortie (premier entr´ premier e e e e sorti). Un tube a une capacit´ finie : en g´n´ral le nombre d’adresses directes des inodes e e e du SGF (ce qui peut varier de 5 ` 80 Ko). a 10.1
Les tubes ordinaires (pipe)
Un tube est mat´rialis´ par deux entr´es de la table des ouvertures de fichiers, une de ces e e e entr´es est ouverte en ´criture (l’entr´e du tube), l’autre en lecture (la sortie du tube). Ces deux e e e entr´es de la table des fichiers ouverts nous donnent le nombre de descripteurs qui pointent sur e elles. Ces valeurs peuvent ˆtre traduites comme : e nombre de lecteurs = nombre de descripteurs associ´s ` l’entr´e ouverte en lecture.On ne peut e a e pas ´crire dans un tube sans lecteur. e nombre d’´crivains = nombre de descripteurs associ´s ` l’entr´e ouverte en ´criture. La nullit´ e e a e e e de ce nombre d´finit le comportement de la primitive read lorsque le tube est vide. e 10.2
Cr´ation de tubes ordinaires e Un processus ne peut utiliser que les tubes qu’il a cr´´s lui-mˆme par la primitive pipe ou qu’il ee e a h´rit´s de son p`re grˆce ` l’h´ritage des descripteurs ` travers fork et exec. e e e a a e
a