Claude Kaiser Paradigmes de la concurrence SRI_B PASSAGE DE TÉMOIN



Documents pareils
NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Cours de Systèmes d Exploitation

Problèmes liés à la concurrence

Génie Logiciel avec Ada. 4 février 2013

Ordonnancement temps réel

Module Communication - Messagerie V6. Infostance. Messagerie

Configuration d'un compte géré par plusieurs utilisateurs

Implémentation des SGBD

Conception des systèmes répartis

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Programmation Objet - Cours II

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

4. Groupement d objets

White Paper - Livre Blanc

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

ORTIZ Franck Groupe 4. Terminal serveur pour administrer un serveur Windows à distance, client rdp linux.

Guide de l'utilisateur

Éléments d'architecture des ordinateurs

Cours de Génie Logiciel

Algorithmique répartie

Introduction aux algorithmes répartis

SYSTÈME DE GESTION DE FICHIERS

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Guide de fonctions du téléphone du système SCI Norstar

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Qu'est-ce que c'est Windows NT?

Introduction à la programmation concurrente

Gestion répartie de données - 1

On appelle variable condition une var qui peut être testée et

VRM Monitor. Aide en ligne

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

WEA Un Gérant d'objets Persistants pour des environnements distribués

é n e r g i e c r é a t i v e Solution ing Renforcez le pouvoir de communication de votre entreprise

SOMMAIRE GUIDE D UTILISATION DU WEBMAIL. vous guide

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Tutorial Terminal Server sous

Utilisation du nouveau webmail académique

Structure fonctionnelle d un SGBD

Les diagrammes de modélisation

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Chapitre 10. Architectures des systèmes de gestion de bases de données

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

mode d emploi des services de votre ligne fixe

Manuel de l'application SMS

Couche application. La couche application est la plus élevée du modèle de référence.

Cisco Discovery - DRSEnt Module 7

Master e-secure. VoIP. RTP et RTCP

Qu'est-ce que la messagerie électronique?

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

Exécutif temps réel Pierre-Yves Duval (cppm)

Manuel d'utilisation d'apimail V3

Transmissions série et parallèle

Partie 7 : Gestion de la mémoire

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Démarrer et quitter... 13

Documentation pour l envoi de SMS

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

Fiche de l'awt Intégration des applications

DIRECTIVE SUR L UTILISATION DES OUTILS INFORMATIQUES, D INTERNET, DE LA MESSAGERIE ELECTRONIQUE ET DU TELEPHONE ( JUIN V.1.

Chapitre 6 -TP : Support Réseau des Accès Utilisateurs

Les réseaux cellulaires

Système de messagerie vocale Cisco Unity Express 7.0 Guide de l utilisateur Fonctionnalités avancées

CEG4566/CSI4541 Conception de systèmes temps réel

Projet : PcAnywhere et Le contrôle à distance.

Guide d'utilisation des services Selfone Mode d'emploi

Déploiement, administration et configuration

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Chapitre 4 : Exclusion mutuelle

Hadopi Département Recherche, Etudes et Veille (DREV)

Date: 22/10/12 Version: 3.2

Systèmes et algorithmes répartis

Paramétrage de compte mail netplus sur iphone et ipad

QTEK 9100 QTEK S200 HP 6915

SOLUTIONS INTERNET KIOSQUES INTERACTIFS

Systèmes Répartis. Mr. Mehrez Boulares, Mr. Nour Ben Yahia

Linux sécurité des réseaux

Département Génie Informatique

SUPPLÉMENT À LA DÉCLARATION SUR LA PROTECTION DES RENSEIGNEMENTS PERSONNELS EN LIGNE

Communiquer avec un ou plusieurs interlocuteurs. Michel Futtersack, Faculté de Droit, Université Paris Descartes, Sorbonne Paris Cité

Cédric Moro Directeur de Visiorisk

Windows Internet Name Service (WINS)

Introduction aux applications réparties

Guide d'installation du connecteur Outlook 4

10 conseils pour optimiser vos campagnes marketing et réussir dans l'e-commerce. Le livre blanc de l' ing

Cours CCNA 1. Exercices

Fiche de l'awt La newsletter ou lettre d'information

Application mobile Volvo On Call Guide d'utilisation

Mimatech SA - spécialiste du pesage modulaire

Présentation Internet

VADE MECUM COURRIERS ELECTRONIQUES. Comprendre, s'organiser et gérer durablement la communication électronique

Conditions Générales Location d équipements terminaux

IPv6. Autoconfiguration avec état DHCPv6 Objectif: Quelle est l'utilité de DHCP avec IPv6? v.1a E. Berera 1

Guide d'utilisation du Serveur USB

Nokia Internet Modem Guide de l utilisateur

Distinguer entre «Enregistrer» et «Sauvegarder»

Transcription:

PASSAGE DE TÉMOIN coopération par division du travail entre les processus 4) Rendez-vous à 2, symétrique, avec ou non une écriture ou un envoi de message (avec acquittement) Rendez-vous multiple : m processus au rendez-vous avant de poursuivre de façon asynchrone AA BB AA BB AA envoi message BB A B attente attente attente acquittement B A B les actions A et B ne peuvent commencer qu'une fois les actions AA et BB terminées. 5) Appel procédural (local ou distant). Invocation à distance. Client-serveur A CLIENT AA attente des paramètres résultats appel de procédure et passage de paramètres BB SERVEUR exécution du service distant A envoi des résultats B Exemple de rendez-vous dissymétrique (en Ada) entre un CLIENT appelant et un SERVEUR appelé 07 Illustration 19 décembre 2004

COOPERATION : LES PRODUCTEURS ET LES CONSOMMATEURS EXEMPLE 1: des processus utilisateurs préparent des fichiers de texte et déposent des requêtes au service d'impression. Ces requêtes sont satisfaites par l'un des processus de ce service, à un moment où une des imprimantes est disponible, ni en panne, ni en maintenance. EXEMPLE 2: un processeur d'entrée-sortie, un canal, un organe d'accès direct à la mémoire, reçoivent des données externes, caractère par caractère, et les engrangent à la vitesse des organes périphériques dans une zône de mémoire tampon. Quand le tampon est plein, un processus spécialisé est alerté pour qu'il puisse les exploiter. EXEMPLE 3: un processus d'un site émetteur dans un réseau envoie des messages à destination d'un processus d'un site récepteur; celui-ci doit être prêt à recevoir ces messages; toutefois l'émetteur ne doit pas les envoyer plus vite que le récepteur ne peut les recevoir. EXEMPLE 4: un service de messagerie permet aux abonnés d'un réseau d'envoyer du courrier électronique; un abonné édite son courrier et le dépose dans la boite aux lettres du destinataire, que celui-ci soit en session ou non; un abonné lit son courrier, que l'émetteur soit ou non en session. EXEMPLE 5: une cascade de relations de coopération peut aider à structurer une application. Ainsi dans la gestion d'un atelier de fabrication, un processus d'acquisition de messages reçoit les données des ponts roulants, des stocks et des machines outils et recueille des messages en provenance d'autres calculateurs de l'atelier. Ces données et ces messages sont déposés dans une file d'entrée; un processus analyseur les en extrait pour les filtrer, les mettre en forme et les déposer dans un tampon de requêtes; un processus interpréteur se charge de faire traiter le service demandé en appelant les sous-programmes adéquats; il prépare des réponses qu'il dépose dans une file de sortie ou bien il génère de nouvelles requêtes qu'il se dépose à lui-même pour plus tard dans le tampon des requêtes. Enfin un quatrième processus met en forme les réponses et regroupe dans un message toutes celles qui concernent le même destinataire. LA TERMINOLOGIE La coopération comprend des producteurs et des consommateurs qui se partagent un tampon ou une voie de communication, avec un nombre maximal, taille du tampon ou crédit de messages. Le contrôle de flux freine les producteurs s'ils vont trop vite pour les consommateurs. 07 Illustration 20 décembre 2004

LES PRODUCTEURS ET LES CONSOMMATEURS HYPOTHÈSES GÉNÉRALES H1: Les vitesses relatives des processus sont quelconques. H2: Les priorités des processus sont quelconques. H3: Tout processus met un temps fini pour déposer ou retirer un message; en particulier ni panne ni blocage perpétuel pendant ces opérations. SPÉCIFICATION DE COMPORTEMENT producteur déposer un message retirer un message consommateur producteur loop produire un message; déposer le message; end loop tampon de N cases OBJECTIF consommateur loop retirer un message; consommer le message; end loop asservir la vitesse moyenne de production à la vitesse moyenne de consommation en ralentissant le moins possible le producteur 07 Illustration 21 décembre 2004

HYPOTHÈSES DU PARADIGME DES PRODUCTEURS ET DES CONSOMMATEURS 1) vitesses relatives quelconques, débit irrégulier 2) tampon de taille fixe : N cases (une case = un message) et tampon vide initialement 3) tout message déposé est lu une fois et une seule 4) communication fiable CONSÉQUENCES 1) exclusion mutuelle d'accès aux messages (le message peut être lu ou écrit en plusieurs opérations 2) le producteur s'arrête s'il veut déposer alors que le tampon est plein. Il est réveillé quand cette condition n'est plus vraie. 3) le consommateur s'arrête s'il veut retirer alors que le tampon est vide. Il est réveillé quand cette condition n'est plus vraie. 4) pas d'interblocage PARAMÈTRES D'IMPLANTATION nombre de producteurs et de consommateurs se partageant le tampon ordre de prélèvement des messages (premier déposé, dernier déposé, selon nature du message,...) structuration du tampon (tableau, liste chaînée, fichier,...) 07 Illustration 22 décembre 2004

RÉSEAU DE PETRI DU PARADIGME PRODUCTEUR-CONSOMMATEUR PP1 produire PCASE PMESS 0 consommer PC1 TP1 TC1 PRODUCTEUR PP2 déposer retirer PC2 CONSOMMATEUR TP2 état initial TC2 PP1 produire PCASE PMESS consommer PC1 TP1 TC1 PRODUCTEUR PP2 déposer retirer PC2 CONSOMMATEUR TP2 TC2 état : deux cases vides, un message en dépot, un message en retrait, un message en stock 07 Illustration 23 décembre 2004

COMPÉTITION D'ACCÈS : LES LECTEURS ET LES RÉDACTEURS LA SITUATION CONCRETE EXEMPLE1: une entreprise veut gérer en temps réel une base d'informations; certains processus modifient cette base ou y font des adjonctions; d'autres processus ne font que la lire, sans modifications. On souhaite avoir le maximum de concurrence pendant ces lectures. EXEMPLE 2: dans tout système informatique, on maintient de nombreux catalogues pour répertorier les clients, les abonnés, les groupes d'usagers, les utilisateurs en session, les autorisations diverses, les processus, les ressources disponibles, les ressources en maintenance,...; des processus mettent ces catalogues à jour, en général à fréquence faible; d'autres processus les lisent, en général assez fréquemment; pour une meilleure efficacité, il est souhaitable de faire les lectures en parallèle. EXEMPLE 3: tout système informatique comprend une horloge qui sert à dater l'arrivée et le départ d'un utilisateur, à mesurer son temps d'utilisation des ressources du système, à dater les versions successives d'un même fichier,...; cette horloge est incrémentée par un compteur à quartz, toutes les dix millisecondes par exemple; ce compteur active un processus qui fait progresser des indicateurs de année, mois, jour, heure, minute, seconde,1/100e de seconde; d'autres processus lisent ces valeurs; l'efficacité prône une lecture concurrente; il faut toutefois éviter de lire pendant la progression des indicateurs, en particulier quand l'heure incrémentée est 31 jours, 23 heures, 59 minutes, 59 secondes, 99/100e, car comment garantir qu'on ne lira pas de valeur intermediaire du calcul, comme 31jours, 23 heures, 0 minute, 0 seconde, 0/100e. LA TERMINOLOGIE La compétition d'accès met en présence des processus lecteurs et des processus rédacteurs qui se partagent des données composées (accès non atomique). La synchronisation appelée aussi contrôle de concurrence garantit la cohérence des données écrites ou lues par les processus concurrents. HYPOTHÈSES H1: Les vitesses relatives des processus sont quelconques. H2: Les priorités ou les droits des processus sont quelconques. H3: Tout processus termine son écriture et/ou sa lecture au bout d'un temps fini. 07 Illustration 24 décembre 2004

LES LECTEURS ET LES RÉDACTEURS SPÉCIFICATION DE COMPORTEMENT 1. Les lectures sont concurrentes et cohérentes ; les écritures sont en exclusion mutuelle 2. Priorité aux lecteurs ou aux rédacteurs. Équité entre lecteurs et rédacteurs. Service à l'ancienneté. SCHÉMA D'EXECUTION Protocole d'initialisation procédures de contrôle : DÉBUT_ÉCRITURE; écriture en exclusion mutuelle; FIN_ÉCRITURE; procédures de contrôle : DÉBUT_LECTURE; lectures concurrentes; FIN_LECTURE; RESEAU DE PETRI POUR UN SYSTÈME AVEC CINQ PROCESSUS (N =5) LECTEURS RÉDACTEURS LECTEURS RÉDACTEURS N processus N processus DÉBUT_ LECTURE ACCÈS CONCURRENT EN LECTURE FIN_ LECTURE 1 1 N N DÉBUT_ ÉCRITURE ACCÈS EXCLUSIF EN ÉCRITURE FIN_ ÉCRITURE DÉBUT_ LECTURE ACCÈS CONCURRENT EN LECTURE FIN_ LECTURE 1 1 N N DÉBUT_ ÉCRITURE ACCÈS EXCLUSIF EN ÉCRITURE FIN_ ÉCRITURE TROIS LECTEURS CONCURRENTS UN RÉDACTEUR EXCLUSIF 07 Illustration 25 décembre 2004

LE REPAS DES PHILOSOPHES LA SITUATION CONCRÊTE Partage de plusieurs classes de ressources entre des processus concurrents asynchrones Méthodes d'allocation très variables : globales, à la demande, une à une Interblocage possible Famine possible HYPOTHÈSES H1: Les vitesses relatives des processus sont quelconques. H2: Les priorités ou les droits des processus sont quelconques. H3: Tout processus libère ses ressources au bout d'un temps fini. 07 Illustration 26 décembre 2004

LE REPAS DES PHILOSOPHES B1 B0 P0 P1 P2 P3 B2 B4 P4 B3 HYPOTHÈSES 1 Chaque assiette a une place fixe 2. Chaque baguette a une place fixe 3. accès à chaque baguette en exclusion mutuelle PROTOCOLE 1. Pour manger, un philosophe doit utiliser deux baguettes, la sienne et celle de son voisin de droite 2. Tout philosophe ne mange que pendant un temps fini, puis restitue les deux baguettes PROPRIÉTÉS 1 pas d'interblocage 2 pas de coalition (famine) 07 Illustration 27 décembre 2004

0 3 REPAS DES PHILOSOPHES 1 4 2 1 0 4 2 3 0 1 4 2 1 0 2 3 4 3 famine : ((1,3)->(1,4)->(2,4)->1,4))* interblocage 07 Illustration 28 décembre 2004

PROCESSUS ASYNCHRONES ET CONCURRENTS L'ASYNCHRONISME APPORTE DE LA SOUPLESSE : modularité de découpage, extensibilité, localité, indépendance des actions,... MAIS LA CONCURRENCE PEUT CRÉER DU DÉSORDRE ET CELUI-CI PEUT ÊTRE ACCENTUÉ PAR L'ASYNCHRONISME désordre des accès à une mémoire commune partagée en accès direct (mélanges incongrus, incohérence, calculs faux,...) désordre des messages transférés entre processus (réception dans un ordre différent de celui de l'émission, mélange de parties de différents messages, messages non reçus, messages lus deux fois,...) SOLUTION AU NIVEAU DE L'ARCHITECTURE LOGIQUE utilisation des bons paradigmes d'accès, de coopération, de compétition (ils remettent de l'ordre là où il est nécessaire et utile sans perdre la souplesse de l'asynchronisme) 07 Illustration 29 décembre 2004

PROPRIÉTÉS GLOBALES D'UNE APPLICATION CONCURRENTE sûreté ("safety") : garantir que rien de "mauvais" ne peut se produire états interdits pour des raisons sécuritaires, en fonctionnement normal ou en cas de panne respect de l'exclusion mutuelle, absence d'interblocage (interblocage actif ou passif),... vivacité ("liveness") : garantir que quelque chose de "bon" se produira éviter la famine philosophes : si allocation globale des baguettes exclusion mutuelle : si file d'attente avec priorité producteurs consommateurs : si service en pile (LIFO) ou priorités lecteurs rédacteurs : si priorité aux lecteurs (ou aux rédacteurs) respecter des priorités importance (criticité) : critère issu des besoins applicatifs, utile en cas de surcharge urgence : critère associé à des échéances temporelles priorité (fixe ou variable): critère local à un processus utilisé comme moyen de gestion de ressource aspects liés à la priorité fixe : inversion de priorité, héritage de priorité 07 Illustration 30 décembre 2004

ENCORE UN EXEMPLE D'UTILISATION DES PARADIGMES ET DES ARCHÉTYPES > > LESVOITURES(100) LESVOITURES(1) > LESVOITURES(2) > > LESVOITURES(3) LEGROSSISTE > LESVOITURES(4) > LESVOITURES(99) utiliser STATIONSERVICE livrer traverser RONDPOINT traverser_avec_camion préparer_livraison PLATEFORME prendre_livraison > > > LESCAMION(1) LESCAMION(2) LESCAMION(10) DES CAMIONS, DES VOITURES, UN GROSSISTE UNE PLATEFORME, UN RONDPOINT, UNE STATION SERVICE SCHÉMA AVEC PARADIGMES (exclusion mutuelle, producteurs-consommateurs) COMPLÉMENT DU CODE AVEC OBJETS OU PAQUETAGES (ARCHÉTYPES, COMPOSANTS) 07 Illustration 31 décembre 2004

procedure MAIN_SIMULATION is -- c'est le processus principal qui lance l'application NBVOITURE: constant INTEGER := 2500; NBCAMION: constant INTEGER :=10; task type VOITURE; LESVOITURES: array (1..NBVOITURE) of VOITURE; task type CAMION; LESCAMIONS: array (1..NBCAMION) of CAMION; task type GROSSISTE; LEGROSSISTE: GROSSISTE; -- déclaration des processus package PLATEFORME is procedure PRENDRE_LIVRAISON; procedure PREPARER_LIVRAISON; end PLATEFORME; package STATIONSERVICE is procedure UTILISER; procedure LIVRER; end STATIONSERVICE; -- spécification d'un objet partagé entre processus -- PARADIGME -- PRODUCTEURS-CONSOMMATEURS --- spécification d'un objet partagé entre processus -- PARADIGME -- LECTEURS-RÉDACTEURS package RONDPOINT is -- spécification d'un objet partagé entre processus procedure TRAVERSER; -- PARADIGME procedure TRAVERSER_AVEC_CAMION_PLEIN; -- EXCLUSION MUTUELLE OU COHORTE end RONDPOINT; task body VOITURE is -- expression des activités du processus begin loop -- boucle infinie car processus cyclique RONDPOINT.TRAVERSER; ROULER; RONDPOINT.TRAVERSER; ROULER; STATIONSERVICE.UTILISER; end loop; end VOITURE; task body CAMION is begin loop -- boucle infinie car processus cyclique PLATEFORME.PRENDRE_LIVRAISON; ROULER; RONDPOINT.TRAVERSER_AVEC_CAMION_PLEIN ; ROULER; STATIONSERVICE.LIVRER; ROULER; RONDPOINT.TRAVERSER; ROULER; end loop; end CAMION; task body GROSSISTE is begin loop -- boucle infinie car processus cyclique PLATEFORME.PREPARER_LIVRAISON; ENREGISTRER end loop; end GROSSISTE; package body PLATEFORME is separate; -- annonce une compilation séparée package body STATIONSERVICE is separate; package body RONDPOINT is separate; begin null; -- les tâches déclarées ci-dessus démarrent à ce point. Il y a (NBVOITURE +NBCAMION+2) processus end MAIN_SIMULATION; -- le seul rôle de ce programme principal est de créer les objets et les processus 07 Illustration 32 décembre 2004