Pages : 1
#1 Le 10/05/2006, à 01:32
- j0n
Demande de documentations sur les Processus et Threads
Bonsoir,
Je suis actuellement en train de lire "Les systemes d'exploitation" d'A.Tanenbaum et je bloque un peu sur le "concept" de threads .. n'etant pas du tout devellopeur, c'est pas le genre de notion sur lequel je m'etais arreté jusqu'a aujourd'hui !
J'aurais voulu savoir si certains d'entre vous connaissez un (ou plusieurs) site(s) bien documentés sur le sujet, sans que cela tombe dans de la ligne de code (comme je le dis plus haut, je ne suis pas dev, et je sais à peine "lire" le C alors bon...).
Je suis déjà passé sur wikipedia, j'aurais besoin de quelque chose d'un peu plus fournit !
Par avance merci !
jon
Dernière modification par j0n (Le 10/05/2006, à 02:33)
Hors ligne
#2 Le 10/05/2006, à 11:32
- Ratur
Re : Demande de documentations sur les Processus et Threads
Tu pouras peut-etre trouver une partie de réponse dans les transparents de mon cours de structure des ordinateurs :
http://www.montefiore.ulg.ac.be/~boigelot/cours/org/slides/cours.pdf
Le chapitre sur les systemes d'exploitation commence p.190, et on parle des processus et des threads (vaguement) p.200
Hors ligne
#3 Le 10/05/2006, à 22:01
- j0n
Re : Demande de documentations sur les Processus et Threads
Merci.
Ceci etant, mes interrogations restent
Grosso modo, quelles différences y'a t-il entre les Threads ''utilisateur'' et ''noyau''. Pourquoi choisir l'un plus que l'autre ?... Ce genre de chose quoi.
J'ai bien trouvé différents article qui definissent les uns et les autres, mais j'arrive pas à cadrer ce qui fait que l'on va choisir l'un plus ou l'autre, dans quel cas ..etc..!
Jon
Hors ligne
#4 Le 11/05/2006, à 10:58
- Sacre
Re : Demande de documentations sur les Processus et Threads
Déjà, tu peux aussi avoir accès aux slides qui nous sont fournis à mon école aussi:
http://reds.heig-vd.ch/form_de_base/SYE/index.php
Le professeur utilise notament le livre dont tu parles comme référence.
Pour ta question, enfait, c'est deux modèles d'implémentation différent.
Soit au niveau de l'utilisateur. Un thread appartenant à un processus dans l'espace utilisateur est géré par le processus lui même. Le processus utilisateur peut avoir plusieurs threads et se charge lui même, par exemple, de l'ordonancement et de la gestion des ressources internes. Les processus restent, quand à eux, ordonnancé par le noyau de l'OS.
Du coup, les threads sont dépendant des changements de contexte du processus.
En pratique, le programmeur a accès a des bibliothèques ecrites spécialement pour la gestion des threads.
L'autre modèle d'implémentation délègue cette gestion au noyau lui même qui les gères un peu à la façon des processus ... et du coup, tous les threads de tous les processus se retrouvent dans le même panier du point de vue de l'ordonnacement etc ... de plus, chaque thread à ce niveau devient visible lors d'appel système.
Du coup, les changements de contexte des processus dépend de l'ordonnancement de l'ensemble des threads.
Sauf erreur, Linux permet les deux systèmes. Il utilise le second pour les threads des processus qui s'exécutent de toute manière en mode noyau et laisse le premier aux programmeurs qui veulent utiliser des threads au sein de leur application.
Il se peut que j'aie raconté des grosses conneries aussi ... mais il me semble que c'est comme ça que ça fonctionne.
Hors ligne
#5 Le 11/05/2006, à 11:16
- NicoA380
Re : Demande de documentations sur les Processus et Threads
Et dans la pratique, c'est réputé plus léger (ou moins lourd ) de faire des threads utilisateurs que de faire des threads noyaux, car le switch de contexte utilisateur<>noyaux a un coût.
Dernière modification par NicoA380 (Le 11/05/2006, à 11:16)
Hors ligne