En fait, sous Linux (et sous la dernière version
de Solaris, et je crois aussi sous Windows), il n'y a pas de
processus au sens classique ; il n'y a que des threads.
En fait, sous Linux (et sous la dernière version
de Solaris, et je crois aussi sous Windows), il n'y a pas de
processus au sens classique ; il n'y a que des threads.
En fait, sous Linux (et sous la dernière version
de Solaris, et je crois aussi sous Windows), il n'y a pas de
processus au sens classique ; il n'y a que des threads.
Fabien LE LEZ writes:
[...]
| Et d'après le même dictionnaire, le mot "truck" existe en
| français, mais a un autre sens ("wagon en plate-forme pour
| le transport des objets encombrants et pesants").
Ici, « truck » existe aussi en Americain (devrais-je dire «
Texan » ?) et il a tout un autre sens :-) :-)
Fabien LE LEZ <gramster@gramster.com> writes:
[...]
| Et d'après le même dictionnaire, le mot "truck" existe en
| français, mais a un autre sens ("wagon en plate-forme pour
| le transport des objets encombrants et pesants").
Ici, « truck » existe aussi en Americain (devrais-je dire «
Texan » ?) et il a tout un autre sens :-) :-)
Fabien LE LEZ writes:
[...]
| Et d'après le même dictionnaire, le mot "truck" existe en
| français, mais a un autre sens ("wagon en plate-forme pour
| le transport des objets encombrants et pesants").
Ici, « truck » existe aussi en Americain (devrais-je dire «
Texan » ?) et il a tout un autre sens :-) :-)
writes:
| Gabriel Dos Reis wrote:
| > writes:
| > | Michel Michaud wrote:
| > | [...]
| > | > Non, ici je dirais multi-processus (ou multi « fiss » si
| > | > tu veux), mais certainement pas multi « file » comme dans
| > | > multithread... Et ce n'est pas nécessairement avec fork
| > | > (qui est très unixien).
| > | > > la même chose que le multithreading (oops, pardon ;)
| > | > Effectivement c'est loin d'être la même chose que le
| > | > multithread et je suis heureux que ce soit plus
| > | > simple, car c'est ce que j'ai à enseigner :-) (ce
| > | > n'est pas moi qui enseigne vraiment la programmation
| > | > multithread).
| > | Attention. Si les utilisatoins naïves des threads et des
| > | processus sont différentes, dans un bon système
| > | d'exploitation (et je crois qu'à cet égard, les Windows
| > | modernes sont de bons systèmes d'exploitation), il n'y a
| > | pas vraiment de différence.
| > Des experts en la matière sont en profond désaccord avec
| > ton assertion.
| Quels experts ?
Tanenbaum, les développeurs de NPTL.
| Et pour quelles raisons ?
Bah, déjà si on commence par la base la gestion des processus
(ressources, signaux, exceptions, etc.) n'est pas la même
chose au niveaux des threads qu'au niveau des processus.
| > À moins que ton assertion soit une auto-définition. Dans ce
| > cas, je préfère ne pas utiliser ton package de thread ;-}
| Je ne suis pas l'auteur, mais Linux utilise exactement les
| principes que je viens de décrire ;
De fait, ce n'est pas exactement ça. En tout mon système que
j'utilise pour écrire ce message n'utilise pas le système que
tu viens de décrire. Je suppose que tu es au courant de la
saga LinuxThreads vs. NGPT vs. NPTL, quand même ?
kanze@gabi-soft.fr writes:
| Gabriel Dos Reis wrote:
| > kanze@gabi-soft.fr writes:
| > | Michel Michaud wrote:
| > | [...]
| > | > Non, ici je dirais multi-processus (ou multi « fiss » si
| > | > tu veux), mais certainement pas multi « file » comme dans
| > | > multithread... Et ce n'est pas nécessairement avec fork
| > | > (qui est très unixien).
| > | > > la même chose que le multithreading (oops, pardon ;)
| > | > Effectivement c'est loin d'être la même chose que le
| > | > multithread et je suis heureux que ce soit plus
| > | > simple, car c'est ce que j'ai à enseigner :-) (ce
| > | > n'est pas moi qui enseigne vraiment la programmation
| > | > multithread).
| > | Attention. Si les utilisatoins naïves des threads et des
| > | processus sont différentes, dans un bon système
| > | d'exploitation (et je crois qu'à cet égard, les Windows
| > | modernes sont de bons systèmes d'exploitation), il n'y a
| > | pas vraiment de différence.
| > Des experts en la matière sont en profond désaccord avec
| > ton assertion.
| Quels experts ?
Tanenbaum, les développeurs de NPTL.
| Et pour quelles raisons ?
Bah, déjà si on commence par la base la gestion des processus
(ressources, signaux, exceptions, etc.) n'est pas la même
chose au niveaux des threads qu'au niveau des processus.
| > À moins que ton assertion soit une auto-définition. Dans ce
| > cas, je préfère ne pas utiliser ton package de thread ;-}
| Je ne suis pas l'auteur, mais Linux utilise exactement les
| principes que je viens de décrire ;
De fait, ce n'est pas exactement ça. En tout mon système que
j'utilise pour écrire ce message n'utilise pas le système que
tu viens de décrire. Je suppose que tu es au courant de la
saga LinuxThreads vs. NGPT vs. NPTL, quand même ?
writes:
| Gabriel Dos Reis wrote:
| > writes:
| > | Michel Michaud wrote:
| > | [...]
| > | > Non, ici je dirais multi-processus (ou multi « fiss » si
| > | > tu veux), mais certainement pas multi « file » comme dans
| > | > multithread... Et ce n'est pas nécessairement avec fork
| > | > (qui est très unixien).
| > | > > la même chose que le multithreading (oops, pardon ;)
| > | > Effectivement c'est loin d'être la même chose que le
| > | > multithread et je suis heureux que ce soit plus
| > | > simple, car c'est ce que j'ai à enseigner :-) (ce
| > | > n'est pas moi qui enseigne vraiment la programmation
| > | > multithread).
| > | Attention. Si les utilisatoins naïves des threads et des
| > | processus sont différentes, dans un bon système
| > | d'exploitation (et je crois qu'à cet égard, les Windows
| > | modernes sont de bons systèmes d'exploitation), il n'y a
| > | pas vraiment de différence.
| > Des experts en la matière sont en profond désaccord avec
| > ton assertion.
| Quels experts ?
Tanenbaum, les développeurs de NPTL.
| Et pour quelles raisons ?
Bah, déjà si on commence par la base la gestion des processus
(ressources, signaux, exceptions, etc.) n'est pas la même
chose au niveaux des threads qu'au niveau des processus.
| > À moins que ton assertion soit une auto-définition. Dans ce
| > cas, je préfère ne pas utiliser ton package de thread ;-}
| Je ne suis pas l'auteur, mais Linux utilise exactement les
| principes que je viens de décrire ;
De fait, ce n'est pas exactement ça. En tout mon système que
j'utilise pour écrire ce message n'utilise pas le système que
tu viens de décrire. Je suppose que tu es au courant de la
saga LinuxThreads vs. NGPT vs. NPTL, quand même ?
Avant ça ne pouvait pas être le cas, Linux ne supportant pas les threads !
Aujourd'hui, la 2.6 gére les threads et comme le fait remarquer James, un
process
est en fait un (super) thread.
Avant ça ne pouvait pas être le cas, Linux ne supportant pas les threads !
Aujourd'hui, la 2.6 gére les threads et comme le fait remarquer James, un
process
est en fait un (super) thread.
Avant ça ne pouvait pas être le cas, Linux ne supportant pas les threads !
Aujourd'hui, la 2.6 gére les threads et comme le fait remarquer James, un
process
est en fait un (super) thread.
Dans le message
,Michel Michaud wrote:Effectivement c'est loin d'être la même chose que le
multithread et je suis heureux que ce soit plus simple, car
c'est ce que j'ai à enseigner :-) (ce n'est pas moi qui
enseigne vraiment la programmation multithread).
Attention. Si les utilisatoins naïves des threads et des
processus sont différentes, dans un bon système
d'exploitation (et je crois qu'à cet égard, les Windows
modernes sont de bons systèmes d'exploitation), il n'y a pas
vraiment de différence.
Je dirais plutôt que c'est complètement différent, en tout
cas, dans les systèmes courants, mais j'imagine qu'on peut
dire n'importe quoi, selon le point de vue choisi, surtout si
on dit « dans un bon système d'exploitation »... Tu as un
exemple d'un de ces « bons » SE ?
Le système connaît en premier lieu des threads (dans la
terminologie moderne). À chaque thread est associé un
certain nombre de ressources, qui peuvent être partagé ou
non. Et en fin de compte, même pour l'utilisateur, où est la
différence entre un processus multithread avec de la mémoire
spécifique à chaque thread, et des processus avec de la
mémoire partagée.
Il y a tout plein de différences, en tout cas, si tu as bien
écrit ce que tu voulais écrire...
Mais il va falloir repartir du début et s'entendre sur une
définitions de thread (et je ne sais pas si tu connais les «
fibers » de Windows ?).
En fait, quand on me dit « multithread », je m'attends à ce
que la mémoire où se trouve les piles fassent partie des
ressources partagée, et quand on parle de plusieurs
processus, qu'elle n'en fasse pas partie.
Bien, tu contredis toi-même tes affirmations qu'il n'y a pas
de différences...
Mais même là -- au moins sous Posix (et ça m'étonnera que ce
ne soit pas le cas sous Windows aussi), je peux créer des
threads avec des piles dans de la mémoire partagée,
accessibles depuis d'autres processus.
Si tu veux écrire du code en assembleur, j'imagine que tu
pourras faire n'importe quoi, mais la pile C++ ne sera pas
partagée par des threads de processus différents...
Note bien aussi que sous Posix (et probablement sous Windows
aussi), si un mutex, un rwlock, une condition variable ou un
semaphore se trouve dans la mémoire partagée, il peut
synchroniser des threads dans des processus différents.
Dans Windows, on ne sait pas où sont les mutex (etc.), mais on
peut les partager (ça me semble bien évident que ça peut
servir à des threads, qu'ils soient n'importe où).
Je me demande si tu as la même vision générale que moi des
processus/thread/IPC offerts par les systèmes d'exploitation
modernes. Pour moi, Unix était tellement faible sur ce niveau
avant Posix, que tu as peut-être été biaisé dans ta
compréhension de ce qui est offert par les autres. Mon
impression est que Unix est un très mauvais exemple de système
d'exploitation quand il faut apprendre les principes des
services qu'un SE peut offrir aux programmeurs... Posix
ressemble plus à une « patch » qu'à ce qu'on veut vraiment,
mais, clairement, c'est utilisable :-)
Dans le message
1121156578.768339.277680@g14g2000cwa.googlegroups.com,
Michel Michaud wrote:
Effectivement c'est loin d'être la même chose que le
multithread et je suis heureux que ce soit plus simple, car
c'est ce que j'ai à enseigner :-) (ce n'est pas moi qui
enseigne vraiment la programmation multithread).
Attention. Si les utilisatoins naïves des threads et des
processus sont différentes, dans un bon système
d'exploitation (et je crois qu'à cet égard, les Windows
modernes sont de bons systèmes d'exploitation), il n'y a pas
vraiment de différence.
Je dirais plutôt que c'est complètement différent, en tout
cas, dans les systèmes courants, mais j'imagine qu'on peut
dire n'importe quoi, selon le point de vue choisi, surtout si
on dit « dans un bon système d'exploitation »... Tu as un
exemple d'un de ces « bons » SE ?
Le système connaît en premier lieu des threads (dans la
terminologie moderne). À chaque thread est associé un
certain nombre de ressources, qui peuvent être partagé ou
non. Et en fin de compte, même pour l'utilisateur, où est la
différence entre un processus multithread avec de la mémoire
spécifique à chaque thread, et des processus avec de la
mémoire partagée.
Il y a tout plein de différences, en tout cas, si tu as bien
écrit ce que tu voulais écrire...
Mais il va falloir repartir du début et s'entendre sur une
définitions de thread (et je ne sais pas si tu connais les «
fibers » de Windows ?).
En fait, quand on me dit « multithread », je m'attends à ce
que la mémoire où se trouve les piles fassent partie des
ressources partagée, et quand on parle de plusieurs
processus, qu'elle n'en fasse pas partie.
Bien, tu contredis toi-même tes affirmations qu'il n'y a pas
de différences...
Mais même là -- au moins sous Posix (et ça m'étonnera que ce
ne soit pas le cas sous Windows aussi), je peux créer des
threads avec des piles dans de la mémoire partagée,
accessibles depuis d'autres processus.
Si tu veux écrire du code en assembleur, j'imagine que tu
pourras faire n'importe quoi, mais la pile C++ ne sera pas
partagée par des threads de processus différents...
Note bien aussi que sous Posix (et probablement sous Windows
aussi), si un mutex, un rwlock, une condition variable ou un
semaphore se trouve dans la mémoire partagée, il peut
synchroniser des threads dans des processus différents.
Dans Windows, on ne sait pas où sont les mutex (etc.), mais on
peut les partager (ça me semble bien évident que ça peut
servir à des threads, qu'ils soient n'importe où).
Je me demande si tu as la même vision générale que moi des
processus/thread/IPC offerts par les systèmes d'exploitation
modernes. Pour moi, Unix était tellement faible sur ce niveau
avant Posix, que tu as peut-être été biaisé dans ta
compréhension de ce qui est offert par les autres. Mon
impression est que Unix est un très mauvais exemple de système
d'exploitation quand il faut apprendre les principes des
services qu'un SE peut offrir aux programmeurs... Posix
ressemble plus à une « patch » qu'à ce qu'on veut vraiment,
mais, clairement, c'est utilisable :-)
Dans le message
,Michel Michaud wrote:Effectivement c'est loin d'être la même chose que le
multithread et je suis heureux que ce soit plus simple, car
c'est ce que j'ai à enseigner :-) (ce n'est pas moi qui
enseigne vraiment la programmation multithread).
Attention. Si les utilisatoins naïves des threads et des
processus sont différentes, dans un bon système
d'exploitation (et je crois qu'à cet égard, les Windows
modernes sont de bons systèmes d'exploitation), il n'y a pas
vraiment de différence.
Je dirais plutôt que c'est complètement différent, en tout
cas, dans les systèmes courants, mais j'imagine qu'on peut
dire n'importe quoi, selon le point de vue choisi, surtout si
on dit « dans un bon système d'exploitation »... Tu as un
exemple d'un de ces « bons » SE ?
Le système connaît en premier lieu des threads (dans la
terminologie moderne). À chaque thread est associé un
certain nombre de ressources, qui peuvent être partagé ou
non. Et en fin de compte, même pour l'utilisateur, où est la
différence entre un processus multithread avec de la mémoire
spécifique à chaque thread, et des processus avec de la
mémoire partagée.
Il y a tout plein de différences, en tout cas, si tu as bien
écrit ce que tu voulais écrire...
Mais il va falloir repartir du début et s'entendre sur une
définitions de thread (et je ne sais pas si tu connais les «
fibers » de Windows ?).
En fait, quand on me dit « multithread », je m'attends à ce
que la mémoire où se trouve les piles fassent partie des
ressources partagée, et quand on parle de plusieurs
processus, qu'elle n'en fasse pas partie.
Bien, tu contredis toi-même tes affirmations qu'il n'y a pas
de différences...
Mais même là -- au moins sous Posix (et ça m'étonnera que ce
ne soit pas le cas sous Windows aussi), je peux créer des
threads avec des piles dans de la mémoire partagée,
accessibles depuis d'autres processus.
Si tu veux écrire du code en assembleur, j'imagine que tu
pourras faire n'importe quoi, mais la pile C++ ne sera pas
partagée par des threads de processus différents...
Note bien aussi que sous Posix (et probablement sous Windows
aussi), si un mutex, un rwlock, une condition variable ou un
semaphore se trouve dans la mémoire partagée, il peut
synchroniser des threads dans des processus différents.
Dans Windows, on ne sait pas où sont les mutex (etc.), mais on
peut les partager (ça me semble bien évident que ça peut
servir à des threads, qu'ils soient n'importe où).
Je me demande si tu as la même vision générale que moi des
processus/thread/IPC offerts par les systèmes d'exploitation
modernes. Pour moi, Unix était tellement faible sur ce niveau
avant Posix, que tu as peut-être été biaisé dans ta
compréhension de ce qui est offert par les autres. Mon
impression est que Unix est un très mauvais exemple de système
d'exploitation quand il faut apprendre les principes des
services qu'un SE peut offrir aux programmeurs... Posix
ressemble plus à une « patch » qu'à ce qu'on veut vraiment,
mais, clairement, c'est utilisable :-)
différents processus. Une des applications sur laquelle je
travaille ici utilise bien de la mémoire partagée (au moyen de
mmap), et synchronise ses « processus » au moyen des mutex situé
dans cette mémoire. Du coup, je me sers des moyens de
communication traditionnellement associés à des threads pour la
communication entre processus.
En somme, la distiction thread-processus est plus
conventionnelle que fondamentale.
différents processus. Une des applications sur laquelle je
travaille ici utilise bien de la mémoire partagée (au moyen de
mmap), et synchronise ses « processus » au moyen des mutex situé
dans cette mémoire. Du coup, je me sers des moyens de
communication traditionnellement associés à des threads pour la
communication entre processus.
En somme, la distiction thread-processus est plus
conventionnelle que fondamentale.
différents processus. Une des applications sur laquelle je
travaille ici utilise bien de la mémoire partagée (au moyen de
mmap), et synchronise ses « processus » au moyen des mutex situé
dans cette mémoire. Du coup, je me sers des moyens de
communication traditionnellement associés à des threads pour la
communication entre processus.
En somme, la distiction thread-processus est plus
conventionnelle que fondamentale.
| Le mot « truck » est un bon mot américain (non seulement texan),
| avec deux significations fréquentes : camion, et bogie. En
Au Texas, cela a une autre signification. Et je suis bien placé pour
le savoir ;-p
| Le mot « truck » est un bon mot américain (non seulement texan),
| avec deux significations fréquentes : camion, et bogie. En
Au Texas, cela a une autre signification. Et je suis bien placé pour
le savoir ;-p
| Le mot « truck » est un bon mot américain (non seulement texan),
| avec deux significations fréquentes : camion, et bogie. En
Au Texas, cela a une autre signification. Et je suis bien placé pour
le savoir ;-p
Et la vôtre, probablement tout aussi fausse, est que vous êtes
trop en admiration devant le fait anglais, ce qui vous pousse
à admirer les mots anglais anormalement... ça fait « cool »...
Et la vôtre, probablement tout aussi fausse, est que vous êtes
trop en admiration devant le fait anglais, ce qui vous pousse
à admirer les mots anglais anormalement... ça fait « cool »...
Et la vôtre, probablement tout aussi fausse, est que vous êtes
trop en admiration devant le fait anglais, ce qui vous pousse
à admirer les mots anglais anormalement... ça fait « cool »...
Oui et non. Toutes les primitives de communication
« inter-processus » sont aussi disponibles pour la communication
entre threads.
En fait, sous Linux (et sous la dernière version
de Solaris, et je crois aussi sous Windows), il n'y a pas de
processus au sens classique ; il n'y a que des threads.
Oui et non. Toutes les primitives de communication
« inter-processus » sont aussi disponibles pour la communication
entre threads.
En fait, sous Linux (et sous la dernière version
de Solaris, et je crois aussi sous Windows), il n'y a pas de
processus au sens classique ; il n'y a que des threads.
Oui et non. Toutes les primitives de communication
« inter-processus » sont aussi disponibles pour la communication
entre threads.
En fait, sous Linux (et sous la dernière version
de Solaris, et je crois aussi sous Windows), il n'y a pas de
processus au sens classique ; il n'y a que des threads.