GEF 435 Principes des systèmes d’exploitation

Slides:



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

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module 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 Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 243B Programmation informatique appliquée
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)
Synchronisation de Processus
Module Systèmes d’exploitation
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Critère d’ordonnancement en temps réel Partie III
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 §
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 243B Programmation informatique appliquée Expressions et opérateurs §
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 Expressions et opérateurs.
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 Expressions de type mixte et blocs §
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
Synchronisation des Processus
Chapitre 3 Coopération et synchronisation par variables partagées
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.
Expérimentation dans le cours Devenir une organisation apprenante Session Hiver étudiants Cours offert un samedi sur deux Sites déquipe.
Rappel sur la synchronisation des processus
Synchronisation et communication entre processus
Savoir-vire à table 餐桌上的礼仪
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.
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)
Semaine #1 INF135 par Frédérick Henri.
Chapitre 6 (Silberchatz)
Revisé 2006 Modèle de performance dun serveur simple Nous supposons que le serveur traite une requête après lautre (sans parallisme) Modèle de files dattente.
Chapitre 3 Interblocages 3.1. Ressources
Synchronisation Classique
Gestion de processus Corrigé TD 1 EFREI I
Travailler avec des processus
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel Lectures: Chapitres.
Algorithmes sur les sons
Interactions entre Processus
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Banc d’essai pour un.
Expérimentation dans les cours : Devenir une organisation apprenante Leadership et pratique de direction : Session Hiver.
Mort le 6 aout 2002 à Nuenen Né le 11 mai 1930 à Rotterdam.
Examen de la Nouvelle-Écosse : Français 10
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Boucle d’Or et les Trois Ours.
Quiz C++ Les variables & les boucles.
Transcription de la présentation:

GEF 435 Principes des systèmes d’exploitation Problèmes classiques dans la CIP (Tanenbaum 2.4)

Revue Qu’est-ce qu’un sémaphore ? Qu’est-ce qu’un moniteur? Pourquoi est-ce que les moniteurs sont utiles? Semaphore: variable type to store/decrement wakeups. Implemented as a system call in a library. Checking, decrementing, and possibly going to sleep must be an atomic action! Monitor is a language construct that must be implemented by the compiler. It guarantees that no two processes may be active in the monitor at any time. Monitors are useful because they provide programmer help.

Synopsis Nous allons voir trois problèmes intéressants qui sont reliés à la communication interprocessus Le dîner des philosophes Modélise l’accès aux E/S Le problème des lecteurs et rédacteurs Modélise l’accès à une base de données Le problème du barbier endormi Modélise les systèmes de queues

Le problème du dîner des philosophes L’abstraction d’un philosophe: Il alterne entre des périodes où il mange et où il pense Cinq philosophes sont assis entour d’une table avec des assiettes de spaghetti très glissant Chacun a une assiette et une fourchette entre chaque assiette Quand un philosophe a faim, il essaie de prendre une fourchette de chaque côté (une à la fois, dans n’importe quel ordre) Si il réussi, le philosophe mange pour un certain temps et dépose les deux fourchettes Comment est-ce qu’un programme peut être dessiné pour assurer que les philosophes ne s’embourbent pas?

Le problème du dîner des philosophes take_fork() est un appel qui bloque. Quel est le problème avec cette solution?

Le problème du dîner des philosophes Corrections possibles: Un philosophe prend une fourchette (gauche) en premier. Si l’autre n’est pas disponible, il dépose la fourchette qu’il a pris et attend pour un certain temps (constant) avant de réessayer Problème: Si tous les algorithmes commencent simultanément il est possible que tous les philosophes vont prendre la fourchette de gauche en même temps, voir que la fourchette de droite manque, déposer la fourchette de gauche et répéter infiniment Notez: quand les processus sont dans un état qui n’est pas de l’interblocage mais qu’ils ne font pas de progrès cela s’appel une privation de ressources (starvation ou livelock) Note: this requires that the processes are switched from one to another in exactly the same way every time. Unlikely, but possible. It may be an abstract problem, but we want a real solution.

Le problème du dîner des philosophes Corrections possibles: Pour prévenir la privation, faire attendre les philosophes un montant de temps aléatoire avant de réessayer Problème: Un vrai temps aléatoire pourrait causer le même problème à arriver encore, par contre pas vraisemblable... Une bonne solution pour Ethernet, mais que ce passe-t’il si les ressources sont requises pour un réacteur nucléaire? Quelques millisecondes nous séparent d’une catastrophe...

Le problème du dîner des philosophes Corrections possibles: Utiliser un sémaphore pour protéger les cinq instructions après l’appel think() Problème: Pas efficace. Interblocage n’arrive plus, mais seulement un philosophe peut manger à la fois. Pas très bon pour la multiprogrammation

Un examen de cette solution avec la déclaration des variables est à la page 135. Comprenez là. Note that most of the declarations are missing from this diagram Note: only philosopher is a process here; the rest are function calls. mutex is a binary semaphore s is an array of semaphores, one per philosopher Detailed in their book, page 127 English book and 135 French book The neat thing: so far, the semaphores we have seen started with a value. In this example, the philosopher semaphores had a value of zero meaning that they have to go up before they go down on their semaphore (sort of...an individual philosopher might go down first and then another philosopher may cause it to go up) They’re really just binary semaphores that start at zero

Le problème des lecteurs et rédacteurs Plusieurs processus qui essaient d’écrire et lire à/sur une base de données On peut avoir autant de processus que l’on veut qui lisent de la base de données simultanément Seulement un seul processus peut accéder la base de données si il écrit

Le problème des lecteurs et rédacteurs Difficultés: Une exclusion mutuelle simple ne marche pas parce que nous voulons plusieurs lecteurs dans la base de données en même temps. On ne peut pas utiliser un sémaphore binaire sur la base de données Un sémaphore qui compte simplement nous rend la tâche difficile pour empêcher un rédacteur d’entrer pendant les lectures

Le problème des lecteurs et rédacteurs Solution: The reader only goes down() on the binary semaphore db once, for the first reader in the database This allows multiple readers to enter the database simultaneously Since the down() on the db semaphore is protected inside the mutex, readers trying to get into the database after the first will be blocked at the mutex level, not the db

Le problème des lecteurs et rédacteurs Deux choses sont intéressantes avec cette solution: Un des lecteurs successifs fait down() seulement une fois sur le sémaphore binaire db, le premier lecteur le fais Ceci permet au lecteurs multiples d’entrer dans la base de données simultanément Parce que down() sur le sémaphore db est protégé en dedans du mutex, les lecteurs qui essaient d’entrer dans la base de données après le premier vont être bloqués sur le mutex, pas sur le db Also note that the problem may still have an error: if a reader is in the DB, more are allowed to enter even if a writer is blocked on entry. If readers arrive at a rate faster than they perform their work, the writer may never gain entry!!! An alternate solution is possible, but is non-trivial.

Le problème du barbier qui dort Le barbier est dans son salon. Si il n’a pas de client, il s’endort dans sa chaise n chaises pour que les clients attendent Le premier client qui arrive doit éveiller le barbier Les clients subséquents s’assoient si il y a des chaises, sinon il quittent le salon Difficile de développer une solution sans concurrence critique Here the barber is a process, as is each customer Problem is similar to what might be faced with a computerized help desk with a limited queue size.

Notes about the solution: The variable waiting is a copy of the semaphore customers. Why? Since customers isn’t protected inside the mutex in the barber process, it can’t be read safely Potential race conditions are the # of customers waiting....with many customers it could be a real mess.

Le problème du barbier qui dort Notes à propos de la solution: La variable waiting est une copie du sémaphore customers. Pourquoi? Parce que le sémaphore customers n’est pas protégé en dedans du mutex dans le processus du barbier, il ne peut pas être lu en sécurité On a pas besoin d’avoir une boucle dans le design de customer parce que chaque customer a besoin d’une coupe de cheveux seulement une fois Par contre le barbier doit avoir une boucle Le design initial de ce genre de système peut vous faire saigner au cerveau While the Readers and Writers/Sleeping Barber problems don’t involve the exchange of information per se, they do require synchronization between multiple processes, which is why they are part of the problems in IPC.

Quiz time Questions?