Pages : 1
#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 :
Donc du coup , son petit programme aussi :
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 :
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
Plus qu'à attendre une petite explication sur le prof et puis je serais comblé
Hors ligne
Pages : 1