GEF 435 Principes des systèmes d’exploitation

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Le Concept du programme enregistré
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
Threads et Capsules Optionnels
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
GEF 243B Programmation informatique appliquée Boucles §
GEF 435 Principes des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Appels de système (Tanenbaum 1.6)
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
Synchronisation des Processus
PLAN du COURS Introduction Structure des Systèmes Informatiques
Conception et programmation Programmation Parallèle
Objectif de l’exposé.
Exécutif Temps réel. Limitation des système classiques Rappels Mise en œuvre lourde des communications entre processus Problème de prédictibilité avec.
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
Comment faire tourner plusieurs logiciels ou programmes à la fois ? « Le multitâche » par Bernard Maudhuit.
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.
Structures des Systèmes d’Exploitation
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Systèmes Superscalaires et VLIW
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
Programmation concurrente
1 Module 3 - Fils (Threads) Lecture: Chapitre 4 Objectif: Comprendre le concept de fils et sa relation avec le processus Comprendre le concept de fils.
Chapitre 6 (Silberchatz)
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
PROGRAMMATION MULTI-TÂCHES (MULTITHREADING)
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL
Mécanismes d'exécution et de communication
Qu’est-ce qu’un système d’exploitation ?
Travailler avec des processus
Cours de Systèmes d’exploitations
Interactions entre Processus
La programmation système
Programmation Système et Réseau
GF-11: Tri Interne Efficace et Tri Externe
Processus Légers. Rappel sur le fork() fork() Processus 1 Pile Data Text Processus 2 Pile Data Text.
Cours Système LI324 Les Interruptions Cours Système LI324
Les Processus.
Architecture et technologie des ordinateurs II
ALLOCATION DU CPU et GESTION DES TRAVAUX.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

GEF 435 Principes des systèmes d’exploitation Threads Pt I (Tanenbaum 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

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

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

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

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

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

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!

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?

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

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

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.

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.

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!

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

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

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é

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

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