GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)

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 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)
GEF 243B Programmation informatique appliquée
Synchronisation de Processus
Synchronisation des processus père - fils
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 II
Critère d’ordonnancement en temps réel Partie III
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
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 d’exploitation
GEF 243B Programmation informatique appliquée
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
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
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 d’exploitation
GEF 435 Principes des systèmes dexploitation Appels de système (Tanenbaum 1.6)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Synchronisation des Processus
Chapitre 3 Coopération et synchronisation par variables partagées
Chapitre 2 Processus & Threads
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.
Section VI Structures répétitives (suite)
SÉQUENCE D’ACTIONS SUR
Rappel sur la synchronisation des processus
Synchronisation et communication entre processus
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Cours de CPI Philippe Bancquart CPI 2005.
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)
Programmation concurrente
Chapitre 6 (Silberchatz)
Communication interprocessus
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL
Synchronisation de Processus (ou threads, ou fils ou tâches)
Chapitre 7 continuation
Chapitre 6 : Synchronisation des processus et des fils
Synchronisation Classique
Systèmes d’exploitation
SYSTÈME D’EXPLOITATION I
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.
Interactions entre Processus
2.4 Le langage SFC - Un langage de description de systèmes séquentiels
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – PROCESSUS ET RESSOURCES.
Transcription de la présentation:

GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)

Revue Quest-ce que la concurrence critique ( race condition )? Quel est le nom de la place dans un programme où la concurrence critique peut arriver? Quelles sont les quatre requis ou règles que les algorithmes de sections critiques doivent rencontrer?

Synopsis Exclusion mutuelle sans attente active: sleep() and wakeup() Le problème du producteur/consommateur Sémaphores Résolution du problème du producteur/consommateur avec les sémaphores Mutex

sleep() et wakeup() Peterson Recall: Petersons Solution

sleep() et wakeup() La solution de Peterson (et aussi linstruction TSL que nous avons vue) utilisent lattente active ce qui gaspille beaucoup de cycles de CPU qui pourraient être utilisés à autres travails Autres effets qui sont imprédictibles : Inversion de priorité: Le processus L est dans sa région critique. Processus H devient prêt à entrer dans sa région critique. Comme processus à plus haute priorité, H exécute une attente active et ne peut jamais entrer! L nexécute jamais plus (Pensez à µC/OS)

sleep() et wakeup() Au lieu de faire de lattente active, quarrive til si un processus peut être suspendu pendant quil attend dentrer dans sa région critique? Crée deux appels de système : sleep() et wakeup() sleep() cause le processus à bloquer jusquà ce quil soit éveillé par un autre processus wakeup(procID) éveille un autre processus avec un identification spécifique

Le Problème Producteur/Consommateur Quel problème existe ici?

Le Problème Producteur/Consommateur Une façon de réparer ce problème existe : ajouter une bit wakeupwaiting quant le processus qui est déjà éveillé se fait dire de séveiller Un processus qui essaie de dormir va décrémenter cette bit au lieu de dormir si la bit est réglé (>0) Répare ce problème particulier. Que ce passe til si nous avons 2 consommateurs, 10, 100…

Sémaphores Un nouveau type de variable un sémaphore, a été introduit en 1965 par Dijkstra pour entreposer les appels éveille pour utilisation future Le sémaphore peut avoir la valeur 0, indiquant quaucun éveil nest sauvé, ou une valeur positive quelconque, indiquant les éveils accumulés Utilise deux opérations down() et up() pour opérer les sémaphores

Sémaphores Opération des sémaphores: Lopération down() vérifie pour voir si le sémaphore est plus grand que 0. Si oui, décrémente la valeur et continue Si non, le processus qui a appelé down() sendort La vérification de la valeur, le changement et laction de sendormir est un action atomique (indivisible) Cette indivisibilité est essentiel pour résoudre la concurrence mutuelle!

Sémaphores Lopération des sémaphores: Lopération up() essaie dincrémenter le sémaphore. Si il y a un processus qui dort sur le sémaphore, un est éveillé aléatoirement et permit de continuer Notez que la valeur du sémaphore va être encore 0, mais il va y avoir moins de processus qui dorment. Si aucun processus ne dormais, alors la valeur est incrémenté; aucun processus ne bloque sur un up() Comment les sémaphores peuvent aider à résoudre le problème du producteur/consommateur?

Résolution du problème P/C Notez que nous avons utilisé les sémaphores pour deux différentes intentions: Le sémaphore mutex garantie lexclusion mutuelle pour laccès dune ressource partagée Un sémaphore avec seulement deux états (0,1) sappel sémaphore binaire Les sémaphores full/empty sont utilisés pour la synchronisation; ils garantissent loccurrence ou la non occurrence de certaines séquences dévénements ie: Le producteur arrête de produire quand le tampon est plein et le consommateur arrête de consommer quand le tampon est vide

Résolution du problème P/C Pour que cela marche, les fonctions up() et down() doivent être implémentés comme actions atomiques... Tout le reste est basé sur ce fait Typiquement atteint en les implémentant comme appels de système où les interruptions sont désactivées par le SE Ceci est bon parce que les opérations sont seulement quelques instructions Seulement le sémaphore est mis à jour et possiblement un processus éveillé

Mutex Si la capacité de contage du sémaphore nest pas requise, une forme plus simple, mutex peut être utilisée Seulement bon pour gérer lexclusion mutuelle; ils ne communiquent pas dautre information Cette simplicité requiert seulement des commandes dans lespace utilisateur si une commande TSL est disponible Un mutex a deux états: barré et débarré Un thread qui veut entrer dans la région critique appel mutex_lock()

Mutex Comme le code lindique, si le mutex nest pas barré, le thread retourne et entre dans la région critique. Autrement le thread cède et permet à un autre thread daccéder au CPU

Mutex Attendez, est-ce la même chose que enter_region() ? Quels sont les deux avantages majeurs des mutex sur enter_region() ?

Quiz Time! Questions?