La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.

Présentations similaires


Présentation au sujet: "1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie."— Transcription de la présentation:

1 1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie Java

2 Ch.52 Concepts importants du Chap. 5 n Threads et processus: différence n Threads de noyau et dusager: relations n LWP: lightweight processes, threads légers

3 Ch.53 Flots = threads = lightweight processes n Processus: programme en exécution u Chaque processus a ses variables et fichiers indépendants des autres processus n Un thread est une subdivision d`un processus u Un fil de contrôle dans un processus n Les différents threads dun processus partagent les variables et les ressources dun processus u lorsquun thread modifie une variable (non locale à lui), tous les autres threads voient la modification u un fichier ouvert par un thread est accessible aux autres threads (du même processus )

4 Processus à un thread et à plusieurs threads Ch.54 En commun Séparés

5 Ch.55 Exemple n Le processus MS-Word peut impliquer plusieurs threads: u Interaction avec le clavier u Rangement de caractères sur la page u Sauvegarde régulière du travail fait u Contrôle orthographe u Etc. n Ces threads partagent tous le même fichier.doc et autres données

6 Ch.56 Threads et processus [Stallings]

7 Ch.57 Processus n Possède sa mémoire, ses fichiers, ses ressources, etc. n Accès protégé à la mémoire, fichiers, ressources dautres processus

8 Ch.58 Thread n Possède un état dexécution (prêt, bloqué…) n Possède sa pile et un espace privé pour variables locales n A accès à lespace adressable, fichiers et ressources du processus auquel il appartient u En commun avec les autres threads du même proc

9 Ch.59 Pourquoi les threads n Reactivité: un processus peut être subdivisé en plusieurs threads, u Lun peut exécuter tant que lautre est bloqué n Utilisation de multiprocesseurs: les threads peuvent exécuter en parallèle sur des UCT différentes

10 Ch.510 La commutation entre threads est moins dispendieuse que la commutation entre processus n Un processus possède mémoire, fichiers, autres ressources n Changer d`un processus à un autre implique sauvegarder et rétablir létat de tout ça n Changer dun thread à un autre dans le même proc est bien plus simple, implique sauvegarder seulement u les registres de lUCT, u la pile du thread, u les vars locales du thread

11 Ch.511 La communication aussi est moins dispendieuse entre threads quentre processus n Étant donné que les threads partagent leur mémoire, u la communication entre threads dans un même processus est plus efficace w que la communication entre processus u elle utilise les variables qui sont en commun entre threads

12 Ch.512 La création et terminaison sont moins dispendieuses n La création et terminaison de nouveaux threads dans un processus existant sont aussi moins dispendieuses u que la création ou terminaison dun processus

13 Ch.513 Threads de noyau (kernel) et dutilisateur n Où implémenter les threads: u Dans les bibliothèques dusager w contrôlés par lusager u Dans le noyau du SE: w contrôlés par le noyau u Solutions mixtes

14 Ch.514 Threads dutilisateur et de noyau (kernel) n Threads de noyau: supportés directement par le noyau du SE (Windows, Solaris) u les ops sur les threads sont des appels au système u le noyau est capable de gérer directement les états des threads u Il peut affecter différents threads à différentes UCTs n Threads dutilisateur: supportés par des bibliothèques dusager ou le langage de prog (p.ex Java) u les ops sur les threads ne demandent pas des appels du système u sont gérées par le système dexécution du langage de programmation (p.ex. Java) u le noyau ne peut pas les gérer directement

15 Ch.515 Solutions mixtes: threads utilisateur et noyau n Relation entre threads utilisateur et threads noyau u plusieurs à un u un à un u plusieurs à plusieurs n Nous devons prendre en considération plusieurs niveaux: u Processus u Thread usager u Thread noyau u Processeur (UCT)

16 Ch.516 Plusieurs threads utilisateur pour un thread noyau: lusager contrôle les threads n Le SE ne connaît pas les threads utilisateur u v. avantages et désavantages mentionnés avant noyau usager

17 Ch.517 Un vers un: le SE contrôle les threads n Les ops sur les threads sont des appels du système n Permet à un autre thread dexécuter lorsquun thread exécute un appel de système bloquant noyau usager

18 Ch.518 Plusieurs à plusieurs: solution mixte n Flexibilité pour lusager dutiliser la technique quil préfère n Si un thread utilisateur bloque, son thread noyau peut être affecté à un autre utilisateur n Si plus. UCT sont disponibles, plus. threads noyau peuvent exécuter en même temps noyau usager

19 Ch.519 Threads dans Solaris 2 (une version de Unix) Plusieurs à plusieurs, usager et noyau Tâche = processus

20 Ch.520 Processus légers (lightweight, LWP) n Implémentent le concept dUCT virtuelle, pouvant exécuter des threads niveau usager n Il y a un thread noyau pour chaque LWP, chaque LWP est lié à son propre thread noyau n Si un thread noyau bloque, ses LWPs et ses threads usagers bloquent aussi n Chaque processus doit être affecté au moins à un LWP n La bibliothèque des threads exécute les threads utilisateur sur les LWP disponibles n Seulement les threads usager qui sont associés à un LWP peuvent exécuter, les autres sont bloqués u similarité avec ordonnancement UCT UCT

21 Revenons aux deux méthodes dE/S n La méthode (a) dattente sur E/S est conceptuellement la plus simple n Nous pouvons travailler avec la méthode (a) si nous avons assez dUCT, qui peuvent rester bloquées dans les E/S n Le SE peut créer un nombre arbitraire de LWP Ch.521

22 Plutôt génial … n Par rapport aux LWP, nous utilisons ici la méthode dE/S (a): u Le LWP attend le complètement de lE/S n Mais par rapport à lUCT réelle, nous utilisons la méthode (b) u Dans lattente lUCT est allouée à un autre LWP, sil y en a Ch.522

23 Ch.523 Utilisation des LWP n Quand un thread usager fait un appel au SE, p.ex. E/S, on crée un nouveau LWP pour soccuper de cette opération u le premier LWP peut continuer lexécution du thread n Il y a besoin dun LWP pour chaque thread qui peut devenir bloqué pour un appel de système u un programme qui ne fait quexécuter sur lUCT a besoin dun seul thread u s il y a 5 demandes dE/S en même temps, 5 LWP nous permettent de les lancer (virtuellement) en même temps u s`il y a seul. 4 LWP, une des demandes d E/S doit attendre quun LWP devienne libre ou soit créé

24 Ch.524 Exécution des LWP n Les threads de noyau qui implémentent les LWP exécutent sur les UCT qui deviennent disponibles n Si un thread noyau se bloque, son LWP se bloque aussi, u mais un processus (tâche) peut en obtenir un autre, ou un nouveau LWP peut être créé n Si un LWP devient bloqué, lUCT qui lexécute peut être affectée à un autre thread

25 Ch.525 Structures de données: Solaris n Une tâche=processus Solaris peut être associée à plusieurs LWP n Un LWP contient un ensemble de registres, les vars locales etc. PCB du proc Données pour chaque LWP dans le proc principal

26 Ch.526 Dans les sessions exercices, vous verrez comment Java implémente les threads vous cachant tous ces mécanismes

27 Ch.527 Concepts importants du Chap. 5 n threads et processus: différence n threads de noyau et dusager: relations n LWP: lightweight processes, processus légers n Implémentation utilisant UCT physiques

28 Ch.528 Quoi étudier dans le manuel n En classe, nous avons vu seulement et n jusquà sont utiles pour mieux comprendre mais pas matière dexamen n 5.4 et 5.5 sont intéressants mais ils ne sont pas matière dexamen n Pendant les sessions exercices vous verrez 5.6 et suivants


Télécharger ppt "1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie."

Présentations similaires


Annonces Google