OVH Cloud OVH Cloud

Requête sur un buffer (read/write)

4 réponses
Avatar
JKB
Bonjour à tous,

Une dernière petite question dans les problèmes de pipe(). Est-il
possible de savoir sans lire un buffer avec read() s'il reste
quelque chose à l'intérieur ou non ? J'ai une synchronisation entre
deux processus générés par fork() qui ne peut se faire qu'ainsi...

Merci de votre attention,

JKB

4 réponses

Avatar
Stephane Chazelas
2004-12-19, 19:55(+00), JKB:
Bonjour à tous,

Une dernière petite question dans les problèmes de pipe(). Est-il
possible de savoir sans lire un buffer avec read() s'il reste
quelque chose à l'intérieur ou non ? J'ai une synchronisation entre
deux processus générés par fork() qui ne peut se faire qu'ainsi...
[...]


select ou poll. Sinon, sur certains systemes, fstat te dira la
taille de ce qu'il y a dans le buffer (IIRC).

--
Stephane

Avatar
JKB
Le 19-12-2004, à propos de
Re: Requête sur un buffer (read/write),
Stephane Chazelas écrivait dans fr.comp.os.unix :
2004-12-19, 19:55(+00), JKB:
Bonjour à tous,

Une dernière petite question dans les problèmes de pipe(). Est-il
possible de savoir sans lire un buffer avec read() s'il reste
quelque chose à l'intérieur ou non ? J'ai une synchronisation entre
deux processus générés par fork() qui ne peut se faire qu'ainsi...
[...]


select ou poll. Sinon, sur certains systemes, fstat te dira la
taille de ce qu'il y a dans le buffer (IIRC).


Merci. poll m'avait échappé...

Sinon, tout autre chose pour la discussion qu'on avait sur les
processus fils pour savoir s'ils étaient "forkés" sur le même
processeur ou un autre. Tous les processus utilisateurs étant des
fils d'init (pour les SysV au moins), les fils sont répartis sur
l'ensemble des ressources (ou alors le multipro n'a aucun intérêt).

Cordialement,

JKB


Avatar
Nicolas George
JKB wrote in message :
Sinon, tout autre chose pour la discussion qu'on avait sur les
processus fils pour savoir s'ils étaient "forkés" sur le même
processeur ou un autre. Tous les processus utilisateurs étant des
fils d'init (pour les SysV au moins), les fils sont répartis sur
l'ensemble des ressources (ou alors le multipro n'a aucun intérêt).


FAb parlait de « famille de processus ». Ce terme n'a pas de sens pour Unix,
mais il y a des groupes de processus, et des sessions, et les processus
utilisateurs sont en général dans des groupes et des sessions différents
d'init, et entre eux, donc ça ne s'applique pas, et ne permet pas de
conclure.

Ceci dit, l'idée que des processus séparés puissent rester groupés sur le
même processeur me semble contraire à la philosophie Unix. Je pense que FAb
confond avec des threads dans certains modèles, qui se retrouvent à
plusieurs dans le même processus lourd et donc sur le même processeur.

Enfin, comme toujours, profile, don't speculate.

Avatar
DINH Viêt Hoà

Sinon, tout autre chose pour la discussion qu'on avait sur les
processus fils pour savoir s'ils étaient "forkés" sur le même
processeur ou un autre. Tous les processus utilisateurs étant des
fils d'init (pour les SysV au moins), les fils sont répartis sur
l'ensemble des ressources (ou alors le multipro n'a aucun intérêt).


Cela dépend clairement du système d'exploitation.

--
DINH V. Hoa,

"tu as bientot 15 ans, faut que tu commences à être autonome" -- jul