Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique 2008-2009.

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
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)
Synchronisation de Processus
Synchronisation des processus père - fils
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 d’exploitation
GEF 435 Principes des systèmes d’exploitations
Systèmes en temps réel Services de Communication.
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 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 dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
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 de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Conception et programmation Programmation Parallèle
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.
Parallel Programming in C with MPI and OpenMP
Qu’est-ce qu’un ordinateur ?
GTCB Kahila Boulbaba BTS IRIS Session Sommaire Description du projet Présentation Moyen mis en œuvre Interaction entre les éléments Répartition.
Introduction to Information Systems
Rappel sur la synchronisation des processus
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Synchronisation et communication entre processus
Analyse et Conception orientée objet
Initiation à la conception de systèmes d'information
Système d’exploitation
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Cours de CPI Philippe Bancquart CPI 2005.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
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)
Présentation Structures de Données et TDA
Chapitre XI Gestion des erreurs et exceptions. 2 La gestion des erreurs et exceptions De nombreux problèmes peuvent survenir pendant lexécution dun programme:
Programmation concurrente
Chapitre 6 (Silberchatz)
Module 3 : Analyse des performances du serveur
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Chapitre 6 : Synchronisation des processus et des fils
Synchronisation Classique
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Systèmes d’exploitation
Exemple de gestion d'un buffer clavier en liste circulaire
Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau.
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Module 8 : Surveillance des performances de SQL Server
Gestion de processus Corrigé TD 1 EFREI I
8INF856 Programmation sur architectures parallèles
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
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Programmation Système et Réseau
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Transcription de la présentation:

Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique

2 Revue Quest-ce que le problème du producteur/ consommateur? Comment est-ce que lon peut le résoudre? Expliquez la différence entre les sémaphores full et empty Entre les mutex et les sémaphores qui comptent, lesquelles ont besoin de bloquer les interruptions? Pourquoi?

3 Synopsis Trois concepts de plus pour la communication interprocessus: –Moniteurs –Passage de Messages –Barrières

4 Moniteurs Est-ce que les sémaphores ont résolus tout les problèmes pour la CIP? –NON!

5 Moniteurs Un Moniteur est utilisé pour aider les programmeurs à créer des programmes qui sont correctes –Cest une collection de procédures, variables, et structures de données groupés ensemble (pensez: module, package, class, etc) –Les processus peuvent appeler des procédures dans le moniteur, mais le moniteur est compilé de tel façon à ce quun seul processus peut être actif à la fois dans le moniteur Avantage: Moins de potentiel pour lerreur humaine Désavantage: Doit être supporté par le compilateur

6 Moniteurs Cette solution nous permet davoir de lexclusion mutuelle, mais pas pour dormir/éveiller sur certaines conditions. Pour résoudre ce problème: on inclus une/des variable(s) de condition dans le moniteur. –Ceci ne crée pas de condition critique parce que seulement un processus peut être actif à la fois dans un moniteur

7 Moniteur file { Condition plein, vide; Int compteur = 0; … Procédue mettre (objet o) { If (compteur==N) wait(plein); Mettre_objet(o); Compteur ++; If (compteur ==1) siganl(vide); } Procédur retirer (objet o) { If (compteur==0) wait(vide); Retirer_objet(o); Compteur --; If (compteur ==(N-1)) siganl(plien); } } //fin du moniteur

8 Moniteurs Les signaux ne sont pas accumulés dans ce système –wait() doit arriver avant signal() –Pas difficile considérant que seul un processus à la fois doit être actif dans le moniteur Sortir du moniteur après un signal() est vital à lopération du moniteur –Autrement, deux processus pourraient être simultanément actifs dans le moniteur –Autres options: Suspendre le processus qui appelle signal() Permettre le processus signaleur de finir et de sortir du moniteur

9 Passage de messages Jusquà date les solutions à la concurrence critique ont pris pour acquis que linformation est accessible par la mémoire partagée Comment peut-on faire cela avec les applications distribuées? –Passage de Messages

10 Passage de messages Utilise deux primitives de communication, send() et receive() –Appels système (comme sémaphores), pas une structure de langage (comme moniteurs) –receive() peut ou bien bloquer jusquà ce quun message arrive ou retourner un code derreur (choix dimplémentation) utilise t-on la temporisation (timeouts)? Considérations: –Message perdu, –Authentification, –Performance, et –Adressage

11 Passage de messages Considérations: –Message perdu: Une confirmation est normalement requise Retransmit après une intervalle choisit Requiert des identificateurs de messages uniques –Pourquoi? –Authentification Comment est-ce que le client peut savoir quil communique avec le vrai serveur?

12 Passage de messages Considérations: –Performance Envoyer des message coûte plus en temps que la gérance des sémaphores ou moniteurs (sur une seule machine) Comment dinformation est-ce que lon peut passer? –Même machine/réseau –Adressage: Messages peuvent être adressés à un processus ou une structure de boîte à messages, qui peut entreposer les messages Si on a pas de boîte à messages, les messages peuvent être perdu donc le processus qui envoie se bloque jusquà ce que le processus qui reçoit soit prêt. Ceci permet la synchronisation de deux processus ce qui sappelle un rendez-vous

13 Passage de messages On revisite le producteur/consommateur –Assumez que lon a un système de messages contrôlé par le SE –Assumez que tout les messages ont la même grandeur –Assumez que le SE tamponne les messages envoyés et non reçus N messages pour cet exemple –Cette implémentation fait que le processus bloque sur un receive() jusquà ce quun message arrive Notez que le consommateur commence en envoyant N messages vides au producteur

14 #define N 100 Producteur() { Message m; While(1) { Produire_objet(o);//produire un objet Recevoir(consomateur,m);//attente un message vide (Jeton) Faire_message(m,o);//construire message à envoyer Envoyer(consommateur,m);//envoyer message au consommateur } Consommateur() { Int i; Message m; For (i=0; i<N; i++)//envoyer N Envoyer(producteur,m);//(jetons) message vides While(1) { Recevoir(producteur,m);//attendre un message Retirer_objet(m,o);//retirer lobjet du message Utiliser_objet(o);//utiliser lobjet Envoyer(producteur,m);//renvoyer une réponse vide }

15 Barrières Les barrières sont un mécanisme de synchronisation pour aligner plusieurs processus à la fin dune phase de travail avant de commencer une autre phase Les processus qui ont fini leurs travail appèlent une instruction primitive ou procédure de bibliothèque [disons barrier() ] pour bloquer jusquà ce que les autres processus aient finis leurs travail Une fois que tout les processus ont fini la phase, tout les processus sont relâchés pour continuer leurs travail dans la prochaine phase

16 Barrières Quel serait un bon exemple pour ce genre de synchronisation?

17 Quiz Time! Questions?