Thread et processus

Thread et processus - Algo - Programmation

Marsh Posté le 22-10-2002 à 16:41:00    

Bonjour,
 
je ne saisis pas tres bien la difference entre un thread et un processus, est ce que qq`un pourait m`aider?
 
Merci

Reply

Marsh Posté le 22-10-2002 à 16:41:00   

Reply

Marsh Posté le 22-10-2002 à 16:42:34    

NKTH a écrit a écrit :

Bonjour,
je ne saisis pas tres bien la difference entre un thread et un processus, est ce que qq`un pourait m`aider?




 
quand tu forke pour créer un nouveau processus, ce dernier part avec les memes données que le processus père, mais c'est une copie, les deux processus sont indépendants, contrairement aux  threads qui partagent leurs données.

Reply

Marsh Posté le 23-10-2002 à 16:54:30    

Pour compléter ce qu'a dit lorill : les seules informations propres à un thread (au sein d'un processus) sont sa pile d'exécution (les différentes fonctions appelées depuis la fonction utilisée pour le démarrer, leurs arguments et leurs variables locales) et, éventuellement, une zone mémoire dédiée appelée Thread Local Storage (sous Windows).
Tout le reste est partagé avec les autres threads du processus, y compris les variables globales, et tout l'environnement (les variables d'environnement genre HOME, PATH, ..., les fichiers ouverts, etc).
 
Par contre, 2 processus sont totalement indépendants, ils ne partagent aucune donnée (par contre, ils peuvent quand même partager leur code, s'il s'agit du même programme lancé 2 fois).

Reply

Marsh Posté le 12-11-2004 à 14:34:14    

et la différence entre un processus créé par clone() et un thread ?
j'arrive pas à voir l'interet des threads :/


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 14:34:56    

2ans le up, merci, je sais, j'ai fait fort là :ange:


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 16:35:04    

udok a écrit :

et la différence entre un processus créé par clone() et un thread ?
j'arrive pas à voir l'interet des threads :/


Les thread partagent le même espace d'adressage : pas besoin d'IPC pour communiquer. Le changement de contexte est aussi plus rapide.
Si ton processus A possède une fenêtre, et qu'il crée le processus B par clone(), qu'est-ce qui se passe si B tente de modifier la fenêtre ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 12-11-2004 à 16:38:39    

aucune idée justement, je viens de prendre connaissance de la fonction clone mais apparement cette fonction permet à 2 processus de partager leur espace d'adressage
mais du coup ils doivent s'apparenter à des threads j'imagine ?


Message édité par udok le 12-11-2004 à 16:39:58

---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 17:34:28    

Ben du coup il s'agit de 2 thread alors. Un processus a un espace d'adressage privé par définition. C'est quoi cette fonction clone(), quel OS/Lib ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 12-11-2004 à 18:14:34    

HelloWorld a écrit :

Ben du coup il s'agit de 2 thread alors. Un processus a un espace d'adressage privé par définition. C'est quoi cette fonction clone(), quel OS/Lib ?


 
ouai, c'est bien ce qu'il me semblait, mais j'étais pas sur de la différence entre thread et processus (je me demandais s'il y en avait d'autres que celle là)
 
fonction clone() sous linux, lib ... hmmm :
#include <linux/sched.h>
 
spa très portable en plus  [:anathema]


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Marsh Posté le 12-11-2004 à 18:33:10    

J'ai eu vent que Linux avait une gestion un peu spéciale des threads, qu'ils étaient vus comme des process.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 12-11-2004 à 18:33:10   

Reply

Marsh Posté le 12-11-2004 à 18:36:36    

HelloWorld a écrit :

J'ai eu vent que Linux avait une gestion un peu spéciale des threads, qu'ils étaient vus comme des process.


 
non non, y-a une lib pthread maintenant qui gere de vrai thread, et ça fait des années maintenant que ça marche bien
mais c'est vrai qu'ils ont été plus tard à s'y mettre que d'autres os, notamment parce que les process marchent bien :o

Reply

Marsh Posté le 12-11-2004 à 19:17:56    

top ne visualise pas les thread comme des process ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 12-11-2004 à 19:28:01    

HelloWorld a écrit :

top ne visualise pas les thread comme des process ?


 
si mais ça ça dépend du programme en lui même
ps aussi fait ça, mais pendant un moment ces deux commandes ne montraient que les process
ça a du faire gueuler du monde parce qu'ils sont revenu à l'ancien fonctionnement


---------------
Non au projet de loi DADVSI ! (droits d'auteurs)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed