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

GEF 435 Principes des systèmes dexploitation Threads Pt I (Tanenbaum 2.2)

Présentations similaires


Présentation au sujet: "GEF 435 Principes des systèmes dexploitation Threads Pt I (Tanenbaum 2.2)"— Transcription de la présentation:

1 GEF 435 Principes des systèmes dexploitation Threads Pt I (Tanenbaum 2.2)

2 Revue Quand est-ce que les processus sont créés? Quand est-ce que le processus sont terminés?

3 Synopsis Le modèle des threads Utilisation des threads (sous titré: pourquoi avoir des threads?)

4 Le modèle des threads Les systèmes dexploitation traditionnels ont des processus, chacun ayant son espace de mémoire et un seul fil dexécution (thread of control) Le modèle des processus discuté le dernier cours est basé sur deux concepts indépendants : Groupement de ressources Espace dadresses (texte du programme & data), filières ouvertes, processus enfants, alertes en attente, handlers de signal, etc. Exécution (Fil dexécution ou Thread) La partie du texte du programme qui exécute

5 Le modèle des threads Parfois il peut être utile de séparer les deux concepts Permettre des threads multiples dexécuter dans le même processus Des threads multiples qui exécutent en parallèle dans un seul processus est analogue à …?...des processus multiples exécutant en parallèle dans un seul ordinateur. Les threads partageant un processus sont parfois appelés des processus légers ( lightweight processes)

6 Le modèle des threads Le CPU change de thread rapidement pour donner lillusion quils exécutent en parallèle

7 Le modèle des threads Considérations: Les threads dans un seul processus ne sont pas aussi indépendants que des processus différents: Espace de mémoire partagé Variables globales partagées Un thread peut lire/écrire sur la pile dun autre thread! Il ny a pas de protection entre les threads parce que: Il serait difficile sinon impossible à implémenter Ce ne devrait pas être nécessaire… pourquoi?

8 Le modèle des threads Processus vs. Threads: Items par ProcessusItems Par Thread Espace dadresses Variables Globales Fichiers ouverts Processus enfant Alertes en attente Signaux/handlers de Signal Information de gestion Compteur ordinal Registres Pile État

9 Le modèle des threads Propriété des threads: Tout comme les processus, les threads peuvent être dans un des trois états: bloqué, prêt ou en exécution Même si la mémoire est partagée, chaque thread a besoin de sa propre pile:

10 Le modèle des threads Opération des threads : Normalement un processus commence avec un seul thread On crée des threads avec une bibliothèque de procédures thread_create() Les threads terminent en utilisant un appel de bibliothèque thread_exit() Le thread disparaît et ne peut plus exécuter

11 Le modèle des threads Opération des threads: Certain systèmes dexploitation permettent au threads dattendre quun autre termine: thread_wait() Les threads peuvent céder lexécution à un autre thread_yield() Donne le CPU à un autre thread dans lexécution dun processus Important parce que le changement dun thread à un autre nest pas contrôlé par le matériel comme cest le cas pour les processus

12 Le modèle des threads Quelle complications sont introduites par les threads? Quand on utilise fork(), est-ce que le nouveau processus obtiennent les threads? Si un thread est bloqué dans un processus est-ce que le processus enfant a un thread bloqué aussi? Si un thread était bloqué sur une entrée (i.e. clavier) est- ce que les deux threads reçoivent lentrée après le fork()? Gestion des ressources: un thread peut fermer un fichier qui est utilisé par un autre, la gestion de la mémoire est plus compliquée, etc...

13 Utilisation des threads Pourquoi voulons-nous plusieurs threads dans un processus? Plusieurs applications ont des actions multiples qui arrivent simultanément et certaines actions peuvent bloquer Performance(1): Parce que moins de ressources sont allouées aux threads, ils peuvent être un ou deux ordres de grandeur plus vite à créer que les processus Performance(2): Si il y a un grand nombre dE/S, beaucoup de travail peut être fait simultanément avec des appels qui bloquent

14 Utilisation des threads Exemple: Un traitement de texte

15 Utilisation des threads Exemple: Un serveur Web

16 Utilisation des threads Exemple: Serveur Web Est-ce que cela pourrait être implémenté sans les threads? Solution un: Le dispatcher lis du disque Problème? Pas de travail fait pendant quon lis linformation Résulte à beaucoup moins de demandes satisfaites par secondes

17 Utilisation des threads Exemple: Serveur Web Solution deux: Un appel de lecture qui ne bloque pas Problème? Information retournée doit générer une interruption ou quelque chose de semblable. Le processus doit se souvenir à quelle demande linformation appartient Résulte en une structure qui est compliquée, essentiellement une machine détat. Ici on crée un genre de Multi-threading avec un programme très compliqué

18 Conclusion Bénéfices des thread: Permet aux opérations séquentiels de devenir parallèles (pour une meilleur performance) mais on retiens les appels de systèmes qui peuvent bloquer (pour la simplicité) Les processus peuvent obtenir la performance au coût de la simplicité et vice versa

19 Quiz Time! Questions?


Télécharger ppt "GEF 435 Principes des systèmes dexploitation Threads Pt I (Tanenbaum 2.2)"

Présentations similaires


Annonces Google