Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/02/2013, à 12:01

Bloupies

Linux et Multithread

Bonjour ,

J'aimerais une confirmation concernant ma compréhension sur deux notions , et une explication sur quelques images si possible .

Les threads : Eux, partagent tous le même espace en mémoire ainsi que les mêmes ressources (descripteurs de fichier, sockets etc...) contrairement aux processus classiques qui possèdent chacun leur propre espace mémoire .
-> Donc on peut déduire qu'il y a un accès unique à la mémoire tampon pour le processus et pas pour le thread dans ce cas ?

Ce que j'ai saisis , c'est qu'avec le fork() , concernant un processus , bah le processus fils crée et le père auront les mêmes données, mais tout sera identique entre les deux ? ( contexte , données , mémoire , ..)

Maintenant , voici les explications sur images que je ne saisis pas :

Là avec les thread , je ne saisis plus qui à quoi :


Threads

Donc du coup , son petit programme aussi :

ProgThread

Pour finir , un dernier élément me laissant perplexe : Le clone

clone crée un nouveau processus, exactement comme le fait fork mais contrairement à fork ,  il permet le partage d'une partie du contexte d'exécution entre le processus fils et le processus appelant . Fork ne le fait pas donc ?

Voici son diapositive :

Clone

Merci infiniment d'avance pour votre aide

Hors ligne

#2 Le 09/02/2013, à 15:37

Haleth

Re : Linux et Multithread

-> Donc on peut déduire qu'il y a un accès unique à la mémoire tampon pour le processus et pas pour le thread dans ce cas ?

De quelle "mémoire tampon" tu parles ?

Ce que j'ai saisis , c'est qu'avec le fork() , concernant un processus , bah le processus fils crée et le père auront les mêmes données, mais tout sera identique entre les deux ? ( contexte , données , mémoire , ..)

Avec fork, on copie tout. Le fils & le père ont les mêmes données __juste après le fork(2)__. Elles changent ensuite au grès de l'exec des deux process.

Pour ta première image sur les threads: chacun à une pile etc séparés, mais une zone de mémoire est en commun.

Clone, c'est une fonction pour implémenter les threads. Tu devrais pas avoir à l'utiliser.


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#3 Le 09/02/2013, à 22:59

Bloupies

Re : Linux et Multithread

Bonsoir

Je ne comprends pas toujours les deux premières images . Personne n'a le code , ni le père ni le fils  , et le fils a des données locales ..

Hors ligne

#4 Le 09/02/2013, à 23:06

Haleth

Re : Linux et Multithread

Non
Ce n'est pas "personne n'a le code": il faut voir le carré noir comme un espace commun.
Le code est _commun_ aux deux process, de même que certaines données.
D'autres données, dites _locales_ sur le dessin, appartiennent soit au père, soit au fils, mais ne sont pas partagées. Sur ce dessin, il manque les données locales du père .. d'où ton incompréhension


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#5 Le 09/02/2013, à 23:15

Bloupies

Re : Linux et Multithread

Ho je te remercie smile

Plus qu'à attendre une petite explication sur le prof et puis je serais comblé

Hors ligne