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 d’exploitation

Présentations similaires


Présentation au sujet: "GEF 435 Principes des systèmes d’exploitation"— Transcription de la présentation:

1 GEF 435 Principes des systèmes d’exploitation
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? When are process created? System Initialization When a user requests it (cmd line, double click, etc.) When a process starts another process (to get help with a task) When the system runs a batch job When are processes terminated? When completed (voluntary) On an error (voluntary) On an error (involuntary) When killed by another process

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 d’exploitation traditionnels ont des processus, chacun ayant son espace de mémoire et un seul fil d’exécution (thread of control) Le modèle des processus discuté le dernier cours est basé sur deux concepts indépendants : Groupement de ressources Espace d’adresses (texte du programme & data), filières ouvertes, processus enfants, alertes en attente, handlers de signal, etc. Exécution (Fil d’exécution ou Thread) La partie du texte du programme qui exécute A thread has: a program counter registers stack (contains the execution history with a frame for each procedure called but not yet returned from) While a thread must execute in a process, they are different concepts and can be treated separately

5 Le modèle des threads Parfois il peut être utile de séparer les deux concepts Permettre des threads multiples d’exé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) How does the analogy work? Processes share physical memory, disks, printers, and other resources. Threads share an address space, open files, and other resources

6 Le modèle des threads Goes from old concept to new Note that the difference between the left picture and the middle process in the right picture is that the three threads in the single process share an address space. Le CPU change de thread rapidement pour donner l’illusion qu’ils 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 d’un autre thread! Il n’y a pas de protection entre les threads parce que: Il serait difficile sinon impossible à implémenter Ce ne devrait pas être nécessaire… pourquoi? Why should it not be necessary? Threads in different processes may be from different users and almost certainly have different purposes may even be hostile to one another A process is always owned by a single user threads exist to cooperate, not compete

8 Le modèle des threads Processus vs. Threads: Items par Processus
Items Par Thread Espace d’adresses Variables Globales Fichiers ouverts Processus enfant Alertes en attente Signaux/handlers de Signal Information de gestion Compteur ordinal Registres Pile État Having things like files shared files in a process makes sense since the process is the level of resource management What we are trying to achieve with threads is to allow the sharing of resources to accomplish a common task!

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: Ask them for an example of what blocked and ready mean running: has the cpu and is executing blocked: waiting for some event to unblock it, like reading from the keyboard ready: ready to run and waiting for CPU Ask: why do they require their own stack?

10 Opération des threads :
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 Sometimes threads exist in a hierarchal structure, but usually they are equal Note that these function names are fictional

11 Le modèle des threads Opération des threads:
Certain systèmes d’exploitation permettent au threads d’attendre qu’un autre termine: thread_wait() Les threads peuvent céder l’exécution à un autre thread_yield() Donne le CPU à un autre thread dans l’exécution d’un processus Important parce que le changement d’un thread à un autre n’est pas contrôlé par le matériel comme c’est 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 l’entré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... For the memory management example...one thread may request more memory only to have another notice memory is low and do the same. In general these problems can be solved, but it requires forethought and effort.

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 d’E/S, beaucoup de travail peut être fait simultanément avec des appels qui bloquent Do they understand the 2nd performance reasoning? Try to get an example such as a web browser that can start formatting a page as the information comes in from the modem. Think of images loading as the page gets loaded, but you can still click on the page and do other things.

14 Utilisation des threads
Exemple: Un traitement de texte Good example... If the reformatting is going on after every key press the wait on a 600 page document would be unacceptable! If it reformatted as you scrolled, there would be one very long wait as you started Same with background saves, background printing and even the spell checker that underlines words!

15 Utilisation des threads
Exemple: Un serveur Web Multiple threads allow the dispatcher to read incoming requests and hand them off to idle worker threads The worker sees if it can satisfy the request through the cache. If it can, it returns the page. If not, it starts to read it from the disk into the cache and blocks

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 qu’on lis l’information 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 l’information 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? In their own words, explain the three benefits of threads Allow multiple actions to be taken simultaneously Performance(1): quicker to create Performance(2): allow blocking on I/O while other work is done


Télécharger ppt "GEF 435 Principes des systèmes d’exploitation"

Présentations similaires


Annonces Google