Systèmes informatiques répartis : concepts et techniques
-
-
- Page de titre n.n. - vue 1/387
-
-
-
- p.n.n. - vue 2/387
-
-
-
- , y&îiH
- systèmes
- informatiques
- répartis
- concepts et techniques
- par
- CORNAFION
- nom collectif de :
- Françoise André, Jean-Serge Banino, Claude Bétourné, Jean Ferrié, Daniel Herman, Claude Kaiser, Sacha Krakowiak, Guy Mazaré, Jacques Mossière, Xavier Rousset de Pina,
- Jean Seguin, Jean-Pierre Verjus.
- phase spécialité
- DUNOD
- informatique
- p.r1 - vue 3/387
-
-
-
- © BORDAS, Paris 1981 ISBN 2-04-012135-8
- Toute représentation ou reproduction, intégrale ou partielle, faite sans le consentement de l'auteur, ou de ses ayants-droit, ou ayants-cause, est illicite (loi du 11 mars 1957, alinéa 1er de l’article 40). Cette- représentation ou reproduction, par quelque procédé que ce soit, constituerait une contrefaçon sanctionnée par les articles 425 et suivants du Code pénal. La loi du 11 mars 1957 n'autorise, aux termes des alinéas 2 et 3 dë Tarticle 41, que les copies ou reproductions strictement réservées à l'usage privé du copiste et non destinées à une utilisation collective d'une part, et, d'autre part, que les analyses ét--les courtes citations dans un but d'exemple et d'illustration "
- p.r2 - vue 4/387
-
-
-
- TABLE DES MATIÈRES
- Avant-propos........................................................... XIV
- Préambule............................................................... XV
- CHAPITRE 1. Qu’est-ce qu’un système informatique réparti ?........... 1
- 1.1 Pourquoi des systèmes répartis ?................................ 1
- 1.11 Adéquation des systèmes informatiques aux applications 2
- 1.12 Evolution de la technologie............................... 3
- 1.2 Quelques exemples de systèmes informatiques répartis........ 4
- 1.21 Un système de communication : le réseau public Transpac 4
- 1.211 Objectifs......................................... 4
- 1.212 Organisation générale......................... 5
- 1.213 Aspects de la répartition........................ 6
- 1.22 Un système de conduite d’atelier : tôlerie des Automobiles
- Peugeot.................................................. 7
- 1.221 Objectifs......................................... 7
- 1.222 Organisation générale............................. 8
- 1.223 Aspects de la répartition......................... 9
- 1.23 Un réseau local à usage général : le réseau Ethernet... 10
- 1.231 Objectifs..................................... 10
- 1.232 Organisation générale............................ 11
- 1.233 Aspects de la répartition........................ 12
- 1.24 Un système multiprocesseur : CM*......................... 12
- 1.241 Objectifs........................................ 12
- 1.242 Organisation générale..................... 13
- 1.243 Aspects de la répartition...................... 15
- 1.3 Essai de caractérisation des systèmes informatiques répartis.. 16
- 1.31 Structure matérielle..................................... 16
- 1.32 Structure fonctionnelle ............................... 17
- p.r3 - vue 5/387
-
-
-
- IV
- Table des matières
- 1.33 Observation et chronologie dans un système de machines
- asynchrones......................................... 19
- 1.331 Etat d’un ensemble de machines asynchrones.. 19
- 1.332 Conséquences de la variabilité des délais de
- transmission .................................. 20
- 1.333 Conséquences des risques de défaillances.... 21
- 1.334 Exemples....................................... 21
- 1.34 Conclusion............................................. 22
- 1.4 Présentation de l'ouvrage.................................... 23
- 1.5 Références bibliographiques.................................. 23
- PREMIÈRE PARTIE : LES SYSTÈMES DE COMMUNICATION 25
- CHAPITRE 2. Concepts et outils de la communication................ 27
- 2.1 Exemples introductifs........................................ 27
- 2.11 Dialogue sur une ligne directe......................... 27
- 2.111 Définitions.................................... 27
- 2.112 Description des protocoles .................... 29
- 2.12 Dialogue à travers un réseau de communication....... 31
- 2.13 Colloque entre plusieurs correspondants................ 33
- 2.131 Partage de la voie............................. 33
- 2.132 Transmission de l’information.................. 34
- 2.14 Plan de l’étude........................................ 34
- 2.2 Définitions générales........................................ 35
- 2.21 Protocoles et interfaces............................... 35
- 2.211 Interfaces..................................... 35
- 2.212 Protocoles..................................... 36
- 2.22 Système de communication............................... 36
- 2.221 Niveaux de communication et hiérarchie de protocoles .............................................. 36
- 2.222 Interfaces virtuelles ......................... 38
- 2.23 Messages............................................... 39
- 2.231 Définition des messages........................ 39
- 2.232 Interprétation des messages.................... 39
- 2.3 Les systèmes de communication................................ 40
- 2.31 Fonctions et caractéristiques d’un système de communication ...................................................... 40
- p.r4 - vue 6/387
-
-
-
- Table des matières
- V
- 2.311 Caractéristiques de la communication................ 41
- 2.312 Désignation des correspondants...................... 42
- 2.32 Réalisation d’un système de communication........... 43
- 2.321 Mise en œuvre de dialogues et de colloques... 43
- 2.322 Gestion des voies................................... 44
- 2.323 Protocoles de synchronisation....................... 45
- 2.324 Détection et correction des erreurs................. 46
- 2.33 Spécification et validation des protocoles.......... 47
- 2.331 Méthodes fondées sur les assertions................. 47
- 2.332 Méthodes fondées sur les automates d’états finis. 48
- 2.333 Eléments de comparaison............................. 48
- 2.4 Présentation de la première partie : les systèmes de communication. 49
- CHAPITRE 3. Description des voies de communication................. 51
- 3.1 Transmission de Vinformation............................... 52
- 3.11 Nature et représentation de l’information à transmettre.. 52
- 3.12 Synchronisation de la transmission..................... 55
- 3.121 Transmission synchrone.......................... 56
- 3.122 Transmission asynchrone......................... 57
- 3.13 Modes de transmission ................................. 58
- 3.131 Rappels ........................................ 59
- 3.132 Transmission en mode de base.................... 61
- 3.133 Transmission par modulation..................... 62
- 3.14 Transmission en série, transmission en parallèle ...... 64
- 3.2 Caractéristiques physiques des voies....................... 64
- 3.21 Bande passante et débit................................ 64
- 3.22 Taux d’erreur ......................................... 65
- 3.23 Longueur élémentaire .................................. 65
- 3.24 Délai de transmission.................................. 65
- 3.25 Défauts des voies ..................................... 66
- 3.251 Distorsions .................................... 66
- 3.252 Perturbations................................ 67
- 3.3 Topologie et utilisation des voies............................ 67
- 3.31 Topologie des voies................................... • 67
- 3.32 Modes d’utilisation des voies ......................... 68
- 3.33 La commutation..............*....................... 68
- p.r5 - vue 7/387
-
-
-
- VI Table des matières
- 3.4 Voies simples............................................. 69
- 3.41 Caractéristiques des supports homogènes............ 69
- 3.411 Supports métalliques........................... 69
- 3.412 Fibres optiques................................ 70
- 3.413 Ondes radioélectriques......................... 70
- 3.42 Exemples de supports homogènes..................... 72
- 3.421 Les bus........................................ 72
- 3.422 « Ether » du réseau Ethernet................... 74
- 3.43 Lignes de transmission de données.................. 75
- 3.431 Caractéristiques des lignes.................... 75
- 3.432 Principaux types de modems..................... 76
- 3.5 Composition de bus et de mémoires............................ 77
- 3.51 Un exemple de composition de bus en série : Pluribus... 77
- 3.52 Un exemple de composition hiérarchique de bus et de
- mémoires : CM *.............................‘...... 79
- 3.6 Réseaux informatiques ....................................... 81
- 3.61 Généralités........................................... 81
- 3.611 Définitions.................................... 81
- 3.612 Commutation de circuits et commutation de
- données........................................ 82
- 3.613 Commutation de messages et commutation par
- paquets........................................ 83
- 3.62 Les réseaux à commutation par paquets.............. 85
- 3.621 Protocoles et interfaces de communication... 85
- 3.622 Réseau de transport............................ 86
- 3.623 Réseau de communication........................ 88
- 3.624 Réalisation des protocoles..................... 90
- 3.625 Interconnexion de réseaux à commutation par
- paquets........................................ 92
- 3.7 Normalisation des systèmes de communication.................. 93
- 3.71 Objectifs et organisation de la normalisation...... 93
- 3.72 Résultats de la normalisation......................... 94
- CHAPITRE 4. Partage des voies..................................... 95
- 4.1 Introduction............................................... 95
- 4.11 Objet du chapitre..................................... 95
- 4.12 Propriétés des émetteurs.............................. 95
- 4.13 Objectifs et contraintes du partage................... 97
- p.r6 - vue 8/387
-
-
-
- Table des matières VII
- 4.2 Partage d'une voie........................................ 97
- 4.21 Méthodes de partage................................. 97
- 4.22 Partage par compétition............................. 98
- 4.23 Partage par élection................................ 99
- 4.231 Modes d’élection............................ 99
- 4.232 Election par consultation................... 100
- 4.233 Election par sélection...................... 102
- 4.3 Partage d'un ensemble de voies............................ 104
- 4.31 Introduction........................................ 104
- 4.311 Techniques de commutation................... 105
- 4.312 Contrôle de congestion...................... 106
- 4.32 Algorithmes de routage................................... 106
- 4.321 Objectifs d’un algorithme de routage........ 107
- 4.322 Les principales politiques de routage....... 107
- 4.33 Exemples de partage des voies dans les réseaux maillés... 108
- 4.331 Le réseau Transpac.......................... 108
- 4.332 Le réseau Arpanet........................... 109
- 4.34 Les réseaux en anneau.................................... 109
- 4.341 Principes généraux............................... 110
- 4.342 Technique du jeton............................... 110
- 4.343 Technique du plateau tournant............... 111
- 4.344 Critique des réseaux en anneau................... 112
- CHAPITRE 5. Gestion de la communication........................... 115
- 5.1 Introduction...............................r.............. 115
- 5.11 Nature du service........................................ 115
- 5.12 Nature et propriétés des communications.................. 116
- 5.121 Modes de communication........................... 116
- 5.122 Etapes de la communication....................... 116
- 5.123 Interface de transport........................... 117
- 5.124 Influence des caractéristiques de la voie sur le
- protocole de transport .......................... 117
- 5.13 Protocoles présentés..................................... 118
- 5.2 Communication point à point sur une voie fiable........... 118
- 5.3 Communication point à point sur une voie non fiable......... 120
- 5.31 Caractéristiques des voies et des entités communicantes.. 120
- 5.32 Exploitation d’une communication......................... 121
- p.r7 - vue 9/387
-
-
-
- VIII Table des matières
- 5.321 Numérotation des messages.................... 121
- 5.322 Cycle de numérotation............................ 122
- 5.323 Origine de la numérotation....................... 122
- 5.33 Initialisation et rupture d’une communication....... 123
- 5.331 Position du problème............................. 123
- 5.332 Ouverture de la communication.................... 124
- 5.333 Fermeture de la communication.................... 127
- 5.34 Régulation de flux.................................. 128
- 5.341 Paramètres de la régulation de flux.............. 128
- 5.342 Principes de la régulation de flux............... 129
- 5.343 Modes particuliers de régulation................. 132
- 5.344 Exemples de stratégies de régulation de flux .... 132
- 5.345 Influence de la valeur du crédit sur le débit de
- transmission .................................. 133
- 5.4 Communication par colloque................................. 133
- 5.41 Caractéristiques d’un colloque...................... 133
- 5.42 Mise en oeuvre d’un colloque............................ 134
- 5.421 Exploitation d’un colloque en régime permanent. 134
- 5.422 Extension d’un colloque.......................... 136
- 5.423 Sortie d’un colloque............................. 136
- 5.43 Mise en oeuvre de la primitive diffuser................. 137
- 5.431 Voies à diffusion ............................... 137
- 5.432 Réseaux en anneau................................ 137
- 5.433 Communications point à point..................... 137
- 5.434 Réseaux de communication maillés................. 138
- 5.435 Comparaison des méthodes de diffusion........ 140
- 5.5 Protocoles de haut niveau.................................. 140
- 5.51 Protocoles de terminal virtuel.......................... 140
- 5.52 Protocoles de transfert de fichiers..................... 141
- 5.53 Protocoles de soumission de travaux à distance.......... 141
- SECONDE PARTIE : LES PROBLÈMES DE LA RÉPARTITION... 149
- CHAPITRE 6. Introduction aux problèmes des systèmes informatiques
- répartis............................................. 151
- 6.1 Exemple introductif : un réseau d'agences de voyage......... 151
- 6.11 Demande de renseignements à distance.................... 153
- 6.12 Réservation à distance.................................. 155
- p.r8 - vue 10/387
-
-
-
- Table des matières IX
- 6.13 Construction d’un voyage................................. 157
- 6.14 Informations en exemplaires multiples.................. 158
- 6.2 Les problèmes de la répartition.............................. 159
- CHAPITRE 7. Programmation et exécution d’applications réparties... 161
- 7.1 Présentation d'une application................................ 162
- 7.2 Contrôle de l'exécution........................................ 163
- 7.21 Terminologie........................................... 164
- 7.22 Liens de contrôle ..................................... 166
- 7.221 Procédure ..................................... 166
- 7.222 Continuation................................... 167
- 7.223 Eléments de comparaison........................ 169
- 7.23 Parallélisme......................................... 170
- 7.24 Mise en oeuvre d’activités sur architectures réparties. 172
- 7.241 Gestion des activités créées à distance........ 172
- 7.242 Coopération et communication................... 174
- 7.3 La désignation................................................ 178
- 7.31 Liaison................................................ 178
- 7.311 Définition..................................... 178
- 7.312 Liaison dynamique.............................. 179
- 7.32 Structure et interprétation des identificateurs........ 180
- 7.321 Propriétés .................................... 180
- 7.322 Exemples...................................... 180
- 7.323 Réalisation d’un répertoire global............. 182
- 7.33 Etablissement de chaînes d’accès....................... 183
- 7.331 Introduction................................... 183
- 7.332 Portes......................................... 183
- 7.333 Association processus-porte.................... 184
- 7.34 Conclusion.......................................... 187
- 7.4 Expression du parallélisme et de la répartition dans les langages de
- programmation................................................ 187
- 7.41 Introduction........................................... 187
- 7.42 Expression du parallélisme dans les langages........... 188
- 7.421 Communicating Sequential Processes (CSP).... 189
- 7.422 Le Langage Ada................................. 192
- 7.423 Conclusion.................................... 195
- p.r9 - vue 11/387
-
-
-
- X
- Table des matières
- 7.43 Expression de la répartition dans les langages.......... 195
- 7.44 Conclusion.............................................. 197
- CHAPITRE 8. Ordonnancement et synchronisation des processus........... 199
- 8.1 Introduction.................................................. 199
- 8.11 Exemple introductif..................................... 199
- 8.12 Ordre partiel........................................... 200
- 8.13 Hypothèses communes..................................... 201
- 8.2 Synchronisations utilisant uniquement l'ordre partiel......... 201
- 8.21 Exemple de problème..................................... 201
- 8.22 Les compteurs d’événements.............................. 204
- 8.3 Synchronisations nécessitant un ordre total strict............ 205
- 8.31 Allocation centralisée.................................. 205
- 8.32 Allocation répartie..................................... 205
- 8.4 Ordonnancement au moyen d'estampilles......................... 207
- 8.41 Construction d’un ordre total strict.................... 207
- 8.42 Exemple d’utilisation................................... 207
- 8.43 Conclusion.............................................. 210
- 8.5 Ordonnancement par séquenceur................................. 211
- 8.51 Notion de séquenceur.................................... 211
- 8.52 Séquenceur circulant................................... 212
- 8.521 Anneau virtuel.................................. 212
- 8.522 Privilège matérialisé par des variables d’état. 212
- 8.523 Circulation d’un jeton.......................... 215
- 8.524 Mise en œuvre d’un séquenceur circulant........ 215
- 8.53 Séquenceur sur une voie à diffusion..................... 215
- 8.6 Conclusion.................................................... 217
- CHAPITRE 9. Allocation de ressources.................................. 223
- 9.1 Introduction................................................ 223
- 9.2 Allocation d'une ressource unique............................. 225
- 9.21 Accès par serveur unique................................ 225
- 9.22 Accès concurrent contrôlé............................... 226
- p.r10 - vue 12/387
-
-
-
- Table des matières XI
- 9.3 Allocation d'un ensemble de ressources. Interblocage........... 226
- 9.31 Rappels sur les méthodes centralisées..................... 227
- 9.32 Répartition de la fonction d’allocation .................. 229
- 9.33 Méthodes d’allocation utilisant un état global............ 229
- 9.34 Méthodes d’allocation utilisant des états partiels ....... 231
- 9.341 Un algorithme de prévention de l’interblocage.. 231
- 9.342 Un algorithme de détection de l’interblocage.... 233
- 9.343 Conclusion........................................ 236
- 9.4 Régulation de charge........................................... 236
- 9.41 Exemple de régulation de charge globale................... 237
- 9.42 Exemples de distribution de charge adaptative............. 239
- 9.43 Exemple d’interaction entre la distribution de charge et la
- régulation de charge globale.............................. 242
- CHAPITRE 10. Accès à l’information répartie............................. 245
- 10.1 Exemple introductif............................................. 245
- 10.2 Cohérence de l'information..................................... 247
- 10.21 Hypothèses de travail.................................. 247
- 10.22 Actions et transactions................................ 248
- 10.23 Ordonnancement d’actions............................... 249
- 10.3 Mise en oeuvre de transactions respectant la cohérence......... 252
- 10.31 Mécanismes de verrouillage............................. 252
- 10.311 Exclusion mutuelle............................ 252
- 10.312 Verrouillage sélectif des objets.............. 253
- 10.313 Transactions à deux phases................... 253
- 10.32 Conséquences de l’incertitude sur l’état du système.... 255
- 10.33 Traitement des défaillances............................ 256
- 10.34 Gestion cohérente de transactions...................... 257
- 10.341 Utilisation des transactions à deux phases... 258 > 10.342 Un algorithme de maintien de la cohérence
- évitant interblocage et privation............. 258
- 10.35 Conclusion.......................................... 261
- 10.4 Gestion de copies multiples d'un même objet.................... 261
- 10.41 Champ d’application................................... 26
- 10.42 Algorithmes de gestion de copies multiples............. 263
- 10.421 Généralités..................................... 263
- p.r11 - vue 13/387
-
-
-
- XII Table des matières
- 10.422 Un algorithme assurant la cohérence faible à
- l’aide d’estampilles....................... 264
- 10.423 Un algorithme assurant la cohérence faible à
- l’aide d’un séquenceur circulant........... 266
- 10.424 Un algorithme assurant la cohérence forte.. . 267
- 10.43 Conclusion.......................................... 268
- ILLUSTRATIONS
- ILLUSTRATION 1. Un exemple d’interface normalisée : l’avis V24 du
- CCITT.................................... 275
- Il. 1 Introduction.......................................... 275
- 11.2 L’interface modem-terminal............................ 275
- 11.3 Le connecteur de jonction et les circuits............. 276
- 11.4 Un exemple d’utilisation de 1 ’ avis V24.............. 278
- 11.5.. Liste des broches et circuits principaux............. 281
- ILLUSTRATION 2. Un exemple de protocole normalisé : HDLC..... 283
- 12.1 Introduction.......................................... 283
- 12.2 Format des trames..................................... 283
- 12.3 Principes de base du protocole........................ 285
- 12.4 Protocoles d’ouverture et de fermeture................ 288
- 12.5 Protocole d’échange de trames d’information........... 288
- 12.6 Description de HDLC par des réseaux d’évaluation...... 289
- ILLUSTRATION 3. Un exemple de protocole de transmission sur voie
- fiable : l’Unibus du PDP 11.............. 295
- 13.1 Voie de communication................................. 295
- 13.2 Transfert de messages................................. 296
- 13.3 Arbitrage............................................. 297
- ILLUSTRATION 4. Une méthode de validation des protocoles de communication ................................................... 299
- 14.1 Représentation des protocoles ........................ 299
- 14.2 Présentation de la méthode générale de validation..... 302
- 14.3 Réalisation........................................... 304
- ILLUSTRATION 5. La station de transport du réseau Danube..... 305
- 15.1 Présentation de la station de transport .............. 305
- 15.2 L’interface de transport.............................. 306
- p.r12 - vue 14/387
-
-
-
- Table des matières XIII
- 15.3 Le protocole de transport............................... 308
- 15.4 Schéma de la station de transport....................... 309
- ILLUSTRATION 6. Un système de gestion de fichiers répartis : DFS . 317
- 16.1 Présentation générale................................... 317
- 16.2 Les ressources solides................................. 318
- 16.3 Réalisation d’actions atomiques......................... 319
- 16.4 Réalisation des transactions atomiques.................. 321
- ILLUSTRATION 7. Kensur : conception d’un système orienté vers la
- traduction de langages....................... 325
- 17.1 Présentation générale................................... 325
- 17.2 Conception d’une architecture adaptée à la compilation.. 326
- 17.3 Prototype réalisé....................................... 326
- 17.4 Système de communication sur le réseau.................. 328
- 17.5 Le langage de programmation et sa mise en œuvre......... 329
- GLOSSAIRE ...................................................... 335
- LEXIQUE ANGLAIS-FRANÇAIS........................................ 353
- BIBLIOGRAPHIE .................................................. 355
- p.r13 - vue 15/387
-
-
-
- AVANT-PROPOS
- Ce livre est le résultat d’un travail de réflexion et de synthèse mené collectivement par un groupe d’enseignants, de chercheurs et d’ingénieurs en informatique réunis pour étudier les concepts et techniques nouveaux introduits par le développement récent des systèmes informatiques répartis.
- L’organisation et le contenu de l’ouvrage ont été élaborés et discutés au cours de nombreuses réunions de travail dont plusieurs se sont déroulées dans un village de montagne dominé par le Roc Cornafion. C’est le nom collectif que s’est donné le groupe composé de F. André (IRISA), J. S. Banino (INRIA), C. Bétourné (UPS), J. Ferrié (USTL), D. Herman (IRISA), C. Kaiser (CNAM), S. Krakowiak (IMAG), G. Mazaré (CNET), J. Mossière (IMAG), X. Rousset de Pina (IMAG), J. Seguin (CICG), J. P. Verjus (IRISA).
- Nous tenons à remercier tous ceux qui nous ont aidés par leurs critiques et commentaires, ou par leur participation à des réunions d’évaluation et des cycles de formation, avec une mention particulière pour G. Le Lann.
- Nous remercions également toutes les personnes qui ont assuré la frappe et le tirage des nombreuses versions successives du manuscrit.
- Enfin, ce travail n’aurait pu être réalisé sans le soutien matériel de nos différents organismes d’appartenance. L’INRIA a notamment apporté son concours pour l’édition et la diffusion de fiches techniques rédigées par le groupe sur des sujets connexes à ceux traités dans l’ouvrage.
- CICG : Centre Interuniversitaire de Calcul de Grenoble.
- CNAM : Conservatoire National des Arts et Métiers.
- CNET : Centre National d’Etudes des Télécommunications.
- IMAG : Laboratoire d’informatique et de Mathématiques Appliquées de Grenoble. INRIA : Institut National de Recherche en Informatique et en Automatique. IRISA : Institut de Recherche en Informatique et Systèmes Aléatoires, Rennes. UPS : Université Paul-Sabatier, Toulouse.
- USTL : Université des Sciences et Techniques du Languedoc, Montpellier.
- p.r14 - vue 16/387
-
-
-
- PRÉAMBULE
- Le terme de système informatique réparti (ou distribué) est utilisé de manière courante pour désigner des ensembles informatiques constitués d’unités de traitement ou de stockage interconnectées par un système de communication. Sur ces unités s’exécutent des programmes qui coopèrent à la réalisation d’une tâche commune ou partagent des ressources communes. Bien que, suivant cette définition, on puisse considérer comme « réparti » tout ordinateur comportant une mémoire secondaire et des organes périphériques, l’apparition des systèmes répartis correspond à une étape du développement technologique : le progrès des techniques de transmission de données et la baisse du coût des processeurs et mémoires ont permis de concevoir des systèmes informatiques dont la structure décentralisée et extensible s’adapte à celle des applications traitées. Ces applications couvrent des domaines variés : réseaux de communication, systèmes de commande de processus industriels, systèmes de gestion administrative ou documentaire, bases de données réparties.
- Nous nous intéressons essentiellement aux classes de systèmes dont les éléments possèdent un assez large degré d’autonomie; ces systèmes, parfois appelés jaiblement ou moyennement couplés, s’opposent aux multiprocesseurs à mémoire commune et aux architectures spécialisées dans le calcul parallèle (processeurs vectoriels ou matriciels), qui sont exclus du champ de notre étude.
- La conception, la réalisation et la mise en oeuvre de tels systèmes posent des problèmes nouveaux liés à la communication, au traitement parallèle, à la duplication de données, à la gestion de ressources réparties. Ces problèmes ont progressivement été identifiés à mesure que de nouveaux systèmes étaient réalisés. Il nous a paru utile de tenter de donner aujourd’hui une présentation synthétique des concepts et techniques qui leur sont applicables. Notre objectif est de dégager des principes de conception suffisamment généraux pour s’appliquer aux diverses catégories de systèmes rencontrés, et de les illustrer par des exemples montrant l’état actuel du savoir-faire.
- Cet ouvrage s’adresse aux informaticiens intéressés par la conception, la réalisation et la mise en oeuvre de systèmes informatiques répartis. Il est également destiné aux étudiants de 2e et 3e cycle, aux élèves-ingénieurs en informatique et aux chercheurs désireux d’approfondir ce domaine. Les spécialistes des systèmes de communication pourront y trouver des complé-
- p.r15 - vue 17/387
-
-
-
- XVI Préambule
- ments sur les aspects informatiques de ces systèmes, et les utilisateurs des systèmes informatiques classiques une introduction aux techniques de l’informatique répartie.
- Nous supposons acquis les principes fondamentaux de la conception des systèmes d’exploitation des ordinateurs (synchronisation des processus, désignation des objets, allocation des ressources, protection), tels qu’ils sont exposés, par exemple, dans [Crocus 75] (*). Nous supposons également connus les principes de l’analyse et de la programmation d’une application informatique, et notamment les notions liées à la programmation systématique et à la programmation modulaire (voir par exemple [Meyer 78]). Les éléments de téléinformatique nécessaires à la compréhension de l’ouvrage sont rappelés au chapitre 3 ; les lecteurs désireux d’approfondir ce domaine peuvent consulter [Macchi 79].
- Nous avons regroupé en fin d’ouvrage, sous le titre d’illustrations, plusieurs études de cas. Celles-ci ont un double but :
- — illustrer de manière concrète les principaux concepts exposés dans le cours,
- — fournir des renseignements précis sur certaines techniques d’utilisation courante (comme les protocoles et interfaces normalisés de communication).
- Ces exemples ne remplacent pas l’étude pratique détaillée d’un système réel complet, qui est vivement recommandée en complément de cet ouvrage, en particulier aux enseignants qui l’utiliseraient comme support de cours.
- Des exercices figurent à la fin de la plupart des chapitres. Ils permettent d’appliquer les notions présentées et d’approfondir des points non développés dans le corps de l’ouvrage. Ces exercices sont généralement accompagnés d’indications facilitant la recherche de la solution. L’ouvrage contient enfin une bibliographie générale, avec regroupement des références par chapitre, et un glossaire’ définissant les termes les plus courants. Ce glossaire comporte des références au corps de l’ouvrage, qui permettent également de l’utiliser comme index.
- (*) Les références entre crochets renvoient à la bibliographie in fine.
- p.r16 - vue 18/387
-
-
-
- CHAPITRE 1
- QU’EST-CE QU’UN SYSTÈME INFORMATIQUE RÉPARTI ?
- Le terme de système informatique réparti (ou distribué) est d’emploi courant mais ne possède pas de définition simple et universellement reconnue. Dans cette introduction, nous tentons de préciser ce concept. Nous proposons pour cela trois voies d’approche :
- — dégager les facteurs déterminants dans l’apparition et le développement des systèmes informatiques répartis,
- — donner quelques exemples caractéristiques de tels systèmes, en essayant de mettre en évidence leurs aspects spécifiquement répartis,
- — tenter de définir des critères permettant de détecter, voire de mesurer, le caractère réparti d’un système informatique.
- 1.1 POURQUOI DES SYSTÈMES INFORMATIQUES RÉPARTIS ?
- Des applications géographiquement réparties ont été traitées dès les débuts de l’informatique : il s’agissait alors essentiellement de relier à un site central des terminaux d’accès ou des organes de mesure munis ou non de possibilités de traitement local. Dans une étape ultérieure, des soucis d’économie (mise en commun de ressources ou d’information) amenèrent à connecter par des réseaux de communication des installations existantes capables de fournir des services généraux ou spécialisés. Dans un premier temps, ces services différaient peu de ceux accessibles par un terminal connecté à un ordinateur éloigné ; puis se mirent en place des applications mettant en jeu un ensemble de services fournis par les différents systèmes connectés. Enfin, il est maintenant courant de concevoir comme un tout un système informatique réparti, c’est-à-dire l’ensemble constitué par le matériel, le logiciel et le système de communication.
- Deux raisons principales, à notre avis, ont motivé cette évolution : la recher-
- p.1 - vue 19/387
-
-
-
- 2 Systèmes informatiques répartis
- che d’une meilleure adéquation des systèmes informatiques aux applications traitées, et les progrès de la technologie, qui ont rendu possible cette adéquation.
- 1.11 ADÉQUATION DES SYSTÈMES INFORMATIQUES AUX APPLICATIONS
- Les applications traitées par ordinateur, comme la plupart des organisations, peuvent généralement être découpées en sous-ensembles ou sous-systèmes, relativement indépendants, tels que les interactions entre éléments d’un sous-ensemble soient beaucoup plus fréquentes que les interactions entre sous-ensembles distincts : c’est la propriété de localité.
- Exemple 1. Le système de commande d’un processus de fabrication comporte des ordinateurs pilotant chaque machine ou groupe de machines d’un atelier. Chacun de ces ordinateurs est chargé de la gestion d’une étape particulière de la fabrication ; la majorité des interactions sont locales à un atelier, mais les sous-systèmes de tous les ateliers doivent être interconnectés pour assurer une gestion globale de la fabrication.
- Exemple 2. Chaque agence principale d’une banque possède un ordinateur qui gère les comptes des clients dépendant de cette agence. La plupart des opérations de dépôt ou retrait sont locales, mais les opérations entre clients d’agences différentes, et les nécessités d’une gestion globale, entraînent également des échanges entre agences.
- Dans la mesure où la technologie le permet à un coût acceptable, il est naturel de calquer la structure d’un système informatique sur celle de l’application qu’il traite. On espère ainsi obtenir de multiples avantages :
- — simplification de l’installation et réduction du coût des communications : les échanges entre sous-systèmes, étant relativement peu fréquents, peuvent être réalisés par des organes lents ; l'information ainsi échangée est en général plus synthétique,
- — avantages découlant de la structure modulaire : plus grande facilité de mise au point et d’intégration, commodité de modification et d’extension,
- — plus grande disponibilité, dans la mesure où un organe défaillant peut être remplacé par un organe assurant une fonction équivalente, ou possibilité de fonctionnement dégradé en cas de défaillance d’un sous-système,
- — possibilité de décentralisation des données et des décisions, et accroissement de l’autonomie des sous-systèmes.
- Pour augmenter encore ces avantages, on peut chercher à accentuer le caractère local des traitements.
- — Lorsque des données communes sont peu fréquemment modifiées, on diminue les interactions entre sous-systèmes en dotant chacun d’eux d’une copie de ces données.
- p.2 - vue 20/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 3
- — Lorsque des ressources gérées par différents sous-systèmes doivent être partagées, on augmente la localité des traitements en implantant dans chaque sous-système une version de l’allocateur de ces ressources ; ces versions peuvent alors s'exécuter concurremment.
- — Lorsqu’un programme appartenant à un sous-système doit traiter des données appartenant à un autre sous-système, il est possible de transférer le programme ou les données ; ce transfert peut se faire par changement d’implantation ou par création d’une nouvelle copie.
- Ces opérations introduisent néanmoins des problèmes nouveaux que l’on peut considérer comme spécifiques de la répartition :
- — la création de copies multiples de données impose de maintenir la cohérence mutuelle de ces copies,
- — la multiplication des allocateurs de ressources leur impose de se coordonner entre eux pour éviter des décisions contradictoires,
- — le changement d’implantation de programmes ou de données implique d’informer l’ensemble du système de ces décisions, et la création de copies nouvelles pose les problèmes de cohérence déjà mentionnés.
- Il faut noter que l’accroissement de la localité des traitements augmente l’indépendance mutuelle des sous-systèmes et tend donc à rendre chaque sous-système plus résistant aux défaillances des autres.
- 1.12 ÉVOLUTION DE LA TECHNOLOGIE
- L’évolution de la technologie se manifeste essentiellement de deux façons ; la baisse du coût et l’accroissement des performances des processeurs et des mémoires résultent des progrès des composants intégrés ; le développement de moyens de communication permet l’échange d’information sur une gamme étendue de distances et de débits.
- La figure 1 donne une idée quantitative de quelques facteurs caractéristiques de cette évolution. Il est donc maintenant économiquement et techniquement possible de décentraliser les éléments d’un système informatique pour les rapprocher du lieu de production ou d’utilisation des informations traitées. Cette évolution résulte plus de la baisse du coût des processeurs et des mémoires que de l’accroissement de leurs performances : ce dernier facteur est plutôt un argument pour la centralisation. Il devient également possible de relier à un système existant des éléments jusque là autonomes.
- L’évolution technologique permet en outre d’envisager la construction d’ensembles de traitement de grande puissance par assemblage d’un grand nombre de composants élémentaires de conception simple et normalisée. Cette construction pose des problèmes matériels d’interconnexion et des problèmes de mise en oeuvre et d’utilisation (coopération de processeurs multiples, décomposition et répartition des programmes et des données), qui ne sont encore qu’imparfaitement résolus.
- p.3 - vue 21/387
-
-
-
- 4 Systèmes informatiques répartis
- Coût (centimes/bit)
- 1965 70 75 80
- (a) Coût de la mémoire
- Vitesse (106 instr/s)
- 1965 70 75 80
- (b) Vitesse des processeurs
- Affaiblissement (db/km)
- I monomode
- 1 10 100 1000 Débit (Mbit/s)
- 1) Evolution de la technologie informatique.
- 2) Performances des voies de communication.
- Figure 1. Technologie de l’informatique et des télécommunications. Evolution et performances caractéristiques (d’après [Scanlon 78]).
- 1.2 QUELQUES EXEMPLES DE SYSTÈMES INFORMATIQUES RÉPARTIS
- Les exemples qui suivent sont destinés à illustrer quelques classes de systèmes répartis. Pour chacun des systèmes décrits, nous présentons successivement ses objectifs, sa structure d’ensemble, et enfin les principaux aspects spécifiques de la répartition. Les références bibliographiques sur ces exemples sont regroupées en fin de chapitre.
- 1.21 UN SYSTÈME DE COMMUNICATION : LE RÉSEAU PUBLIC TRANSPAC
- 1.211 Objectifs
- Lorsqu’on désire relier des terminaux à plusieurs ordinateurs distants, ou relier entre eux plusieurs ordinateurs, il est possible en principe de relier tous ces éléments deux à deux par des lignes. Une autre solution consiste à connecter tous les éléments à un système de communication capable d’établir toutes les liaisons souhaitées. Le partage des ressources de ce système permet de réduire le coût, leur banalisation permet d’augmenter la disponibilité ; ces avantages sont obtenus au prix d’une réduction des performances par rapport à l’interconnexion directe.
- Les réseaux de communication sont une classe particulière de systèmes de communication, construits à partir d’un ensemble de noeuds pouvant communiquer entre eux (par des lignes, des liaisons radio, etc.). Un système informa-
- p.4 - vue 22/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 5
- tique (ordinateur, concentrateur de terminaux, terminal unique...) peut accéder aux services du réseau en se connectant à un de ses noeuds (ou à plusieurs, pour des raisons de fiabilité) : il devient alors un abonné du réseau. Le réseau permet à deux abonnés d’échanger de l’information selon des conventions bien définies, les protocoles de communication.
- Transpac est un réseau public de communication construit par les PTT françaises. Il dessert l’ensemble du territoire et permet à deux abonnés d’établir entre eux un circuit virtuel simulant une ligne de transmission fiable et d’échanger des informations en utilisant ce circuit virtuel. Les caractéristiques de service sont les suivantes :
- Débit de 50 à 48 000 bit/s
- Délai moyen de transmission < 200 ms
- Délai d’établissement d’un circuit virtuel < 1,5 s
- Taux d’erreurs non détectées . < 10~9
- Disponibilité voisine de 100 %
- Services annexes confidentialité (protection sélective)
- Le coût d’utilisation dépend du volume d’information transmis et du temps d’utilisation mais non de la distance.
- 1.212 Organisation générale
- La figure 2 décrit la topologie du réseau Transpac. Chaque noeud du réseau, ou commutateur, comporte deux ordinateurs Mitra 15. Les noeuds sont reliés entre eux par des lignes de communication doublées, avec un débit de 72 kbit/s. La disponibilité du réseau est la fraction du temps pendant laquelle ses services sont effectivement disponibles. Elle est augmentée grâce à la topologie maillée du réseau : le doublement des lignes et la structure redondante des noeuds permettent d’assurer le service même en cas de défaillance de certains éléments.
- La transmission d’information sur les lignes s’effectue avec un taux d’erreur non négligeable. Pour obtenir un faible taux d’erreur dans les communications entre abonnés, des mécanismes de détection des erreurs de transmission sont prévus, et l’information erronée est réémise.
- Les informations à transmettre sont découpées en tronçons de taille lixe appelés paquets, qui voyagent sur le réseau jusqu’à leur noeud de destination. Ce découpage permet (voir 3.62 et 4.33) de partager efficacement par multiplexage les lignes et les mémoires de stockage des noeuds. Il présente aussi l’avantage de réduire le volume des retransmissions : en cas de détection d’erreur, seul le paquet erroné est retransmis.
- p.5 - vue 23/387
-
-
-
- 6 Systèmes informatiques répartis
- Figure 2. Schéma général du réseau Transpac (début 1980).
- 1.213 Aspects de la répartition
- Le réseau Transpac sert de support à des applications réparties, mais constitue déjà par lui-même un système informatique réparti. Il comporte plusieurs aspects caractéristiques de la répartition.
- a) La répartition géographique. Cette répartition permet à tout abonné, quelle que soit sa localisation géographique, de trouver un point de raccordement peu éloigné et donc de se connecter au réseau à faible coût.
- b) L'absence d'un organe centralisé de commande. L’acheminement d’un paquet entre le nœud d’origine et le nœud de destination n’est pas sous le contrôle d’un organe unique, mais tous les nœuds intermédiaires participent à cette tâche : chacun détermine le nœud suivant du chemin, compte tenu
- p.6 - vue 24/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 7
- de la destination finale. De même, l’établissement d’un circuit virtuel met en œuvre l’ensemble des nœuds intermédiaires.
- c) La fiabilité et la disponibilité. La multiplication des processeurs et l’utilisation de lignes de communications tendent au départ à réduire la fiabilité du système ; pour améliorer cette fiabilité, il faut recourir à des méthodes utilisant la redondance telles que le doublement des ordinateurs et des lignes, et la réémission des paquets erronés. La disponibilité élevée du service résulte de la fiabilité de ses composants et de la structure maillée qui autorise le fonctionnement en cas de panne de lignes ou de nœuds.
- d) Le partage des ressources. Chaque nœud et chaque ligne sont successivement utilisés pour la transmission de paquets intervenant dans divers échanges entre abonnés. Ce partage permet d’exploiter au mieux les caractéristiques des lignes, et de réduire l’investissement par rapport à des solutions sans partage.
- Ces deux derniers aspects ne sont pas spécifiques des systèmes répartis, mais y prennent une plus grande importance.
- 1.22 UN SYSTÈME DE CONDUITE D’ATELIER : TÔLERIE DES AUTOMOBILES PEUGEOT
- 1.221 Objectifs
- Le système de conduite d’atelier a pour fonction de gérer une tôlerie de la Société des Automobiles Peugeot. Cet atelier produit en série des carrosseries de voitures par assemblage de composants (caisse, côtés, bloc avant, pavillon). L’analyse de ce processus d’assemblage a permis de le décomposer en fonc-
- Soudure de la
- carrosserie
- Gestion du stock des caisses
- Préparation des caisses
- Contrôle de qualité et reprise éventuelle
- Préparation des côtés
- Gestion du stock des côtés
- Agrafage
- des
- composants
- Préparation des blocs avant
- Réception
- d’une
- commande
- fabrication
- Gestion du stock des blocs avant
- Transport et rendez-vous des
- composants
- Figure 3. Décomposition fonctionnelle d’un processus de fabrication.
- p.7 - vue 25/387
-
-
-
- 8 Systèmes informatiques répartis
- tions élémentaires reliées par des relations de précédence, selon le graphe de la figure 3. Plusieurs lignes de production fonctionnent en parallèle selon ce schéma. Les fonctions élémentaires comprennent des opérations de montage, de soudure, d’entrée ou de sortie de stock, de transport d,es composants entre les postes de travail.
- L’objectif du système est de coordonner les flux de pièces et de produits (gestion des stocks, coordination des mouvements) selon des consignes de production fixées, et de limiter les attentes entre opérations. Cela implique l’envoi de commandes vers des ordinateurs qui pilotent les soudeuses, les convoyeurs et les stocks.
- Le système travaille dans un environnement hostile où les risques de panne d’un ordinateur ou d’une machine sont élevés. Par ailleurs, l’organisation du travail de production évolue en permanence. En conséquence, le cahier des charges du système lui impose :
- — d’assurer la production (éventuellement ralentie), même en cas de panne d’un calculateur ou d’une machine,
- — d’autoriser, sans arrêt de cette production, le remplacement ou le dépannage de l’élément défaillant,
- — de permettre, toujours sans arrêt de la production, une modification aisée du logiciel pour s’adapter à l’évolution des conditions d’utilisation.
- La production d’une carrosserie comporte environ 50 opérations et dure environ 5 h ; à un instant donné, 2 000 carrosseries en moyenne sont en cours de montage dans l’atelier.
- 1.222 Organisation générale
- 1) Structure jonctionnelle
- La structure d’ensemble du système reflète celle du graphe des fonctions élémentaires : chacune d’elles est assurée par un « ensemble fonctionnel » géographiquement proche du poste de travail qu’il commande. Chaque ensemble fonctionnel dispose de ses propres programmes et données et peut travailler de manière autonome. Les ensembles fonctionnels communiquent entre eux au moyen de messages. Un ensemble fonctionnel supplémentaire, dit de supervision, reçoit copie de tous les mouvements de pièces et des messages d’avarie, pour l’entretien d’un «tableau de bord» et la conservation d’un historique.
- Les tâches assurées par le système sont donc classées en trois niveaux hiérarchiques :
- a) supervision,
- b) régulation du flux de production,
- c) commande des soudeuses, des stocks et des convoyeurs.
- 2) Structure matérielle
- Les composants du système informatique sont des mini-ordinateurs assurant la commande numérique des soudeuses, et des paires de mini-ordinateurs chargées de la régulation.
- p.8 - vue 26/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 9
- Les deux ordinateurs d’une paire effectuent le même traitement en parallèle et peuvent à tout moment se substituer l’un à l’autre en cas de défaillance. Ces paires communiquent entre elles par des lignes de transmission dont certaines sont également doublées. Cette structure redondante augmente la disponibilité du système.
- Ces composants sont géographiquement répartis selon la configuration présentée sur la figure 4.
- Supervision
- Régulation du flux de production
- Blocs
- D G
- Gestion des stocks
- Convoyage Soudure et agrafage finale
- Soudeuses
- pour
- préparation des pièces
- 25 terminaux réception des commandes
- Convoyeur
- rendez-vous
- paire de mini-ordinateurs.
- mini-ordinateur commandant un poste de travail.
- Figure 4. Configuration matérielle du système de conduite d’atelier de montage.
- La correspondance entre structure fonctionnelle et structure matérielle est réalisée par un moniteur de transport qui est chargé de l’acheminement des messages et qui est seul à connaître la localisation géographique de chaque ensemble fonctionnel. Un poste de travail particulier peut donc être physiquement déplacé sans entraîner d’autres modifications que celles des tables de transport. Le moniteur est composé d’un ensemble de programmes répartis sur les différentes paires.
- 1.223 Aspects de la répartition
- 1) Critères de choix d'une structure répartie
- La répartition géographique est une contrainte imposée : les postes de travail et les stocks sont répartis sur une superficie de 15 000 m2. Etant donné
- p.9 - vue 27/387
-
-
-
- 10 Systèmes informatiques répartis
- cette contrainte, les concepteurs du système avaient le choix entre une structure construite autour d’un ordinateur central (doublé pour assurer la disponibilité) relié aux autres éléments par des concentrateurs regroupant les communications, et une structure décentralisée telle que celle décrite en 1.222.
- Le choix final a résulté de considérations concernant le développement, la mise au point et la maintenance du logiciel : la structure répartie permet de mettre au point et de maintenir indépendamment les différents ensembles fonctionnels. La facilité de modification et d’évolution du système a été le deuxième facteur du choix.
- 2) Absence d'un organe centralisé de commande
- Les fonctions de commande sont réparties entre les différents ensembles fonctionnels ; l’ensemble superviseur n’assure que des fonctions d’enregistrement et le système peut fonctionner en son absence.
- 3) Disponibilité
- La disponibilité de l’atelier, qui garantit la continuité de la production, est assurée par la structure redondante des ensembles fonctionnels et des liaisons, et par la multiplicité des lignes de production.
- 1.23 UN RÉSEAU LOCAL A USAGE GÉNÉRAL : LE RÉSEAU ETHERNET
- 1.231 Objectifs
- On désigne sous le terme de réseaux locaux des systèmes informatiques répartis qui comportent plusieurs ordinateurs reliés entre eux par un système de communication, et qui présentent les caractéristiques générales suivantes :
- — le système est le plus souvent conçu comme un tout, et non constitué par connexion d’éléments prééxistants,
- — son étendue géographique est limitée, allant de quelques mètres à quelques kilomètres ;
- — le système de communication autorise le plus souvent des débits de transmission élevés qui peuvent être du même ordre que les débits internes aux ordinateurs connectés.
- Le système de conduite d’atelier étudié en 1.22 est un réseau local spécialisé; nous présentons ici un réseau local à usage plus général, développé par Xerox entre 1973 et 1975 pour les besoins internes de son centre de recherches.
- Dans le réseau Ethernet, chaque utilisateur dispose d’un ordinateur individuel qui peut lui fournir un certain nombre de services ; le réseau lui permet en outre d’accéder à des services communs, partagés entre les utilisateurs, et également de coopérer avec d’autres utilisateurs à des tâches communes. Il est ainsi possible d’équilibrer les investissements entre les «serveurs» (matériel et logiciel fournissant les services communs) et les ordinateurs
- p.10 - vue 28/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 11
- individuels, en conservant les avantages propres à chacun : grande capacité, fonctions spécialisées pour les services communs ; facilité d’accès et d’utilisation, autonomie de fonctionnement pour les postes de travail individuels.
- 1.232 Organisation générale
- La figure 5 schématise l’organisation générale du réseau.
- Serveur
- d’impression de textes
- Serveur de gestion de fichiers
- Répéteur
- Câble
- coaxial
- Ordinateur
- individuel
- Ordinateur
- individuel
- Figure 5. Schéma général du réseau local Ethernet.
- La voie de communication (« Ether ») est unique. Elle est constituée d’un câble coaxial partagé selon le principe de la diffusion avec réémission en cas de conflit, qui est exposé en détail au chapitre 4. Elle permet à deux stations quelconques d’échanger des informations, découpées en paquets, avec un débit de 3 Mbit/s. Les caractéristiques électriques du câble limitent sa longueur à 1 km environ, mais plusieurs câbles peuvent être reliés par des répéteurs pour former un réseau arborescent.
- A partir de son ordinateur individuel Alto, un utilisateur peut mettre en oeuvre :
- — des applications locales, qui utilisent uniquement les ressources de l’Alto (processeur, mémoire, écran, fichiers locaux sur disque amovible),
- — des applications «client-serveur» qui impliquent un échange entre l’Alto et un serveur spécialisé (ou avec l’Alto d’un autre utilisateur).
- Plusieurs services spécialisés sont disponibles.
- — Les fichiers peuvent être transférés dans les deux sens entre l’Alto d’un utilisateur et un serveur de grande capacité. Pour accéder à un fichier, l’utilisateur doit connaître le nom du serveur qui le détient ; ce renseignement peut lui être fourni par un serveur spécialisé qui gère un catalogue général.
- p.11 - vue 29/387
-
-
-
- 12 Systèmes informatiques répartis
- — Le contenu d’un fichier peut être imprimé sur une station spécialisée qui est une photocopieuse pilotée par un ordinateur. Elle reçoit sous une forme standard la description du fichier à imprimer.
- — Les utilisateurs peuvent échanger des messages entre eux, grâce à un service de messagerie.
- — Les utilisateurs peuvent aussi accéder à un système de « temps partagé », ou encore se raccorder à d’autres réseaux.
- La valeur élevée du débit d’information sur le réseau est une caractéristique déterminante dans la conception du système : elle permet aux utilisateurs de considérer les serveurs comme des extensions des ordinateurs individuels.
- 1.233 Aspects de la répartition
- Deux aspects de la répartition peuvent être mis en évidence dans le cas du réseau local Ethernet.
- 1) Relation « client-serveur »
- L’organisation client-serveur permet à un ensemble d’utilisateurs de partager un service commun. L’ordinateur client et l’ordinateur serveur communiquent en échangeant des messages à travers le réseau. Le client a l’initiative de l’échange, qui se déroule selon des règles définies (ou protocoles) dépendant de l’application. La gestion du partage (priorité, exclusion mutuelle, mise en attente et réveil des clients) est entièrement à la charge du serveur.
- 2) Services coopératifs
- Les fonctions de certains serveurs sont réalisées de manière répartie, c’est-à-dire qu’ils mettent en jeu plusieurs serveurs coopérants. Ainsi certains serveurs de gestion de fichiers sont en fait réalisés par la coopération de plusieurs serveurs élémentaires implantés sur des ordinateurs distincts. Ce groupement est néanmoins vu par le client comme un serveur unique. La coopération entre les serveurs élémentaires doit assurer :
- — l’interface avec les clients, car chaque serveur élémentaire peut servir de correspondant à un client qui demande un service,
- — le maintien de propriétés globales d’intégrité, parce qu’une opération qui met en jeu plusieurs fichiers gérés par des serveurs élémentaires différents doit apparaître au client comme une opération indivisible.
- 1.24 UN SYSTÈME MULTIPROCESSEUR : CM*
- 1.241 Objectifs
- On désigne sous le terme de multiprocesseurs des systèmes informatiques possédant plusieurs processeurs qui ont en commun tout ou partie de leur mémoire centrale.
- p.12 - vue 30/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 13
- CM* est un multiprocesseur expérimental développé entre 1975 et 1978 à l’Université Carnegie Mellon. Il est destiné à explorer les possibilités offertes par une architecture modulaire à processeurs multiples pour le traitement d’applications comportant un degré élevé de parallélisme d’exécution. Il doit permettre d’analyser les problèmes posés par la réalisation matérielle et l’exploitation d’une telle architecture. Parmi les principales applications traitées figurent la reconnaissance de la parole, le traitement des images, et plus généralement des problèmes de nature heuristique où la recherche d’une solution peut être accélérée par un traitement parallèle.
- La figure 6 schématise la structure fonctionnelle de CM* : un grand nombre de processeurs ont accès à une grande mémoire commune. Des ordres de grandeur caractéristiques sont 50 processeurs et 5 mégaoctets.
- P : processeur M : mémoire
- M
- Figure 6. Structure fonctionnelle de CM*.
- Les objets conservés dans la mémoire sont structurés en segments ; les processus qui s’exécutent sur les processeurs ont accès aux segments selon certaines règles de protection.
- 1.242 Organisation générale
- La réalisation de CM* a posé des problèmes complexes d’adressage et de protection que nous ne traitons pas ici. Une description schématique de l’architecture de CM*, vue sous l’angle de la communication entre éléments, est donnée en 3.52; les références citées en 1.5 fournissent une description détaillée.
- 1) Architecture matérielle
- La figure 7 schématise l’architecture matérielle de CM*. C’est une structure hiérarchique construite à partir d’ensembles élémentaires processeur-mémoire, ou molécules, regroupés en amas eux-mêmes reliés entre eux. La mémoire commune représentée sur la figure 6 est donc en fait l’union des mémoires locales à chaque molécule.
- Les adresseurs sont des organes d’aiguillage qui permettent à un processeur d’accéder à des blocs de mémoire situés hors de sa molécule ou de sori amas. Le passage par les adresseurs entraîne une perte de temps et peut donner lieu à des conflits entre processeurs ; la structure proposée n’est donc viable que si les références d’un processeur à la mémoire sortent rarement de sa
- p.13 - vue 31/387
-
-
-
- 14 Systèmes informatiques répartis
- P : processeur M : mémoire A : adresseur
- Figure 7. Structure matérielle de CM*.
- molécule et exceptionnellement de son amas. Cette hypothèse de localité, vérifiée pour les applications envisagées, a servi de base aux concepteurs de CM*.
- Une réalisation matérielle calquée sur la structure fonctionnelle de la figure 6 aurait comporté deux inconvénients difficiles à éviter : la perte de performances des processeurs due à l’exclusion d’accès à la mémoire commune, et la limitation de la capacité d’adressage des processeurs. La structure choisie autorise, avec les hypothèses de localité, un haut degré de parallélisme et reporte dans des organes spécialisés la fonction d’extension d’adressage. Deux autres avantages résultent de la structure modulaire du système : ce sont la facilité d’extension progressive, et la possibilité d’utiliser des composants existants pour les processeurs et mémoires des molécules (microprocesseurs LSI 11).
- 2) Structure d'une application
- Une application traitée sur CM* est mise en oeuvre par une tribu (« task force»), ensemble de processus qui coopèrent à une tâche commune. Ces processus communiquent entre eux en se partageant des segments ou en s’envoyant des messages au moyen de boîtes aux lettres. Les processus d’une tribu peuvent être créés ou détruits dynamiquement.
- Une application est décrite au moyen d’un langage qui permet de spécifier des relations entre la structure fonctionnelle de l’application (ensemble de processus, programmes et données) et la structure matérielle de CM*. Il est notamment possible de spécifier :
- — des contraintes de parallélisme physique entre deux processus, qui sont donc exécutés sur des processeurs distincts,
- p.14 - vue 32/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 15
- — des contraintes de proximité entre informations : on peut par exemple spécifier que deux segments doivent ou ne doivent pas se trouver dans la même molécule ou le même amas.
- Un exemple de structuration d’une application est fourni par un programme d’analyse d’images. Une image est découpée en tranches, dont chacune est traitée par un processus de traitement distinct. Tous ces processus exécutent le même programme d’analyse et chaque processus n’a besoin de communiquer qu’avec ceux qui traitent les tranches d’image voisines de la sienne. Un processus maître crée les processus de traitement, répartit les tâches entre eux, déclenche leur exécution et recueille les résultats de leur travail. Il communique avec eux par des boîtes aux lettres. L’ensemble du processus maître et des processus de traitement constitue une tribu dont l’organisation est schématisée sur la figure 8.
- Boîtes Processus
- aux lettres de traitement Image
- Processus maître /
- tranche n° 0 tranche n° 1
- tranche n° n
- Processus Donnée C3 Accès *----------------
- Figure 8. Structure de l’application « traitement d’images » sur CM*.
- Les contraintes d’exécution suivantes sont imposées par l’application :
- — tous les processus de la tribu doivent s’exécuter sur des processeurs distincts,
- — la tranche d’image attribuée à un processus doit résider sur la molécule où s’exécute ce processus.
- 1.243 Aspects de la répartition
- Deux aspects de la répartition peuvent être mis en évidence.
- 1) Interaction entre la structure jonctionnelle et la structure matérielle
- Tant pour l’architecture générale du système que pour l’organisation d’une application, les considérations de localité sont prépondérantes et ont une influence sur la structure matérielle.
- p.15 - vue 33/387
-
-
-
- 16 Systèmes informatiques répartis
- 2) Décomposition d'une tâche en processus coopérants
- La répartition des programmes et données oblige à prendre en compte des contraintes de parallélisme physique pour les processus et des contraintes de localisation et de partage pour les programmes et les données.
- 1.3 ESSAI DE CARACTÉRISATION DES SYSTÈMES INFORMATIQUES RÉPARTIS
- Les exemples qui précèdent ont permis de mettre en évidence divers aspects spécifiques de la répartition, mais il ne semble pas s’en dégager de façon immédiate un ensemble de critères permettant de caractériser un système informatique comme « réparti » ou « non réparti ». Pour mieux délimiter le champ de notre étude, nous analysons maintenant trois aspects des systèmes informatiques qui semblent a priori pertinents pour cette caractérisation : la structure matérielle, la structure fonctionnelle, et enfin les problèmes d’observation et de chronologie.
- 1.31 STRUCTURE MATÉRIELLE
- Il peut sembler à première vue que la structure matérielle d’un système fournit un critère simple de répartition, voire la base d’une classification. Un examen plus poussé montre qu’il n’en est rien.
- Considérons en effet un système dont le caractère «centralisé» paraît indiscutable : un ordinateur composé d’une unité centrale, seul organe actif, d’une mémoire, et de périphériques. Des modifications progressives peuvent lui être apportées :
- — adjonction de processeurs, comme des unités centrales ou des canaux d’entrée-sortie, reliés à la mémoire,
- — éloignement progressif des périphériques, que l’on relie à l’ordinateur par des lignes téléphoniques ou télégraphiques,
- — adjonction à chaque processeur d’une mémoire locale,
- — suppression de la mémoire commune et interconnexion des différentes unités (processeur et mémoire locale) par un bus,
- — éloignement progressif des unités précédentes, maintenant reliées par des lignes de transmission.
- Un certain nombre des configurations ainsi obtenues seraient sans doute universellement qualifiées de « réparties ». Pourtant, il est difficile de préciser où se fait la coupure; en particulier, l’éloignement progressif des composants et le remplacement des bus par des lignes de télé-transmission, permettent d’obtenir une gamme de débits pratiquement continue.
- Des classifications taxonomiques des systèmes répartis, selon leur structure d’interconnexion, ont néanmoins été tentées (voir par exemple [Anderson 75]).
- p.16 - vue 34/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 17
- 1.32 STRUCTURE FONCTIONNELLE
- Puisque la structure matérielle ne fournit pas de critère déterminant, intéressons-nous à la structure fonctionnelle d’une application considérée comme répartie. Un exemple concret, simplifié pour les besoins de l’exposé, nous servira de support.
- Soit un système informatique constitué d’un ensemble d’ordinateurs (ou stations) reliés à un système de communication qui donne à deux stations quelconques les moyens de communiquer entre elles (Transpac et Ethernet sont des exemples de tels systèmes de communication). On souhaite fournir aux usagers de ce système informatique un service de messagerie (ou « courrier électronique »), qui leur permette d’échanger des messages. Le mode de fonctionnement choisi est analogue à celui de la poste restante : chaque usager, identifié par un nom distinct, peut envoyer des messages à d’autres usagers et retirer ceux qui lui sont destinés. Supposons que chaque usager soit rattaché à une station bien définie, par laquelle il accède habituellement au système ; les spécifications de la messagerie imposent en outre qu’un usager puisse se présenter à n’importe quelle station pour émettre ou retirer des messages.
- Le service ainsi spécifié peut être réalisé de diverses manières.
- 1) Structure centralisée
- Tous les messages sont stockés sur une station particulière, dite centrale. Chaque usager y dispose d’une « boîte aux lettres » qui est identifiée par son nom, et qui recueille les messages qui lui sont destinés. Une opération de dépôt ou de retrait d’un message nécessite un échange d’information entre la station où s’effectue l’opération et la station centrale.
- Cette solution est simple à réaliser. Elle nécessite sur la station centrale un volume de stockage important. La disponibilité du service est déterminée par celle de la station centrale. Toute opération entraîne un transfert d’information depuis ou vers cette station.
- 2) Structure décentralisée
- La boîte aux lettres de chaque usager est gérée par sa station de rattachement. Le retrait d’un message est donc une opération locale dans le cas, supposé fréquent, où il s’effectue sur la station de rattachement du destinataire. Le dépôt ou le retrait d’un message sur une autre station nécessite un échange entre celle-ci et la station de rattachement du destinataire. Il est donc nécessaire de conserver et de tenir à jour dans chaque station un répertoire qui, pour chaque usager, indique sa station de rattachement.
- Cette solution offre une plus grande disponibilité : la panne d’une station n’empêche la réception des messages que pour les usagers qui lui sont rattachés. Le retrait d’un message depuis la station de rattachement du destinataire n’entraîne pas de transfert d’information. Le volume de stockage des messages est réparti sur l’ensemble des stations. Une copie du répertoire doit être conservée sur chaque station, ce qui est peu contraignant si les modifications du répertoire sont peu fréquentes.
- CORNAFION. — Systèmes informatiques répartis
- 2
- p.17 - vue 35/387
-
-
-
- 18 Systèmes informatiques répartis
- 3) Structure mixte
- On définit un ensemble de stations, dites relais. Chacune des autres stations est rattachée à une station relais et une seule. La station relais stocke les messages destinés aux usagers des stations qui lui sont rattachées. Tout usager dépend donc d’un relais et d’un seul. Tout message émis depuis une station S est d’abord envoyé à la station relais dont dépend S ; celle-ci détermine la station relais du destinataire et y expédie le message. Seules les stations relais possèdent des copies du répertoire. Cette structure est analogue à celle du réseau téléphonique, si les relais jouent le rôle des centraux.
- Les caractéristiques de cette solution sont intermédiaires entre celles des deux premières : la panne d’une station relais pénalise davantage d’usagers, mais il y a moins de répertoires à tenir à jour. La gestion des répertoires peut encore être simplifiée si on complète le nom d’un usager en lui adjoignant l’identification du relais dont il dépend ; dans ce cas, chaque relais n’a plus à gérer que le répertoire de ses usagers et la gestion des divers répertoires devient indépendante.
- C : station centrale. Structure centralisée A, B : usagers. Structure répartie .R : relais. Structure mixte
- Figure 9. Structures fonctionnelles d’un service de messagerie.
- Le choix d’une solution doit tenir compte des conditions d’exploitation et d’utilisation du système. Ainsi, la troisième solution peut être intéressante si une fraction importante du flux de messages est échangée entre des usagers qui dépendent d’un même relais (cette propriété de localité est fréquemment observée). Si en revanche les considérations de disponibilité sont prédomiT nantes, on peut modifier la troisième solution en rattachant chaque station à deux relais, ce qui double le volume de messages échangés et le volume de stockage nécessaire. Enfin, on peut noter que, dans la première et la troisième solution, une station peut se réduire à un simple terminal, ce qui n’est pas lé cas dans la seconde.
- Le choix d’une structure fonctionnelle peut influencer la structure matérielle, mais ne la détermine pas. Chacune des trois structures fonctionnelles peut s’implanter sur la même structure matérielle à condition que chaque station puisse communiquer avec toutes les autres.
- p.18 - vue 36/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 19
- En conclusion, il apparaît encore ici un continuum de modèles pour la structure fonctionnelle d’un système informatique. On peut en dégager quelques schémas caractéristiques dont il sera intéressant d’approfondir l’étude (par exemple le modèle client-serveur) mais non un critère ou une mesure de répartition.
- 1.33 OBSERVATION ET CHRONOLOGIE DANS UN SYSTÈME DE MACHINES ASYNCHRONES
- Un troisième point de vue est celui de l’élaboration d’un modèle qui représente l’évolution d’un système au cours du temps. De tels modèles existent pour les systèmes composés d’un processus unique ou d’un ensemble de processus. Ces modèles reposent sur l’hypothèse qu’il est possible de décrire entièrement l’état du système à certains instants déterminés. Un tel état est appelé point observable ; par extension, ce terme désigne également les instants d’observation. L’évolution du système se fait de manière discrète entre ces états. Un événement est défini par une modification d’un sous-ensem-ble de l’état, et peut donc être daté par un point observable ; étant donné deux événements, ou bien ils sont simultanés (et ne constituent en fait qu’un seul événement), ou bien il est possible de déterminer leur ordre.
- Une analyse plus fine des modèles qui comportent plusieurs processus concurrents montre qu’ils reposent sur une autre hypothèse implicite : la durée de transmission d’une information entre un processus et un autre est négligeable devant le temps qui s’écoule entre deux transitions d’état ; autrement dit, les points observables sont les mêmes, en pratique, pour tous les processus décrits. La non-vérification de cette hypothèse entraîne des conséquences dont le concepteur de systèmes doit tenir compte. C’est cette analyse que nous développons maintenant. Nous utilisons le terme de « machine » (au sens de « machine séquentielle ») pour désigner les organes d’exécution des différents processus du système.
- 1.331 Etat d’un ensemble de machines asynchrones
- Considérons un ensemble de machines fonctionnant de façon asynchrone! Par définition, ces machines ne comportent pas d’horloge commune et là séquence des points observables est différente d’une machine à l’autre. Notons ^ l’heure, exprimée dans le temps universel, du /c-ième point observable de la machine i. A l’instant t-, l’état de la machine i est défini, mais celui des autres machines ne l’est pas. La seule façon d’observer l’état instantané de toutes les machines consisterait à les arrêter chacune à son dernier point observable ; l’état du système global est alors l’ensemble des états des différentes machines.
- Une telle observation externe de l’état d’un système n’a qu’un intérêt théorique ; ce qui importe, c’est la vue que peut avoir de cet état un processus qui s’exécute sur une machine particulière du système. Ce processus ne peut obtenir des informations sur les autres machines du système qu’en échangeant des messages avec des processus situés sur ces autres machines.
- p.19 - vue 37/387
-
-
-
- 20 Systèmes informatiques répartis
- i ' !
- 1 l I
- _________________I_____________i______________L
- A t2 t:
- l2 [z 1;
- Figure 10. Points observables de deux machines asynchrones.
- 1.332 Conséquences de la variabilité des délais de transmission
- Le délai de transmission d’un message entre deux processus qui s’exécutent sur des machines différentes est l’intervalle de temps qui sépare l’événement « émission » sur la première machine de l’événement « réception » sur la seconde (ces deux événements étant datés par des points observables). Nous supposons que ce délai est :
- a) grand par rapport au temps qui sépare deux points observables d’une même machine,
- b) variable selon l’instant considéré, avec une dispersion pouvant être importante,
- c) variable d’un couple de machines à un autre.
- Il en résulte deux conséquences importantes :
- Conséquence I : à un instant donné, un processus s’exécutant sur une machine ne peut connaître que de manière approchée l’état d’une autre machine à cet instant (conséquence de la propriété a et de l’absence d’horloge commune).
- Conséquence 2 : l’ordre de réception d’un ensemble de messages par une machine peut être différent de l’ordre d’émission de ces messages (conséquence des propriétés b et c).
- Machine 1 Temps Machine 2
- Machine 1
- Machine 2
- Réception de A
- Temps
- Machine 3
- Emission de A
- Figure 11. Effet de la variabilité des délais de transmission.
- La figure 11 illustre cette situation : la machine 2 reçoit le message B avant le message A et le message D avant le message C alors que A a été émis avant B (sur des machines différentes) et C avant D (sur la même machine). Nous étudions au chapitre 8 des méthodes permettant de remédier à ces effets dans les cas où il importe de connaître l’état exact d’une partie de système ou de déterminer l’ordre de certains événements.
- p.20 - vue 38/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 21
- 1.333 Conséquences des risques de défaillances
- Les systèmes peuvent être sujets à des défaillances qui entraînent l’arrêt de certaines machines ou la perte de certains messages. Il n’est pas toujours aisé de détecter ces pannes ou ces pertes d’information et de les signaler au reste du système : ainsi la détection d’une coupure de courant sur une machine et l’envoi de messages d’alarme nécessitent une source d’énergie d’appoint; qui peut être défaillante ; les messages d’alarme peuvent eux-mêmes se perdre^
- On peut limiter les conséquences de la perte des messages en numérotant séquentiellement tous les messages émis par chaque machine et en transmettant ce numéro dans le message. Ainsi, une machine qui reçoit le message de numéro n provenant d’une autre machine peut vérifier que tous les messages précédant n ont été reçus; mais elle ne peut pas déterminer si un message de numéro n + 1 a ou non été émis.
- Conséquence 3 : On ne peut jamais être certain que deux machines disposent exactement des mêmes informations sur l’état d’une même partie du système.
- 1.334 Exemples
- Les considérations qui précèdent s’appliquent dès que le système observé comporte plus d’un processeur autonome. Elles sont donc aussi bien valables pour des systèmes habituellement considérés comme « centralisés », comme le montre l’exemple suivant.
- Exemple 1. Considérons un système informatique constitué d’une unité centrale, d’une mémoire principale et d’un disque à têtes fixes piloté par un canal autonome. Le transfert d’information entre la mémoire et le disque se déroule sous le contrôle du canal. Le canal est lui-même activé par une instruction de l’unité centrale ; il signale la fin du transfert par une interruption. Nous nous intéressons à trois aspects de la gestion du transfert.
- a) Supposons qu’un ordre regarder permette de connaître la position instantanée du disque, c’est-à-dire le numéro du secteur qui passe sous les têtes. Il paraît alors intéressant de classer les demandes de transfert dans l’ordre du défilement des secteurs et de servir le secteur qui suit immédiatement celui en cours de lecture. Mais cette méthode, qui semble minimiser le délai d’attente rotationnelle, peut être mise en défaut : en effet, entre l’exécution par le canal de l’ordre regarder et de l’ordre de transfert, il peut s’écouler un temps variable car une interruption prioritaire peut être prise en compte entre ces deux événements. Ce temps peut dépasser la durée de défilement d’un secteur. On subit ici l’efiFet de la conséquence 1 : la connaissance par l’unité centrale de la position instantanée du disque n’est qu’ approximative.
- b) La fin d’un transfert est signalée par le canal, qui active un niveau d’interruption. Le sous-programme déclenché par l’interruption en demande la cause ; le canal consulte alors le disque pour obtenir un mot d’état qu’il renvoie. Supposons que le canal commande plusieurs disques, et qu’il n’y ait qu’un niveau d’interruption. Si plusieurs disques terminent un transfert avant que la cause de l’interruption n’ait été demandée par l’unité centrale,
- p.21 - vue 39/387
-
-
-
- 22 Systèmes informatiques répartis
- le premier mot d’état recueilli par le canal et transmis à l’unité centrale est celui du disque le plus prioritaire et non celui du premier à avoir terminé. L’unité centrale ne peut donc reconstituer l’ordre exact des fins de transfert. C’est une illustration de la conséquence 2.
- c) La fin « normale » d’un transfert est détectée par le canal (par décompte des octets transmis), et la fin « anormale » par le disque (par détection d’une erreur de parité). Ces deux causes d’arrêt entraînent chacune une interruption. Supposons maintenant qu’une erreur de parité se produise au cours du transfert du dernier octet, alors que le canal a déjà envoyé une interruption de fin normale. Si l’unité centrale répond à cette interruption avant que le canal n’ait été averti de l’erreur, le signal correspondant est perdu et le sous-programme d’interruption agit comme si le transfert s’était déroulé normalement. Cette séquence d’événements illustre la conséquence 3.
- Dans un ordinateur unique, ces problèmes sont en fait académiques : ils sont aisément résolus au moyen d’hypothèses sur les vitesses relatives des organes en cause et de temporisations convenables.
- Exemple 2. L’effet a) de l’exemple 1 ci-dessus peut être pallié si on connaît, en nombre de secteurs, une borne supérieure n de l’erreur commise sur la position du disque. Il faut alors servir le secteur placé n 4-1 positions après le secteur courant (à condition que cette marge de sécurité soit inférieure à un demi-tour du disque !).
- Dans les systèmes qui comportent plusieurs ordinateurs, ces problèmes deviennent plus apparents car le temps moyen de transmission des messages entre ordinateurs devient très grand devant le temps de cycle interne de chacun d’eux.
- 1.34 CONCLUSION
- Nous avons analysé, selon plusieurs critères, une classe de systèmes informatiques comportant plusieurs éléments pouvant fonctionner de manière autonome. Ces éléments sont reliés par un système de communication qui leur permet d’échanger de l’information en vue de coopérer à une tâche commune ou d’accéder à des services communs. Les différents critères examinés ne permettent pas une classification stricte de ces systèmes, mais font apparaître un continuum de caractéristiques. On peut néanmoins dire que les systèmes communément qualifiés de «répartis» présentent, à un degré plus ou moins marqué, une au moins des propriétés suivantes :
- — le temps moyen de transfert d’une information entre deux éléments du système n’est pas négligeable, et peut même être grand, devant l’intervalle qui sépare deux transitions d’état de ces éléments,
- — la probabilité de défaillance (perte ou altération d’information) dans la communication entre éléments est grande par rapport à la probabilité de défaillance dans les communications internes à un élément,
- p.22 - vue 40/387
-
-
-
- Qu’est-ce qu’un système informatique réparti ? 23
- — la responsabilité de certaines décisions (allocation de ressources, activation de processus) n’est pas confiée à un élément unique, mais est répartie entre plusieurs éléments.
- En conséquence, des décisions doivent être prises malgré une connaissance partielle ou erronée des informations nécessaires, et des éléments différents risquent de prendre des décisions contradictoires.
- 1.4 PRÉSENTATION DE L’OUVRAGE
- La première partie de cet ouvrage est consacrée à l’étude de la communication entre parties d’un système informatique, notion dont l’analyse ci-dessus a montré l’importance.
- Le chapitre 2 est une introduction aux concepts de la communication. Le chapitre 3 présente les principaux modes de réalisation des voies de communication. Le partage de ces voies entre plusieurs utilisateurs est étudié au chapitre 4. Enfin, le chapitre 5 présente les méthodes de mise en oeuvre des principaux modes de communication.
- Les problèmes spécifiques de la répartition dans les systèmes informatiques font l’objet de la seconde partie. Après une introduction à ces problèmes (chapitre 6), nous présentons au chapitre 7 les méthodes de structuration et de décomposition qui assurent l’exécution répartie d’une application, ainsi que les méthodes de désignation des objets. Le chapitre 8, consacré à la synchronisation, présente notamment des méthodes qui permettent de résoudre les problèmes d’observation signalés en 1.33. Le chapitre 9 traite de l’allocation de ressources et le chapitre 10 de la gestion cohérente d’informations réparties.
- Beaucoup des problèmes traités, comme la synchronisation et l’allocation des ressources, se posent déjà dans les systèmes classiques. Nous ne rappelons pas systématiquement, dans ces domaines, les solutions applicables aux systèmes à mémoire commune, mais nous essayons de montrer les conséquences de la répartition. D’autres aspects, en revanche, sont nouveaux, comme l’ordonnancement des événements ou la gestion de copies multiples d’informations réparties.
- A la fin de l’ouvrage, nous présentons sous le titre d’« illustrations » plusieurs études de cas destinées à montrer l’application concrète des principes ou des techniques exposés. Ces études ne visent pas à être exhaustives, par souci de clarté, mais aussi parce que beaucoup de systèmes cités sont expérimentaux et qu’ils subissent de continuelles modifications.
- 1.5 RÉFÉRENCES BIBLIOGRAPHIQUES
- Nous donnons ici :
- — une liste de références permettant de trouver des informations complémentaires sur les exemples décrits en 1.2,
- p.23 - vue 41/387
-
-
-
- 24 Systèmes informatiques répartis
- — une liste d’ouvrages généraux sur la téléinformatique, les réseaux et les systèmes informatiques répartis.
- 1) Références sur les exemples
- a) Sur le réseau Transpac : on trouvera des informations générales destinées aux utilisateurs dans [Transpac 77] ; la structure gfénérale du réseau est décrite dans [Després 76a] et les choix techniques de conception sont discutés dans [Després 76b].
- b) Sur la gestion de l’atelier de mécanique : les choix de conception et de réalisation sont décrits dans [Kaiser 78] et [Gaudé 80].
- c) Sur le réseau Ethernet : la structure des ordinateurs Alto et les principaux services disponibles sont décrits dans [Thacker 79], et le système de communication Ethernet dans [Metcalfe 76 ].
- à) Sur le système CM* : la structure matérielle du multiprocesseur CM* est décrite dans [Swan 77] ; l’adressage et la protection des objets sont décrits dans [Comafion 77b] ; les principes de structuration d’une application multi-processus sont présentés dans [Jones 79] ; un système d’exploitation réparti est décrit dans [Ousterhout 80].
- 2) Références générales
- a) Sur la téléinformatique et les réseaux d’ordinateurs : [Abramson 73a] et [Davies 73] sont des références complètes mais un peu anciennes. Des références plus récentes sont [Clavier 72] (téléinformatique), [Macchi 79] (téléinformatique et réseaux) et [Schwartz 77, Davies 79] (réseaux).
- b) Sur les systèmes informatiques répartis, les ouvrages de synthèse sont encore peu nombreux. [Bochmann 79a] couvre les aspects relatifs au paralléT lisme et aux protocoles de communication.
- RENVOIS
- Références citées dans le chapitre 1
- Abramson 73a, Anderson 75, Bochmann 79a, Clavier 72, Cornafion 77b, Davies 73, Davies 79, Després 76a, Després 76b, Gaudé 80, Jones 79, Kaiser 78, Macchi 79, Metcalfe 76, Ousterhout 80, Scanlon 78, Schwartz 77, Swan 77, Thacker 79, Transpac 77.
- Illustration concernant le chapitre 1
- 17.
- Principaux termes définis dans le chapitre 1
- Réseau local, multiprocesseur, état (d’un système), point observable (d’uil système).
- p.24 - vue 42/387
-
-
-
- PREMIERE PARTIE
- LES SYSTÈMES DE COMMUNICATION
- Chapitre 2. Concepts et outils de la communication. Chapitre 3. Description des voies de communication. Chapitre 4. Partage des voies de communication. Chapitre 5. Gestion de la communication.
- p.25 - vue 43/387
-
-
-
- p.26 - vue 44/387
-
-
-
- CHAPITRE 2
- CONCEPTS ET OUTILS DE LA COMMUNICATION
- Dans son acception usuelle, le ternie de communication désigne l’opération par laquelle plusieurs entités échangent de l’information; plus précisément, l’une d’entre elles, l’émetteur, transmet à une ou plusieurs autres, les récepteurs, une information appelée message.
- L’objet de ce chapitre est de présenter les concepts liés à la communication dans les systèmes informatiques. Des exemples nous servent d’abord en 2.1 à introduire les notions fondamentales. Les définitions de base sont présentées en 2.2. Les fonctions des systèmes de communication et les problèmes a résoudre pour leur réalisation sont analysés en 2.3.
- 2.1 EXEMPLES INTRODUCTIFS
- Nous considérons dans tous les exemples une communication vocale entre deux ou plusieurs individus, appelés ici les correspondants. Nous présentons une suite de cas de complexité croissante pour mettre en évidence les principaux problèmes posés par cette communication.
- 2.11 DIALOGUE SUR UNE LIGNE DIRECTE 2.111 Définitions
- Un dialogue est une communication entre deux correspondants qui jouent chacun alternativement le rôle d’émetteur et de récepteur. Dans ce premier exemple, deux correspondants A et B peuvent communiquer au moyen d’un interphone. Ce système se compose d’une ligne de transmission reliant deux postes, dont chacun comporte un combiné et une sonnerie. Les sonneries sont commandées par la position des combinés selon le schéma simple donné sur la figure 1.
- p.27 - vue 45/387
-
-
-
- 28 Systèmes informatiques répartis
- S : sonnerie
- Position des interrupteurs
- Combiné raccroché
- Combiné décroché
- • D ' R - D
- • R
- Figure 1. Communication par interphone : dispositif d’appel.
- Si un correspondant décroche son combiné, il fait retentir la sonnerie de l’autre jusqu’à ce que ce dernier décroche à son tour. Un dialogue se déroule comme suit : l’un des correspondants, soit A, appelle l’autre en décrochant son combiné. Si B répond, le dialogue peut commencer ; il se poursuit jusqu’au moment où l’un des correspondants l’arrête en raccrochant son combiné. Si B ne répond pas, la communication ne peut être établie et A peut alors renouveler sa tentative à un instant ultérieur.
- On peut distinguer dans cet exemple plusieurs éléments inhérents à toute communication.
- 1) Le dispositif de communication
- Ce dispositif comprend :
- — une partie accessible aux correspondants (pour chacun d’eux son appareil téléphonique) avec les fonctions d’émission (le microphone), de réception (l’écouteur) et d’appel (le combiné et la sonnerie) ;
- — une partie inaccessible aux correspondants (la ligne) qui transmet les messages et le signal d’appel.
- 2) Les phases de la communication
- Le dialogue se déroule en trois phases :
- — l’appel, destiné à établir la communication (si la communication ne peut être établie, l’opération s’arrête là),
- — l’échange d’information proprement dit,
- — la rupture de la communication.
- 3) Les règles d'utilisation
- Chacune des phases ci-dessus est soumise à des règles particulières qui régissent l’emploi du dispositif de communication. Destinées à être appliquées par des personnes, ces règles peuvent ne pas être très formalisées. On peut par exemple les énoncer ainsi :
- — appel : en l’absence de réponse, l’appelant doit attendre trente secondes avant de raccrocher ; l’appelé doit envoyer un signal indiquant qu’il est prêt à recevoir et que le dialogue peut commencer ;
- — échange d’information : les deux correspondants doivent parler alternativement et non simultanément;
- p.28 - vue 46/387
-
-
-
- Concepts et outils de la communication 29
- — rupture : les deux correspondants doivent arriver à un accord mutuel sur le moment de fin du dialogue ;
- — reprise après coupure accidentelle : l’initiative de la reprise revient à l’appelant initial.
- Remarquons que dans le cas où la communication doit être extrêmement fiable (sans ambiguïté ni perte d’information) comme dans le contrôle de la navigation ou les communications militaires, les règles doivent devenir très précises. Ainsi, par exemple, tout message est terminé par un signal explicite indiquant sa fin et invitant l’autre correspondant à parler ; tout message reçu est répété pour vérifier sa bonne réception.
- Plusieurs termes peuvent maintenant être introduits; leurs définitions précises sont données en 2.2 :
- — on appelle voie le dispositif de communication décrit en 1), qui permet la communication entre les deux correspondants qui l’utilisent;
- — pour chacun des correspondants, on appelle interface la partie de la voie qui lui est accessible ét sur laquelle il peut agir, c’est-à-dire ici l’appareil téléphonique et plus précisément l’ensemble { émetteur, récepteur, organe d’appel} ;
- — on appelle protocole l’ensemble des règles d’utilisation de l’interface convenues par les correspondants pour la réalisation d’une fonction particulière. De façon plus précise, on peut distinguer un protocole d’appel, dont l’objet est d’établir la communication entre les correspondants, un protocole de dialogue, qui règle l’échange d’information proprement dit, un procotole de rupture qui s’applique à la terminaison de la communication et un protocole de reprise en cas de coupure accidentelle.
- Il est utile de pouvoir décrire les protocoles de communication de manière complète et non ambiguë. Plusieurs formalismes sont utilisés (voir 2.33). Nous avons choisi dans cet ouvrage celui des réseaux d'évaluation [Nutt 72], dérivé des réseaux de Pétri, que nous allons maintenant présenter.
- 2.112 Description des protocoles
- Un réseau d’évaluation est un graphe orienté qui possède trois types de noeuds :
- — les états (représentés par un disque) (O),
- — les requêtes (représentées par un rectangle) ( ),
- — les transitions (représentées par une barre horizontale) (—).
- Le graphe est construit selon le schéma de base ci-dessous :
- R
- p.29 - vue 47/387
-
-
-
- 30 Systèmes informatiques répartis
- Lorsque le système ou le sous-système décrit est dans l’état E, l’arrivée de la requête R provoque une transition qui le fait passer dans l’état F.
- A chaque transition peuvent être associées des actions :
- a) L’émission d’une requête est notée par un triangle étiqueté par le nom de la requête (-> R ).
- b) Une action plus complexe peut être exécutée. Elle est décrite suivant le cas soit par une suite d’instructions, soit par l’appel d’une procédure décrite séparément.
- c) L’état final ou l’action associée à une transition peut dépendre d’une condition, représentée par une variable C à plusieurs valeurs C1?..., C„. Le schéma correspondant est alors :
- C„ : R,
- C, :R
- cas C dans
- Ci : < état final Fl} émission de ) C„ : < état final F„, émission de R„ ) fcas
- Construisons, à titre d’exemple, une représentation des protocoles d’appel et de rupture d’une communication par interphone. Les événements significatifs sont les actions de décrocher et de raccrocher le combiné, qui sont représentées par l’envoi sur la ligne de requêtes notées respectivement D et R. La décision, prise par l’un des correspondants, de décrocher ou de raccrocher le combiné, est représentée par une requête d’origine locale, notée (D) ou (R).
- La figure 2 donne, pour un correspondant, la représentation de ces protocoles (le schéma est identique pour les deux correspondants). Pour simplifier sa compréhension, nous avons séparé le schéma en trois parties :
- à) le protocole d’appel lorsque le correspondant joue le rôle d’appelant,
- b) le protocole d’appel lorsque le correspondant joue le rôle d’appelé,
- c) le protocole de rupture (où la distinction entre appelant et appelé est sans objet).
- L’évolution globale de l’état d’un correspondant est représentée par l’union de ces trois schémas, en regroupant en un seul les états désignés par le même nom.
- Remarque 1. L’état d’un correspondant peut suivre deux évolutions différentes (schéma a ou b) suivant que c’est lui ou l’autre qui décroche le premier son récepteur. Dans le premier cas, il passe par l’état Sr (sonnerie chez l’autre), dans le second par l’état S (sonnerie chez lui).
- Remarque 2. Nous excluons la possibilité d’événements simultanés: Si les deux correspondants décrochent « en même temps », nous admettons que ces deux événements sont toujours ordonnés : on peut déterminer un
- p.30 - vue 48/387
-
-
-
- Concepts et outils de la communication 31
- (a) Protocole d’appel côté appelant
- (b) Protocole d’appel côté appelé
- (c) Protocole de rupture
- Commandes
- D : appel (« décrocher ») (D) : décision d’appeler R : rupture (« raccrocher ») (R) : décision de raccrocher
- Etats
- N : neutre
- S : sonnerie chez moi Sx : sonnerie chez l’autre L : communication établie
- Figure 2. Protocoles d’appel et de rupture d’une communication par interphone.
- appelant et un appelé. La requête transmise par la voie à l’appelé lui parvient avant que sa décision de décrocher ne soit prise en compte.
- Remarque 3. Avec les hypothèses de fonctionnement que nous avons choisies, le couplage entre les correspondants est très fort : l’état de chacun d’eux est entièrement déterminé par l’état de l’autre, les couples d’états permis étant (N, N) ; (5, SJ ; (Sl5 S) ; (L, L).
- Remarque 4. Dans la séquence de rupture, le correspondant qui raccroche le premier déclenche sa propre sonnerie qui continue à retentir jusqu’à ce que l’autre ait raccroché à son tour (une modification simple du dispositif d’appel permettrait d’éviter ce phénomène, voir exercice 1).
- 2.12 DIALOGUE A TRAVERS UN RÉSEAU DE COMMUNICATION
- Dans la réalité, pour les raisons économiques mentionnées en 1.21, les correspondants sont le plus souvent reliés, non par un ensemble de lignes directes, mais par un réseau de communication, qui remplit trois fonctions :
- — permettre à chacun des correspondants qui y sont reliés de dialoguer avec un autre correspondant désigné,
- — permettre le déroulement simultané de plusieurs dialogues en partageant entre eux l’ensemble des ressources du réseau (lignes, commutateurs),
- — éviter les interférences entre plusieurs dialogues distincts.
- p.31 - vue 49/387
-
-
-
- 32 Systèmes informatiques répartis
- Un exemple simple est fourni par le réseau interne d’une entreprise. Chaque correspondant y est désigné de manière unique par un numéro d’appel. Toute communication commence par une phase de numérotation, où l’appelant communique au réseau le numéro de l’appelé. La sélection est faite par un commutateur central qui établit la communication ou renvoie un signal occupé si l’appelé est déjà en communication. Une fois établie, la communication se déroule comme dans le cas décrit en 2.11.
- Pour permettre le dialogue entre des correspondants reliés à plusieurs réseaux internes appartenant à des centres différents, chaque réseau est relié, par l’intermédiaire d’un correspondant particulier appelé standard, à un réseau inter-centres (fig. 3). Chaque réseau interne est désigné, dans ce réseau intercentres, par un numéro de centre. A l’extérieur de son réseau, un correspondant est connu des autres par un nom global constitué du couple (nom de centre, nom de correspondant). La mise en communication de deux correspondants A et B appartenant à des centres différents est réalisée par l’intermédiaire de leurs standards qui disposent d’annuaires, ou tables de correspondance entre noms et numéros.
- Réseau de communication
- annuaire annuaire local des centres
- C : commutateur S : standard A, B : corrèspondants
- Figure 3. Réseau de communication.
- On peut encore imaginer que chaque correspondant établit ses communications par l’intermédiaire d’un secrétaire à qui il ne communique que le nom du correspondant appelé, et qui se charge d’établir la communication, locale ou distante, en utilisant l’annuaire local ou les services du standard. Le correspondant appelant ne fait plus de distinction entre appel local ou à distance, et peut même ignorer l’existence des standards. Le système offre maintenant à
- p.32 - vue 50/387
-
-
-
- Concepts et outils de la communication 33
- ses utilisateurs une interface analogue à celle d’un simple réseau interne, puisque la fourniture d’une information unique (le nom de l’appelé) suffit pour établir la communication.
- Par rapport au cas de la ligne directe, trois problèmes nouveaux sont introduits.
- 1) La désignation, c’est-à-dire l’association d’une information de désignation (nom, numéro) à une entité désignée (centre, correspondant). L’accès à l’entité désignée à partir de l’information de désignation est réalisé par le système de communication au moyen d’un mécanisme qui peut mettre en jeu plusieurs étapes (commutateur, secrétaire, standards).
- 2) Le partage des ressources d’un système entre plusieurs communications. Nous n’avons pas développé cet aspect dans l’exemple, mais tout utilisateur d’un réseau téléphonique est familier des phénomènes d’attente qui proviennent d’une charge excessive de commutateurs ou de lignes partagés entre plusieurs dialogues.
- 3) La construction d'interfaces et de protocoles « étendus » au moyen d’interfaces et de protocoles existants ; une fois cette extension réalisée, on .peut se placer à un niveau d’observation défini par ces interfaces et protocoles étendus en oubliant les interfaces et protocoles primitifs. Cette démarche est analogue à celle utilisée pour la construction de programmes (abstraction et raffinement).
- 2.13 COLLOQUE ENTRE PLUSIEURS CORRESPONDANTS
- On appelle colloque une communication à laquelle participent plus de deux correspondants. Des exemples nous permettront d’illustrer deux aspects de ce mode de communication : le partage de la voie et la transmission de l’information.
- 2.131 Partage de la voie
- Soit une réunion de N personnes (N > 2) assises autour d’une table ; chacune peut, à un moment donné, désirer diffuser une information à l’ensemble des N — 1 autres. Chaque personne peut ensuite réagir aux informations qu’elle reçoit en diffusant aux autres de nouvelles informations. L’expérience courante permet de distinguer divers modes de fonctionnement.
- 1) Fonctionnement sans règle
- Divers phénomènes peuvent être constatés comme la perte d’information (messages brouillés) lorsque plusieurs personnes parlent en même temps, la monopolisation de la communication par une personne ou un sous-groupei, ou la formation de sous-groupes fonctionnant indépendamment.
- Les deux méthodes décrites ci-après sont couramment utilisées pour éviter ces inconvénients ; définition d’une règle (ou protocole) acceptée et suivie par
- p.33 - vue 51/387
-
-
-
- 34 Systèmes informatiques répartis
- l’ensemble des participants, ou présence d’une personne (le président) chargée de mettre en oeuvre une règle de fonctionnement.
- 2) Respect d'une règle
- Un exemple de règle simple est celui du « tour de table » : une seule personne parle à la fois ; son temps de parole est limité par un délai fixé à l’avance ; lorsqu’elle a terminé, ou lorsque le délai s’est écoulé, elle passe la parole à la personne suivante. Un procédé quelconque (tirage au sort, ordre alphabétique des noms) détermine le premier orateur.
- 3) Arbitrage d'un président
- Une personne privilégiée, le président, alloue le temps de parole aux demandeurs. Il peut mettre en œuvre tout protocole fixé à l’avance ou défini par les participants. Le bon fonctionnement du système repose sur la fiabilité du président.
- 2.132 Transmission de l’information
- Certaines voies, comme les liaisons radioélectriques, permettent de diffuser une information à un ensemble de correspondants et se prêtent donc aisément à la mise en œuvre d’un colloque. En revanche, si on ne dispose que de voies permettant le dialogue, la diffusion de l’information est une opération complexe. Pour l’illustrer, montrons trois façons d’effectuer la diffusion d’une circulaire à toutes les personnes d’une entreprise.
- 1) Diffusion directe
- L’émetteur envoie une copie de la circulaire à chaque personne.
- 2) Diffusion par chaînage
- L’émetteur rédige une circulaire, y adjoint une liste de circulation, et l’envoie au premier de la liste ; celui-ci, l’ayant lue, la passe à un autre membre de la liste et ainsi de suite jusqu’à ce qu’elle revienne à l’émetteur.
- 3) Diffusion hiérarchisée
- L’émetteur envoie une copie de la circulaire au secrétariat de chaque service. Chacun de ces secrétariats la diffuse dans le service suivant l’une des méthodes 1) ou 2).
- Ces trois méthodes peuvent être comparées selon divers critères : nombre de copies nécessaires, délais, fiabilité, souplesse en cas de changement d’adresse, etc. On notera que chacune des méthodes nécessite de pouvoir transmettre une information à un correspondant désigné.
- 2.14 PLAN DE L’ÉTUDE
- Les exemples qui viennent d’être traités en 2.11, 2.12 et 2.13 avaient pour but d’introduire les principaux concepts qui interviennent dans la communication d’information entre plusieurs entités. Nous allons maintenant préci-
- p.34 - vue 52/387
-
-
-
- Concepis et outils de la communication 35
- ser le champ de notre étude : la communication dans les systèmes informatiques. Les informations transmises se réduisent alors à des suites de bits.
- Nous présentons d’abord de manière plus précise en 2.2 les propriétés générales d’un système de communication : composants principaux (voie, interface, protocole), nature de l’information transmise (messages). Les principales fonctions d’un système de communication (désignation des correspondants, gestion des voies, synchronisation, traitement des erreurs) et les problèmes posés par leur mise en oeuvre sont introduits en 2.3. Le plan de l’étude des systèmes de communication est enfin présenté en 2.4.
- 2.2 DÉFINITIONS GÉNÉRALES
- L’interaction entre deux entités en communication nécessite la présence d’un objet accessible à ces deux entités. Nous appelons cet objet la voie de communication ou plus simplement la voie (le terme de « médium » est parfois utilisé). Les voies peuvent être réalisées sous des formes très diverses : mémoire, ligne, liaison optique, radioélectrique ou acoustique. On trouvera dans le chapitre 3 l’étude détaillée des principaux modes de réalisation rencontrés dans les systèmes informatiques.
- Une voie peut être partagée entre plusieurs couples d’entités communicantes mutuellement indépendants. Il est commode, dans ce cas, de considérer qu’il existe autant de voies que de couples, pour séparer les problèmes propres à la communication de ceux liés au partage de la voie. Chacune des voies ainsi définies est appelée voie virtuelle ou voie logique. Les différentes techniques de partage des voies (multiplexage, compétition, réservation) font l’objet du chapitre 4.
- Nous allons maintenant préciser les notions de protocole, d’interface et de système de communication.
- 2.21 PROTOCOLES ET INTERFACES 2.211 Interfaces
- Une voie de communication est représentée pour une entité communicante par un ensemble d’informations (structures de données ou grandeurs physiques), qui décrivent l’état de la voie ; elle lui est accessible au moyen d’opérations qui permettent de consulter ou de modifier cet état. L’usage de ces structures de données et de ces opérations est régi par un mode d’emploi qui définit en particulier les séquences d’opérations permises. L’ensemble des structures de données, des opérations et du mode d’emploi constitue l’interface de la voie pour l’entité considérée. Une interface peut avoir une forme matérielle ou logicielle.
- Une interface matérielle se présente, par exemple, sous la forme d’un connecteur portant un ensemble de broches sur lesquelles les informations sont émises ou reçues sous la forme de tensions électriques. La spécification de
- p.35 - vue 53/387
-
-
-
- 36 Systèmes informatiques répartis
- l’interface définit les caractéristiques géométriques des connecteurs, énumère les signaux qui peuvent être émis ou reçus sur chaque broche ainsi que les combinaisons de signaux permises. Un exemple de spécification d’une telle interface matérielle est donné en illustration 1.
- Üne interface logicielle est un ensemble de variables et de procédures qui peuvent être spécifiées par l’une des méthodes habituellement utilisées en programmation : énumération des valeurs permises pour les variables ou pour les paramètres des procédures, description de l’effet d’une procédure par pré-et post-conditions.
- 2.212 Protocoles
- Considérons plusieurs entités qui communiquent entre elles par une voie que chacune utilise au moyen d’une interface. Ces entités communiquent en vue de réaliser certaines fonctions. L’exécution d’une fonction donnée nécessite que les entités communicantes utilisent leurs interfaces suivant un ensemble de règles opératoires qui constituent un protocole pour la fonction considérée. Ces règles définissent, pour chaque entité, l’enchaînement de ses actions et ses réponses aux diverses informations qu’elle peut recevoir.
- Il est important de noter qu’un protocole n’est défini que pour l’exécution d’une fonction déterminée. Il peut donc exister entre deux entités communicantes plusieurs protocoles correspondant chacun à une fonction particulière et utilisant tous les mêmes interfaces.
- Les protocoles peuvent être spécifiés selon diverses méthodes qui seront examinées en 2.33. Le formalisme utilisé dans cet ouvrage a été décrit en 2.1. L’illustration 3 contient un exemple de description complète d’un protocole pour la transmission d’informations sur un bus.
- 2.22 SYSTÈME DE COMMUNICATION
- 2.221 Niveaux de communication et hiérarchie de protocoles
- Il est souvent commode d’utiliser la notion de niveau d’observation (ou d’abstraction) pour définir une entité. A chaque niveau correspond une définition de l’état qui caractérise l’entité observée à ce niveau. L’état pour un niveau et les fonctions d’accès qui permettent de modifier cet état peuvent être exprimés de manière plus fine en fonction des états et fonctions d’accès des niveaux inférieurs. A cet effet, on définit l’interface entre un niveau i et un niveau j > i comme l’ensemble des fonctions et des structures de données définies au niveau i et accessibles depuis le niveau j. Une convention fréquente est celle de la hiérarchie stricte, où chaque niveau i n’a d’interface qu’avec le niveau i + 1 et n’est accessible à aucun autre niveau. Il existe un niveau élémentaire (zéro) au-dessous duquel on convient de ne pas descendre.
- Soit deux entités communicantes A et B décrites selon une même hiérarchie de niveaux, et soit une voie de communication (primitive) reliant les niveaux i
- p.36 - vue 54/387
-
-
-
- Concepts et outils de la communication 37
- de A et B (notés At et B;). L’ensemble (At, voie, constitue lui-même une voie de communication étendue entre les niveaux Ai+letBi+l.
- Interface
- Protocoles niveau i
- niveau i
- niveau i — 1
- Voie primitive (niveau i — 1)
- /
- ^-Voie étendue (niveau i)
- Figure 4. Niveaux de communication.
- L’interface offerte par la voie étendue aux niveaux Ai+1 et Bi+1 est réalisée au niveau i par les entités A-x et Bt au moyen d’un protocole ou d’un ensemble de protocoles, utilisant la voie primitive qui les relie au travers des interfaces de niveau i — 1. Ces interfaces sont à leur tour réalisées par des protocoles de niveau inférieur, et ainsi de suite jusqu’au niveau 0.
- Pour mettre l’accent sur ce mode de réalisation à partir d’un ensemble d’éléments et pour nous conformer à l’usage courant, nous utiliserons plutôt le terme de système de communication à la place de celui de « voie étendue ». Il convient de bien distinguer à un niveau i donné :
- — la spécification fonctionnelle du système de communication de niveau i, qui est la spécification des interfaces qu’il offre à ses utilisateurs (de niveau i + 1),
- — le mode de réalisation de ce système de communication, par des entités de niveau i, au moyen de protocoles de niveau i utilisant le système de communication de niveau i — 1.
- Cette distinction n’est pas toujours clairement faite dans la littérature, où on trouve parfois une confusion entre les protocoles de niveau i + 1 qui utilisent le système de communication de niveau i, et les protocoles de niveau ij qui réalisent ce système de communication.
- Exemple. La notion de hiérarchie de protocoles est illustrée par uri exemple tiré du réseau Ethernet (voir 1.23). Cette description est très simplifiée pour les besoins dé l’exposé.
- a) Transfert de jlots de caractères
- L’interface physique disponible permet de transférer d’une station à uné autre des blocs d’information de taille fixe (paquets). Une première couche de logiciel, mettant en oeuvre un protocole qui utilise cette interface, réalise le transfert bidirectionnel de flots de caractères entre deux stations reliées aü réseau. L’interface accessible aux usagers du service « flots de caractères » comporte des procédures permettant d’établir et de terminer une communia
- p.37 - vue 55/387
-
-
-
- 38 Systèmes informatiques répartis
- cation, de déclarer une taille maximale pour les messages à recevoir, et d’envoyer et recevoir des suites de caractères. Ces suites peuvent contenir des « marques » de divers types, servant de délimiteurs. Les détails du protocole qui réalise ce service (décomposition du flot en paquets, réémission en cas d’erreur,...) sont invisibles à ses utilisateurs.
- b) Transfert de jichiers
- Un protocole de transfert de fichiers est construit sur l’interface précédente^ Il définit les règles de dialogue entre un serveur S qui transmet un fichier et un client C qui le reçoit. Ce dialogue utilise des flots de caractères. Un exemple en est donné ci-après. Les noms en gras désignent des valeurs particulières de marques, les accolades indiquent des alternatives de réponses.
- C : demande identité de fichier fin
- ^ . f non code fin { code indique la cause du refus }
- [ voici-liste identité et caractéristiques du fichier fin
- c f oui
- ( non { s’il a changé d’avis et ne désire plus le transfert}
- voici-fichier fichier oui
- £ . non code fin { code indique la cause du refus }
- voici-fichier fichier non code fin {le fichier transmis est incomplet ou incorrect}
- La spécification complète du protocole définit les alternatives de dialogue dans tous les cas possibles, la valeur des codes, etc. Le transfert de fichiers peut à son tour être utilisé par un programme qui réalise, par exemple, un service de soumission de travaux à distance. Ses usagers utilisent l’interface propre à ce service et peuvent ignorer le protocole de transfert de fichiers.
- 2.222 Interfaces virtuelles
- Considérons deux entités A et B reliées à un système de communication, L’interface du système de communication avec A n’est pas nécessairement identique à son interface avec B. Dans la description d’un protocole de communication entre A et B, les actions de A et B sur le système devront donc être décrites en utilisant le langage d’expression fourni par leurs interfaces respectives. Il est plus commode, notamment lorsque beaucoup d’entités sont en jeu, d’avoir un langage unique d’expression, donc une interface unique. Une telle interface est appelée interface virtuelle. Elle peut être réalisée, dans chaque
- Interface V A < Protocole utilisant V B Interface V r~
- Interface IA Adaptateur en A Adaptateur en B Interface 1R r~
- Voie
- Figure 5. Interfaces virtuelles et adaptateurs d’interface.
- p.38 - vue 56/387
-
-
-
- Concepts et outils de la communication 39
- entité communicante, par un niveau supplémentaire (matériel, ou plus généralement logiciel) construit sur l’interface existante (fig. 5). Ces niveaux supplémentaires qui réalisent une interface virtuelle commune à partir d’interfaces existantes hétérogènes sont appelés adaptateurs d’interface.
- Exemple : protocole d’appareil virtuel.
- Lorsque des terminaux hétérogènes sont reliés à un réseau, il est commode de définir une interface virtuelle commune qui les fait tous apparaître, du point de vue du système de communication, comme des exemplaires identiques d’un même appareil virtuel. Un protocole unique de communication peut alors être défini en utilisant l’interface commune. Le PAV ou Protocole d’Appareil Virtuel [Zimmermann 76 du réseau Cyclades est fondé sur ce principe. Il définit un modèle unique paramétré d’appareil virtuel ; les paramètres permettent de tenir compte des caractéristiques individuelles de chaque terminal dans les limites définies par le modèle (voir aussi 5.51).
- 2.23 MESSAGES
- L’interaction entre des entités en communication peut être considérée comme une transmission d’information. Cette information doit être codée sous une forme convenue : on parle alors de messages.
- 2.231 Définition des messages
- Suivant les niveaux, le choix du regroupement des informations en messages peut être fait selon divers critères.
- On parle de découpage logique lorsqu’un message est un ensemble d’informations logiquement cohérent (enregistrement, fichier). Dans ce cas, la taille d’un message n’est généralement pas constante, ce qui impose donc de transmettre des informations supplémentaires (taille du message ou indicateurs de début et fin).
- On parle de découpage physique quand un message est un ensemble d’informations regroupées pour satisfaire des contraintes de transmission ou de stockage. Dans ce cas, les messages ont généralement une taille fixe et sont appelés paquets. Pour être transmis, un message logique doit alors être décomposé en paquets, puis reconstitué à partir de ceux-ci. La fragmentation et le réassemblage sont réalisés à un certain niveau de communication, et sont invisibles aux entités communicantes de niveaux supérieurs.
- 2.232 Interprétation des messages
- Outre les informations à transmettre proprement dites, un message peut comprendre une partie destinée à être interprétée par le système de communication : taille du message, informations destinées à la détection ou à la correction d’erreurs, noms d’émetteur ou de destinataire. Cette décomposition du message en partie interprétable et partie neutre est relative à un niveau donné i
- p.39 - vue 57/387
-
-
-
- 40 Systèmes informatiques répartis
- du système de communication. Au niveau i +1, on peut être amené à considérer comme interprétable une partie de l’information qui était neutre pour le niveau i.
- Exemple. Un paquet circulant dans le réseau Transpac contient entre autres le numéro du circuit virtuel sur lequel il circule. Au niveau de la transmission des bits sur les lignes, cette information est neutre et n’est donc pas distinguée du contenu du message proprement dit. Au niveau où est réalisé le routage dans les noeuds du réseau, cette information est interprétée pour déterminer le trajet du paquet.
- Nous pouvons donc considérer que l’information à transmettre, à un certain niveau, est emboîtée dans une suite d’enveloppes destinées à être interprétées par les niveaux inférieurs du système de communication. Ces emboîtements successifs correspondent à ceux des protocoles réalisés aux niveaux correspondants.
- Remarque. Des raisons de confidentialité peuvent conduire l’émetteur à chiffrer les messages, c’est-à-dire à transmettre à la place d’un message m un message f(m) dit « chiffré ». Le message original, dit « clair », peut être obtenu par application de la transformation f~x. Celle-ci est connue des seuls destinataires autorisés et choisie de manière à rendre malaisée sa détermination même en cas d’interception d’une série de messages par un récepteur indiscret. La cryptographie est l’étude des méthodes et heuristiques employées par l’émetteur pour choisir les « bonnes » transformations / et par le récepteur indiscret pour tenter de déterminer f~x. On trouvera dans [Diffie 76] un résumé des progrès récents dans ce domaine et dans [Needham 78] une application aux réseaux d’ordinateurs.
- 2.3 LES SYSTÈMES DE COMMUNICATION
- 2.31 FONCTIONS ET CARACTÉRISTIQUES D’UN SYSTÈME DE COMMUNICATION
- Les fonctions élémentaires que doit assurer un système de communication sont l’émission et la réception. Elles permettent la transmission des messages entre entités communicantes.
- — En émission, une entité communicante doit pouvoir délivrer un message au système de communication, qui se chargera de la remettre à un ou plusieurs récepteurs.
- — En réception, une entité doit pouvoir retirer un message dont elle est destinataire.
- Rappelons que ces communications peuvent prendre deux formes : le dialogue, communication entre deux partenaires et le colloque, communication entre plusieurs partenaires. De plus, les performances (débits, délais,
- p.40 - vue 58/387
-
-
-
- Concepts et outils de la communication 41
- fiabilité,...) et la nature des informations échangées (message isolé, suite de messages,,...) varient beaucoup selon le système. Les différentes caractéristiques des principaux systèmes de communication sont présentées au chapitre 3.
- 2.311 Caractéristiques de la communication
- Nous étudions tout d’abord les deux formes principales de communication, dialogue et colloque. Nous passons ensuite en revue les étapes de la communication, avant de présenter quelques caractéristiques particulières.
- 1) Formes de la communication
- a) Dialogue. La communication se déroule entre deux partenaires. Selon le rôle des partenaires et la permanence de leur relation, elle prend la forme de l’envoi de messages isolés ou d’un dialogue de longue durée. Ce dernier met en jeu une suite de messages et nécessite l’établissement préalable de conventions qui régissent le dialogue.
- b) Colloque. La communication se déroule entre plusieurs partenaires; elle met généralement en jeu une forme élémentaire de transmission d’information, fa diffusion, dans laquelle un émetteur envoie le même message à plusieurs récepteurs.
- Exemple. Les dialogues peuvent utiliser des voies bipoint fournissant des opérations élémentaires permettant d’envoyer ou de recevoir un message (interphone du 2.1, téléphone après établissement de la liaison). Les colloques peuvent utiliser des voies fournissant une opération élémentaire de diffusion (liaison radioélectrique).
- 2) Etapes d'une communication
- Chaque communication comporte une phase initiale appelée ouverture, qui réalise :
- à) la connexion des entités au système de communication,
- b) la reconnaissance mutuelle des entités communicantes, c’est-à-dire l’acquisition par chacune des informations permettant de désigner l’autre,
- c) l’acquisition éventuelle des ressources nécessaires à la communication (tampons, lignes...),
- d) l’initialisation, c’est-à-dire la mise des entités et de la voie dans un état où la communication soit possible.
- Les étapes a), b) et c) peuvent éventuellement être absentes si la communication est permanente, si les entités communicantes se connaissent a priori, et si les ressources sont allouées statiquement. Ensuite, la communication proprement dite peut avoir lieu, les messages sont envoyés et reçus. Lorsque l’échange est terminé, une phase finale, la fermeture, réalise la remise des entités dans un état de référence, la libération des ressources (tampons, lignes...) et la déconnexion éventuelle des entités.
- p.41 - vue 59/387
-
-
-
- 42 Systèmes informatiques répartis
- 3) Fonctions diverses
- Les spécifications du système de communication peuvent inclure des exigences particulières sur certaines caractéristiques ou la présence de certaines fonctions spécifiques. On peut citer en particulier les caractéristiques de fiabilité, le séquencement des messages et la synchronisation;
- fl) Un système de communication assure en général une fiabilité de transmission supérieure à celle des voies primitives qu’il utilise. Cette fiabilité peut être mesurée, par exemple, par le taux d’erreur, le nombre de retransmissions ou de duplications de messages.
- b) Les spécifications imposent souvent que les messages émis par un émetteur vers un même destinataire lui parviennent dans leur ordre d’émission (cette propriété est à la base des principaux mécanismes de synchronisation entre processus distants).
- c) Un outil primitif de synchronisation est fourni par l’opération de réception lorsque celle-ci provoque l’attente du récepteur. Des exigences plus fortes peuvent être formulées : en particulier, il peut être nécessaire de pouvoir asservir le débit de l’émetteur aux capacités de traitement ou de stockage des récepteurs.
- Remarque. Les améliorations de la qualité du service se font au détriment des performances (réduction du débit de transmission par exemple).
- 2.312 Désignation des correspondants
- Un autre aspect important des systèmes de communication est la façon dont ils permettent aux entités communicantes de se désigner mutuellement. On appelle généralement désignation la fonction d’identification et de localisation d’un objet à partir d’une information appelée nom ou identificateur. Cette fonction permet à un processus d’accéder à l’objet. Pour des raisons de commodité d’utilisation et de généralité, on souhaite pouvoir :
- — désigner des entités indépendamment de leur support physique ou de leur localisation géographique,
- — choisir les noms indépendamment à l’intérieur d’ensembles définis comme autonomes.
- De telles fonctions sont fournies par les systèmes de communication les plus ékborés ; nous allons en présenter un exemple. Une étude plus complète de la désignation dans les réseaux est faite en 3.62.
- Exemple : les portes des réseaux de transport
- Les réseaux de transport (voir 3.622) sont le niveau le plus évolué des réseaux de communication. Sur chaque site d’un réseau, la communication est gérée par un ensemble de processus appelé la station de transport. Cette station de transport fournit en permanence un ensemble de noms locaux au site appelés les portes de la station. Lorsqu’on veut effectuer une communication,
- p.42 - vue 60/387
-
-
-
- Concepts et outils de la communication 43
- la destination d’un message est indiquée par le couple < nom de station, nom de porte ). En conséquence, lorsque deux utilisateurs d’un réseau veulent communiquer, chacun d’eux doit disposer d’une porte locale à son site et connaître le nom de la porte utilisée par l’autre. Cette connaissance des noms de porte peut être envisagée de deux façons.
- a) Les noms des portes peuvent être globaux (c’est-à-dire connus sur l’ensemble du réseau) ainsi que les services qui y sont rattachés. On peut ainsi décider qu’un service de transfert de fichier sera toujours utilisé par l’intermédiaire de la porte numéro 5. Dans ce cas l’association entre une porte et le processus exécutant le service est en général statique.
- b) Un seul nom de porte sur chaque site peut être connu globalement ; il permet alors de se mettre en communication avec un processus particulier* qui a pour fonction de fournir le nom de la porte par laquelle on doit communiquer avec le processus chargé d’exécuter le service demandé.
- Remarquons que, dans les deux cas, l’établissement de la communication se fait au moyen d’un nom global de porte.
- 2.32 RÉALISATION DES SYSTÈMES DE COMMUNICATION
- Nous allons maintenant préciser quelques principes de réalisation des systèmes de communication, en les étudiant sous les aspects vus précédemment : réalisation de dialogues et de colloques (2.321), gestion des voies (2.322), synchronisation (2.323) et détection et correction d’erreurs (2.324).
- 2.321 Mise en œuvre de dialogues et de colloques
- On dispose d’une voie primitive définie par ses caractéristiques (débit!, taux d’erreur, etc.) et manipulée par son interface. Des entités communicantes respectant certains protocoles utilisent cette voie pour réaliser un système de communication plus évolué et plus performant que celui du niveau inférieur. Cette voie primitive peut être une voie bipoint, c’est-à-dire une voie qui relie deux correspondants, et qui permet d’envoyer des messages de l’un de ces correspondants vers l’autre. Ce peut être aussi une voie à diffusion qui relie plusieurs correspondants et qui permet d’envoyer un même message de l’un d’entre eux vers tous les autres. Dans les deux cas, nous allons étudier la mise en oeuvre des dialogues et des colloques.
- 1) Cas des voies bipoint
- S’il n’y a que deux correspondants, les notions de dialogue et de colloque se confondent et sont de réalisation facile, compte tenu des opérations élémentaires disponibles. Lorsqu’il existe plus de deux correspondants potentiels, ils doivent être reliés par l’intermédiaire de plusieurs voies bipoint reliant des organes élémentaires de commutation ou nœuds (voir 3.611). Cet ensemble de voies bipoint et de noeuds s’appelle un réseau maillé (un cas particulier de ces réseaux est celui des anneaux qui sera présenté au chapitre 4). Tout corT respondant doit être relié à un noeud du réseau. Pour échanger des message?
- p.43 - vue 61/387
-
-
-
- 44 Systèmes informatiques répartis
- entre des correspondants reliés à des noeuds non adjacents, il faut déterminer un chemin entre ces deux noeuds. Le message est alors émis du noeud émetteur vers un premier noeud intermédiaire, de ce noeud vers un second, et ainsi de suite jusqu’à ce qu’il parvienne au destinataire. Le choix du chemin peut être fait avant toute communication, ou dynamiquement à chaque noeud intermédiaire. Des exemples de ces politiques d’acheminement (ou de routage) seront présentés au chapitre 4.
- Il est possible de réaliser des colloques sur des réseaux maillés en envoyant le même message à plusieurs destinataires. Des techniques permettant de réduire le nombre de transmissions élémentaires nécessaires ont été présentées informellement en 2.122 et seront décrites plus précisément en 5.42.
- 2) Cas de voies à diffusion
- Des voies à diffusion sont utilisées par exemple dans le réseau Aloha (dans lequel les différents ordinateurs communiquent en utilisant directement un canal radio particulier) et dans le réseau Ethernet (présenté au chapitre 1). Dans ce cas, la réalisation d’une diffusion est immédiate. Pour réaliser des dialogues, on rajoute à chaque message le nom de son destinataire et les récepteurs ne tiennent pas compte des messages qui ne leur sont pas destinés.
- 2.322 Gestion des voies
- Pour des raisons économiques, une voie est rarement allouée en permanence à un émetteur et à un récepteur (ou à plusieurs), sauf dans les cas où leurs besoins assurent un taux d’occupation élevé de la voie. Il est donc fréquent de disposer de nombreuses entités communicantes autour d’une voie unique (bus ou mémoire commune, par exemple) ou d’un ensemble de voies constituant un réseau maillé. La réalisation d’un système de communication employant de telles voies partagées doit donc mettre en oeuvre des mécanismes de gestion de ces voies.
- Dans le cas d’une voie unique, la technique la plus employée est celle du multiplexage dans le temps ; le partage de la voie se ramène alors à un mécanisme d’allocation de celle-ci. De très nombreux procédés sont utilisés : accès aléatoire, allocation d’intervalles de temps fixés et prévus a priori ou variables avec allocation à la demande, gestion par un organe unique ou plusieurs organes coopérants mettant en oeuvre des systèmes de priorités variés, etc. Dans les réseaux maillés, chaque voie doit évidemment être partagée. Il est alors important, pour assurer des performances convenables, d’assurer deux fonctions, désignées globalement sous le terme de régulation de charge :
- — limitation de la charge globale de communication,
- — répartition équitable de la charge sur les différentes voies.
- La première fonction est assurée par des algorithmes de régulation globale* la seconde par des algorithmes d’acheminement. La régulation de charge est étudiée au chapitre 9. i
- Enfin, comme le problème de la gestion des voies est un problème d’allocation de ressources, on doit prendre en compte des phénomènes d’inter-
- p.44 - vue 62/387
-
-
-
- Concepts et outils de la communication 45
- blocage (« deàdlock ») et de privation (« starvation »). L’interblocage peut apparaître lorsque plusieurs processus sont en compétition pour un ensemble de ressources : chacun attend des ressources que d’autres possèdent et ne libère pas les siennes propres. La privation consiste en l’attente indéfinie d’une ressource par un demandeur ; elle peut résulter d’une coalition d’autres demandeurs, ou encore de l’application de politiques d’attente avec priorité.
- Exemple 1. Deux correspondants qui tentent de s’appeler mutuellement au téléphone, et se trouvent simultanément en phase de numérotation (2.12) sont en situation d’interblocage. Chacun trouve l’autre « occupé ».
- Exemple 2. Un processeur de calcul, un canal d’entrée-sortie et une mémoire sont reliés à un bus. Le canal est prioritaire sur le processeur pour l’accès à la mémoire. Si le canal transfère des données au débit maximal permis par la mémoire (un accès par cycle), le processeur ne peut accéder à la mémoire pendant la durée de ce transfert : il y a privation.
- L’ouverture ou la fermeture des communications présentent également des risques d’interblocage si des incidents amènent des pertes ou des duplications de messages. Des protocoles qui excluent ou réduisent ces risques sont présentés au chapitre 5.
- 2.323 Protocoles de synchronisation
- Chaque étape d’une communication est réglée par un ou plusieurs protocoles particuliers, qui permettent aux entités de se mettre d’accord sur des décisions à prendre et de se placer dans un état où la communication soit possible. Cette mise en phase est appelée synchronisation. La synchronisation est définie à un niveau déterminé. Les niveaux habituellement considérés sont associés aux unités d’information transmises, par exemple :
- — le bit ou le caractère pour les protocoles de gestion des lignes physiques (voir 3.12),
- — le paquet pour les protocoles de transport dans les réseaux (voir 3.622),
- — le message pour les protocoles de communication entre systèmes d’exploitation ou usagers (voir 3.623). ,
- La synchronisation peut faire intervenir le temps physique, et l’on parlé de synchronisation temporelle; elle peut se contenter d’imposer l’ordre de succession des opérations élémentaires réalisées par chaque entité, et l’on parle de synchronisation logique.
- 1) Synchronisation temporelle
- Les méthodes de synchronisation qui font intervenir une ou plusieurs horloges physiques sont surtout utilisées lors de la transmission de données sur des bus ou des lignes au niveau du bit ou du caractère.
- 2) Synchronisation logique
- Les entités communicantes fonctionnent à la manière de processus coopérants qui échangent des messages, selon un schéma producteur-consommateur.
- p.45 - vue 63/387
-
-
-
- 46 Systèmes informatiques répartis
- Ce type de synchronisation, bien connu dans les systèmes centralisés, se complique dans les systèmes répartis pour deux raisons :
- — l’incertitude de chacun des partenaires sur l’état de l’autre et de la voie, qui amène à multiplier les accusés de réception et à introduire des délais dé garde pour détecter les défaillances,
- — le souhait de rendre l’échange plus commode ou plus efficace en déterminant certains de ses paramètres par accord mutuel entre les partenaires.
- Ces deux facteurs amènent à introduire des états intermédiaires pour améliorer la fiabilité et permettre des échanges plus complexes. Ces états sont liés à l’occurrence ou à l’attente d’événements tels que l’arrivée d’un accusé de réception, d’un signal de défaillance, la fin d’un délai de garde, ... Un exemple de synchronisation logique est la régulation de flux, qui limite la cadence de transmission des messages entre deux correspondants.
- Exemple : la régulation de flux
- Dans un système de communication, la cadence d’émission ou de réception des messages ne peut augmenter indéfiniment en raison de diverses limitations : débit maximal des voies, nombre limité de tampons de stockage, vitesse limitée de traitement des informations reçues...
- Les mécanismes de régulation de flux ont pour but d’assurer le respect de ces limitations. Les méthodes couramment employées visent à asservir le débit d’émission aux possibilités de réception. Cela peut être fait de plusieurs manières.
- a) Transmission sans anticipation : chaque message envoyé doit être acquitté par le récepteur avant qu’un nouveau message puisse être émis.
- b) Transmission avec anticipation : l’émetteur dispose d’un crédit qui lui permet d’envoyer plusieurs messages sans attendre d’acquittement. Le crédit de l’émetteur est reconstitué au fur et à mesure par l’envoi d’acquittements par le récepteur. Les diverses techniques utilisées pour la régulation de flux sont examinées en 5.34.
- 2.324 Détection et correction des erreurs
- On dit qu’un système présente une défaillance lorsque son comportement n’est pas conforme à ses spécifications. Celles-ci permettent (en principe) d’énoncer en toutes circonstances des assertions sur l’état de toute partie du système.
- Malgré toutes les précautions, l’apparition de défaillances est inévitable et on doit donc prévoir des mécanismes pour détecter les états incorrects (erreurs) et localiser les défaillances qui les ont provoqués, et pour remettre le système dans un état permettant la reprise d’un fonctionnement correct.
- 1) Détection des erreurs
- La fonction d’un système de communication est de transmettre de l’information. Il est défini par des spécifications qui portent sur la valeur de l’information (information reçue identique à celle émise) et sur l’occurrence d’événements (information reçue dans un délai déterminé).
- p.46 - vue 64/387
-
-
-
- Concepts et outils de la communication 47
- a) La détection d’erreurs portant sur la valeur de l’information peut être réalisée au moyen de codes détecteurs introduisant une information redondante (un exemple simple est celui du bit de parité où une information supplémentaire de 1 bit permet de détecter une erreur, ou un nombre impair d’erreurs, sur une information donnée). La correction de ce type d’erreurs nécessite une redondance plus importante, qui peut être obtenue par l’usage de codes correcteurs d’erreurs ou par répétition du message. On trouvera dans [Clavier 72, Macchi 79] une étude détaillée des codes détecteurs et correcteurs d’erreurs.
- b) Les erreurs portant sur l’occurrence d’événements sont détectées par des horloges de garde : si un événement attendu ne s’est pas produit au bout d’un certain délai, on admet qu’il ne se produira pas et on considère donc qu’il y a erreur.
- 2) Reprise
- Les techniques permettant de redémarrer après détection d’une erreur reposent sur la conservation d’informations représentant un état antérieur. Pour éviter l’accumulation de télles informations et la perte d’un trop grand volume de travail, il faut pouvoir, de temps à autre, décider que le système se trouve dans un état correct où l’on peut donc éliminer les informations conservées. Un tel état est appelé point de reprise. A tout instant, on ne conserve donc que les informations permettant de ramener le système, après détection d’une erreur, au dernier point de reprise. Le choix des points de reprise résulte d’un compromis entre le coût de recopie et de stockage de l’information conservée, et le coût estimé de la perte d’un certain volume de travail.
- Ainsi, dans le cas des systèmes de communication, on emploie des techniques consistant à conserver une copie des messages émis et à les réémettre chaqué fois que nécessaire. Une numérotation des messages permet d’éviter les ambiguïtés. Des protocoles réalisant cette fonction sont présentés au chapitre 5, ainsi que dans l’illustration 2 (protocole HDLC).
- 2.33 SPÉCIFICATION ET VALIDATION DES PROTOCOLES
- Prouver la validité d’un protocole, c’est montrer la conformité des proT grammes qui le réalisent avec une spécification formelle du protocole. Les méthodes employées pour cela se rapprochent beaucoup de celles employées pour la preuve de validité des programmes. Les résultats obtenus par ces méthodes sont assez limités. En conséquence, on se contente souvent d’exprimer les spécifications d’un protocole sous forme d’un graphe, et d’utiliser cette représentation pour démontrer des propriétés de ces spécifications.
- 2.331 Méthodes fondées sur les assertions
- La première difficulté consiste à recenser les propriétés souhaitées et à les exprimer formellement. Par exemple, tout message émis doit être reçu au bout
- p.47 - vue 65/387
-
-
-
- 48 Systèmes informatiques répartis
- d’un temps fini, l’ordre d’émission des messages doit être conservé à la réception. Le protocole est ensuite décrit sous forme de processus coopérants, en utilisant un langage de programmation approprié (Concurrent Pascal [Brinch-Hansen 77]). La technique de preuve est alors une technique à base d’assertions.
- Ces méthodes ont été utilisées pour démontrer un certain nombre de propriétés du protocole HDLC et des protocoles du réseau Cyclades [Boch-mann 77, Danthine 78].
- 2.332 Méthodes fondées sur les automates d’états finis
- Les entités communicantes sont spécifiées par des automates d’états finis dont on décrit les états par des formalismes divers (réseaux d’évaluation, réseaux de Pétri, graphes orientés [West 77]). Quel que soit le formalisme de représentation utilisé, les techniques de validation consistent toutes à analyser l’ensemble des états accessibles. Toutes les validations que l’on sera susceptible d’effectuer s’appuieront sur cette analyse. L’obstacle majeur au développement de ces techniques est le grand nombre d’états que l’analyse doit prendre en compte. Il faut cependant signaler qu’il existe déjà des programmes effectuant de manière entièrement automatique cette analyse pour des protocoles relativement compliqués [Sunshine 76, West 77, Bochmann 78, Rudin 78]. On peut ainsi montrer un certain nombre de propriétés du protocole :
- — existence d’un état neutre auquel on revient toujours depuis tout état accessible,
- — absence d’interblocage,
- — absence de cycle non explicitement prévu.
- On trouvera en illustration 4 un exemple de technique utilisant les automates d’états finis.
- 2.333 Eléments de comparaison
- Les techniques fondées sur les assertions sont les plus satisfaisantes théoriquement, mais sont d’emploi limité pour deux raisons majeures : elles se prêtent mal à l’automatisation et il est difficile de recenser complètement les propriétés souhaitées.
- Les techniques d’automates d’états finis se prêtent bien à la validation de propriétés du protocole par une analyse, éventuellement automatique, de l’ensemble des états accessibles. Ges techniques laissent de côté le problème de l’adéquation à leurs spécifications des programmes qui réalisent un protocole.
- p.48 - vue 66/387
-
-
-
- Concepts et outils de la communication 49
- 2.4 PRÉSENTATION DE LA PREMIÈRE PARTIE : LES SYSTÈMES DE COMMUNICATION
- Les chapitres qui suivent présentent de façon plus détaillée les trois principaux aspects de la réalisation d’un système de communication tels qu’ils ont été décrits en 2.32.
- Un tel système devant être construit à partir d’une voie primitive existante, le chapitre 3 présente la plupart des voies que peuvent utiliser des entités communicantes. La façon de les utiliser, ainsi que leurs caractéristiques physiques (bande passante, taux d’erreur, délais, etc.) sont précisées. Ce chapitre décrit les voies primitives les plus répandues (lignes, liaisons radio-électriques) ainsi que l’architecture des principales classes de systèmes de communication (systèmes bus-mémoire, réseaux maillés).
- Pour des raisons d’efficacité qui ont déjà été mentionnées, il est nécessaire de partager ces voies entre plusieurs couples ou ensembles d’entités communicantes. Le chapitre 4 présente ces méthodes et techniques de partage des voies : allocation d’une voie unique, politique d’acheminement et limitation de la charge dans le cas d’un réseau maillé.
- Enfin, il faut coordonner ces entités communicantes pour leur permettre d’échanger des messages, de décider d’un commun accord de l’ouverture ou de la rupture d’un échange, ou de négocier les paramètres de cet échange. Le chapitre 5 présente les protocoles de communication qui permettent de réaliser de tels services.
- EXERCICES
- Exercice 1.
- a) Modifier le protocole de rupture proposé en 2.111 de façon que, lorsqu’un des correspondants raccroche, sa sonnerie ne retentisse pas jusqu’à ce que l’autre ait fait de même.
- b) Proposer une modification du dispositif d’appel permettant de mettre en oeuvre ce protocole.
- Exercice 2.
- Décrire, à l’aide des réseaux d’évaluation, le protocole d’appel employé par les utilisateurs du réseau téléphonique.
- Indications de solution
- a) Oh admet que l’émission du numéro d’appel constitue un événement unique que l’on ne cherchera pas à décomposer.
- b) On construira trois réseaux : celui de l’appelant, celui du système de communication, et celui de l’appelé.
- CORNAFION. — Systèmes informatiques répartis
- 3
- p.49 - vue 67/387
-
-
-
- 50 Systèmes informatiques répartis
- RENVOIS
- Références citées dans le chapitre 2
- Bochmann 77, Bochmann 78, Brinch-Hansen 77, Clavier 72, Danthine 78, Diffie 76, Macchi 79, Needham 78, Nutt 72, Rudin 78, Sunshine 76, West 77, Zimmermann 76.
- Illustrations concernant le chapitre 2
- II, 12, 13, 14.
- Principaux termes définis dans le chapitre 2
- Dialogue, colloque, réseau d’évaluation, voie (de communication, virtuelle, logique), interface, interface virtuelle, protocole, système de communication, adaptateur d’interface, ouverture et fermeture (d’une voie), message, synchronisation (temporelle, logique), point de reprise.
- p.50 - vue 68/387
-
-
-
- CHAPITRE 3
- DESCRIPTION DES VOIES DE COMMUNICATION
- La transmission d’information sur une voie met en jeu un ou plusieurs paramètres physiques dont la variation permet de représenter les diverses valeurs de l’information à transférer. Sur les voies employées en informatique, les paramètres physiques utilisés sont ceux liés à la propagation des signaux électromagnétiques : amplitude, fréquence ou phase d’un signal électrique, radioélectrique ou lumineux.
- Ce chapitre est consacré à une présentation générale des voies de communication. Une voie est un objet accessible à des entités communicantes, par lequel elles échangent les signaux qui représentent les informations. Cette définition englobe aussi bien des voies simples ne comportant pas d’organes de mémorisation que des voies composées constituées de plusieurs voies simples et de dispositifs intermédiaires.
- Les voies les plus simples sont constituées d’un support homogène qui véhicule les signaux électromagnétiques. Les méthodes permettant de représenter l’information à transmettre au moyen de ces signaux sont développées en 3.1. Les principaux paramètres qui caractérisent les voies et notamment leurs défauts sont décrits en 3.2. La topologie des voies et leurs modes d’utilisation sont étudiés en 3.3.
- Le support physique des voies simples est constitué de fils ou câbles métalliques, ou de fibres optiques; certaines voies comme les liaisons radio ne comportent pas de support physique. Ces supports homogènes ont des performances généralement insuffisantes pour permettre à des entités distantes de communiquer de façon satisfaisante. Il est alors nécessaire d’intercaler des dispositifs (modems, répéteurs, relais hertziens, satellites) qui transforment ou régénèrent le signal. Les caractéristiques des voies simples, et quelques exemples de réalisations, sont décrites en 3.4.
- Enfin, certains systèmes de communication sont capables de véhiculer des messages en utilisant des voies simples et des organes « relais » intermédiairesi Ces derniers doivent réserver la voie simple que le message doit emprunter, envoyer le message sur cette voie et la libérer quand le message est parvenu
- p.51 - vue 69/387
-
-
-
- 52 Systèmes informatiques répartis
- au relais suivant. Ils doivent donc disposer de capacités de mémorisation pour stocker les messages en attente de réémission. Sur l’ensemble de son trajet, chaque message emprunte une voie composée. La distinction entre ces voies et les voies construites à partir de voies simples porte essentiellement sur leur mode de partage et d’allocation. Ces aspects sont développés en détail au chapitre 4. Les voies composées comprennent notamment les voies construites par interconnexion de bus et de mémoires, dont des exemples sont décrits en 3.5, ainsi que les réseaux à commutation par paquets, dont l’importance justifie une étude particulière en 3.6.
- La multiplicité des organes susceptibles d’être reliés aux voies de communication et le développement des applications de la téléinformatique rendent indispensable une normalisation des principaux protocoles et interfaces de communication. L’organisation de cette normalisation est décrite en 3.7. Des exemples d’interfaces et de protocoles normalisés sont décrits en illustrations 1 et 2.
- Ce chapitre ne constitue qu’une introduction aux techniques de transmission de données, dont l’étude détaillée dépasse le cadre de cet ouvrage. On se reportera à [Clavier 72, Davies 73, Macchi 79] pour une étude plus approfondie.
- 3.1 TRANSMISSION DE L’INFORMATION
- 3.11 NATURE ET REPRÉSENTATION DE L’INFORMATION A TRANSMETTRE
- Les informations qui nous intéressent ici sont discrètes et prennent leurs valeurs dans un ensemble fini. Nous identifions toute information à sa représentation par une suite de bits. Nous supposons dans un premier temps que l’information est transmise séquentiellement, sans aucun parallélisme dans le temps.
- La transmission d’information sur une voie se traduit par des changements de l’état de cette voie. Pour distinguer la notion d’état de sa représentation par une grandeur physique, nous parlerons respectivement d’état logique et d’état physique. La correspondance entre état logique et état physique peut se faire de deux manières :
- — ou bien chaque état logique est associé à une valeur de l’état physique (ou à une plage de valeurs, pour tolérer une certaine imprécision),
- — ou bien chaque état logique est associé à une transition entre états physiques, ou éventuellement à une suite de transitions. Cela revient à associer un état logique à un couple ou à une suite ordonnée de valeurs de l’état physique.
- La représentation de p bits d’information nécessite de pouvoir reconnaître TP états logiques distincts de la voie. Un état logique supplémentaire est souvent utilisé pour représenter l’état de repos de la voie c’est-à-dire l’absence d’infor-
- p.52 - vue 70/387
-
-
-
- Description des voies de communication 53
- mation. Le nombre d’états logiques distincts, non compris l’état de repos, utilisés pour la représentation de l’information transférée est appelé valence de la voie (pour les conditions d’utilisation considérées).
- Exemple. Une voie bivalente possède deux états logiques dont chacun représente une des valeurs possibles (0 ou 1) d’un bit d’information. Si le paramètre physique utilisé est une tension électrique, ces deux états peuvent être représentés respectivement par les tensions 3 ± 0,5 V et 6 ± 0,5 Y, la tension 0 correspondant à l’état de repos.
- Quel que soit le paramètre physique utilisé pour la transmission, sa valeur ne peut être modifiée à une cadence arbitrairement rapide, en raison :
- — des limitations propres à la voie (voir 3.2),
- — du temps minimal de lecture nécessaire au récepteur.
- On appelle moment élémentaire la durée minimale T pendant laquelle une valeur du paramère physique doit être maintenue constante pour que le récepteur puisse la lire correctement. Dans ce qui suit, nous supposons que la valeur du paramètre est maintenue constante pendant un temps strictement égal (et non supérieur) au moment élémentaire.
- On appelle vitesse de modulation Rm le nombre de changements d’état physique par unité de temps. On a donc :
- Si T est exprimé en seconde, Rm est exprimé en baud.
- On appelle débit binaire R d’une voie la quantité d’information transmise par unité de temps sur cette voie. Le débit binaire s’exprime en bit/seconde. Pour établir la relation entre vitesse de modulation et débit binaire, on remarque que chaque état logique distinct d’une voie g-valente est porteur de log2 q bits d’information.
- Dans le cas d’une représentation par valeurs d’état, chaque état logique est représenté sur un moment élémentaire. On a donc la relation suivante entre vitesse de modulation et débit binaire :
- R = Rm.log2 q .
- En particulier, pour une voie bivalente où un bit est associé à chaque état, on a :
- R = Rm-
- Dans le cas d’une représentation par transitions, si chaque état logique nécessite k moments élémentaires (en général, k = 2), on a :
- z? R,n1 R=z~k °g2 q '
- Pour illustrer ces notions, prenons quelques exemples dans lesquels la voie est une ligne de transmission et le paramètre physique une tension électrique.
- Exemple 1 : signaux binaires
- On utilise une voie bivalente. La tension U0 représente la valeur 0, la tension la valeur 1 (fig. 1).
- p.53 - vue 71/387
-
-
-
- 54 Systèmes informatiques répartis
- T 2 T >
- 1 0 1 0 0 1 0 1 1 1 0
- Figure 1. Signaux binaires simples.
- Le débit binaire est donné par R = Rm = 1/T. Ce mode de codage est peu utilisé. En effet, le spectre de fréquence du signal comporte une composante continue et les voies usuelles sont mal adaptées à sa transmission (voir 3.13).
- Exemple 2 : signaux bipolaires, ou « double courant »
- Le bit 1 est alternativement représenté par la tension + U et — U. Le bit 0 est représenté par la tension 0 (fig. 2).
- + U 0
- -U
- 't
- 1 0 1 0 0 1 0 1 1 1 0
- Figure 2. Signaux bipolaires.
- La voie est toujours bivalente puisque les deux états physiques + U et
- — U correspondent au même état logique. Le débit binaire est R = Rm = 1/T. Ce mode de transmission ne présente pas l’inconvénient mentionné pour les voies binaires simples.
- Exemple 3 : signaux à 4 niveaux
- On utilise une voie dont les 4 états sont représentés par les tensions + U,
- — U, + V, — V. Chacun de ces états sert à coder deux bit d’information, avec par exemple la convention suivante (fig. 3) :
- — V -U + U + V 00 01 10 11
- Le débit binaire est donné par
- R — Rm l°g2 4 = 2 f?m = 2/T.
- p.54 - vue 72/387
-
-
-
- Description des voies de communication 55
- + V + U
- -U - V
- J
- T' 2 T t
- 10 01 01 11 10 00 01 10 01 11 00
- Figure 3. Signaux à 4 niveaux.
- Un exemple de représentation par transitions d’états (code biphasé) sera donné en 3.121.
- 3.12 SYNCHRONISATION DE LA TRANSMISSION
- La fonction de synchronisation sur une voie de communication a pour but d’assurer que l’information est prélevée par le récepteur aux instants où le signal est significatif.
- Comme on l’a vu en 2.323, toute méthode de synchronisation s’applique à un niveau donné de communication. Sur les voies de transmission de données, on s’intéresse essentiellement aux niveaux de la transmission de bits et de la transmission de caractères. A ces niveaux, il s’agit de synchronisation temporelle. Des méthodes de synchronisation de niveau supérieur (paquet, message) sont développées au chapitre 5.
- Pour la transmission des bits et des caractères, deux classes de méthodes sont utilisées.
- — Méthodes synchrones : l’émetteur et le récepteur disposent d’un même référentiel temporel réalisé par une horloge unique ou plusieurs horloges de même fréquence fonctionnant en phase. Cette référence de temps unique détermine les instants de dépôt et de prélèvement de l’information. Toute information non prélevée à temps est perdue.
- — Méthodes asynchrones : il n’y a pas de référentiel temporel commun. Le signal d’horloge peut alors être transmis de l’émetteur au récepteur. L’émetteur et le récepteur peuvent aussi disposer d’horloges de même fréquence ; dans ce cas, l’horloge du récepteur est commandée par l’émetteur.
- Les méthodes synchrones sont surtout utilisées pour les transmissions rapides à grande distance, mettant en jeu de grandes quantités d’information, pour lesquelles il serait pgUség^nomique de transmettre des informations dé synchronisation.
- p.55 - vue 73/387
-
-
-
- 56 Systèmes informatiques répartis
- Les méthodes asynchrones sont plutôt utilisées pour les transmissions à débit faible ou irrégulier (communications avec des terminaux) ou encore dans les cas où les informations de synchronisation peuvent être transmises sur une voie spéciale et n’utilisent donc pas la voie de données (communication par bus, transmissions entre ordinateurs couplés).
- 3.121 Transmission synchrone
- Une horloge unique commune peut être utilisée dans les communications à très courte distance, en particulier pour un bus. En l’absence d’horloge commune, il faut assurer que l’émetteur et le récepteur disposent d’horloges synchrones. Ces horloges peuvent dériver et doivent donc être recalées périodiquement. Un signal spécial peut être utilisé pour cela ; mais, surtout pour les liaisons à longue distance, il est moins coûteux d’utiliser le signal qui représente l’information à transmettre.
- Si toute information élémentaire transmise comporte un changement d’état du paramètre physique, la fréquence de prélèvement peut être déterminée par détection de ces changements d’état.
- Exemple 1. La transmission par signaux bipolaires permet d’extraire un « top » d’horloge par bit 1 transmis. Toutefois, la présence d’une longue suite de 0 risque de faire perdre la synchronisation, par absence prolongée de signal. Diverses méthodes permettent de remédier à ce défaut.
- — Méthodes de brouillage : un brouilleur (« scrambler ») transforme au départ les séquences de bits de manière à uniformiser la probabilité d’occurrence des 0 et des 1. Un détecteur (« unscrambler ») reconstitue à l’arrivée la séquence initiale.
- — Méthodes normalisées HDBn : toute suite de 0 consécutifs subit une transformation garantissant que n zéros consécutifs au plus subsisteront dans la séquence transformée (on utilise couramment HDB3).
- Exemple 2 : code biphasé
- Cette méthode utilise une représentation par transitions d’états. Le bit 0 est représenté par la transition T_ et le bit 1 par la transition _T. Ce codage est
- JTJUl
- Horloge
- Signal
- initial
- Signal
- transmis
- Figure 4. Codage biphasé.
- p.56 - vue 74/387
-
-
-
- Description des voies de communication 57
- obtenu simplement en partant d’un signal binaire simple de moment T et en le combinant par « ou exclusif » avec un signal d’horloge de moment T/2
- (fig- 4).
- Le débit binaire est R = RJ2 (représentation par transitions).
- 3.122 Transmission asynchrone
- La transmission asynchrone permet de transmettre de l’information sans référentiel temporel commun à l’émetteur et au récepteur. Elle nécessite l’emploi d’un signal d’échantillonnage pour indiquer au récepteur le moment où les données pourront être prélevées. Ce signal peut être émis sur une ligne distincte de celle qui sert au transfert des données (voir l’exemple 1 ci-après) ou sur la même ligne (voir l’exemple 2). Dans le premier cas, le récepteur attend un signal sur la ligne d’échantillonnage; dans le second, le premier signal ou le premier groupe de signaux reçu sur la ligne de données indique l’arrivée des signaux de données qui suivent. Rappelons enfin qu’une transmission qui est asynchrone à un certain niveau d’observation peut être synchrone à un niveau inférieur (exemple 2).
- Exemple 1 : bus série
- Nous décrivons la technique la plus simple : commande à sens unique, sans accusé de réception. Les bits sont représentés par des signaux « tout ou rien ». On transmet souvent sur deux lignes distinctes la valeur du bit et celle de son complémentaire. Le chronogramme de la transmission d’un bit est donné sur la figure 5.
- Lignes de données
- Ligne
- d’échantillonnage
- DT
- Figure 5. Transmission asynchrone sur un bus.
- 4
- Signal . direct
- | Signal •—complémentaire
- 11 I tj I T
- Kit ciiii/ant
- Le délai t1 est nécessaire à l’établissement de la tension sur les lignes de données. A la réception du signal d’échantillonnage, sur une ligne spéciale DT, le récepteur dispose du délai t2 pour les prélever. Au bout du temps t3, les données sont effacées. Enfin, le délai t4 est nécessaire au rechargement de la donnée suivante dans un registre relié au bus.
- Exemple 2 : transmission de caractères en « start-stop »
- Ce mode de transmission est utilisé pour la communication avec des terminaux. Chaque caractère est codé par une suite de 8 bits, représentés par
- p.57 - vue 75/387
-
-
-
- 58 Systèmes informatiques répartis
- exemple par des signaux « tout ou rien ». Cette suite est précédée d’un bit « start » destiné à marquer le début du caractère et suivie de deux bits « stop » qui en signalent la fin. Le signal « start » provoque chez le récepteur le démarrage d’une horloge de même fréquence que celle de l’émetteur, qui permet de prélever les 8 bits significatifs. Les deux signaux « stop » arrêtent le prélèvement. Le temps de transmission d’un caractère est suffisamment bref pour qu’il soit inutile de recaler les horloges de l’émetteur et du récepteur.
- Start Stop Stop
- ! 0 1 l 0 0 1 0 1 j j
- ------ i r-i ------------- — ' i -----------
- i i
- i i
- _i_i__i_i__i_i__i_i__i—i—
- Instants d’échantillonnage
- t
- Figure 6. Transmission « start-stop ».
- Cette méthode est asynchrone au niveau du caractère, puisqu’un signal « start » peut être émis à un instant quelconque, mais synchrone au niveau des bits à l’intérieur d’un caractère. Elle est assez sensible aux erreurs : en effet, un signal parasite peut être pris pour un « start », et partant, provoquer l’échantillonnage de la ligne pendant la durée d’un caractère. Pendant ce temps, l’arrivée d’un véritable signal « start » ne sera pas reconnue.
- 3.13 MODES DE TRANSMISSION
- Les trains d’impulsions qui représentent l’information à transmettre, selon l’une des conventions étudiées en 3.11, peuvent être directement envoyés sur la voie. On dit alors que la transmission se fait en mode de base (ou en bande de base).
- Les caractéristiques de réponse en fréquence de la voie ne permettent pas toujours ce mode de transmission. On utilise alors des méthodes de modulation : le train d’impulsions n’est pas transmis tel quel mais sert à moduler, c’est-à-dire à faire varier, un ou plusieurs paramètres (amplitude, fréquence, phase) d’un signal sinusoïdal appelé onde porteuse, ou porteuse.
- L’étude de la transmission en mode de base ou en modulation fait appel à des notions d’analyse harmonique et de traitement du signal que nous ne développons pas ici. Nous rappelons seulement la terminologie et les résultats nécessaires à la suite de l’exposé. On trouvera un traitement plus complet dans [Schwartz 59].
- p.58 - vue 76/387
-
-
-
- Description des voies de communication 59
- 3.131 Rappels
- Parmi les différentes sortes de signaux, les signaux sinusoïdaux sont ceux dont l’étude de la propagation est la plus simple. Un signal sinusoïdal se représente par une fonction
- f{t) — k sin (cot + cp)
- qui exprime la variation d’une grandeur physique au cours du temps. On peut aussi exprimer les fonctions trigonométriques sous forme d’exponentielles complexes :
- f{t) = a exp(kot),
- où a est un nombre complexe. C’est cette forme que nous utilisons dans la suite.
- L’intérêt de considérer de tels signaux résulte du fait que les voies de transmission usuelles se comportent, en première approximation, comme des filtres linéaires. Un filtre linéaire est un organe qui, recevant en entrée un signal /(t), délivre en sortie un signal g(t) tel que :
- '— si f(t) = a exp(ico/), alors g(t) = T(co) f{t),
- — si f(t) = fx(t) + f2{t), où fx et f2 sont de la forme a exp(icot), alors g{t) = gx(t) + g2(t), où gx et g2 sont les sorties correspondant à fx et f2.
- T(œ) est une fonction complexe caractéristique du filtre appelée sa fonction de transfert.
- On voit donc l’intérêt de pouvoir décomposer un signal en somme de fonctions sinusoïdales ou de fonctions exponentielles complexes. Cette décomposition est possible, par la transformation de Fourier, sous certaines restrictions qui sont vérifiées par les signaux usuels. Le résultat de cette décomposition est une fonction F(œ) appelée spectre de fréquence du signal : F(co) exp(iojt) est la composante de fréquence co présente dans f(t). Ce spectre est discret pour un signal périodique : il ne diffère de zéro que pour une fréquence appelée fondamentale et pour ses multiples appelés harmoniques. Pour un signal non périodique (par exemple une impulsion), le spectre est continu et s’étend sur toute la gamme des fréquences. Ce spectre peut également être mis sous la forme module-argument : A (co) exp(i<p(co)), où A(œ) — |F(co)| est appelé spectre d’amplitude et cp(œ) spectre de phase.
- Soit fit) un signal soumis en entrée à un filtre linéaire et g(t) le signal de sortie. Si F{co) et G(co) sont respectivement les spectres de fréquence de / et g, on a :
- G(co) = T{œ).F(œ),
- où T{œ) est la fonction de transfert du filtre. On désigne par affaiblissement
- la fonction -—-—: . Le spectre d’amplitude du signal de sortie est obtenu I T(w) |
- en divisant celui du signal d’entrée par l’affaiblissement.
- p.59 - vue 77/387
-
-
-
- 60 Systèmes informatiques répartis
- Une voie sans défauts devrait se comporter comme un filtre idéal, qui transforme un signal f(t) en un signal K.f(t — t0), où t0 est un délai de propagation. On peut montrer que la fonction de transfert d’un tel filtre est
- T(w) — K.ex p(— i œt0),
- soit, en d’autres termes :
- — son affaiblissement est constant sur toute la gamme des fréquences,
- — sa phase varie linéairement avec la fréquence.
- La vitesse de propagation du signal transmis, proportionnelle à 1 /t0, est indépendante de la fréquence.
- Les voies usuelles ne sont pas des filtres idéaux : elles se rapprochent plutôt de filtres passe-bande, dont la fonction de transfert est nulle, ou l’affaiblissement infini, en dehors d’un intervalle de fréquence appelé bande passante de la voie. Les fréquences situées en dehors de la bande passante ne sont donc pas transmises. En outre, à l’intérieur de la bande passante, la vitesse de propagation n’est pas toujours constante : il y a distorsion. Ces défauts des voies, et les moyens d’y remédier, sont étudiés en 3.2.
- Nous indiquons enfin quelques résultats importants.
- 1) Théorème de Véchantillonnage : si un signal a un spectre limité à une bande de fréquence de largeur W, il peut être intégralement reconstitué à partir de
- prélèvements effectués à des intervalles de temps espacés de au plus.
- 2) Densité spectrale de puissance : l’énergie d’un signal contenue dans une bande de fréquence est donnée par l’intégrale, dans cette bande, du carré de son spectre d’amplitude. Pour transmettre un signal avec peu de déformation, il faut pouvoir transmettre correctement les fréquences où est localisée l’énergie du signal. Dans le cas d’un signal constitué d’impulsions de durée T, on constate que l’essentiel de la puissance transmise est contenu dans la bande de
- fréquence ^0, yyj- H suffit donc, dans la pratique, de transmettre cette partie
- du spectre de fréquence du signal (fig. 7).
- Signal
- 0 1
- 1
- T
- Spectre
- d’amplitude
- 1 Puissance
- 1 \ 1 w CO "lr
- 2 T 2 T
- . Figure 7. Spectre d’un train d’impulsions.
- p.60 - vue 78/387
-
-
-
- Description des voies de communication 61
- Les rapports de puissance sont habituellement exprimés en décibel (db). Par définition, la valeur en db du rapport de deux puissances P et Q est 10 log (.P/Q ). Le résultat ci-dessus montre que le rapport des puissances des signaux d’entrée et de sortie d’un filtre linéaire est le carré du rapport de leurs spectres d’amplitude, c’est-à-dire de l’affaiblissement. La valeur en db de ce rapport de puissances,
- est souvent utilisée comme mesure de l’affaiblissement.
- 3) Capacité théorique d'une voie : la théorie de l’information fixe une limite supérieure au débit d’information pouvant être transmis par une voie en présence d’un bruit qui perturbe le signal. Cette limite, ou capacité de la voie, peut s’exprimer simplement sous les hypothèses suivantes :
- — le signal est limité dans le temps et son spectre est réduit à une bande de fréquence de largeur W; notons que ces conditions sont incompatibles en toute rigueur et ne peuvent être vérifiées simultanément que de manière approchée,
- — l’énergie moyenne du bruit est indépendante de la fréquence : on parle alors de bruit blanc,
- — le bruit est une fonction aléatoire gaussienne.
- Alors la capacité théorique C de la voie est donnée, en bit/s, par la formule de Shannon-Hartley-Tuller
- où S/N est le rapport de la puissance moyenne du signal à celle du bruit dans la bande de fréquence W. Cette formule ne donne qu’une limite théorique. Dans la pratique, on observe des valeurs inférieures, en raison de défauts de la voie, qui restreignent la largeur du spectre du signal, et du caractère non uniforme et non gaussien du bruit. Cette formule a l’intérêt de mettre en évidence les facteurs qui interviennent dans la capacité d’une voie : pour accroître cette capacité, il faut élargir la bande passante ou améliorer le rapport signal/ bruit, c’est-à-dire augmenter la puissance du signal.
- 3.132 Transmission en mode de base
- On a vu en 3.131 que la transmission en mode de base d’impulsions de moment élémentaire T nécessite que la voie puisse transmettre correctement
- la gamme de fréquences
- fréquence maximale transmise. Toutefois, la nécessité de pouvoir transmettre les basses fréquences restreint notablement les possibilités du mode de base. Indiquons deux utilisations courantes de ce mode de transmission simple et peu coûteux :
- Exemple 1. Les terminaux d’un ordinateur exploité en temps partagé peuvent être reliés en bande de base jusqu’à une distance de quelques centaines
- p.61 - vue 79/387
-
-
-
- 62 Systèmes informatiques répartis
- de mètres par une simple paire de fils. Le débit maximal admissible est de quelques kbit/s. La distance maximale est imposée par l’affaiblissement.
- Exemple 2. Les signaux sur un bus sont transmis en bande de base. Les distances sont suffisamment faibles pour autoriser un débit très élevé avec des distorsions acceptables. La réalisation technologique' des bus est présentée en 3.421.
- Ces exemples illustrent les limites de la transmission en mode de base. Au-delà d’une certaine distance, l’affaiblissement est tel qu’il faut recourir à des répéteurs, qui coupent les basses fréquences (voir 3.411), ou à des câbles chargés, qui coupent les hautes fréquences et donc limitent le débit. D’autre part, les voies à très large bande passante, qui autorisent un débit élevé, ne laissent passer que des fréquences élevées, et sont donc mal adaptées à la transmission en mode de base.
- Le but des techniques de modulation qui vont maintenant être présentées est de transposer vers les fréquences élevées la bande de fréquence du signal porteur d’information pour pouvoir adapter ses caractéristiques à celles de la voie. On bénéficie alors d’un avantage supplémentaire : la possibilité d’exploiter la large bande passante de la voie pour la partager entre plusieurs signaux modulés indépendants.
- 3.133 Transmission par modulation
- 1) Définitions
- Soit un signal sinusoïdal v(t) appelé onde porteuse, dont la fréquence est adaptée à la bande passante de la voie :
- v(t) = a sin (œt + (p).
- La transmission est réalisée en modifiant, en fonction des données à transmettre, un ou plusieurs des trois paramètres de la porteuse : a, co, ou <p. On parle alors respectivement de modulation d’amplitude, de fréquence, ou de phase. Le terme de saut est employé à la place de « modulation » lorsque les variations des paramètres sont discrètes, ce qui est le cas en transmission de données.
- Les fonctions de modulation d’un signal et de reconstitution du signal initial à partir du signal modulé (démodulation) sont confiées à des organes appelés modems (« modulateurs-démodulateurs »). Les caractéristiques des modems utilisés sur les lignes de transmission de données ont fait l’objet d’une normalisation par un organisme international spécialisé, le CCITT (voir 3.7). Les principaux types de modems sont décrits en 3.42.
- Exemple 1 : saut de fréquence bivalent (avis V21 du CCITT)
- La fréquence /0 de la porteuse est 1 750 Hz. On représente :
- 0 par 1 650 Hz (/o-100)
- 1 par 1 850 Hz (/0 + 100).
- p.62 - vue 80/387
-
-
-
- Description des voies de communication 63
- Exemple 2 : saut de phase tétravalent (avis Y26 du CCITT)
- On utilise 4 valeurs de la phase pour représenter les 4 signaux possibles :
- 00 par 0°
- 01 par 90°
- 11 par 180°
- 10 par 270°.
- Il y a deux manières d’identifier le signal à l’arrivée.
- — Un système cohérent utilise un signal de synchronisation, synchrone avec la porteuse non modulée.
- — Un système non cohérent n’utilise pas de synchronisation. On peu: utiliser par exemple un codage différentiel, dans lequel l’information est codée par la différence des deux dernières valeurs reçues.
- 2) Multiplexage en fréquence de signaux modulés
- La plupart des voies utilisées en modulation ont une largeur de bande passante très supérieure à celle qu’exige la transmission d’un signal unique. On peut exploiter efficacement cette bande passante en la découpant en plages de fréquence : chaque plage, ou « canal », est utilisée pour transmettre un signal modulé dont la porteuse est centrée sur le milieu de la plage. La largeur de bande W d’un canal, c’est-à-dire la largeur de l’intervalle de fréquence qu’il utilise, est liée à la vitesse de modulation 1/T sur ce canal par la relation
- Ce principe de multiplexage en fréquence (« Frequency Division Multi-plexing », ou FDM) est notamment utilisé en radio, où les bandes de fréquence sont normalisées, et en téléphonie, où 900 communications peuvent être transmises sur une bande allant de 8 516 à 12 388 kHz.
- 3) Propriétés des systèmes de modulation.
- Nous résumons ici brièvement les principales propriétés des méthodes de modulation.
- a) Le saut de phase ou d’amplitude autorise pour le signal une largeur de bande plus faible que le saut de fréquence, mais nécessite une valeur plus élevée du rapport signal sur bruit, donc une puissance plus élevée pour un même taux d’erreur.
- b) L’utilisation de la modulation à 4 ou 8 états permet en modulation de fréquence de réduire le taux d’erreur, à puissance constante, au prix d’une plus grande largeur de bande ; en modulation d’amplitude ou de phase, elle permet de réduire la largeur de bande, à taux d’erreur constant, au prix d’une puissance plus élevée.
- Les divers procédés de modulation sont les suivants et ont des domaines spécifiques d’utilisation.
- p.63 - vue 81/387
-
-
-
- 64 Systèmes informatiques répartis
- — Le saut de fréquence est utilisé par les équipements de transmission à faible vitesse ou sur les voies disposant d’une très large bande passante, comme les faisceaux hertziens.
- — Les modulations d’amplitude et de phase, parfois combinées, sont utilisées pour des transmissions à grande vitesse sur des lignes, et dans tous les cas où un taux élevé de multiplexage impose au signal une faible largeur de bande.
- 3.14 TRANSMISSION EN SÉRIE, TRANSMISSION EN PARALLÈLE
- Nous avons supposé jusqu’ici que les informations à transmettre étaient envoyées successivement sur la voie. Ce mode de transmission est dit en série. Si plusieurs informations peuvent être émises simultanément, la transmission est dite en parallèle.
- Exemple. Les bus internes à un ordinateur transfèrent en parallèle, suivant les organisations de machines, 8, 16, 32 bits et parfois plus.
- La transmission en parallèle est surtout utilisée en bande de base. En effet, en modulation, on dispose de moyens plus économiques, comme le multiplexage, pour augmenter le débit de transmission.
- Il est souvent nécessaire de passer du mode série au mode parallèle et vice versa. Ainsi, la liaison entre un terminal et un ordinateur se fait par une ligne de transmission en série, alors que les informations sont émises ou reçues en parallèle sur 8 bits par l’unité d’échange. Le passage d’un mode de transmission à l’autre se fait au moyen d’organes appelés sérialiseur ou désérialiseur, construits à base de registres à décalage.
- SL
- J1
- -fi-
- ion
- JLTL
- SL
- SL
- SL
- Sérialiseur Désérialiseur
- Figure 8. Conversion série-parallèle.
- 3.2 CARACTÉRISTIQUES PHYSIQUES DES VOIES
- 3.21 BANDE PASSANTE ET DÉBIT
- La bande passante d’une voie, considérée comme un filtre linéaire, a été définie en 3.131. Une voie réelle n’est qu’approximativement équivalente à un filtre idéal passe-bande ; la bande passante réelle est définie par la courbe
- p.64 - vue 82/387
-
-
-
- Description des voies de communication 65
- de variation de l’affaiblissement en fonction de la fréquence (voir 3.251). Le débit théorique d’une voie est lié à sa bande passante par la formule de Shannon-Hartley-Tuller (voir 3.131).
- Exemple. Pour une voie normalisée des PTT (bande passante : 3 100 Hz, rapport signal/bruit : 20 db), la formule donne C = 20 kbit/s. Le débit maximal effectivement atteint dans la pratique est environ la moitié de cette valeur.
- La notion de débit utile s’introduit en remarquant que toutes les informations transmises dans un message ne sont pas significatives : une fraction / des valeurs transmises est utilisée pour des informations de service (synchronisation, détection d’erreur, etc.). Le débit utile Ru est alors relié au débit binaire R par la relation Ru — (1 — /) R. Par exemple, dans une transmission de caractères où 3 bits sur 11 servent à des fonctions de synchronisation, le débit utile est égal à 8 RJ II.
- 3.22 TAUX D’ERREUR
- Le taux d’erreur d’une voie est la probabilité de perte ou d’altération d’une information élémentaire transmise sur cette voie. Le taux d’erreur n’est pas une caractéristique de la voie : il dépend de son mode d’utilisation et surtout de son environnement. Ainsi, un bus n’a pas le même taux d’erreur dans une salle protégée que dans un local industriel soumis à des perturbations électromagnétiques.
- Exemple. Sur une voie téléphonique ordinaire, le taux d’erreur est de l’ordre de 10~3. Il est de l’ordre de 10“10 à 10-12 sur un bus placé dans un environnement protégé.
- Dans un système de communication construit selon une hiérarchie de niveaux, un taux d’erreur élevé sur une voie de niveau bas peut être compensé par des mécanismes de correction d’erreur réalisés à des niveaux supérieurs.
- 3.23 LONGUEUR ÉLÉMENTAIRE
- La longueur élémentaire d’une voie est la distance maximale sur laquelle elle peut être utilisée sans recourir à des dispositifs d’amplification et de répétition du signal. De même que le taux d’erreur, la longueur élémentaire n’est définie que pour des conditions données d’utilisation. La longueur élémentaire est essentiellement limitée par les distorsions du signal, qui croissent avec la distance parcourue.
- 3.24 DÉLAI DE TRANSMISSION
- Le délai de transmission est la durée qui sépare le début d’émission d’un message de la fin de sa réception correcte ; il n’est défini, sur une voie, que pour un couple émetteur-récepteur et un format de message.
- p.65 - vue 83/387
-
-
-
- 66 Systèmes informatiques répartis
- Le délai de transmission dépend de la durée d’émission du message par l’émetteur et du délai de propagation, temps mis par un signal élémentaire pour parvenir de l’émetteur au récepteur. Sur une voie partagée, il comprend en outre un délai d’attente qui dépend de la politique d’allocation et de la charge de la voie. Enfin, la transmission correcte d’un message peut nécessiter plusieurs réémissions. Le délai de transmission est donc en général une variable aléatoire. Dans de nombreuses applications, la faible dispersion du délai de transmission ou l’existence d’une borne supérieure sont des qualités aussi importantes que la faible valeur de sa moyenne.
- Sur la plupart des voies utilisées en transmission de données, le délai d’émission est largement supérieur au délai de propagation ; c’est l’inverse dans le cas des liaisons radioélectriques par satellite (3.413).
- 3.25 DÉFAUTS DES VOIES
- On peut distinguer les défauts intrinsèques dus à l’imperfection de la voie et ceux produits par son environnement.
- 3.251 Distorsions
- La distorsion d’une voie caractérise la différence entre sa fonction de transfert et celle d’un filtre idéal passe-bande, qui présente un affaiblissement et une vitesse de propagation constants à l’intérieur de sa bande passante.
- La figure 9 (d’après [Clavier 72]) montre pour deux lignes de transmission la variation de l’affaiblissement et de la vitesse de propagation en fonction de la fréquence. Les organismes de normalisation (voir 3.7) imposent des limites à la distorsion admissible sur les voies normalisées. Ces limites sont exprimées sous la forme de gabarits qui délimitent une région interdite où les courbes de distorsion ne doivent pas pénétrer.
- Affaiblissement
- Fréquence
- 400 800 '1 200
- Durée de propagation (ms)
- (en écart par rapport- au minimum)
- 400 800 1 200 1 600
- Fréquence
- (1) Ligne louée
- (2) Ligne du réseau commuté
- Figure 9. Distorsions d’amplitude et de phase.
- p.66 - vue 84/387
-
-
-
- Description des voies de communication 67
- La courbe de distorsion de phase a une forme connue avec précision par des mesures ; on peut donc intégrer dans les modems des correcteurs de phase qui permettent de compenser cette distorsion.
- 3.252 Perturbations
- La communication peut être perturbée par diverses causes externes : bruit thermique, bruit impulsif, parasites industriels et atmosphériques, bruits diaphoniques induits par d’autres voies. En outre, les variations des conditions de propagation peuvent provoquer des coupures de la transmission. Dans des cas défavorables, ces coupures peuvent occuper jusqu’à 1 % du temps sur les lignes du réseau téléphonique ou les liaisons par radio.
- 3.3 TOPOLOGIE ET UTILISATION DES VOIES
- 3.31 TOPOLOGIE DES VOIES
- Une voie qui relie deux entités communicantes et seulement deux est dite bipoint. Une voie qui relie plus de deux entités communicantes est dite à accès multiple, ou partagée. L’accès des entités communicantes à la voie et le partage de la voie peuvent être réglés de manières très diverses (voir chapitre 4). Les voies partagées peuvent présenter une grande variété de configurations. La figure 10 décrit quelques configurations couramment rencontrées.
- ? ? ?
- Voie linéaire
- Arborescence
- Matrice d’interconnexion Anneau
- Figure 10. Quelques configurations de voies partagées.
- OÔ
- p.67 - vue 85/387
-
-
-
- 68 Systèmes informatiques répartis
- Un réseau de communication est constitué d’un ensemble de nœuds, ou commutateurs, reliés entre eux par des voies. Chaque nœud peut communiquer avec n’importe quel autre, soit directement, soit par l’intermédiaire d’autres nœuds. Les entités communicantes reliées au réseau sont appelées hôtes ou stations. Chaque station est reliée à un ou plusieurs nœuds du réseau.
- Des configurations particulières de réseaux sont l’étoile, l’arborescence et l’anneau. Dans les deux premières, un nœud particulier (centre de l’étoile, racine de l’arborescence) joue un rôle privilégié et des fonctions d’allocation lui sont en général dévolues. Un réseau général, qui possède au moins un circuit et qui n’est pas un anneau, est appelé réseau maillé.
- 3.32 MODES D’UTILISATION DES VOIES
- Une voie bipoint est dite unidirectionnelle (ou « simplex ») si elle ne peut transmettre l’information que dans un seul sens. Elle est dite bidirectionnelle alternative (ou « half-duplex ») si elle peut transmettre dans les deux sens alternativement (ce mode de transmission est dit « à l’alternat »). Enfin, une voie bipoint est dite bidirectionnelle simultanée (« full-duplex ») si elle peut transmettre simultanément dans les deux sens.
- Une voie partagée est utilisée en mode point à point si chaque transfert d’information met en jeu deux entités et deux seulement. Une voie partagée est utilisée en mode diffusion si une entité peut transmettre simultanément un même message à un sous-ensemble ou à la totalité des autres entités.
- Remarque 1. Nous distinguons le terme « bipoint » qui caractérise la topologie d’une voie et le terme « point à point » qui caractérise un mode d’utilisation d’une voie partagée. Une voie bipoint est bien entendu toujours utilisée en mode point à point.
- Remarque 2. Une voie utilisable en mode diffusion peut être construite sur une voie utilisable en mode point à point, à l’aide d’un protocole approprié ; l’opération inverse est également possible (voir chapitre 5). Une voie directement utilisable en mode diffusion (sans nécessiter de protocole de niveau inférieur) est dite voie à diffusion. Un exemple en est fourni par les liaisons radioélectriques (3.423).
- Une voie multipoint est une voie linéaire ou en anneau caractérisée par un mode d’utilisation particulier : une entité privilégiée, la station principale, assure les fonctions d’allocation de la voie et la communication ne peut avoir lieu qu’entre cette station principale et les stations secondaires ; une seule communication peut se dérouler à la fois. Par rapport à un ensemble de voies bipoint, la voie multipoint a l’avantage d’économiser les câbles de liaison; elle est surtout utilisée pour le branchement de terminaux.
- 3.33 LA COMMUTATION
- Les techniques qui permettent la gestion des réseaux de communication sont regroupées sous le terme de commutation. Pour que deux stations puis-
- p.68 - vue 86/387
-
-
-
- Description des voies de communication 69
- sent communiquer, on doit établir un chemin entre deux noeuds du réseau reliés à ces stations. Plusieurs possibilités sont envisageables :
- — déterminer un chemin qui restera fixé pour toute la durée de la communication,
- — reconstituer un nouveau chemin à chaque émission d’un nouveau message par la station émettrice,
- — construire un chemin dynamiquement : quand un message arrive à un noeud intermédiaire, on détermine le noeud suivant du chemin.
- Le réseau de communication peut supporter, à un instant donné, plusieurs communications. Il faut donc partager dynamiquement les noeuds et les lignes. Les méthodes de commutation se répartissent en deux classes.
- — La commutation de circuits, ou commutation de lignes, consiste à construire des chemins fixes et à réserver les lignes le long du chemin pour toute la durée de la communication.
- — La commutation de données consiste à partager les lignes entre plusieurs communications simultanées : les lignes sont allouées dynamiquement, au dernier moment, pour l’émission d’un message, et libérées dès la transmission terminée.
- Un chemin établi par commutation de circuits sur un réseau ne diffère pas d’une voie simple, pendant la durée de la communication.
- L’organisation générale des réseaux de communication est décrite en 3.6. Une étude plus complète de la commutation, en tant que méthode de partage, est faite au chapitre 4.
- 3.4 VOIES SIMPLES
- Nous regroupons sous le terme de voies simples les voies constituées de supports homogènes permettant la transmission des signaux, munies éventuellement d’organes d’accès et de couplage, ou de répétition, mais ne comportant pas d’organe de mémorisation.
- 3.41 CARACTÉRISTIQUES DES SUPPORTS HOMOGÈNES 3.411 Supports métalliques
- Les métaux bons conducteurs électriques (cuivre, bronze, mais aussi aluminium ou or) sont les supports les plus répandus ; ils sont utilisés sous des formes diverses :
- — Sur de courtes distances il est possible d’employer des fils simples. En mode de base, l’information est représentée par un potentiel électrique, ce qui impose la présence d’un potentiel de référence (masse).
- p.69 - vue 87/387
-
-
-
- 70 Systèmes informatiques répartis
- Exemple. Les bus sont constitués de fils de cuivre, les raccordements des circuits intégrés utilisent des fils d’or, et les bus internes de ces circuits sont constitués d’aluminium déposé ou même de silicium polycristallin de faible résistivité.
- — L’utilisation de paires de fils permet de transmettre plus facilement une différence de potentiel. L’affaiblissement du signal est évidemment très variable en fonction de l’isolement, de la section, de la conduction des fils. Les paires peuvent être utilisées isolément ou sous forme de câbles regroupant un grand nombre de paires. Les paires uniques, utilisées sous forme de lignes aériennes, peuvent transmettre sans amplification jusqu’à quelques kilomètres, mais sont très sensibles aux parasites. Dans les câbles, l’affaiblissement est plus important en raison des effets d’induction mutuelle entre les différentes paires. On pallie partiellement cet inconvénient en plaçant des inductances sur les lignes ; on obtient ainsi des câbles chargés ou « pupinisés », qui coupent les basses fréquences et rendent nécessaire l’utilisation de la modulation. Mais ces bobines sont progressivement remplacées par des répéteurs (voir 3.431). L’affaiblissement est aussi fonction de la fréquence; il peut varier de 0,6 à 22 db par kilomètre. La bande passante des câbles multipaires est de l’ordre de 500 kHz, mais ils sont utilisés en pratique avec des débits faibles.
- — Les câbles coaxiaux ont une structure fermée qui les rend moins sensibles aux parasites et aux effets d’induction mutuelle. Ils ont une très large bande passante de 1 à 120 MHz, et un affaiblissement de 1 à 20 db/km. Ils sont couramment utilisés en télétransmission pour des liaisons à longue distance, ainsi que localement, comme bus de transmission en série, pour relier des organes électroniques jusqu’à une distance de quelques centaines de mètres dans un environnement perturbé électriquement.
- 3.412 Fibres optiques
- Différents matériaux, liquides ou solides, conduisant bien la lumière sont utilisés pour la réalisation de fibres optiques. Leur principal avantage est d’être insensibles aux perturbations électriques ou magnétiques. Elles permettent aujourd’hui d’obtenir sur quelques kilomètres des débits de l’ordre de 10 à 100 Mbit/s, avec un affaiblissement de 1 à 20 db/km. L’utilisation de répéteurs permet la transmission sur de plus grandes distances. La technologie des fibres optiques fait l’objet d’un important effort de recherche et de développement, qui devrait à court terme accroître leurs performances et étendre leur domaine d’application. Les débits escomptés sont de l’ordre de 1 000 Mbit/s sur quelques kilomètres. On trouvera des renseignements complémentaires sur ce mode de communication dans [Midwinter 79].
- 3.413 Ondes radioélectriques
- Le domaine d’utilisation des ondes radioélectriques dépend de leur fréquence qui détermine leurs conditions de propagation. On distingue ainsi plusieurs classes de voies.
- p.70 - vue 88/387
-
-
-
- Description des voies de communication 71
- 1) Les guides d'ondes sont formés par une bobine creuse dans laquelle se propagent les ondes électromagnétiques. Utilisant de très hautes fréquences (30 à 100 GHz), ils permettent de très hauts débits, mais leur mise au point s’avère délicate et leur utilisation en informatique est encore expérimentale.
- 2) Les faisceaux hertziens couvrent la gamme de fréquence de 200 MHz à plus de 30 GHz. Ils sont souvent assimilés aux voies filaires en raison de leur directivité. Leur bande passante est du même ordre de grandeur que celle des câbles coaxiaux. Les faisceaux hertziens sont dirigés de réémetteur en réémetteur. Les faisceaux « à vue directe » peuvent travailler avec des puissances faibles car ils sont peu perturbés, alors que les faisceaux « transhorizon » le sont beaucoup et nécessitent des émetteurs puissants et des antennes à grand gain.
- Un important domaine d’application des faisceaux hertziens est la communication par satellite géostationnaire (fïg. 11). Le satellite, placé sur une orbite synchrone, à 36 000 km d’altitude, sert de relais entre les stations émettrices et réceptrices, par rapport auxquelles il garde une position fixe. Ce mode de transmission permet la diffusion sur une zone géographique étendue (3 satellites suffisent pour couvrir l’ensemble du globe) tout en exploitant la très large bande passante des faisceaux hertziens. Les fréquences utilisées s’étendent de 0,2 à 40 GHz et le débit en transmission de données atteint plusieurs dizaines de Mbit/s ; des débits 10 fois plus élevés sont envisagés.
- Antenne de réception
- Antenne d’émission
- Voie montante (point à point)
- Voie descendante (diffusion)
- E : Emetteur R : Récepteur
- (une même station peut jouer les deux rôles)
- Figure 11. Communication par satellite géostationnaire.
- Le satellite reçoit les signaux en vue directe et les réémet immédiatement, sur une fréquence de porteuse différente pour éviter les interférences. Il ne comporte pas d’organe de mémorisation.
- La caractéristique principale de ce mode de transmission est l’importance du délai de propagation, qui varie de 0,24 à 0,27 s pour un trajet aller-retour. On trouvera des informations complémentaires sur ce mode de communication dans [Parés 75].
- p.71 - vue 89/387
-
-
-
- 72 Systèmes informatiques répartis
- 3) Le domaine des fréquences comprises entre 10 kHz et 1 000 MHz est utilisé par les voies radioélectriques. Celles-ci ne sont plus guidées, mais utilisées en mode diffusion. Elles sont peu utilisées pour le transfert de données, excepté dans des applications militaires.
- Les caractéristiques de ces voies radioélectriques sont très différentes suivant les fréquences utilisées ; plusieurs bandes sont définies, pour lesquelles nous indiquons entre parenthèses une fréquence caractéristique : « très basses fréquences » (VLF : 10 kHz), « basses fréquences » (LF : 100 kHz), « moyennes fréquences » (MF : 1 MHz), « hautes fréquences » (HF : 10 MHz), et « très hautes fréquences » (YHF : 100 MHz et UHF : 1 GHz). Leur largeur de bande va de 100 Hz à plusieurs MHz en UHF (cas de la modulation de fréquence pour la télévision). Ces voies sont généralement très perturbées (bruits divers, manque de stabilité en fréquence des équipements, intermodulation, « fad-ing »), et la distribution des erreurs introduites est mal connue. L’utilisation de ces voies est en outre soumise à des contraintes législatives et les fréquences ne peuvent être choisies librement.
- Il existe néanmoins des exemples de réseaux informatiques utilisant de telles voies : c’est le cas du réseau Aloha [Abramson 73] dont toutes les stations communiquent sur une voie UHF.
- 3.42 EXEMPLES DE SUPPORTS HOMOGÈNES 3.421 Les bus
- Un bus (fig. 12) est un organe de communication composé d’un support physique (fils parallèles, câble coaxial, fibres optiques) partagé par plusieurs éléments, qui communiquent directement en utilisant ce support, sans mettre
- Processeur
- Périphérique
- Mémoire
- Mémoire
- Bus
- Figure 12. Représentation usuelle d’un bus.
- p.72 - vue 90/387
-
-
-
- Description des voies de communication 73
- en œuvre d’élément relais. Un bus est utilisé en mode point à point et n’autorise qu’une seule communication à la fois entre deux éléments.
- Exemple 1. Les bus utilisés pour relier à un ordinateur différents organes périphériques jusqu’à des distances de quelques centaines de mètres peuvent être constitués de câbles coaxiaux. L’information est transmise en série et en mode de base. Il est facile de raccorder des éléments supplémentaires.
- Exemple 2. Les bus internes, utilisés pour relier entre eux les éléments centraux d’un ordinateur (mémoire, processeurs), ou les éléments internes à un processeur (opérateurs, registres) sont constitués de fils parallèles : métallisations d’aluminium dans un circuit intégré, fils imprimés dans une plaque ou un fond de panier, fils en ruban souple entre plusieurs plaques. Ces bus permettent un débit très élevé (100 Mbit/s). Ils doivent être extrêmement fiables en raison de leur rôle central.
- L’utilisation d’un bus soulève deux problèmes :
- — l’allocation du bus, puisqu’une seule communication peut se dérouler à la fois (voir chapitre 4),
- — l’adressage des éléments connectés, pour permettre à l’émetteur d’un message d’identifier le destinataire. Cette fonction est réalisée au moyen d’une voie spécialisée (« fils d’adresse ») sur laquelle l’émetteur code le numéro de l’élément destinataire, ce qui autorise ce dernier, et lui seul, à prélever l’informar tion émise.
- Dans les bus internes, l’interface de chaque élément avec le bus comporté des registres qui servent au dépôt et au retrait de l’information transmise (fig. 13). L’émetteur place les données dans un registre d’interface; puis il ouvre des portes logiques, établissant des niveaux de tension sur les fils du bus ; le récepteur échantillonne ces niveaux en ouvrant des portes et ; les niveaux sont transférés dans les bascules des registres d’interface. D’autres portes, actionnées par les fils d’adresse et non figurées ici, ont au préalable sélectionné le registre d’interface de l’organe récepteur.
- ! : : ) Fils f du \ bus
- — rr — —
- Ouverture
- Portes a haute i 1 ^ 1 ] T i Portes et
- —
- impédance
- Organe émetteur Registre d’interface
- Organe récepteur Registre d’interface
- Figure 13. Transfert de données sur un bus.
- p.73 - vue 91/387
-
-
-
- 74 Systèmes informatiques répartis
- L’échantillonnage des données peut être réalisé suivant des méthodes synchrones ou asynchrones. Les méthodes synchrones et les méthodes asynchrones « à sens unique » ont été présentées en 3.1. Une technique asynchrone dite d’accord mutuel utilise un protocole analogue à celui décrit en 2.112, mais en fait, dans les bus qui connectent de nombreux périphériques, une variante dite de l’accord confirmé, décrite en 5.2, est souvent utilisée. Cette technique permet de connecter des éléments de vitesses différentes, avec une faible sensibilité au bruit, mais au détriment de la vitesse de transmission. Un exemple de protocole de communication sur un bus est décrit en illustration 3.
- Les bus internes, qui utilisent la transmission en parallèle, permettent de véhiculer simultanément un bit par fil de donnée, soit un mot de 16 ou 32 bits, voire davantage. Sur ces bus, le transfert se fait le plus souvent mot par mot ; le mot constitue le message élémentaire. Par contre, sur des bus destinés à connecter des périphériques ou des dispositifs variés, qu’ils soient séquentiels ou parallèles, on emploie plutôt des modes de transfert « groupés ».
- 3.422 « Ether » du réseau Ethernet
- Le réseau Ethernet [Metcalfe 76] a brièvement été présenté en 1.23. Nous décrivons ici la voie de transmission (« Ether ») qui sert de support à ce réseau.
- Cette voie est constituée d’un câble coaxial ; la transmission se fait en bande de base et en série, à 3 Mbit/s. Les caractéristiques électriques du câble limitent sa longueur à 1 km environ, mais plusieurs câbles peuvent être reliés entre eux par des répéteurs. Chaque câble peut desservir 256 stations au plus.
- Sur cette voie, chaque station peut émettre à tout moment, et elle reçoit tous les messages. Ceux-ci sont organisés en paquets de taille fixe comportant les informations suivantes :
- — adresse de la station émettrice,
- — adresse de la station réceptrice,
- — données à transmettre,
- — code détecteur d’erreur.
- Chaque station est connectée au câble au moyen d’un contrôleur de communication et d’un transducteur (« transceiver »). Les transducteurs émettent et
- .Transducteur
- Répéteur
- Contrôleur
- Station
- Câble coaxial
- Interface série----
- ______ Interface
- parallèle
- Figure 14. Communication dans le réseau Ethernet.
- p.74 - vue 92/387
-
-
-
- Description des voies de communication 75
- reçoivent les signaux électriques en bande de base. Ils doivent pouvoir fonctionner en environnement perturbé, sur la distance et avec les fréquences indiquées ci-dessus, et résister électriquement à une émission simultanée de 256 stations ; enfin, ils doivent se déconnecter automatiquement dès qu’ils sont mis hors tension ou tombent en panne, de façon à ne pas perturber l’activité des autres stations.
- Les contrôleurs réalisent les fonctions suivantes :
- — conversion parallèle-série,
- — construction des paquets et calcul du code détecteur d’erreur à l’émission ; décomposition et vérification des paquets à la réception,
- — échange des paquets entre le transducteur et la station,
- — détection et réception des messages destinés à la station,
- — détection et traitement des collisions qui résultent de l’émission simultanée de paquets par plusieurs stations.
- Cette dernière fonction liée au partage de la voie est assurée par microprogramme dans les contrôleurs. La méthode utilisée pour régler les conflits est présentée en 4.22.
- Dans ce système, les contrôleurs, dont il existe autant de modèles que de types d’ordinateurs connectés, sont inclus dans les stations. Un réseau analogue, Danube, a été réalisé à l’INRIA [Quint 79]. Dans ce réseau, l’ensemble contrôleur-transducteur est réalisé sous la forme d’une unité distincte appelée communicateur. Construits autour d’un microprocesseur, les communicateurs sont programmables, ce qui permet par exemple de les utiliser comme concentrateurs de terminaux. Les communicateurs présentent une interface normalisée pour le raccordement des stations.
- 3.43 LIGNES DE TRANSMISSION DE DONNÉES
- Les supports homogènes que nous venons de présenter ne peuvent que rarement être utilisés directement pour la communication à longue distance pour deux raisons principales.
- D’une part, le signal s’affaiblit, ou encore ne se propage qu’en ligne droite (ondes hertziennes), et il faut disposer de répéteurs pour le régénérer et le retransmettre.
- D’autre part, il faut assurer une ou plusieurs des fonctions de codage, de modulation et d’amplification du signal. Ces fonctions sont remplies par des modems. Ce terme est également utilisé, par abus de langage, dans le cas d’une transmission en bande de base.
- 3.431 Caractéristiques des lignes
- L’administration des PTT fournit des lignes de télécommunication qui sont soit des lignes privées, soit des lignes constituées dynamiquement par commutation, voir 3.612. Ces lignes sont constituées de paires ou doubles paires munies de répéteurs. Les liaisons entre centraux utilisent en outre des câbles coaxiaux, des fibres optiques ou des relais hertziens.
- p.75 - vue 93/387
-
-
-
- 76 Systèmes informatiques répartis
- Le réseau téléphonique commuté permet de transmettre en principe jusqu’à 2 400 bit/s ; les équipements terminaux qui y sont rattachés incluent généralement les fonctions de connexion par reconnaissance du signal d’appel et de déconnexion par reconnaissance du signal de raccrochage.
- Les lignes spécialisées peuvent être de qualité normale, à 2 ou 4 fils, ou de qualité supérieure, à 4 fils, nécessaires au-delà de 2 400 bit/s.
- Les lignes purement métalliques peuvent être utilisées en bande de base jusqu’à une distance de 20 km. Leur bande passante est limitée par l’affaiblissement qui croît avec la fréquence. Le signal doit être amplifié tous les 5 à 10 km. Ces lignes permettent de transférer jusqu’à 19 200 bit/s.
- Les PTT regroupent les communications sur des lignes à haut débit. Le premier regroupement est fait dans le groupe primaire de base (de 60 à 108 kHz). Des groupes primaires de ce type peuvent aussi être loués à des utilisateurs, et autorisent un débit d’environ 50 kbit/s ; ils nécessitent des modems spéciaux, dits « de groupe primaire », dans les centres des PTT et le signal est réémis jusqu’à l’utilisateur par une ligne utilisée en bande de base et munie d’un modem à chaque extrémité.
- La figure 15 représente les principaux composants d’une ligne de communication.
- Interface normalisée Interface normalisée
- (par exemple V24) (par exemple V24)
- / /
- ' ---------------------------- ------------------------------------------------------------------------------------------------------ /
- Station i i —h Modem Ligne Modem / / H—- Station
- 1 (louée, commutée) 2
- (par exemple : (par exemple :
- terminal) ordinateur)
- Bande de base
- Modulation ou bande de base
- Bande de base
- Figure 15. Ligne de communication.
- 3.432 Principaux types de modems
- Les modems sont des appareillages symétriques, c’est-à-dire fonctionnant en émission et réception. Ils assurent les fonctions de codage, de modulation, de synchronisation et d’adaptation à la ligne.
- En bande de base, les modems travaillent généralement de façon synchrone et réalisent un codage qui permet de transférer l’information malgré les limitations apportées par la ligne : coupures des fréquences hautes et basses, distor-
- p.76 - vue 94/387
-
-
-
- Description des voies de communication 77
- sion d’amplitude et de phase. Ces modems sont bon marché et permettent de transférer jusqu’à 19 200 bit/s sur des lignes appropriées. Ils n’ont pas fait l’objet de normes internationales.
- Par contre, les transmissions utilisant la modulation ont fait l’objet d’une normalisation de la part du CCITT (voir 3.7). Celui-ci a défini un certain nombre de modems travaillant avec des caractéristiques bien précises qui sont présentées rapidement ci-après. Tous ces modems permettent une transmission bidirectionnelle simultanée.
- Avis V21. Transmission asynchrone à 300 bit/s sur réseau commuté ou ligne spécialisée 2 fils, par modulation de fréquence (sur 2 canaux).
- Avis V23. Transmission asynchrone et éventuellement synchrone à 600 bit/s ou 1 200 bit/s, par modulation de fréquence.
- Avis V26. Transmission synchrone à 2 400 bit/s sur ligne spécialisée 4 fils, par modulation de phase.
- Avis V27. Transmission synchrone à 4 800 bit/s sur ligne spécialisée de qualité supérieure ou même normale, par modulation de phase octovalente (c’est-à-dire 3 bits transmis à la fois).
- Avis V29. Transmission synchrone à 4 800 ou 9 600 bit/s sur ligne spécialisée de qualité supérieure, par modulation de phase et d’amplitude : 8 niveaux de phase, 2 niveaux d’amplitude.
- Avis V36. Transmission synchrone à 48, 56, 64 ou 72 kbit/s utilisant un groupe primaire en modulation d’amplitude.
- Par ailleurs, l’interface modem-terminal a fait l’objet d’autres normes, comme par exemple l’avis V24 présenté en illustration 1.
- 3.5 COMPOSITION DE BUS ET DE MÉMOIRES
- Les systèmes réalisés par interconnexion de bus et de mémoires sont des systèmes spécialisés permettant à un ensemble de processeurs géographiquement regroupés de communiquer entre eux et d’accéder à un ensemble de mémoires avec un haut degré de parallélisme. Nous présentons deux exemples de tels systèmes : le système Pluribus [Heart 73], dans lequel les bus sont connectés en série, et le système CM* [Swan 77, Swan 78], qui présente une structure hiérarchique à trois niveaux.
- 3.51 UN EXEMPLE DE COMPOSITION DE BUS EN SÉRIE : PLURIBUS
- Le système Pluribus est constitué de processeurs Sue (miniprocesseur 16 bits), de blocs de mémoire et de périphériques, regroupés en grappes. Chaque grappe est constituée d’éléments de même nature reliés à un bus muni d’un
- p.77 - vue 95/387
-
-
-
- 78 Systèmes informatiques répartis
- organe d’allocation appelé arbitre (voir 4.42). Les bus sont interconnectés entre eux en série et gérés en commutation de circuits.
- A tout instant, l’initiative des échanges appartient à un élément unique dit pilote. Le pilote peut demander des données à un autre élément (lecture) ou demander à un autre élément de recevoir les données qu’il émet (écriture). L’autre élément est dit copilote. Si le pilote et le copilote se trouvent sur des bus différents, le pilote doit attendre que le coupleur associé à son copilote ait obtenu l’allocation du second bus. Ce mode d’allocation comporte un risque d’interblocage si deux organes reliés à des bus différents s’adressent chacun, en même temps, à un organe relié à l’autre bus.
- Les bus sont reliés entre eux par des coupleurs qui, sur chaque bus, se comportent comme un équipement standard et peuvent donc être pilotes ou copilotes. Il y a trois types de coupleurs notés BCP, BCM et BCI, utilisés pour former les types de couplages illustrés figure 16.
- Chaque grappe de processeurs est ainsi reliée à toutes les grappes de mémoires et à toutes les grappes d’entrée-sortie. De même, chaque grappe d’entrée-sortie est reliée à toutes les grappes de mémoires.
- Bus à processeurs
- Bus d’Entrée-Sortie
- Bus à mémoire
- BCM
- BCM
- Périph.
- Arbitre
- Arbitre
- Périph.
- Arbitre
- Processeur
- Processeur
- Bloc
- mémoire
- Bloc
- mémoire
- Figure 16. Interconnexion des bus dans Pluribus.
- Le système Pluribus est utilisé pour la réalisation de noeuds d’un réseau de communication à commutation de paquets (3.62).
- p.78 - vue 96/387
-
-
-
- Description des voies de communication 79
- 3.52 UN EXEMPLE DE COMPOSITION HIÉRARCHIQUE DE BUS ET DE MÉMOIRES : CM*
- Le système CM*, déjà introduit en 1.24, est constitué d’une centaine de processeurs, qui ont accès à un univers d’objets partageables. Chaque processeur est regroupé avec une mémoire locale et des organes d’entrée-sortie pour former une molécule. La mémoire du système, constituée par la réunion des éléments de mémoire de toutes les molécules, est accessible par tout processeur. Toutefois, chaque processeur accède de façon différente aux différentes mémoires, et les temps d’accès varient selon la proximité de la mémoire et du processeur. Cette architecture est fondée sur la localité des références à la mémoire ; le placement des objets en mémoire doit en tenir compte pour des raisons d’efficacité. Les processeurs sont des DEC LSI11. Une configuration du réseau est définie par le groupement des molécules en amas (« cluster ») et par l’interconnexion des amas.
- Chaque molécule est constituée (fig. 17) :
- — d’un processeur LSI11,
- — d’une mémoire ( ^ 256 Koctets),
- — de dispositifs d’entrée-sortie,
- — d’un adresseur local noté S local,
- — du bus du LSI 11, qui relie les composants de la molécule.
- Bus d’amas
- Bus LSI 11
- Mémoire
- Slocal
- Processeur LSI 11
- Entrées
- Sorties
- Figure 17. Schéma d’une molécule dans CM* (d’après [Ousterhout 80]).
- Les molécules sont regroupées en amas pouvant contenir jusqu’à 14 moléj cules. Une molécule appartient à un amas et un seul. Chaque amas est constitué :
- — de molécules rattachées à l’amas par l’intermédiaire de leur adresseur local,
- — d’un adresseur d’amas, noté Kmap,
- — d’un bus qui relie les composants de l’amas.
- Les amas sont reliés entre eux, via leurs adresseurs Kmap, par des bus interr amas (fig. 18). Chaque Kmap peut être connecté à deux bus inter-amas. Le nombre d’amas n’est limité que par la taille des adresses sur les bus interamas.
- p.79 - vue 97/387
-
-
-
- 80 Systèmes informatiques répartis
- T_
- CM
- 29
- CM CM
- 20 21
- KMAP
- CM( : molécule n° i
- Figure 18. Schéma général de CM* (d’après [Ousterhout 80]).
- Très schématiquement, lorsqu’un processeur fait une référence à la mémoire, sa demande est envoyée à son adresseur Slocal qui réalise un premier aiguillage selon que la cellule désignée est présente ou non dans la molécule. Si elle est présente, l’accès est effectué par le bus du LSI11. Si elle est absente, la demande est envoyée vers le Kmap qui détermine si la cellule désignée est présente ou non dans l’amas. Si elle est présente, la demande est dirigée vers la molécule concernée. Si elle se trouve dans un autre amas, la demande lui est transmise par l’un des bus inter-amas.
- Les adresseurs Slocal sont des dispositifs câblés spéciaux. Les Kmap sont des assemblages de microprocesseurs TTL et de dispositifs d’interface; ils traitent en parallèle jusqu’à 8 requêtes. Le bus du LSI 11 est arbitré par le LSI 11 ; le bus d’un amas est un bus synchrone dont l’horloge de base figure dans le Kmap, qui est aussi l’arbitre du bus ; chaque bus inter-amas est un bus asynchrone avec arbitrage réparti (voir 4.23) : l’élément pilote sert d’arbitre pour les demandes suivantes de pilotage. Les transferts mettant en jeu plusieurs bus utilisent la commutation par paquets (voir 3.613) plutôt que la commutation de circuits. Les deux techniques présentent des risques d’interblocage lors de l’allocation dynamique de tampons pour la première, ou de l’allocation dynamique de bus pour la seconde ; cependant, selon les concepteurs de CM*, il ne serait pas coûteux d’augmenter suffisamment le nombre de tampons pour rendre l’interblocage peu probable, et le taux d’utilisation des bus serait meilleur en commutation par paquets qu’en commutation de circuits. Le risque d’interblocage est illustré par l’exemple ci-après.
- p.80 - vue 98/387
-
-
-
- Description des voies de communication 81
- Exemple. Soit dans un même amas deux molécules {Pu MJ et (P2, S2, M2), où Pt, St et M; désignent respectivement le processeur, l’adresseur local et la mémoire de la molécule de numéro i. Supposons que la communication à l’intérieur d’un amas se fasse par commutation de circuits, chaque processeur se réservant le chemin d’accès à la mémoire avant d’effectuer l’accès. Il y a interblocage si P1 tente d’accéder à M2 en même temps que P2 tente d’accéder à M j : en effet P1 réserve Sr puis S2 et P2 réserve S2 puis S1. La solution retenue consiste à munir chaque adresseur Slocal de deux jeux de registres, l’un utilisé pour les accès du processeur local, l’autre pour les accès des autres processeurs. Ces deux jeux de registres sont alloués indépendamment. Par ailleurs, le processeur LSI11 est modifié pour ne pas réserver le bus d’accès à sa mémoire locale pendant qu’il fait un accès distant.
- Avec cette architecture, les temps d’accès sont approximativement les suivants :
- — à l’intérieur d’une molécule : 3 ps,
- — à l’intérieur d’un amas : 9 ps,
- — à l’extérieur d’un amas : 24 ps.
- Les références d’un programme à l’extérieur de la molécule devront donc être rares ; à l’extérieur d’un amas, exceptionnelles. Pour les applications courantes, on estime que 85 % des références sont faites à l’intérieur d’une molécule.
- Les adresseur s Kmap sont les pièces maîtresses de cette architecture, car ils gèrent en parallèle les requêtes intra- et inter-amas. Ils contiennent les descriptions des « mémoires virtuelles » de chaque processeur de leur amas, et ils renferment chacun une copie du répertoire de tous les objets du système. Les performances des Kmap déterminent directement l’efficacité du système CM*.
- Le système CM* est utilisé pour des applications demandant un degré élevé de parallélisme d’exécution, comme la reconnaissance de la parole et le traitement d’images ([Jones 79]).
- 3.6 RÉSEAUX INFORMATIQUES
- 3.61 GÉNÉRALITÉS 3.611 Définitions
- Rappelons (3.31) qu’un réseau de communication est une voie constituée d’organes de commutation, ou noeuds, eux-mêmes reliés entre eux par des voies simples (lignes ou liaisons radio). Les réseaux de communication que nous considérons ici servent à relier entre eux des systèmes informatiques (ordinateurs, terminaux, systèmes spécialisés) pour constituer des réseaux informatiques. Il faut bien distinguer le réseau de communication proprement dit, objet de la présente étude, du réseau informatique dont il est un constituant.
- CORNAHON. — Systèmes informatiques rè/htrtis
- 4
- p.81 - vue 99/387
-
-
-
- 82 Systèmes informatiques répartis
- Exemple. Cigale est le réseau de communication du réseau informatique Cyclades. Transpac, réseau public français, présenté en 1.21, est un réseau de communication.
- Les entités qui communiquent à travers le réseau, ou abonnés, sont des utilisateurs ou des programmes d’application. Les appareils reliés au réseau et utilisés par les abonnés sont appelés machines hôtes ; ce sont des ordinateurs ou des concentrateurs de terminaux. Un site regroupe un ensemble d’hôtes géographiquement concentrés ; le terme de « site » est par ailleurs utilisé comme synonyme d’« hôte ». Chaque hôte est relié à un ou plusieurs noeuds du réseau de communication ; un même noeud peut supporter plusieurs hôtes. La figure 19 représente, à titre d’exemple, la configuration du réseau Arpanet.
- mit44
- RADC
- •mc5j0Corcc5 U Vncr PRCC49 >/f\ECcf bbn40 bbn30
- N>g—'VjHARVARC
- .ABERDEEN
- <\ \
- AMESl5d_Q < AMES 16 -ÿr’.Cïï'
- standford(?-~-
- / \§UME> HAWAI AycAT_
- GWC
- ITYMSHARE
- BEL VOIR' DCEC [
- SCOTT
- '•ARPAiPÉNTAGON
- "EGLI1
- /WV^ liaison par satellite
- O imp (Interface Message Processor) tip (Terminal Interface Processor)
- A imp Pluribus.
- Figure 19. Schéma d’un réseau informatique (d’après [Roberts 771).
- Nous envisageons le cas d’une communication point à point entre deux abonnés. Ces abonnés échangent des messages de taille quelconque qui n’ont de signification que pour eux-mêmes ; pour le réseau de communication, ces messages ne représentent qu’une suite de bits à transférer. Nous appelons source un nœud relié au site de l’abonné émetteur, puits un nœudirelié au site de l’abonné récepteur. Entre les noeuds source et puits, chaque message parcourt un chemin entre des noeuds relais.
- 3.612 Commutation de circuits et commutation de données
- La constitution du chemin entre source et puits est l’opération de commutation (3.33). En commutation de circuits, le chemin qui relie la source au puits est entièrement constitué avant le début de la communication et les lignes qui le composent sont réservées pour la durée de la communication. En commutation de données, les lignes empruntées par les informations transmises sont
- p.82 - vue 100/387
-
-
-
- Description des voies de communication 83
- allouées dynamiquement : un message peut donc arriver dans un noeud alors qu’aucune ligne de sortie n’est disponible et il doit alors être stocké dans le nœud en attendant la libération d’une ligne. Ces problèmes de stockage et d’allocation dynamique sont rendus invisibles aux abonnés par un ensemble de protocoles qui réalisent un réseau de transport. Ce réseau assure dans des conditions spécifiées le transport de messages entre deux sites quelconques.
- On peut schématiquement résumer les principales caractéristiques des deux modes de commutation. La commutation de circuits a l’avantage d’être simple à mettre en oeuvre en régime permanent : une fois le chemin établi, l’attente est réduite et le débit de transmission n’est limité que par les caractéristiques de la voie physique. Toutefois, la constitution du chemin est elle-même une opération complexe qui peut prendre du temps. En cas de défaillance d’une ligne pendant une transmission, la reprise est malaisée : il faut reconstituer un nouveau chemin. Enfin, la capacité des lignes est mal exploitée, puisqu’une ligne est réservée à un instant donné à une communication et une seule. La commutation de données présente des caractéristiques complémentaires : mise en oeuvre plus complexe, mais reprise plus aisée en cas de défaillance, délai d’initialisation nul, utilisation correcte de la capacité des voies, mais nécessité d’une régulation globale de la charge.
- Un exemple de réseau à commutation de circuits est fourni par le réseau téléphonique; certains systèmes de transmission de données fonctionnent sur le même principe.
- Exemple : le réseau Caducée [Macchi 79]
- Le réseau Caducée est un réseau de transmission de données à commutation de circuits géré par les PTT françaises. Il comporte deux commutateurs électromécaniques (à Paris et à Lyon), auxquels sont reliés 14 centres de raccordement répartis sur le territoire. Les commutateurs permettent d’établir entre deux centres quelconques une communication au moyen d’un chemin constitué physiquement lors de l’ouverture de la communication. La durée de cette opération initiale est de 5 s environ. Les données sont transmises en modulation, avec un débit maximal de 9 600 bit/s. Dans un rayon de 30 km autour des commutateurs, il est possible de transmettre en bande de base à 72 kbit/s.
- Nous ne décrivons dans la suite du chapitre que des systèmes à commutation de données, en nous limitant à l’étude du réseau de transport. Les problèmes spécifiques de l’allocation des voies pour la constitution d’un chemin sont examinés au chapitre 4.
- 3.613 Commutation de messages et commutation par paquets
- Dans un réseau à commutation de données, les messages qui ne peuvent être immédiatement renvoyés quand ils arrivent dans un noeud sont placés dans des files d’attente associées aux lignes de sortie. C’est pourquoi cette technique est aussi appelée commutation par mémorisation et renvoi (« store and forward switching »). Elle peut être comparée à la technique utilisée par les services postaux pour transmettre le courrier.
- p.83 - vue 101/387
-
-
-
- 84 Systèmes informatiques répartis
- La taille variable des messages et l’irrégularité du trafic rendent le délai de transmission difficile à prévoir et à contrôler. Un noeud peut être inondé à un instant donné par une succession de longs messages, ce qui oblige à prévoir une mémoire de stockage importante : en effet, un noeud ne peut retransmettre un message avant de l’avoir reçu dans sa totalité. La mise en oeuvre de priorités entre messages s’avère délicate, car les longs messages non prioritaires retardent les messages courts et urgents. On évite ces difficultés en décomposant les messages en blocs de taille limitée, ou paquets. Les paquets sont transmis indépendamment les uns des autres. Moyennant certaines précautions, comme le contrôle de congestion (voir chapitre 9), un noeud ne traite à un instant donné qu’un nombre limité de paquets et peut se contenter d’une mémoire de taille plus réduite, de l’ordre de quelques milliers d’octets.
- Suivant que l’on utilise ou non ce découpage en paquets, on parle de commutation par paquets ou de commutation de messages. La commutation de messages est applicable aux réseaux de terminaux lents, et plus généralement à tous les cas où le délai de transmission n’est pas critique. En revanche, les réseaux d’ordinateurs exigent des délais brefs, notamment pour les messages de commande ; aussi utilisent-ils couramment la commutation par paquets, qui permet d’acheminer un paquet en une fraction de seconde sur quelques centaines de kilomètres.
- La supériorité de la commutation par paquets, pour l’acheminement d’un message, est illustrée sur la figure 20, où l’on voit que les paquets constituant un message peuvent voyager en même temps sur des lignes différentes : cet effet « pipeline » permet de réduire sensiblement le temps total de transmission. On s’est placé dans le cas simple où une seule communication est en
- Début d’émission en A
- 1 message
- Fin de réception sur B
- Temps
- 4 paquets
- La transmission se fait selon le chemin ABCD.
- Figure 20. Commutation de messages et commutation par paquets.
- p.84 - vue 102/387
-
-
-
- Description des voies de communication 85
- cours, mais le résultat est confirmé, dans le cas général, par la simulation et la théorie. Signalons un autre avantage de la commutation par paquets : en cas d’erreur, il suffit en général de retransmettre un seul paquet et non le message entier.
- La commutation par mémorisation et renvoi pose en outre un problème de gestion de mémoire pour les messages. On appelle fragmentation le découpage d’un message en paquets et assemblage l’opération inverse. Ces opérations peuvent être faites soit dans les hôtes, soit dans les noeuds source et puits. En cas d’allocation dynamique des tampons aux paquets, il faut prévoir un nombre suffisant de tampons pour assurer l’assemblage des messages après réception (voir chapitre 9).
- Le reste de ce chapitre est consacré exclusivement aux réseaux à commutation par paquets.
- 3.62 LES RÉSEAUX A COMMUTATION PAR PAQUETS
- 3.621 Protocoles et interfaces de communication
- Considérons un réseau d’ordinateurs communiquant au moyen d’un réseau de communication à commutation par paquets. Pour transférer des messages entre les hôtes, il est commode de construire sur ce réseau de communication, qui ne reconnaît que les paquets, une voie nouvelle adaptée au transfert de messages, que nous appelons réseau de transport. Cette décomposition en niveaux permet de séparer les fonctions logiques d’échange de messages entre hôtes des fonctions de transfert physique de l’information. Le réseau de transport est constitué d’un ensemble de machines (câblées ou programmées) associées à chaque site et appelées stations de transport (en abrégé ST). On trouvera en illustration 5 la description de la station de transport du réseau Danube ; d’autres exemples figurent dans [Carr 70] (réseau Arpanet) et [Zimmermann 75] (réseau Cyclades). Les fonctions d’un réseau de transport sont examinées plus en détail en 3.622.
- Une station de transport échange donc des messages avec les abonnés du site et des paquets avec le réseau de communication. Elle peut être réalisée soit dans l’hôte, soit dans le nœud d’accès.
- L’organisation d’un réseau de transport met en évidence trois niveaux d’abstraction correspondant à trois types d’échanges d’information :
- — Entre un abonné et une station de transport, les informations échangées sont les messages envoyés ou reçus par l’abonné.
- — Entre la station de transport et le nœud auquel elle est reliée, les informations échangées sont les paquets résultant de la fragmentation des messages.
- — Entre deux nœuds reliés par une ligne, les informations échangées sont des trames, c’est-à-dire des paquets accompagnés d’informations de synchronisation et de détection d’erreur.
- Ces trois niveaux sont imbriqués et réalisés par une hiérarchie de protocoles lont chacun est construit sur le protocole de niveau immédiatement inférieur
- p.85 - vue 103/387
-
-
-
- 86 Systèmes informatiques répartis
- (fig. 21). On trouve successivement, en descendant dans cette hiérarchie (les noms en italique sont ceux normalisés par l’ISO) :
- — un protocole de transport pour l’envoi de messages entre deux abonnés,
- — un protocole de communication, ou de réseau, pour l’acheminement de paquets entre un noeud source et un noeud puits,
- — un protocole de commutation, ou de ligne, pour l’échange de trames entre deux noeuds voisins.
- Exemple. Il existe aux différents niveaux des protocoles normalisés : au niveau « ligne », le protocole HDLC (« High-level Data Link Control ») décrit en illustration 2 ; au niveau « réseau », le protocole X25, construit sur le protocole HDLC.
- Interface de transport ï i i i i ( Protocoles de niveau ) ( supérieur ) l 1 1 1 Informations échangées < dépend de l’application )
- Interface de réseau X Protocole de transport Messages
- Interface de ligne L Protocole de réseau Paquets
- Interface physique L Protocole de ligne Trames
- y///////////////// 7/7777777 /7777777777777777/, Voie physique 77777777 Bits
- Figure 21. Les niveaux d’un réseau à commutation par paquets.
- 3.622 Réseau de transport
- Le programmeur qui écrit une application particulière ne doit connaître que l’interface du niveau de transport correspondant. Si cette application réalise à son tour un service offert sur le réseau, on définit une interface pour ce service, et les utilisateurs du service peuvent ignorer l’existence du réseau de transport.
- Un réseau à commutation par paquets offre habituellement au niveau de transport plusieurs services dont nous citons les plus courants.
- 1) Le service voie virtuelle permet d’établir entre deux abonnés une voie sur laquelle peuvent être échangées des informations. Le terme de circuit virtuel est réservé à une voie virtuelle comportant contrôle d’erreur et régulation de flux, sur laquelle les informations sont reçues dans l’ordre où elles ont été émises.
- p.86 - vue 104/387
-
-
-
- Description des voies de communication 87
- Exemple. Le réseau Transpac fournit à ses utilisateurs des circuits virtuels. Ces circuits sont réalisés par un chemin déterminé lors de l’ouverture du circuit et maintenu fixe jusqu’à sa fermeture.
- 2) Le service datagramme permet d’échanger entre deux abonnés des messages isolés, de taille limitée à celle d’un paquet, sans établissement préalable de voie. La qualité de ce service dépend de celle du réseau de communication.
- Plusieurs communications simultanées doivent pouvoir être établies depuis une station de transport particulière. Pour pouvoir les désigner sans ambiguïté, on définit dans chaque station de transport des objets relais appelés portes (voir 7.332). Tout accès à une station de transport s’effectue à travers une de ses portes. L’utilisation des noms de portes est définie par une convention connue de tous les abonnés du réseau. La mise en correspondance d’un nom de porte avec un abonné est assurée localement par l’hôte auquel appartient la porte.
- Les échanges entre abonnés, qu’ils utilisent les voies virtuelles ou les datagrammes, s’effectuent donc en fait entre deux portes. Ainsi, une voie virtuelle établie entre deux abonnés peut être matérialisée par un couple de portes (fig. 22).
- Portes Portes
- abonné 1
- abonné 2
- abonné 2
- site B
- site A
- Figure 22. Voies virtuelles entre portes.
- Exemple : interface de la ST2 Cyclades
- Nous présentons, à titre d’exemple, une partie des services offerts par la station de transport ST2 du réseau Cyclades [Zimmermann 75]. Nous décrivons uniquement les échanges sur une voie virtuelle, laissant de côté les fonctions liées à l’envoi de datagrammes.
- Un abonné n’est pas toujours présent sur un site ; l’une des fonctions du réseau de transport consiste donc à gérer l’arrivée et le départ des abonnés. Chaque ST fournit donc deux primitives :
- ouvrir-PT (porte) fermer-P T (porte)
- qui font respectivement entrer ou sortir un abonné sur le site considéré.
- p.87 - vue 105/387
-
-
-
- 88 Systèmes informatiques répartis
- La seconde fonction de la station de transport est d’assurer l’établissement de voies virtuelles entre abonnés ; c’est le rôle des primitives :
- ouvrir-LI (voie) fermer-LI (voie) surveiller-PT (porte)
- qui permettent respectivement d’ouvrir une voie virtuelle, de fermer une voie virtuelle, et d’être averti d’une ouverture sur une porte distante.
- Enfin, deux primitives permettent l’échange d’information proprement dit :
- envoyer-LI (voie, message) recevoir-LI (voie, message).
- D’autres exemples sont présentés au chapitre 5.
- 3.623 Réseau de communication
- 1) Format des paquets
- Le choix de la taille des paquets résulte d’un compromis entre divers critères : délai de transmission, taux d’erreur admissible, etc. Dans la plupart des réseaux, la taille choisie est de l’ordre du millier de bits. Pour travailler avec un réseau hétérogène qui utilise divers formats de mots, on peut être amené à choisir une taille de paquet multiple des longueurs de mots courantes.
- Outre les données à transmettre, un paquet doit contenir divers renseignements dont l’ensemble constitue son en-tête : adresse de l’émetteur et du récepteur (noeud ou abonné selon le cas), longueur du texte de données, informations de service diverses (numéro d’ordre, nature du paquet, priorité, etc.).
- Exemple : en-tête des paquets de Transpac
- Il existe deux types de paquets : les paquets de données, qui transportent au choix 32 ou 128 octets d’information, et les paquets de service. L’en-tête d’un paquet de données a une taille de 3 octets et comporte les champs suivants :
- — un bit permettant d’identifier le paquet comme un paquet de données,
- — un bit permettant d’indiquer si le paquet est ou non le dernier d’un message,
- — le numéro du circuit virtuel sur lequel est envoyé le paquet ; ce numéro identifie un couple (origine, destination) et permet d’aiguiller le paquet à la traversée des noeuds,
- — un numéro de séquence en émission, qui numérote les paquets émis sur un même circuit virtuel,
- — un numéro de séquence en réception utilisé par le mécanisme de régulation de flux sur un circuit virtuel.
- On notera que l’en-tête d’un paquet ne contient pas de code détecteur d’erreur. Ce code est en effet utilisé par le protocole de ligne, de niveau inférieur à celui qui traite les paquets ; il est donc contenu dans une « trame », qui constitue une enveloppe du paquet. Le format des trames est défini par le protocole utilisé pour la gestion des transmissions entre deux noeuds voisins (Transpac utilise le protocole HDLC).
- p.88 - vue 106/387
-
-
-
- Description des voies de communication 89
- Les modes de désignation possibles de l’origine et de la destination sont multiples. Le procédé le plus simple consiste à numéroter les machines hôtes du réseau. Comme il peut exister plusieurs hôtes sur un même site, comme l’on peut regrouper les sites en régions, et connecter les réseaux entre eux, il est commode d’adopter un adressage hiérarchique : < nom de réseau ) < nom de région ) < nom de site ) < nom local d’ordinateur ). Il est souhaitable de pouvoir modifier indépendamment le réseau de commutation et l’ensemble des hôtes : il est donc recommandé de construire un système de désignation des hôtes indépendant de la topologie du réseau.
- Exemple. Dans Cyclades, les ordinateurs hôtes utilisent indirectement le réseau via les stations de transport ; un schéma interne au réseau de communication Cigale traduit le nom de la station en une adresse < nom de région ) < nom de noeud ).
- 2) Fonctionnement d'un noeud de commutation
- Chaque noeud reçoit, enveloppés dans des trames, des paquets en provenance des autres noeuds. Il doit assurer le renvoi des paquets reçus vers d’autres noeuds, ainsi que diverses fonctions locales de gestion du réseau (mesures, mise à l’heure, etc.), commandées par des paquets de service.
- La figure 23 donne un modèle général d’un noeud de commutation.
- On peut distinguer dans ce modèle plusieurs processus.
- Un processus émetteur et un processus récepteur sont associés à chaque ligne connectée au noeud ; le récepteur reçoit des trames, dont il extrait des paquets qu’il achemine vers un processus commutateur ; l’émetteur enveloppe dans une trame chaque paquet à émettre et l’envoie sur la ligne ; émetteur et récepteur mettent en oeuvre les protocoles de ligne. Un processus commutateur analyse chaque paquet reçu et l’aiguille, soit vers le processus émetteur d’une ligne, soit vers un processus de traitement s’il s’agit d’un paquet de service. Enfin, divers processus de gestion traitent les paquets de service, avec réémission éventuelle du paquet.
- Tous les processus d’un noeud sont susceptibles de fonctionner ensemble ; une file d’attente est donc associée à chacun d’eux ; ces processus peuvent être multiprogrammés (c’est le cas des noeuds Mitra du réseau Transpac) ou s’exécuter sur des processeurs distincts (comme dans les noeuds Pluribus du réseau Arpanet). La tendance actuelle est d’utiliser un ensemble de microprocesseurs.
- Divers services généraux sont disponibles dans un noeud ; ils sont essentiellement liés à la maintenance et à la conduite du réseau. Nous en citons ci-après quelques exemples :
- — le « traçage » des paquets, ou définition d’actions à exécuter à la traversée de chaque nœud (inscription d'une marque dans le paquet ou dans le noeud, renvoi d’un signal au noeud émetteur, impression locale du contenu du paquet),
- — l’envoi de paquets selon des itinéraires prédéfinis,
- — les fonctions liées au temps physique (consultation et réglage des horloges locales).
- p.89 - vue 107/387
-
-
-
- 90 Systèmes informatiques répartis
- Ligne Ligne
- File d’attente
- Récepteur
- Emetteur
- traitement
- Processus
- Emetteur
- Récepteur
- traitement
- Processus
- Commutateur
- Figure 23. Schéma fonctionnel d’un noeud de commutation.
- En outre, un ou plusieurs nœuds peuvent être spécialisés dans la commande du réseau :
- — surveillance du réseau (détection des pannes, des congestions),
- — prise de mesures statistiques, par envoi de paquets de service : mesures de longueur de files d’attente, de taux d’occupation des lignes, des dates de début de traitement des paquets par un nœud,
- — dépannage à distance,
- — rechargement du système et mise en place de nouvelles versions.
- 3.624 Réalisation des protocoles
- A chaque niveau de protocole, trois fonctions doivent être réalisées : régulation de charge, régulation de flux, détection et correction des erreurs.
- 1) Détection et correction des erreurs
- Les techniques utilisées au niveau des lignes et au niveau du transport sont similaires.
- p.90 - vue 108/387
-
-
-
- Description des voies de communication 91
- a) Au niveau des lignes, il est possible d’utiliser un protocole normalisé (par exemple HDLC). Dans les réseaux Arpanet et Cigale, on a préféré utiliser des protocoles plus simples à mettre en oeuvre, dont l’exemple ci-après illustre le principe.
- Exemple. Une ligne qui relie deux nœuds voisins est vue comme un ensemble de lignes logiques travaillant à l’alternat. Chaque trame contient un code détecteur d’erreur. Une trame n’est émise sur une ligne logique que si l’émetteur a reçu un acquittement pour la trame précédente, garantissant sa réception sans erreur.
- A l’émission d’une trame, l’émetteur arme une horloge de garde et conserve un double de la trame. Si l’acquittement arrive avant l’écoulement du délai de garde, le double est détruit et la trame suivante peut être émise. Dans le cas contraire, on se trouve dans l’une des situations suivantes :
- — la trame s’est perdue ou est parvenue erronée : le nœud destinataire n’a donc pas renvoyé d’acquittement,
- — la ligne est coupée ou le nœud destinataire est défaillant,
- — la trame est bien arrivée, mais l’acquittement a été perdu ou retardé.
- Le nœud émetteur tente alors de renvoyer la copie de la trame. Si on est dans le second cas, il y a échec ; après N tentatives infructueuses, la ligne est déclarée en panne et la trame doit être acheminée vers un autre nœud (voir chapitre 9). Dans le premier cas, l’erreur est généralement corrigée par l’envoi de la copie. Enfin, dans le dernier cas, il peut y avoir duplication de trame. Pour détecter les doubles, les trames sont numérotées alternativement 0, 1, 0, 1,... L’arrivée de plusieurs trames consécutives de même numéro indique une duplication : seule la première trame est conservée.
- On trouvera au chapitre 5 une étude plus détaillée de ce type de protocole.
- b) Au niveau du transport, la station de transport réceptrice vérifie chaque message, paquet par paquet, et renvoie un acquittement uniquement si le message est arrivé sans erreur. L’exemple ci-après illustre ce fonctionnement.
- Exemple. Chaque message est identifié par un numéro attribué séquentiellement. Chaque paquet, à l’intérieur d’un message, est numéroté selon le même principe. Le temps séparant l’arrivée de deux paquets consécutifs ne doit pas dépasser un délai de garde fixé T. Sinon, le message partiellement reçu est détruit par la station de transport réceptrice. La numérotation des messages et des paquets permet de détecter les duplications et les pertes. Un message dupliqué est ignoré, mais acquitté (la duplication résultant de la perte d’un acquittement).
- La station de transport émettrice attend un acquittement pour chaque message dans un délai de T après envoi du dernier paquet du message. Si cet acquittement n’arrive pas, elle admet que tous les messages émis depuis le dernier message acquitté ont été perdus, et elle réémet ces messages. Si ce processus est répété N fois sans succès, la station de transport émettrice admet qu’il y a une erreur irrécupérable et ferme la voie virtuelle.
- 2) Régulation de charge
- Pour chaque ressource du réseau, on définit un seuil de charge à ne pas dépasser afin d’assurer aux usagers un service acceptable. Les méthodes utilisées
- p.91 - vue 109/387
-
-
-
- 92 Systèmes informatiques répartis
- au niveau du réseau de communication pour éviter le dépassement de ce seuil, ou congestion, sont développées au chapitre 9. Au niveau du réseau de transport, les solutions retenues sont plus simples : ainsi, dans le réseau Cyclades, les primitives d’ouverture de voie virtuelle demandent une réservation globale de ressources dans la station de transport ; si cette demande ne peut être satisfaite, l’ouverture est refusée.
- 3) Régulation de flux
- Le but de la régulation de flux est d’asservir le débit d’émission de l’émetteur à la cadence de réception admissible par le récepteur. Au niveau de la commutation, la régulation de flùx est assurée sur chaque voie logique par le fonctionnement à l’alternat, sans anticipation. Les techniques utilisées pour la régulation de flux au niveau du transport sont étudiées au chapitre 5.
- 3.625 Interconnexion de réseaux à commutation par paquets
- Plusieurs réseaux à commutation par paquets peuvent être interconnectés pour former un « super-réseau » permettant à deux hôtes quelconques, reliés à ces réseaux, de communiquer entre eux. Cette interconnexion se fait par l’intermédiaire d’organes appelés passerelles ou sas (« gateway »), qui assurent deux fonctions :
- — une fonction d’adressage, pour l’acheminement des paquets qui doivent traverser plusieurs réseaux,
- — une fonction de conversion, dans le cas où les réseaux interconnectés utilisent des protocoles ou des formats de paquets différents.
- Les sas peuvent jouer le rôle de noeuds ou d’hôtes pour les réseaux auxquels ils sont reliés ; la seconde solution est généralement préférée car elle offre une meilleure séparation des fonctions et facilite donc les extensions et modifications. L’interconnexion est réalisée en reliant un sas à plusieurs réseaux, ou encore en reliant entre eux des sas connectés à des réseaux différents (fig. 24).
- Pour assurer la fonction d’adressage, chaque sas entretient, pour chaque hôte du « super-réseau », des tables permettant de localiser le noeud ou le sas vers lequel doivent être acheminés les paquets à destination de cet hôte.
- Nœud )
- Réseau 1
- Réseau 3
- Réseau 2
- Figure 24. Interconnexion de réseaux.
- p.92 - vue 110/387
-
-
-
- Description des voies de communication 93
- La fonction d’adaptation impose de définir un protocole commun pouvant être aisément construit sur les protocoles des réseaux connectés.
- Exemple. Le protocole Pup [Boggs 79] permet d’interconnecter plusieurs réseaux Ethernet (1.23) entre eux et avec le réseau Arpanet. Il offre uniquement un service de datagrammes, sur lequel les utilisateurs peuvent construire des protocoles de plus haut niveau. Chaque abonné est désigné par une adresse < numéro de réseau ) < numéro d’hôte ) < numéro de porte ).
- L’interconnexion de réseaux pose de nombreux problèmes encore mal résolus : régulation de flux, régulation de charge sur le « super-réseau », conversion des protocoles de haut niveau, confidentialité. Les principes de l’interconnexion de réseaux sont étudiés dans [Sunshine 77] et [Cerf 78].
- 3.7 NORMALISATION DES SYSTÈMES DE COMMUNICATION
- 3.71 OBJECTIFS ET ORGANISATION DE LA NORMALISATION
- Un système de communication est d’autant plus simple à utiliser qu’il permet à un utilisateur d’y raccorder un nouvel appareil sans travail supplémentaire d’adaptation et qu’il n’oblige pas l’utilisateur à apprendre un nouveau protocole pour passer d’une application à une autre, voire d’un système à à un autre.
- La définition d’interfaces et de protocoles normalisés permet une telle simplification. Ce travail est rendu complexe, notamment par des raisons historiques : pendant longtemps, les fonctions de traitement et de communication n’ont pas été clairement séparées dans les applications de téléinformatique; de plus, l’informatique et les télécommunications relèvent d’organismes officiels différents.
- De nombreux organismes s’intéressent à la normalisation des systèmes de communication : associations diverses d’utilisateurs de l’informatique et des télécommunications, et organismes officiels internationaux de normalisation : CCITT (Comité Consultatif International pour le Télégraphe et le Téléphone) et ISO (« International Standards Organization »).
- Le CCITT regroupe les administrations des Télécommunications des pays membres et les organismes privés de télécommunications officiellement reconnus. L’ISO regroupe les organismes nationaux de normalisation (en France, l’AFNOR). Les responsabilités se répartissent entre ces deux organismes selon l’avis A20 du CCITT.
- — Le CCITT est responsable de la normalisation concernant les voies de transmission, les équipements de conversion de signaux (modems), les caractéristiques de performances que doivent respecter les voies de communication normalisées (modems inclus), les procédures automatiques ou manuelles pour établir, maintenir, ou terminer une communication dans un réseau commuté.
- p.93 - vue 111/387
-
-
-
- 94 Systèmes informatiques répartis
- — Les normes concernant l’interface entre les modems et les équipements terminaux émetteurs ou récepteurs, la détection et la correction des erreurs, le codage de l’information, les caractéristiques des signaux émis ou reçus par les équipements terminaux, doivent faire l’objet d’un accord entre le CCITT et l’ISO.
- 3.72 RÉSULTATS DE LA NORMALISATION
- Le CCITT et l’ISO, chacun dans son domaine de compétence, élaborent et diffusent des projets de normes qui deviennent officiels après discussion et vote. Nous donnons quelques exemples de ces normes.
- Les normes du CCITT sont publiées sous forme d’avis ([CCITT]). Les avis « V » s’appliquent aux transmissions de données, les avis « X » aux réseaux publics de communication. A titre d’exemple, l’interface définie par l’avis V24 est décrite en illustration 1. Une liste des avis définissant les principaux modems normalisés a été donnée en 3.432.
- L’ISO a élaboré un projet de norme définissant une hiérarchie de protocoles pour les systèmes informatiques répartis (dits « systèmes ouverts »), comprenant sept niveaux, du niveau « ligne » au niveau « application ». La présentation des protocoles des réseaux à commutation par paquets (3.62) est conforme à ce projet de norme. L’ISO a également défini un protocole normalisé ([ISO]) pour le niveau « ligne », le protocole HDLC (High-level Data Link Control), qui est présenté en illustration 2.
- RENVOIS
- Références citées dans le chapitre 3
- Abramson 73a, Boggs 79, Carr 70, CCITT, Cerf 78, Clavier 72, Davies 73, Davies 79, Heart 73, ISO, Jones 79, Macchi 79, Metcalfe 76, Midwinter 79, Ousterhout 80, Parés 75, Quint 79, Roberts 77, Schwartz 59, Sunshine 77, Swan 77, Swan 78, Zimmermann 75.
- Illustrations concernant le chapitre 3
- II, 12^ 13,14,15.
- Principaux termes définis dans le chapitre 3
- Caractéristiques d’une voie (vitesse de modulation, débit binaire, valence, bande passante, délai de transmission, distorsions), modes de transmission (synchrone, asynchrone, en série, en parallèle, en bande de base, en modulation), mode d’utilisation des voies (point à point, diffusion, multipoint), commutation (de circuits, de données, de messages, par paquets), réseaux informatiques, abonnés, sites, hôtes, station de transport, circuit virtuel, datagramme, sas.
- p.94 - vue 112/387
-
-
-
- CHAPITRE 4
- PARTAGE DES VOIES
- 4.1 INTRODUCTION
- 4.11 OBJET DU CHAPITRE
- Dans ce chapitre, nous présentons une synthèse des diverses politiques de partage des voies, en les classant suivant la façon dont la voie est demandée. Nous envisageons toutes les catégories de voies décrites dans le chapitre précédent. Dans le cas particulier d’une voie réservée en permanence à un couple unique (émetteur, récepteur), le seul problème à étudier est celui de la construction du protocole de communication. Mais si l’on considère une voie commune à plusieurs communications, il faut définir, en plus du protocole, une politique de partage de la voie dans le temps.
- Nous laissons de côté l’étude des protocoles, qui fait l’objet du chapitre 5, pour ne considérer que les problèmes de partage. Plus précisément, la question abordée est la suivante : étant donné un ensemble d’émetteurs (ou sources) voulant transmettre sur une voie à accès multiples des informations sous forme de messages, comment partager la voie, en respectant certaines contraintes ? La question est généralisée ensuite en considérant un ensemble de voies, ce qui donne la possibilité de transférer plusieurs messages simultanément, mais introduit un nouveau problème, celui de la construction du chemin que doit emprunter un message.
- Après avoir précisé les propriétés des émetteurs (4.12) nous présentons les méthodes générales de partage (4.13). Dans la partie suivante (4.2), les concepts généraux sont illustrés par des exemples portant sur des voies de natures diverses. Enfin, la dernière partie (4.3) traite les problèmes concernant les ensembles de voies, en particulier les réseaux maillés et les anneaux.
- 4.12 PROPRIÉTÉS DES ÉMETTEURS
- Le choix d’une méthode de partage repose non seulement sur la nature de la voie, mais aussi sur le comportement des émetteurs, c’est-à-dire la façon dont ils utilisent la voie.
- p.95 - vue 113/387
-
-
-
- 96 Systèmes informatiques répartis
- Considérons tout d’abord un émetteur unique connecté à une voie privée Dans ce cas simple, l’émetteur peut utiliser la voie sans délai d’attente, lorsqu’il est prêt à émettre. Son comportement est complètement caractérisé par deux variables, en général aléatoires :
- — l’intervalle séparant deux émissions successives de message,
- — la taille des messages.
- Le comportement d’un émetteur peut varier au cours du temps de façon importante. Ces irrégularités doivent entrer en ligne de compte lorsqu’on recherche une bonne utilisation de la voie. En pratique on distingue deux comportements extrêmes : d’une part un régime d’émission intensive, correspondant à un transfert de fichier par exemple, caractérisé par des intervalles de silence courts en comparaison des temps d’émission de message, d’autre part un régime de rafales (« bursts ») dans lequel les messages sont émis en séquences brèves par rapport aux intervalles de silence (c’est le cas d’une machine à clavier [Fuchs 70]).
- On appelle débit d’un émetteur la quantité de données émise en moyenne par unité de temps (en octet/s par exemple). Le débit d’une voie est la quantité de données qu’elle transmet par unité de temps. Dans le cas d’un partage idéal, le débit d’une voie serait la somme des débits des émetteurs reliés à la voie. Comme les messages transportent à la fois les informations des émetteurs et les données de contrôle, on doit faire la distinction entre le débit réel, tenant compte de toutes les informations, et le débit utile qui ne mesure que les informations des émetteurs. Dans certains cas, le message émis peut être détérioré, ce qui nécessite une réémission ; les messages détériorés ne sont pas pris en compte dans le calcul du débit utile.
- Lorsqu’une voie est partagée par plusieurs émetteurs, deux variables permettent de caractériser l’efficacité du partage :
- — le délai d'attente que doit subir tout message émis lorsque la voie est occupée (on dit qu’il y a saturation de la voie lorsque ce délai devient infini),
- — le délai de transmission, intervalle de temps compris entre la demande d’émission et l’arrivée correcte du message, après éventuellement plusieurs réémissions.
- Signalons enfin que pour définir une politique adéquate, il est nécessaire de considérer les propriétés globales de l’ensemble des émetteurs à savoir :
- — le nombre des émetteurs est-il constant ou variable,
- — certains émetteurs doivent-ils être privilégiés,
- — les émetteurs ont-ils le même comportement ou bien existe-t-il plusieurs familles d’émetteurs ?
- Pour un ensemble fixe d’émetteurs équivalents, on peut envisager une politique très simple, telle que le partage de temps dans un ordre figé. En cas de disparité prononcée entre les régimes des émetteurs, des politiques adaptatives sont préférables si l’on recherche une bonne utilisation de la voie.
- p.96 - vue 114/387
-
-
-
- Partage des voies 97
- 4.13 OBJECTIFS ET CONTRAINTES DU PARTAGE
- Une voie privée se gère facilement et permet un délai de transmission minimal, mais elle peut être coûteuse. Il est préférable de partager la voie pour diminuer le coût par utilisateur. En outre, pour un ensemble donné de voies, on obtient une meilleure disponibilité si les voies sont communes, car la panne d’une voie n’entraîne pas en général celle de l’ensemble.
- Appelons taux d’utilisation de la voie la fraction du temps pendant laquelle la voie transfère des informations. Le partage d’une voie permet d’améliorer son taux d’utilisation, ainsi que son débit, mais c’est au détriment du délai moyen de transmission des messages. Ce délai moyen de transmission augmente avec la charge et devient infini lorsque la charge atteint le seuil de saturation.
- La mise en oeuvre du partage comporte les difficultés propres à la gestion de toute ressource commune : coût du partage proprement dit, équité en l’absence de priorités différentes des émetteurs, interblocage et privation.
- 4.2 PARTAGE D’UNE VOIE
- 4.21 MÉTHODES DE PARTAGE
- Il existe de nombreuses méthodes de partage, en raison de la multiplicité des types de voie, de la variété des comportements des émetteurs et des divers objectifs recherchés. Nous les classons, non pas en fonction du type de la voie (ligne, bus, liaison radioélectrique), mais suivant la logique de l’algorithme du partage : certaines méthodes, consultation ou compétition par exemple, peuvent s’appliquer à plusieurs types de voie. Il peut arriver que l’exploitation d’une voie s’appuie simultanément sur plusieurs méthodes de partage, en particulier lorsqu’on a affaire à plusieurs familles d’émetteurs. On décrit ici les méthodes élémentaires, que l’on peut combiner pour implanter une politique réelle de partage.
- Le partage d’une voie peut se faire de façon statique ou dynamique. A l’intérieur du partage dynamique, on distingue entre le partage par compétition et le partage par élection.
- 1) Nous dirons que le partage est statique lorsque chaque émetteur sait une fois pour toutes comment utiliser la voie sans provoquer de collision et sans avoir recours à des requêtes de contrôle. C’est le cas du partage d’une voie en bandes de fréquences (méthode FDM, voir 3.133), et du partage statique en temps. Dans ce dernier cas, chaque source se voit affecter périodiquement une tranche de temps, même si elle n’a rien à émettre : c’est la méthode STDM (« Synchronous Time Division Multiplexing »).
- 2) Nous dirons que la voie est partagée par compétition («contention») si tout émetteur utilise la voie dès qu’il est prêt à émettre, sans attendre, donc
- p.97 - vue 115/387
-
-
-
- 98 Systèmes informatiques répartis
- en ignorant les autres émetteurs. Il en résulte que deux émetteurs peuvent émettre simultanément, ce qui a pour effet d’altérer les deux messages. Il y a alors collision. Le traitement des collisions entre messages constitue le problème majeur.
- 3) Nous dirons que la voie est partagée par élection si tout émetteur sollicitant la voie émet une demande. Celle-ci peut être transmise par une voie spécialisée, ou encore par la voie elle-même, ce qui suppose une gestion particulière des requêtes. A un instant donné, il peut y avoir plusieurs requêtes. Les conflits sont résolus par un arbitre ou par accord mutuel des demandeurs suivant un certain algorithme.
- Nous ne développons dans la suite que les partages dynamiques, par compétition ou par élection.
- 4.22 PARTAGE PAR COMPÉTITION
- Dans les méthodes de partage par compétition, chaque émetteur envoie librement ses messages, sans demande préalable, donc sans se soucier des autres émetteurs. Ces méthodes sont utilisées actuellement pour les voies radioélectriques, les réseaux à câbles coaxiaux ou à fibres optiques. Elles sont simples et équitables. On peut ajouter aisément de nouveaux émetteurs puisque la voie est passive. Des collisions se produisent inévitablement. Les messages en collision sont altérés, ce que l’on peut détecter. En effet l’émetteur reçoit les informations transmises et les compare bit à bit avec celles qu’il a émises.
- La réalisation de ces méthodes pose deux problèmes majeurs :
- — que faire en cas de collision,
- — peut-on prévenir une partie des collisions, tout en gardant la simplicité de la méthode, qui repose sur l’absence d’arbitre ou de protocole de coopération ?
- Lors d’une collision, il est nécessaire de réémettre les messages, ce qui peut produire une nouvelle collision. Ce phénomène limite sévèrement le débit utile de la voie. En effet, si on fait croître le débit d’émission des messages, on augmente la probabilité de collision, donc aussi le taux de réémission. Les réémissions à leur tour provoquent des collisions et il en résulte une avalanche de collisions telle que la probabilité de transmettre un message correctement devient nulle. En pratique il est facile de prévenir ces nouvelles collisions en demandant par exemple à chaque émetteur de ne réémettre qu’après un certain délai, variable suivant l’émetteur. Lorsque la charge de la voie croît, on a intérêt à augmenter le délai avant chaque retransmission.
- Pour prévenir partiellement les collisions entre émissions, diverses méthodes sont applicables.
- 1) Discrétisation du temps
- Considérons une voie radioélectrique qui est utilisée en compétition et qui constitue un « canal Aloha » [Abramson 73a, 73b]. Si les stations émettrices
- p.98 - vue 116/387
-
-
-
- Partage des voies 99
- sont asynchrones et peuvent émettre à tout instant, le canal est dit « Aloha pur ». Le calcul montre que le taux d’utilisation utile ne dépasse pas 1/2 e = 0,18 (voir exercice 1 ). Dans le mode discrétisé (« slotted Aloha ») le temps est divisé en intervalles égaux qui correspondent au temps d’émission d’un message. Un émetteur doit attendre le début d’un intervalle pour émettre. On peut montrer que la probabilité de collision diminue, ce qui permet d’obtenir un taux utile égal à l/c = 0,37 (voir exercice 2).
- 2) Méthode de /’écoute
- Dans la méthode CSMA (« Carrier Sense Multiple Access »), un émetteur n’émet immédiatement que s’il n’y a pas de transmission en cours. Un émetteur écoute donc la voie, et pour émettre attend qu’elle soit muette. Mais il faut noter que si deux émetteurs écoutent en même temps et émettent dès qu’ils trouvent la voie libre, il y a collision ! Il faut donc introduire une règle supplémentaire pour contrôler l’émission. Par exemple, lorsqu’un émetteur trouve la voie muette, il attend un délai aléatoire pour émettre. Les études théoriques ont montré l’efficacité de cette méthode de prévention des collisions [Kleinrock 75].
- Exemple. La méthode CSMA est utilisée dans le réseau Ethernet [Met-calfe 76]. Des mesures expérimentales confirment l’intérêt de la méthode [Shoch 79]. Le système mesuré utilise un câble de 3 Mbit/s, utilisé par 120 machines. En utilisation normale, il transfère 300 M d’octets par jour, ce qui représente un taux d’utilisation moyen de 0,8 %. Les paquets, de longueur moyenne 122 octets, sont distants de 40 ms en moyenne. Environ 1 % des paquets sont retardés avant émission, et moins d’un millième subissent une collision. En augmentant artificiellement la charge, on a pu obtenir un taux d’utilisation de la voie de 98%.
- 4.23 PARTAGE PAR ÉLECTION 4.231 Modes d’élection
- Dans les méthodes par élection, tout émetteur demande la voie par émission d’un message de requête ou positionnement d’un indicateur et doit attendre d’être élu pour s’en servir. Cette élection peut se faire de plusieurs façons :
- 1) Nous dirons qu’il y a consultation (« polling ») si tous les émetteurs sont interrogés dans un ordre fixe. Lors de la rencontre d’un émetteur prêt, celui-ci est élu et la consultation s’arrête. Une fois le message transmis, la consultation recommence.
- 2) Nous dirons qu’il y a sélection lorsqu’on exécute un algorithme quelconque pour élire l’une des sources qui ont signalé qu’elles sont prêtes à émettre.
- Toutes les méthodes par élection peuvent s’implanter de façon centralisée ou distribuée.
- p.99 - vue 117/387
-
-
-
- 100 Systèmes informatiques répartis
- a) En mode centralisé, un allocateur unique, l’arbitre, reçoit les requêtes et procède à l’élection.
- b) En mode distribué, les émetteurs choisissent eux-mêmes l’élu. On peut distinguer deux méthodes selon que le rôle d’arbitre est joué par les émetteurs à tour de rôle, ou qu’il n’y a pas d’arbitre. Dans ce cas, tous les demandeurs examinent toutes les requêtes et chacun d’entre eux détermine s’il est le prochain élu ; c’est le procédé de l’accord mutuel.
- Ces diverses méthodes seront surtout illustrées par l’exemple des bus. Les figures correspondantes sont empruntées à [Thurber 72].
- 4.232 Election par consultation
- La consultation s’effectue en parcourant la liste des émetteurs. L’ordre de parcours fixe un ordre de service sans rapport avec l’ordre des demandes, et peut se faire de deux façons.
- 1) La liste est parcourue circulairement (« round robin »), la méthode est équitable et aucun émetteur ne peut être privé indéfiniment de la voie.
- 2) Une fois la transmission terminée, la consultation reprend systématiquement en début de liste ; l’ordre de la liste correspond alors à un ordre de priorité entre les émetteurs. Les émetteurs placés en fin de liste risquent d’être privés de la voie.
- Exemple 1 : élection par consultation
- Nous présentons le cas de la consultation par un agent unique. Cet agent peut être un arbitre ou l’un des éléments connectés au bus.
- Sur le schéma a, de la figure 1, un arbitre exécute la consultation en exploitant une voie spécialisée. Un signal requête émis par un demandeur active la consultation, qui commence soit à partir du premier élément connecté, soit à partir de l’élément suivant le dernier élément élu. Lorsque le demandeur est interrogé, il positionne le signal bus occupé, ce qui arrête la consultation.
- Sur le schéma b, l’arbitre a disparu et c’est le dernier élément élu, ou pilote, qui procède à la consultation. Lorsque le pilote libère le bus, il positionne le signal bus libre et envoie une adresse d’élément sur une ligne de consultation. Si l’élément adressé veut émettre il répond bus accepté ; le pilote arrête la consultation et efface le signal bus libre; le nouveau pilote efface le signal bus accepté et utilise le bus. Si l’élément adressé n’a rien à émettre, le pilote émet l’adresse suivante de sa liste (voir exercice 3).
- Exemple 2 : allocation d’une ligne multipoint
- L’élection par consultation est utilisée couramment pour la gestion d’une ligne multipoint, reliant un ensemble de terminaux à un système frontal [Schwartz 77]. Le frontal joue le rôle de l’arbitre. La consultation peut être faite entièrement par l’arbitre ou au contraire être menée par la coopération de tous les éléments. Dans ce dernier mode le frontal envoie la permission d’émettre au terminal le plus éloigné ; cette permission est ensuite transmise de terminal en terminal avant de retourner au frontal. La consultation s’effectue plus rapidement que dans le premier mode.
- p.100 - vue 118/387
-
-
-
- Partage des voies 101
- Le partage de la ligne multipoint se fait souvent par allocation d’une tranche de temps de longueur constante. C’est la méthode TDM («Time Division Multiplexing ») schématisée sur la figure 2.
- En mode STDM (« Synchronous TDM ») on réserve systématiquement un intervalle de temps à chaque terminal, dans un ordre donné, même si le terminal n’a rien à émettre. En mode ATDM (« Asynchronous TDM »), on alloue un intervalle seulement en cas de demande d’émission ; on est obligé alors de transmettre l’adresse de l’émetteur, ce qui introduit une complication par rapport au mode STDM, mais fournit en contrepartie! un meilleur taux d’utilisation de la voie [Chu 73].
- Notons que le mode STDM n’est pas une méthode de consultation mais une politique d’allocation statique de la voie.
- Elément 0 ------ Elément N
- (fl)
- Arbitre
- Voie de consultation requête bus occupé
- (b)
- Elément 0 ______ Elément N
- Voie de consultation bus libre bus accepté
- il
- 11
- (a) Consultation avec arbitre
- (b) Consultation sans arbitre
- Figure 1. Consultation sur un bus par un agent unique.
- Emission
- Terminal A
- Terminal B
- TZZZZZZZtZZZZZZZ.
- Terminal C
- 7ZZZZZZ.
- Terminal D
- Allocation suivant STDM
- Allocation suivant ATDM Adresse
- Cycle 3
- Cycle 2
- Cycle 1
- Figure 2. Méthodes d’allocation d’une ligne multipoint.
- p.101 - vue 119/387
-
-
-
- 102 Systèmes informatiques répartis
- 4.233 Election par sélection
- Dans les méthodes d’élection par sélection, tout émetteur envoie une requête pour obtenir la voie. La requête est mémorisée et permet d’identifier l’émetteur. Lorsque la voie est libre, les requêtes en attente sont traitées suivant un ordre qui peut être calculé, alors que dans les méthodes par consultation elles sont acquittées suivant l’ordre prédéterminé de la liste. Selon les méthodes, les réponses aux requêtes peuvent autoriser l’utilisation immédiate de la voie (allocation) ou indiquer un intervalle de temps utilisable par le demandeur (réservation). Les requêtes sont aussi des messages qui doivent être transmis sur une voie ; cette dernière peut être une voie spécialisée, ce qui est une solution efficace mais coûteuse ; à défaut on utilise la voie partagée elle-même, mais nécessairement suivant un mode de partage particulier (exemple 2).
- Exemple 1 : allocation immédiate dans un bus
- Sur la figure 3 on représente le schéma d’allocation d’un bus, par requêtes indépendantes, avec ou sans arbitre.
- Sur le schéma a de la figure 3, un arbitre reçoit les requêtes émises sur des lignes privées ; il sélectionne l’élément P et envoie le signal bus accordé à P sur une ligne privée à l’élément. Celui-ci efface sa requête et envoie le signal bus alloué. En fin de transmission il efface bus alloué, ce qui active l’arbitre. Ce dernier efface alors bus accordé à P et sélectionne le prochain élément.
- Sur le second schéma, chaque élément est associé à une ligne de requête et consulte l’ensemble des lignes. Lorsqu’un élément abandonne le bus, en effaçant bus alloué, chaque élément en attente examine toutes les requêtes et celui qui se reconnaît le plus prioritaire s’empare du bus en signalant bus alloué.
- Elément 0
- Elément N
- bus alloué
- (a) Avec arbitre
- bus alloué (b) Sans arbitre
- Figure 3. Allocation d’un bus par sélection.
- p.102 - vue 120/387
-
-
-
- Partage des voies 103
- Exemple 2 : réservation d’une voie radioélectrique utilisant un satellite
- Dans le système décrit dans [Roberts 73], des stations terrestres s’envoient des messages par l’intermédiaire d’un satellite. On pourrait utiliser pour cela une technique de compétition, mais on préfère étudier une méthode de réservation.
- Les sources émettent des paquets de longueur fixe. Le temps d’utilisation du satellite est divisé en intervalles dont la longueur est égale au temps de transmission d’un paquet. Lorsque le satellite a transmis M paquets d’information, un intervalle est réservé à la transmission de requêtes de réservation. Comme ces requêtes sont des messages brefs, cet intervalle de requêtes est divisé en V sous-intervalles (M et V sont fixes). Ces sous-intervalles sont utilisés en compétition par les stations terrestres selon le mode « slotted Aloha ». Les collisions sont détectées lors de la réception du paquet réémis par le satellite.
- En régime permanent, chaque station sait que la voie est réservée jusqu’à l’intervalle de numéro x. Supposons alors qu’une station désire réserver trois intervalles. Elle émet une requête de réservation dans l’un quelconque des sous-intervalles disponibles pour cela. Si la requête revient sans être altérée, la réservation est considérée comme faite et la station prend note du fait qu’elle pourra utiliser les trois prochains intervalles disponibles à partir de x. Comme toutes les stations sont à l’écoute en permanence, chacune est au courant de la réservation et connaît le prochain intervalle disponible. Si la requête revient altérée, c’est qu’il y a eu collision et aucune réservation n’est effectuée.
- Remarque : commentaires de la figure 4
- 1) Les temps de transmission entre une station et le satellite sont importants (5 intervalles sur la figure 4). Si le satellite est réservé pendant l’intervalle a, le message correspondant doit être émis à a-5.
- 2) Les intervalles alloués ne sont pas forcément consécutifs, il faut laisser tous les M intervalles un intervalle pour les requêtes.
- 3) La figure suppose qu’à l’instant 0, le , satellite était réservé jusqu’à l’instant 20, et qu’on s’alloue les intervalles 21, 22 et 24 (23 est un intervalle de requêtes) ; les messages correspondants doivent être émis en 16, 17 et 19.
- 4) Enfin, lorsqu’aucune réservation n’est faite, tous les intervalles peuvent être utilisés pour des requêtes de réservation. Le satellite est dit dans l’état Aloha ; il passe à l’état réservation dès la première réservation réussie.
- Etat réservation
- Etat Aloha
- Satellite
- Données (3 paquets)
- Requête (3 intervalles)
- Temps
- Station
- Figure 4. Réservation d’un satellite (d’après [Roberts 73]).
- p.103 - vue 121/387
-
-
-
- 104 Systèmes informatiques répartis
- Le canal Aloha qui peut fonctionner soit en compétition dans le modt Aloha pur (4.22), soit en réservation dans le mode vu dans l’exemple 2 permet une comparaison entre deux méthodes de partage. La figure 5 montre l’intérêt de la réservation qui permet d’atteindre un taux d’utilisation voisin de
- Délai(s)
- 10 stations canal à 50 kbit/s
- Allocation par réservation
- Allocation ^par compétition
- Taux d’utilisation de la voie (%)
- Figure 5. Comparaison des méthodes d’allocation d’une voie radioélectrique.
- l’unité (voir exercice 4). A faible charge le mode Aloha conduit à un délai d’attente inférieur puisqu’il n’y a pas de requêtes à transmettre; à charge élevée on constate que les performances deviennent meilleures avec la réservation.
- 4.3 PARTAGE D’UN ENSEMBLE DE VOIES
- 4.31 INTRODUCTION
- Nous abordons le problème du partage d’un ensemble de voies par plusieurs communications simultanées, dans le cas des réseaux maillés, puis dans celui des réseaux en anneau (voir 3.6). Une communication entre deux abonnés fait intervenir une suite de messages. Sa mise en oeuvre suppose que l’on sache :
- p.104 - vue 122/387
-
-
-
- Par tage des vo ies 105
- — établir un chemin, c’est-à-dire définir la suite de nœuds parcourue par les messages,
- — allouer les ressources utilisées tout au long du chemin.
- L’établissement d’un ou de plusieurs chemins entre deux abonnés peut se faire soit au début de la communication et pour toute sa durée, soit pendant la communication.
- Dans le premier cas, le chemin est statique. Dans le second, il est dynamique et se construit de nœud en nœud, à mesure que le message progresse dans le réseau de communication.
- Les ressources utilisées sont les voies, en général des lignes, et, dans les nœuds, les zones de mémoire nécessaires au stockage et à la réexpédition des messages. Ces ressources peuvent être allouées pour toute la durée de la communication (allocation statique), ou durant une partie de la communication seulement, selon les besoins (allocation dynamique).
- 4.311 Techniques de commutation
- Choisir une méthode d’acheminement et une politique d’allocation de ressources revient à définir une technique de commutation (voir 3.61). La technique de commutation de lignes, ou de circuits, utilisée en téléphonie, consiste à construire des chemins fixes et à réserver les voies du chemin pendant toute la durée de la communication. Dans la commutation de données, les voies sont allouées dynamiquement lors de la transmission de chaque message. Les messages sont même le plus souvent découpés en paquets de longueur fixe pour limiter les réémissions en cas d’erreur et diminuer le délai de transmission des messages corrects ; le réseau est alors dit à commutation par paquets. Les algorithmes de choix d’un chemin, ou algorithmes de routage, peuvent prendre en compte ou non la charge du réseau.
- Pour des comparaisons entre les techniques de commutation, on pourra se reporter à [Miyahara 75, Rosner 76, Kummerle 78].
- Exemple 1. Dans le réseau Transpac [Simon 79], les messages échangés entre deux abonnés empruntent toujours le même chemin appelé circuit virtuel. Ce chemin est établi à l’ouverture de la voie entre les deux abonnés. Les messages sont découpés en paquets délivrés dans l’ordre de leur émission.
- Exemple 2. Dans le réseau de communication Cigale [Pouzin 73], les paquets constituant un message sont transmis indépendamment les uns des autres en suivant éventuellement des chemins différents.
- 4.312 Le contrôle de congestion
- Le comportement d’un réseau peut être caractérisé par les paramètres suivants :
- — débit de paquets reçus,
- — délai moyen de transmission d’un paquet,
- — nombre de paquets détruits ou rejetés.
- p.105 - vue 123/387
-
-
-
- 106 Systèmes informa tiques répar tis
- Les valeurs de ces paramètres croissent avec le nombre de paquets émis en entrée, mais leur croissance n’est pas régulière. Au-delà d’un certain seuil, dit seuil de congestion, il y a écroulement des performances. On évite ce phénomène par une politique de contrôle de congestion qui conserve à ces paramètres une croissance normale. Ce contrôle comprend :
- — la régulation de flux (chapitre 5), qui a pour rôle de réguler le débit des transmissions entre deux abonnés, et qui de ce fait limite le nombre de paquets émis par un noeud,
- — la régulation de charge (chapitre 9), qui permet de limiter globalement le nombre de paquets circulant dans un réseau,
- — la distribution de charge qui consiste à répartir la charge entre les voies et entre les noeuds.
- 4.32 ALGORITHMES DE ROUTAGE
- Les algorithmes de choix d’un chemin sont appelés algorithmes de routage ou d’acheminement. Dans le cas où le chemin est établi de façon dynamique, l’algorithme est exécuté à la transmission de chaque paquet sur le site émetteur seulement, ou sur chaque noeud du chemin.
- 4.321 Objectifs d’un algorithme de routage
- Les algorithmes de routage ont plusieurs objectifs [McQuillan 74] :
- a) Réduire le délai de transmission : on cherche à transmettre un paquet le plus rapidement possible. Ce critère est important lorsqu’il s’agit de communications établies en vue d’un traitement interactif.
- b) Assurer le débit maximum. Cet objectif est prépondérant dans les systèmes où la quantité d’informations transportée est importante.
- c) Prévenir la congestion du réseau.
- d) Prendre en compte les changements du réseau, qu’il s’agisse de sa topologie ou du volume de trafic qu’il doit acheminer.
- e) Tolérer les défaillances des lignes et des noeuds. Les paquets doivent être transférés même si certaines voies sont momentanément impraticables. Des informations de routage erronées ne doivent pas affecter de façon catastrophique l’ensemble du réseau.
- Un algorithme ne peut atteindre simultanément tous ces objectifs. Son coût entre également en ligne de compte : temps de calcul, communications de messages de service. Le choix de la meilleure méthode se fait principalement en fonction du domaine d’application du réseau.
- 4.322 Les principales politiques de routage
- Les politiques de routage sont adaptatives ou déterministes selon qu’elles tiennent compte ou non des caractéristiques dynamiques du réseau [McQuillan 77].
- p.106 - vue 124/387
-
-
-
- Partage des voies 107
- 1) Les politiques déterministes
- Les méthodes de l’inondation et du routage fixe en sont deux exemples.
- a) La méthode de l'inondation. Le noeud source envoie une copie du paquet à chacun de ses voisins ; ceux-ci envoient à leur tour une copie à tous leurs voisins, sauf à l’émetteur, lorsqu’ils reçoivent le paquet pour la première fois ; les fois suivantes, ils l’ignorent. Il y a donc « inondation » du réseau par des copies d’un paquet unique. Seul le premier paquet arrivé est pris en compte par le nœud destinataire. La méthode est utilisable seulement à faible charge en raison du risque de congestion qu’elle introduit [Ludwig 77].
- b) La méthode du routage fixe. Les algorithmes de routage fixe spécifient statiquement un chemin unique entre tout couple émetteur-destinataire. Chaque noeud dispose d’une table de routage qui pour chaque destination indique le prochain noeud à atteindre. Cette méthode ne tolère pas les défaillances de noeuds ou de lignes mais permet un trafic important et s’implante facilement. Pour la rendre plus fiable, il suffit de définir un ou plusieurs chemins de secours qui sont utilisés en cas de défaillance du chemin normal.
- 2) Les politiques adaptatives
- Les politiques adaptatives prennent en compte l’état d’occupation des ressources pour définir un chemin. On rencontre trois classes d’algorithmes.
- a) L’algorithme est centralisé : un nœud particulier (appelé nœud de contrôle) définit les chemins en tenant à jour des informations de routage. Il peut y avoir un trafic élevé au niveau de ce nœud pour obtenir ces informations ; cette méthode ne tolère pas la défaillance du nœud de contrôle, ni celle des lignes qui y arrivent.
- b) L’algorithme est distribué et chaque noeud exploite des informations de routage locales ou en provenance des noeuds voisins. L’expérience montre que le routage ainsi obtenu est instable si les informations disponibles à chaque noeud sont modifiées trop souvent. En outre, un noeud réagit lentement à des incidents lointains.
- c) L’algorithme est distribué et chaque noeud utilise des données globales de routage mises à jour de temps en temps.
- Un exemple d’algorithme de routage adaptatif est décrit au chapitre 9.
- On trouvera une étude comparative des algorithmes de routage dans [Chou 79]. Les politiques déterministes assurent de meilleurs délais de transmission lorsque le trafic est bien connu et régulier. Par contre, en cas de variations importantes de trafic, les algorithmes adaptatifs sont préférables; ils répartissent mieux la charge sur le réseau et assurent automatiquement une reconfiguration des chemins en cas de panne.
- p.107 - vue 125/387
-
-
-
- 108 Systèmes informatiques répartis
- 4.33 EXEMPLES DE PARTAGE DES VOIES DANS LES RÉSEAUX MAILLÉS
- 4.331 Le réseau Transpac
- Une communication entre deux abonnés du réseau Transpac [Simon 79] comprend trois phases : l’ouverture, le régime permanent (dialogue) et la rupture. A l’ouverture, un paquet d’appel est envoyé à l’abonné récepteur. Son rôle est d’établir un chemin entre les deux abonnés et de permettre d’évaluer dans chaque nœud traversé, les ressources nécessaires à la communication. Le choix du chemin a donc lieu à l’établissement de la communication, puis les différents échanges entre les abonnés suivent le même itinéraire (« circuit virtuel ») pendant toute la durée de la communication. L’algorithme de routage utilisé pour l’acheminement du paquet d’appel est adaptatif : le choix d’une voie de sortie d’un noeud repose sur un indicateur de charge d’itinéraire, qui utilise à la fois des informations locales et des informations des noeuds voisins.
- Dans un noeud, la gestion de la mémoire nécessaire au stockage des paquets et la gestion des voies de sortie sont faites dynamiquement par des mécanismes d’évaluation et de surveillance.
- a) Evaluation
- Dans Transpac, chaque communication émetteur-récepteur appartient à une classe qui détermine la longueur maximale des paquets ainsi que le nombre de paquets qui peuvent être émis sans attendre d’acquittement. A partir de cette classe et d’une estimation du taux de silence sur les circuits virtuels, on obtient une évaluation du débit. On tire parti de cette évaluation moyenne pour autoriser l’établissement de plus de circuits virtuels que le réseau ne pourrait en supporter dans la situation la plus défavorable (du point de vue des tampons ou de la charge des liaisons). On doit donc disposer d’un mécanisme de surveillance.
- b) Surveillance
- La surveillance des ressources a pour but de vérifier à l’établissement d’un circuit virtuel que chaque noeud dispose de ressources suffisantes pour satisfaire l’estimation fournie, et de connaître à tout instant l’état de charge des noeuds. Cette connaissance permet de réaliser le routage, de décider de l’ouverture de nouveaux circuits et éventuellement de réagir sur les communications en cours. Lorsque le taux d’occupation des ressources dépasse certains seuils, des alarmes sont déclenchées qui, selon la gravité, ralentissent le 'débit des communications en cours ou les rompent.
- 4.332 Le réseau Arpanet
- Dans le réseau Arpanet le chemin est établi pour chaque paquet individuellement selon le principe du routage adaptatif [McQuillan 77]. Les demandes de ressources se trouvent dispersées de facto, puisque l’algorithme
- p.108 - vue 126/387
-
-
-
- Partage des voies 109
- de routage évite les régions à risque de congestion et le contrôle de flux limite l’entrée des paquets dans le réseau. Comme ces deux mécanismes n’assurent pas que les noeuds disposent toujours d’un nombre de tampons suffisant pour stocker les paquets, il est prévu un mécanisme de secours. Quelques tampons sont réservés en permanence dans chaque noeud. En cas de congestion, ils sont utilisés pour permettre l’émission et la réception d’un paquet par voie. Les paquets qui transitent alors par le noeud sont analysés : les messages de service, et en particulier les acquittements, sont traités normalement, mais les paquets de données sont détruits, ce qui permet de libérer des tampons.
- 4.34 LES RÉSEAUX EN ANNEAU
- Dans les réseaux maillés, il existe en général plusieurs chemins entre deux sites. Dans les réseaux en anneau, il n’existe qu’un seul chemin entre deux sites ; le problème de la détermination d’un chemin ne se pose pas. Lorsque les noeuds d’un réseau en anneau sont similaires à ceux des réseaux maillés, ce que nous avons dit de l’allocation des tampons et des lignes s’applique encore. Nous étudions le cas où la mémoire de stockage disponible dans chaque noeud ne permet de conserver qu’un seul message en transit. Une étude générale des réseaux en anneau est faite dans [Liu 78].
- 4.341 Principes généraux
- Un anneau est composé de noeuds et de lignes, ou segments, qui relient ces noeuds. Les messages sont réémis par les noeuds dès leur réception. En règle générale, tout message émis fait un tour complet de l’anneau, et est supprimé par son émetteur. Pendant son trajet, ses destinataires peuvent en prendre copie et modifier certains de ses champs. Cette technique présente les avantages suivants :
- — l’émetteur dispose d’accusés de réception positifs et négatifs (un message qui revient intact n’a été lu par personne),
- — la diffusion sélective d’un message à un sous-ensemble quelconque des sites est possible à peu de frais.
- Nœud
- Segment
- Figure 6. Réseau en anneau.
- p.109 - vue 127/387
-
-
-
- 110 Systèmes informatiques répartis
- Nous distinguons deux techniques d’allocation des segments, suivant le nombre de messages en transit sur l’anneau à un instant donné.
- 4.342 Technique du jeton
- Dans cette technique, parfois appelée anneau de Newhall, un seul message à la fois est admis à circuler sur l’anneau. C’est donc l’ensemble des segments qui est alloué pour l’émission d’un message [Farmer 69]. Un message particulier, le jeton, signifie que l’anneau est libre. Le jeton circule de nœud en nœud jusqu’à ce qu’il en trouve un qui soit prêt à émettre : l’anneau est alors alloué et le jeton est remplacé par un message de données. Il reste à assurer une certaine équité entre les nœuds.
- Exemple : l’anneau Taro [Naffah 78a]
- Dans l’anneau Taro, le jeton est implicitement transmis au destinataire du message. Celui-ci peut s’en servir pour envoyer une réponse, ou bien le passer au suivant. Lors d’une communication de longue durée, le jeton est monopolisé par le couple émetteur-récepteur. L’équité n’est donc pas assurée au niveau des messages mais au niveau des dialogues. Un mécanisme de réveil tel que chaque noeud dispose d’une valeur de réveil différente, assure la régénération du jeton en cas de perte.
- 4.343 Technique du plateau tournant
- Dans la technique dite du plateau tournant, ou de Vanneau de Pierce, il peut y avoir autant de messages circulant sur l’anneau qu’il y a de segments [Pierce 71]. Une marque spéciale, ou trou, est envoyée quand il n’y a pas de message de données à émettre. Tout site qui reçoit un trou a la possibilité de le remplacer par un message de données.
- La réalisation des échanges peut être faite de manière synchrone ou asynchrone. Dans le premier cas, une horloge commune assure le fonctionnement simultané des noeuds. Dans le second, il existe des lignes de contrôle entre noeuds voisins, et l’envoi d’un message n’est possible qu’après réception d’une autorisation d’émettre venant du successeur. Dès qu’un noeud a fini d’émettre, il envoie une autorisation d’émettre à son prédécesseur.
- Remarque
- Dans le cas d’un fonctionnement asynchrone, ce mécanisme réalise une régulation de charge car si N est le nombre de segments, il y a au plus N messages en transit, il évite de mettre en oeuvre une politique complexe d’allocation de tampons dans les noeuds et assure un acheminement rapide des messages qui ont été admis sur l’anneau.
- Exemple : l’anneau DCS
- L’anneau DCS [Farber 72b] fonctionne schématiquement comme un plateau tournant divisé en cases de taille fixe. Les messages sont déposés dans les cases, et pour envoyer un message, un noeud doit attendre le passage d’une case vide (ou trou).
- p.110 - vue 128/387
-
-
-
- Partage des voies 111
- •Les messages sont adressés à des processus et non à un noeud ; chaque nœud contient une table associative qui indique le nom des processus présents sur le site connecté. Lorsqu’un message passe dans un nœud, la table associative est consultée : si le destinataire est présent, le message est copié dans une file d’attente du site et des informations d’état sont mises à jour dans le message. Par ailleurs, si l’émetteur et le récepteur sont sur le même site, une procédure de communication directe est utilisée.
- Chaque message contient le nom du nœud origine. Ce nœud peut donc effectuer le retrait du message après un tour complet. Chaque nœud attend la réception du message qu’il a émis avant d’émettre le suivant, ce qui permet d’assurer l’équité entre les nœuds ; il y a au plus un message par nœud.
- On trouvera dans l’illustration 7 un autre exemple de plateau tournant.
- 4.344 Critique des réseaux en anneau
- Le domaine d’application privilégié des anneaux est celui des réseaux locaux. On ne peut en effet envisager un grand réseau en anneau en raison du manque de fiabilité (la défaillance d’un noeud entraîne celle de l’anneau) et du délai important de transmission entre un noeud et son prédécesseur sur l’anneau.
- Des études quantitatives montrent un écroulement brutal des performances lorsque la charge atteint un seuil critique [Hayes 71, Yu 79]. De nombreuses variantes ont donc été proposées pour en améliorer le comportement [Katz 74, Liu 75].
- EXERCICES
- Exercice 1.
- On considère un canal Aloha pur. Les sources, au nombre de N, émettent des messages indépendamment les unes des autres, avec un débit moyen X message/s. Tous les messages ont la même longueur t, mesurée en temps, et l’on suppose que Xx 1.
- Montrer que le facteur d’utilisation utile du canal est p = NXx.
- Pour calculer le facteur d’utilisation réel, il faut tenir compte des retransmissions dues aux collisions. Soit e le nombre moyen de retransmissions dans un intervalle t. Le nombre moyen de messages émis ou réémis dans un intervalle t est
- ô = p + s .
- Nous faisons l’hypothèse que l’ensemble des messages émis ou réémis obéit à une distribution exponentielle de paramètre â/x, c’est-à-dire que la probabilité qu’aucun message ne soit émis ou réémis dans un intervalle x est donnée par exp(— ô).
- Montrer que : p = ô exp(— 2 <5).
- En déduire que p ne peut dépasser la limite 1/(2 e).
- p.111 - vue 129/387
-
-
-
- 112 Systèmes informatiques répartis
- Exercice 2.
- Reprendre l’exercice précédent en discrétisant le temps en intervalles de durée t.
- Montrer que p = ô exp(— ô) et que p ne peut dépasser la limite 1 je.
- Exercice 3.
- Décrire les protocoles d’allocation de bus (4.23) à l’aide de réseaux d’évaluation.
- Exercice 4.
- On se propose de calculer le facteur d’utilisation de la voie qui utilise le modèle de réservation de Roberts (voir 4.233).
- On suppose que N usagers transmettent chacun des messages avec un débit moyen de X message/s. Soit C la capacité de la voie, en paquet/s (égale à 1/t où t est la durée d’un paquet). Un intervalle t est subdivisé en r sous-inter-valles pour les requêtes.
- Montrer que la fraction du temps pendant laquelle la voie est dans l’état Aloha est donnée par
- NX
- Dans l’état réservation une trame dure M + 1 intervalles. Montrer que le facteur d’utilisation des sous-intervalles dans l’état réservation est
- NX(M + 1)
- Pl~ Cr
- Si m est la longueur moyenne des messages, en paquets, le facteur d’utilisation de la voie pour les messages est
- mNX(M +1) ,
- ------MC < 1 '
- Le facteur d’utilisation utile de la voie est
- mNX , M
- dou P<WTT
- Comme on doit avoir p2 < l/e (voir l’exercice 2), en déduire que M ^ mC/e.
- p.112 - vue 130/387
-
-
-
- Partage des voies
- 113
- RENVOIS
- Références citées dans le chapitre 4
- Abramson 73a, Abramson 73b, Chou 79, Chu 73, Farber 72b, Farmer 69, Fuchs 70, Hayes 71, Katz 74, Kleinrock 75, Kummerle 78, Liu 75, Liu 78, Ludwig 77, McQuillan 74, McQuillan 77, Metcalfe 76, Miyahara 75, Naffah 78a, Pierce 71, Pouzin 73, Roberts 73, Rosner 76, Schwartz 77, Shoch 79, Simon 79, Thurber 72, Yu 79.
- Principaux termes définis dans le chapitre 4
- Taux d’utilisation (d’une voie), méthodes de partage d’une voie (statique, par compétition, par élection, par sélection, par consultation, par arbitrage, par accord mutuel), routage, contrôle de congestion, jeton, plateau tournant.
- CORNAFION. — Systèmes informatiques répartis
- p.113 - vue 131/387
-
-
-
- p.114 - vue 132/387
-
-
-
- CHAPITRE 5
- GESTION DE LA COMMUNICATION
- 5.1 INTRODUCTION
- Nous avons vu dans les chapitres précédents la nature des voies de communication et leur partage entre les entités communicantes. Nous étudions dans ce chapitre comment elles sont mises à la disposition des utilisateurs, pour transférer un ou plusieurs messages vers un destinataire unique ou vers un groupe de correspondants. Cela nous amène à présenter la réalisation du niveau de transport dans ces divers cas et à montrer son utilisation pour réaliser des protocoles de haut niveau.
- 5.11 NATURE DU SERVICE
- Les utilisateurs d’un système réparti font circuler des informations d’un site à un autre pour transmettre des données, des programmes ou des commandes.
- a) Dans un système de commande de processus comme celui décrit en 1.22, les ordinateurs de commande envoient des ordres à ceux qui gèrent les appareils et ils en reçoivent des signaux d’alarme. Ces messages sont généralement courts et doivent parvenir rapidement à leurs destinataires ; un seul message suffit alors à transférer l’information nécessaire.
- b) Dans d’autres circonstances, les transferts sont plus longs et mettent en jeu plusieurs messages. C’est le cas du transfert d’un fichier d’un site à un autre, à la demande d’un utilisateur.
- c) Quand un catalogue, une liste d’abonnés ou un recueil de tarifs sont consultés sur plusieurs sites il est commode d’en avoir une copie sur chacun de ces sites. Toute remise à jour par le site principal nécessite la diffusion d’un fichier vers les N sites secondaires. Cette diffusion du fichier peut se faire en transférant le fichier N fois de suite. Le processus producteur ne connaît alors pour chaque transfert qu’un seul processus consommateur. La diffusion du fichier peut encore s’effectuer en diffusant chaque article vers les N sites à la fois. Cette méthode paraît tentante lorsqu’on dispose d’une voie
- p.115 - vue 133/387
-
-
-
- 116 Systèmes informatiques répartis
- à diffusion, car le transfert est plus rapide. Mais le processus producteur doit se synchroniser avec N processus consommateurs qui réagissent avec des délais variables et peuvent tomber en panne.
- 5.12 NATURE ET PROPRIETES DES COMMUNICATIONS
- 5.121 Mlodes de communication
- Rappelons que la communication sur une voie peut prendre deux formes :
- — communication point à point entre deux correspondants,
- — communication par colloque entre plusieurs correspondants.
- Certaines voies conviennent mieux que d’autres à un mode particulier de communication. Ainsi un réseau comme Transpac est bien adapté à la communication point à point, mais la mise en oeuvre de colloques y est complexe ; en revanche, un anneau ou une voie radioélectrique sont bien adaptés à ce dernier mode de communication.
- Dans les deux ças, la fonction de transport est réalisée par des protocoles qui échangent, à travers le réseau de communication, deux types d’informations :
- — des messages qui véhiculent l’information utile, envoyés en une fois ou découpés en paquets,
- — des commandes (accusés de réception positifs ou négatifs, annonces de crédit, d’ouverture de voie, etc.), nécessaires à la synchronisation des processus, à la régulation du flux des messages et au contrôle des erreurs.
- 5.122 Etapes de la communication
- On distingue généralement trois phases dans le déroulement d’une communication. Chacune d’elles est réglée par un protocole particulier.
- 1) L’ouverture de la communication a pour but de placer l’émetteur et le ou les récepteurs dans un état où la communication peut commencer ; au cours de cette phase peuvent être négociés certains paramètres de la communication tels que la numérotation (ou le nombre) des messages, le nombre et la taille des tampons, le mode d’exploitation de la voie (unidirectionnelle, bidirectionnelle, diffusion), etc.
- 2) Le régime permanent est celui du transfert des messages ; le protocole doit assurer :
- — l’arrivée des messages et des commandes dans l’ordre de leur émission,
- — le maintien de la synchronisation et son rétablissement en cas de perte d’information ou en cas de panne de la voie ou des sites,
- — la régulation de flux.
- 3) La terminaison permet à l’émetteur et au récepteur d’arrêter l’échange de messages et de revenir à un état de référence permettant une reprise ultérieure de la communication.
- p.116 - vue 134/387
-
-
-
- Gestion de la communication 117
- 5.123 Interface de transport
- Rappelons que le niveau de transport offre en général deux types de services (voir 3.622) :
- — L’échange de messages isolés, avec une fiabilité comparable à celle de la voie, est un service appelé service datagramme.
- — L’échange d’une suite de messages, assorti d’un contrôle d’erreur et d’un contrôle de flux, qui donnent une qualité de service supérieure à celle de la voie, est appelé communication de longue durée ou encore service de circuit virtuel.
- L’échange de messages entre les processus des utilisateurs se fait au moyen de primitives qui forment l’interface du niveau de transport. Pour la communication point à point, ces primitives sont émettre et recevoir. Quand il s’agit d’une communication de longue durée, les processus communicants doivent délimiter la suite de messages par une primitive ouvrir puis une primitive fermer. Les paramètres des primitives de l’interface de transport comportent :
- — l’identification des interlocuteurs (nom de site, numéro de porte, etc.),
- — éventuellement l’adresse des tampons de mémoire origine ou destination du message,
- — éventuellement des éléments utilisés pour le traitement des incidents : valeur du délai de garde, adresse d’une procédure de reprise en cas d’erreur.
- 5.124 Influence des caractéristiques de la voie sur le protocole de transport
- Les protocoles du niveau de transport doivent être écrits en tenant compte des caractéristiques des voies de communication ou plus exactement des caractéristiques des protocoles du niveau inférieur. On considère plusieurs aspects.
- — Le délai de transmission est généralement variable d’un message à l’autre ; néanmoins il est parfois possible d’en fixer une borne supérieure.
- — La perte ou l’altération d’un message, ou d’une commande, est toujours possible, ce qui oblige à prévoir un mécanisme de retransmission.
- — La répétition d’un envoi, à la suite d’une détection d’erreur, peut entraîner la réception par le destinataire de plusieurs copies d’un même message (ou d’une même commande) à l’insu de l’émetteur : il importe de pouvoir distinguer des messages différents.
- — Les messages et les commandes peuvent emprunter des chemins différents entre émetteur et récepteur, ou bien se perdre et être réémis ; dans ce cas l’ordre de réception des. messages, ou des commandes, n’est pas toujours identique à l’ordre de leur émission : il importe de les numéroter séquentiellement.
- Les différents protocoles de transport ont pour but de masquer aux processus communicants les caractéristiques indésirables de la voie : perte.
- p.117 - vue 135/387
-
-
-
- 118 Systèmes informatiques répartis
- duplication, réception désordonnée des messages. Comme toute procédure d’allocation de ressource, ils doivent aussi garantir :
- — l’absence d’interblocage,
- — l’absence de privation ou d’attente infinie,
- — la restitution de la voie dans un état correct.
- 5.13 PROTOCOLES PRESENTES
- La suite de ce chapitre présente quelques-uns des protocoles qui, au niveau de transport, sont utilisés sur une voie fiable pour la communication point à point d’un message isolé (voir 5.2) ou sur une voie non fiable pour la communication point à point d’une suite de messages (voir 5.3). Les protocoles mis en jeu dans un colloque sont ensuite présentés (voir 5.4). On dispose encore de peu d’expérience sur ce dernier mode de communication. Nous présentons donc les problèmes qu’il pose sans toujours être capable de leur apporter des solutions satisfaisantes. Enfin nous donnons quelques indications sur les protocoles de haut niveau (voir 5.5).
- Il est important de noter que des problèmes de même nature se retrouvent aux différents niveaux des systèmes de communication et que des techniques analogues sont utilisées pour les résoudre.
- Le domaine qui est présenté est actuellement en pleine évolution ; aussi, au lieu de chercher à faire un exposé systématique des protocoles, nous avons choisi une présentation fondée sur quelques exemples simples, même si ceux-ci ne correspondent pas aux protocoles le plus couramment utilisés.
- 5.2 COMMUNICATION POINT A POINT SUR UNE VOIE FIABLE
- Le bus est un exemple de voie considérée comme suffisamment fiable pour qu’on ne prévoie pas de réémission de message ou de commande au niveau de transport ; le délai de transmission est à peu près constant et connu a priori ; l’ordre d’arrivée des messages est identique à celui de leur émission. S’il y a une erreur de transmission, en général due aux parasites électromagnétiques, elle entraîne l’annulation du message émis et sa réémission ultérieure. Ces erreurs sont suffisamment peu fréquentes pour qu’on juge acceptable de les traiter dans les processus utilisateurs, même quand elles sont détectées au niveau de transport.
- Le transport sur un bus commence par une phase d’allocation et se poursuit par l’envoi d’une suite de quelques messages de taille fixe et relativement courte (quelques octets).
- Les bus sont utilisés pour réaliser des architectures dans lesquelles des processeurs accèdent à des mémoires communes et communiquent entre eux par ces mémoires. C’est le cas des architectures décrites en 3.5 comme Plu-ribus [Heart 73], Polybus [Télémécanique 76] ou Cm* [Swan 77]. Les processus
- p.118 - vue 136/387
-
-
-
- Gestion de la communication 119
- des utilisateurs emploient alors l’interface du niveau de transport pour lire ou écrire des informations dans une mémoire ou sur un périphérique. Mémoire ou périphérique jouent aussi le rôle de tampon dans la communication entre processus : ceux-ci n’ont pas besoin d’être totalement synchronisés pour se transmettre de l’information.
- Exemple : protocole de transfert asynchrone par « accord confirmé » sur un bus
- Nous prenons en exemple un protocole de transfert asynchrone selon la technique de l’accord confirmé [Cornafion 77a]. On appelle ici pilote l’élément auquel est alloué le bus et qui a l’initiative du transfert et co-pilote son correspondant. Le maintien et la suppression de tensions sur les divers fils
- Signal
- bus
- alloué
- Choix
- Adr(x, réception),
- mod =1 réception
- mod —
- ADTE
- ADTR
- *—> C(val) Affichage de la donnée
- Lecture de val
- AFTE
- AFTR
- Pilote
- Etats :
- Etats :
- AA : attente de l’allocation du bus ADTR : attente du début de transfert (réception)
- AFTR : attente de la fin du transfert N : neutre
- N : neutre
- ADTE : attente du début de transfert (émission) AFTE : attente de la fin de transfert
- Figure 1. Technique de l’accord confirmé : transfert d’une donnée val du co-pilote x vers le pilote.
- p.119 - vue 137/387
-
-
-
- 120 Systèmes informatiques répartis
- qui composent le bus peuvent être assimilés à des commandes. Les plus importantes sont :
- Adr(x, mod) adresse x du co-pilote ; mod indique ici la nature (émission ou réception) de l’échange.
- D demande de transfert.
- C{val) accord ; val représente la donnée affichée.
- L’annulation de la demande de transfert est assimilée à l’envoi de la commande D; de même l’envoi de la commande C correspond à l’annulation de l’accord.
- Le protocole présenté est décrit par la figure 1. Il repose sur la séquence suivante d’actions :
- — demande de transfert par le pilote (envoi de D)
- — acceptation de la demande par le co-pilote (envoi de C)
- — lecture de la donnée val par le pilote _
- — signal de fin de lecture par le pilote (envoi de D)
- — signal de fin d’échange par le co-pilote (envoi de C).
- Ce protocole est celui de l’Unibus du PDP11 qui relie le processeur, la mémoire et tous les périphériques du PDP11. Il est plus complètement décrit dans l’illustration 3.
- 5.3 COMMUNICATION POINT A POINT SUR VOIE NON FIABLE
- 5.31 CARACTÉRISTIQUES DES VOIES ET DES ENTITÉS COMMUNICANTES
- Dans le cadre général d’un réseau, les caractéristiques suivantes de la voie de transmission doivent être prises en compte :
- — les erreurs de transmission sont possibles ainsi que les pertes de messages et de commandes,
- — les délais de transmission sont variables,
- — l’ordre d’arrivée des messages et des commandes n’est pas toujours identique à leur ordre d’émission.
- Exemple. Reprenons le protocole de la figure 1 et plaçons-nous dans l’hypothèse d’une voie non fiable.
- — Si la demande de transfert D se perd, le système est bloqué.
- — Compte tenu des délais variables de transmission, le co-pilote peut être, au bout d’un certain temps, amené à faire l’hypothèse que la commande D est perdue alors qu’elle n’est que retardée.
- Les protocoles point à point sur des voies non fiables sont donc plus complexes, afin que les caractéristiques indésirables des voies soient le moins possible perçues par l’utilisateur. Par exemple tout envoi de message doit en général être confirmé par un accusé de réception. Toutefois ceci ne suffit pas lorsque plusieurs messages peuvent être en cours de transmission simul-
- p.120 - vue 138/387
-
-
-
- Gestion de la communication 121
- tanément sur la voie. Nous étudions dans la suite des mécanismes qui apportent des solutions partielles aux problèmes posés par :
- — l’exploitation de la communication en régime permanent (5.32),
- — l’initialisation et la rupture de la communication (5.33).
- Enfin les méthodes de régulation permettent, en régime permanent, de limiter le débit d’émission des messages aux possibilités d’absorption du récepteur. Elles sont analysées en 5.34.
- 5.32 EXPLOITATION D’UNE COMMUNICATION
- Dans une communication de longue durée, une suite quelconque de messages peut être transmise.
- 5.321 Numérotation des messages
- Compte tenu du risque d’erreur de transmission, l’émetteur numérote séquentiellement chacun des messages qu’il envoie et en conserve une copie jusqu’à ce qu’il reçoive l’accusé de réception correspondant. Tout accusé de réception contient le numéro du message qu’il acquitte ; de plus, tout message, non acquitté à l’issue d’un délai de garde donné est systématiquement retransmis par l’émetteur. Cette numérotation a en outre l’avantage de permettre au récepteur de réordonner les messages lorsqu’ils n’arrivent pas dans l’ordre, et de détecter les pertes et les éventuelles duplications.
- Exemple : le protocole PAR (« Positive Acknowledgment, Retransmission »).
- Les protocoles de type PAR [Sunshine 75] traitent les permutations de messages comme des erreurs de transmission : le récepteur n’accepte un message que si tous les messages de numéro inférieur ont déjà été reçus.
- Choix
- n<m
- n>m
- Etats
- Rm : attente du message de numéro m
- Messages et commandes
- AC„ : accusé de réception du message de numéro n
- Mn : message de numéro n
- Figure 2. Protocole PAR : états du récepteur.
- p.121 - vue 139/387
-
-
-
- 122 Systèmes informatiques répartis
- Ainsi, si m est le numéro du message attendu par le récepteur, l’acceptation ou le rejet d’un message de numéro n dépend des valeurs respectives de m et n (fig. 2).
- — Si n = m, le message est accepté, m est incrémenté et un accusé de réception est renvoyé à l’émetteur, car tous les messages de numéro i avec i < m ont déjà été reçus.
- — Si n < m, il s’agit d’une duplication dont la cause peut être la perte du précédent accusé de réception ; dans ce cas, le message est ignoré, mais un nouvel accusé de réception est renvoyé à l’émetteur.
- — Si n > m, le message est ignoré et aucun accusé de réception n’est renvoyé ; le message sera réémis par l’émetteur à l’issue du délai de garde. C’est le cas où le message attendu, m, est soit perdu soit retardé.
- On peut alors imaginer plusieurs comportements différents pour l’émetteur. Dans le schéma que nous présentons (fig. 3), l’émetteur a le droit d’envoyer (w + 1) messages sans attendre les accusés de réception correspondants ; il doit alors en garder des copies, car il est susceptible de les réémettre. Le protocole de l’émetteur fait appel à des notions, en particulier le crédit, qui seront étudiées en 5.342.
- La numérotation des messages par l’émetteur soulève néanmoins deux problèmes, l’un lié au cycle de la numérotation, l’autre lié à l’origine de la numérotation.
- 5.322 Cycle de numérotation
- La partie des messages qui sert à représenter les numéros a nécessairement une taille fixée; on doit prévoir une numérotation cyclique des messages dans un intervalle [0, N — 1]. Ceci impose de limiter le nombre de messages dont l’accusé de réception n’a pas été reçu, afin d’éviter la confusion entre des messages de même numéro appartenant à des cycles différents. Les mécanismes de régulation de flux décrits en 5.34 traitent ce problème et permettent dans la plupart des cas d’éviter les erreurs.
- 5.323 Origine de la numérotation
- Le numéro initial n0 choisi par l’émetteur pour identifier le premier message émis est a priori quelconque dans le cycle de numérotation [0, N — 1]. De son côté, le récepteur contrôle les numéros n des messages reçus ; il ne peut toutefois décider de l’acceptation ou du rejet d’un message que s’il connaît, au début de la communication, le numéro n0 qui a été choisi par l’émetteur. On verra en 5.332 que ce numéro nQ peut :
- — soit avoir une valeur prédéfinie (par exemple n0 = 1),
- — soit être négocié par les deux correspondants au début de la communication.
- La phase d’initialisation d’une communication est une opération particulière : elle doit permettre de fixer un certain nombre de paramètres, et elle ne peut elle-même utiliser les moyens de contrôle qu’elle contribue à mettre en oeuvre. Nous étudions ce problème dans la suite.
- p.122 - vue 140/387
-
-
-
- Gestion de la communication 123
- jéémettre
- Légende
- Etats
- E„ : prêt à émettre les messages de numéro n, n + 1n + w A : attente d’un accusé de réception pour un message de numéro i (avec n ^ i ^ n')
- Messages
- M„ : message de numéro n
- AC{ : accusé de réception du message de numéro i
- (Ee) : envie d’émettre
- (Dg) : délai de garde
- Variables d’état
- i : numéro du dernier message acquitté
- n' : numéro du prochain message à émettre (initialement n = n') n : numéro du plus ancien message non encore acquitté w : valeur du crédit
- Figure 3. Protocole PAR : états de l’émetteur.
- 5.33 INITIALISATION ET RUPTURE D’UNE COMMUNICATION 5.331 Position du problème
- Une communication maintenue entre un émetteur et un récepteur pour la transmission d’un nombre quelconque de messages doit pouvoir être établie dynamiquement [P'ouzin 75]. Il y a deux raisons à cela.
- p.123 - vue 141/387
-
-
-
- 124 Systèmes informatiques répartis
- — Si p processus sont connectés par des voies permanentes, établies une fois pour toutes, il faut conserver en permanence l’état de toutes les communications. Comme il peut y avoir jusqu’à voies duplex possibles, cette solution devient impraticable lorsque le nombre p de processus est grand.
- — Après une avarie sur un site, il faut rétablir une nouvelle communication.
- Avant d’être exploitée au moyen des primitives émettre et recevoir, une communication doit donc avoir été ouverte par l’émetteur avec une primitive ouvrir (nom de Vémetteur, nom du récepteur, paramètres) et cette ouverture doit avoir été confirmée par le récepteur.
- De la même façon, la fermeture d’une communication peut être décidée :
- — soit implicitement par un processus à la suite d’une avarie de l’autre, ou par les deux après entente mutuelle,
- — soit explicitement au moyen de la primitive fermer (nom de V émetteur, nom du récepteur).
- Une ouverture et une fermeture délimitent une communication. Si après avoir fermé une communication, les deux interlocuteurs reprennent leurs échanges, on considère alors que l’on ouvre une nouvelle communication. Le récepteur doit distinguer les messages relatifs à des communications différentes sur la même voie de façon à ignorer ceux qui ne relèvent pas de la communication en cours. Un problème analogue se pose à l’émetteur lorsqu’il reçoit des commandes (accusés de réception, crédits, etc.) en provenance du récepteur.
- Ce problème est souvent résolu en numérotant les communications et en faisant figurer dans chaque message et dans chaque commande le numéro de la communication à laquelle il se rapporte. Ce numéro est choisi par l’émetteur et communiqué au récepteur durant la phase d’ouverture, en même temps que le numéro n0 du message initial ; il est également alloué de manière cyclique. Il en résulte que la réutilisation d’un numéro de communication pose le même problème que la réutilisation d’un numéro de message (voir 5.322).
- 5.332 Ouverture de la communication
- 1) Principe
- Les commandes d’ouverture et de fermeture peuvent être perdues. De telles pertes conduisent les correspondants dans des états incohérents dont il est difficile de sortir car l’état réel de l’ensemble est inconnu de chacun.
- Lors du protocole d’ouverture de la communication, chaque correspondant suit une évolution depuis un état neutre où il considère que la communication est fermée, jusqu’à un état communication établie où il considère que la communication est ouverte. Cette évolution le fait passer par des états transitoires. En fait, la communication n’est réellement ouverte que lorsque les deux correspondants sont dans l’état communication établie. Une évolution analogue se produit pour la fermeture.
- Pour exprimer l’état réel de la communication, nous devons considérer le doublet {a, b y dans lequel chaque élément représente l’état d’un corres-
- p.124 - vue 142/387
-
-
-
- Gestion de la communication 125
- pondant. Remarquons bien que cet état réel n’est pas toujours connu des correspondants car les commandes qu’ils s’envoient pour s’informer de leurs états respectifs peuvent se perdre, ou arriver après le délai de garde. Cela peut mener à des situations où les états permanents des correspondants sont incompatibles et où il y a interblocage (voir exercice 1).
- 2) Négociation des paramètres
- Pour initialiser une communication, le protocole d’ouverture permet aux interlocuteurs de négocier certains paramètres. En particulier, l’émetteur communique au récepteur le numéro n0 du premier message de la nouvelle communication et le numéro qu’il a choisi pour identifier cette communication. L’envoi par le récepteur d’un accusé de réception ne suffit pas à établir la communication de façon certaine car le récepteur n’a aucun moyen de valider les paramètres qu’il a reçus. En effet, compte tenu des duplications et des délais d’acheminement variables, il peut arriver que la commande reçue soit relative à une précédente communication. Le numéro de communication que contient cette commande, ne suffit pas non plus à la valider de manière absolue.
- Remarque. La négociation des paramètres (numéro n0 du premier message, numéro de la communication) n’est pas nécessaire lorsqu’on connaît a priori le délai maximum de transmission L d’un message, ou d’une commande, dans le réseau. Il suffit alors pour éviter toute ambiguïté que la communication ne puisse être ouverte avant un délai L après la fermeture de la précédente communication ou après une avarie ; en effet, passé le délai L, on est assuré que tous les messages de la précédente communication ont été reçus par le récepteur. Dans ce cas, le numéro du premier message peut être choisi d’une manière standard, connue de l’émetteur et du récepteur : par exemple n0 — 1. Le numéro de communication est alors superflu.
- Exemple : protocole d’ouverture par entente après négociation dans une communication bidirectionnelle simultanée
- Le protocole d’ouverture par entente après négociation («three-way handshake») [Tomlinson 75] réduit les possibilités d’erreurs en permettant un certain contrôle des paramètres. Son fonctionnement, pour l’ouverture d’une communication en mode bidirectionnel simultané, est le suivant (fig- 4).
- Le correspondant qui a l’initiative (nous l’appelons émetteur) envoie une demande d’ouverture, notée D(n0) fixant les paramètres, en particulier n0. A la réception de cette commande, le deuxième correspondant (nous l’appelons récepteur) en demande confirmation à l’émetteur. La demande de confirmation, notée C(n0, n'0), contient le numéro n0 que le récepteur a reçu et le numéro initial n'0 que celui-ci communique à l’émetteur pour identifier le premier message transitant en sens inverse. A la réception d’une demande de confirmation, l’émetteur peut :
- — soit renvoyer un accusé de réception positif {AC) si la valeur n0 retournée est correcte et c’est seulement à la réception de cette deuxième commande spécifiant la valeur n0 que la communication sera ouverte pour le récepteur,
- — soit renvoyer un accusé de réception négatif (NAC) pour annuler la tentative d’ouverture.
- p.125 - vue 143/387
-
-
-
- 126 Systèmes informatiques répartis
- N AC
- armer (Dg)
- armer
- N AC
- N AC
- Légende
- Etats Commandes
- N : neutre
- A : attente de confirmation Af : attente d’accord CE : communication établie
- (D) : décision d’ouvrir
- D(n0) : demande d’ouverture
- C(n0, n'0) : demande de confirmation AC : accord de confirmation N AC : refus Dg : délai de garde
- Figure 4. Protocole de l’entente après négociation pour une communication bidirectionnelle simultanée.
- Si les deux correspondants décident simultanément d’ouvrir une communication, chacun ne recevra alors qu’une demande d’ouverture au lieu d’une demande de confirmation, en réponse à sa propre demande d’ouverture.
- Pour pallier le risque d’interblocage, lorsque cette situation se produit, chaque correspondant doit :
- — oublier qu’il a envoyé une demande d’ouverture,
- — revenir à l’état neutre,
- — attendre un certain temps avant d’initialiser une nouvelle ouverture.
- Bien que relativement complexes, les protocoles d’ouverture ne garantissent pas un fonctionnement sûr, en cas de perte de certaines commandes (voir exercice 1). On trouvera dans l’exercice 2 des protocoles qui s’appliquent à
- p.126 - vue 144/387
-
-
-
- Gestion de la communication 127
- l’envoi d’un message isolé, et dans l’exercice 3 un protocole d’ouverture d’une communication de longue durée en mode unidirectionnel.
- 5.333 Fermeture de la communication
- Une communication peut être fermée de différentes façons :
- — par entente mutuelle implicite entre les deux correspondants,
- — à l’initiative d’un interlocuteur par suite d’une avarie de l’autre,
- — suivant un accord négocié.
- Dans le premier cas, cela suppose que les correspondants aient convenu à l’ouverture de terminer le dialogue après un nombre fixé de messages ou bien dès l’émission par l’un deux d’un message de données signifiant la fin de la communication.
- Dans le second cas, la fermeture peut être décidée à l’initiative d’un seul correspondant, à l’issue d’un délai de garde, en l’absence de réponse de l’autre.
- Au contraire, la terminaison suivant un accord négocié est nécessaire, lorsque les correspondants n’ont pas établi d’entente a priori. C’est cette méthode que nous illustrons dans l’exemple suivant.
- Exemple : protocole de fermeture négociée d’une communication en mode bidirectionnel
- Légende
- Etats
- Commandes
- LE : liaison établie A : attente de fermeture N : neutre
- F : décision de fermer F(nt) : fermeture
- Figure 5. Protocole de « fermeture négociée » pour une communication bidirectionnelle alternée.
- p.127 - vue 145/387
-
-
-
- 128 Systèmes informatiques répartis
- Le protocole de fermeture négociée [Sunshine 75] oblige à introduire une commande de fin de communication. Lorsqu’un interlocuteur souhaih terminer le dialogue, il envoie la commande de fin de communication, notée F(nf), en spécifiant le numéro du dernier message qu’il a émis.
- Le récepteur utilise alors ce numéro pour contrôler la bonne réception de l’ensemble des messages émis ; il n’envoie à son tour une commande de fin de communication, en précisant le numéro n\ du dernier message qu’il a lui-même émis, qu’après avoir reçu tous les messages précédant le message nt. Il clôt ensuite la communication.
- A la réception de la commande de fin de communication F(n-), et après avoir reçu tous les messages précédant le message n[, l’émetteur ferme à son tour la communication.
- La perte de la dernière commande F(n'i) dans cette phase de fermeture laisse la communication dans un état particulier qui rend impossible toute réouverture ultérieure. Quelques méthodes permettant de diminuer la probabilité de cet interblocage sont étudiées dans l’exercice 1.
- 5.34 RÉGULATION DE FLUX
- 5.341 Paramètres de la régulation de flux
- Les protocoles qui règlent les échanges en régime stationnaire incluent, dans une communication de longue durée, des stratégies, dites de régulation de flux, qui permettent de limiter le débit d’émission des messages pour le rendre compatible avec les possibilités d’absorption du récepteur [Cornafion 79],
- Rappelons que le débit utile (3.21) est le débit des messages effectivement attendus par le récepteur à l’exclusion des commandes et des retransmissions. Un objectif supplémentaire de la régulation de flux est de rendre le débit utile le plus voisin possible de la capacité d’absorption du récepteur. Dans tous les cas, le débit de la communication entre l’émetteur et le récepteur est limité par le débit de la voie qui les relie. Différents facteurs interviennent dans la régulation de flux.
- a) Le délai de garde.
- b) Le délai d’acquittement.
- c) La taille du tampon de stockage où l’émetteur conserve une copie de chaque message transmis et non encore acquitté ; la taille de ce tampon limite le nombre de messages à transmettre.
- d) La taille du tampon d’ordonnancement chez le récepteur. Ce tampon permet au récepteur de réordonner les messages s’ils sont arrivés en désordre ; la taille de ce tampon limite la capacité d’absorption du récepteur.
- é) La taille des messages. Elle a un effet direct sur celle des tampons de stockage et d’ordonnancement et sur le nombre des messages qu’ils peuvent contenir.
- p.128 - vue 146/387
-
-
-
- Gestion de la communication 129
- 5.342 Principes de la régulation de flux
- La régulation de flux consiste à asservir la production des messages émis par l’émetteur à leur consommation par le récepteur. Cet asservissement est le même que celui qui est réalisé, dans les systèmes centralisés, par le schéma classique du « producteur-consommateur » ; sa mise en oeuvre est plus complexe pour tenir compte des caractéristiques indésirables de la voie (pertes et dépassements des messages, délais de transmission variables).
- 1) Notion de crédit
- Tant que l’émetteur n’a pas reçu l’acquittement correspondant, il considère qu’un message est en cours d’acheminement. Pour pouvoir le réémettre en cas de perte, il en conserve une copie. Dans le cas où l’émetteur n’attend pas l’accusé de réception d’un message pour transmettre le suivant, plusieurs messages peuvent être en cours d’acheminement sur la voie, à un instant donné.
- On appelle crédit le nombre maximum w de messages qui, vus de l’émetteur, peuvent être en cours d’acheminement à un instant donné. Le crédit fixe une limite au nombre de messages émis, et permet donc d’asservir l’émetteur au récepteur.
- Le récepteur n’a pas la même perception que l’émetteur du nombre de
- x x + 1 x +2 x +3 x +4 x +5 x+6 Numéro
- des messages
- messages en cours d’acheminement
- Vue de l’émetteur
- t)< XXXXl ////X////X////X////X////;
- Vue du récepteur
- Légende
- XXXX message acquitté Yaleur du crédit = 5
- //// message émis mais non acquitté
- message ou commande en cours d’acheminement Me message AC accusé de réception
- Figure 6. Messages en cours d’acheminement vus par l’émetteur et le récepteur.
- p.129 - vue 147/387
-
-
-
- 130 Systèmes informatiques répartis
- messages susceptibles d’être en cours d’acheminement à un instant donné. Cependant, s’il connaît la valeur du crédit, il peut connaître le plus grand numéro de message qu’il est susceptible de recevoir, compte tenu de ceux qu’il a déjà acquittés.
- Pour une valeur de crédit déterminée, on peut adopter diverses stratégies pour le récepteur :
- — Dans les stratégies sûres, on prévoit assez de tampons pour lui permettre d’accepter un nombre de messages égal au crédit : un message émis ne sera jamais rejeté pour manque de place. Ce sont des stratégies où le crédit est le principal paramètre de régulation du débit.
- — Dans les stratégies optimistes, on prévoit moins de tampons que le crédit : le récepteur peut être amené à refuser des messages ; mais cela ne se produit pas tant que les messages arrivent de façon ordonnée et régulière : la voie sert alors de moyen de stockage supplémentaire. Ces stratégies sont valables quand les valeurs de crédit sont grandes et que d’autres facteurs interviennent par ailleurs pour limiter le débit (taux de panne, saturation de la voie, etc.).
- La saturation de la voie peut contrarier l’effet d’anticipation du crédit, dans la mesure où elle restreint le nombre des messages en transit. Un taux élevé de pertes de messages joue le même rôle, car le débit utile est alors limité par les retransmissions des messages perdus.
- Enfin le crédit peut, suivant les stratégies, être constant ou variable. Dans tous les cas, l’émetteur doit avoir un nombre de tampons de stockage correspondant à son crédit.
- 2) Notion de fenêtre
- Comme les accusés de réception peuvent parvenir à l’émetteur dans un ordre quelconque ou bien peuvent se perdre, l’émetteur ne doit pas seulement connaître le nombre des messages en cours d’acheminement, il doit aussi connaître leurs numéros. Pour les mêmes raisons, le récepteur doit connaître les numéros des messages qu’il n’a pas encore reçus.
- On appelle fenêtre [Cerf 74] un intervalle de numérotation repéré par son origine a et par sa largeur b. Intuitivement, la fenêtre correspond aux numéros des messages en cours d’acheminement. Compte tenu des différences de perception existant entre l’émetteur et le récepteur, deux définitions sont nécessaires :
- — La fenêtre de l’émetteur est définie par l’intervalle [a + 1, a + b]. Son origine a + 1 est le plus petit numéro du message dont l’accusé de réception n’a pas encore été reçu. Sa largeur b est égale à la valeur courante du crédit w. La fenêtre de l’émetteur peut évoluer en fonction de l’arrivée des accusés de réception et de commandes modifiant le crédit.
- — La fenêtre du récepteur est définie par l’intervalle [a' + 1, a' + b']. Son origine a’ + 1 est le plus petit numéro du message qu’il n’a pas encore acquitté et donc, en général, qu’il n’a pas encore reçu. Sa largeur b' est égale au nombre des tampons d’ordonnancement : b' < w pour les stratégies optimistes, et
- p.130 - vue 148/387
-
-
-
- Gestion de la commmication 131
- b' = w pour les stratégies sûres. La fenêtre du récepteur évolue en fonction des arrivées de messages.
- Le récepteur refuse les messages qui ne sont pas dans sa fenêtre : il ne les acquitte pas. Dans le cas d’une stratégie sûre, cela n’arrive que pour des messages dupliqués dont un exemplaire est déjà arrivé ; dans le cas d’une stratégie optimiste, cela arrive aussi quand le récepteur n’a plus de tampons disponibles ; le message refusé sera réémis.
- Pour l’émetteur comme pour le récepteur, la fenêtre définit les numéros de messages dont ils doivent garder une copie : l’émetteur parce qu’il est susceptible de les réémettre, le récepteur parce qu’il reconstitue l’ordre d’émission et que le numéro a' + 1 correspond à un trou dans la séquence des messages qu’il a reçus. Même dans le cas des stratégies sûres, les fenêtres de l’émetteur et du récepteur ne coïncident pas à cause des pertes et des délais de transmissions variables des messages et des accusés de réception. La figure 7 représente un exemple d’évolution des fenêtres, à un instant donné.
- x—1 x x+1 x + 2 x+3 x+4 x+5 x+6 x + 7 Numéro
- //XX/
- 1-------------------h
- xxxx
- ixxxx
- Fenêtre de l’émetteur
- XXXX IXXXX I xxxx ixxxx I xxxx-i-----1------\
- des messages
- Vue
- AC
- Me
- 1
- Me
- XXXX I XXXX IXXXX1-----Ixxxx i----!-----i
- de l’émetteur
- Vue
- Fenêtre du récepteur
- du récepteur
- Légende
- XXX message acquitté
- / / / message envoyé ou reçu, mais non acquitté message ou commande en transit sur la voie Me message en cours d’acheminement AC accusé de réception
- Le crédit est égal à 5.
- Figure 7. Fenêtres utilisées pour le contrôle de flux dans une stratégie de régulation sûre.
- Remarque. Le mécanisme de la fenêtre permet d’éliminer les messages dupliqués, à condition que le double d’un ancien message ne soit pas pris pour un nouveau message m2 ; comme la numérotation des messages
- p.131 - vue 149/387
-
-
-
- 132
- Systèmes informatiques répartis
- n’utilise qu’un nombre fini de numéros pris dans le cycle [0, N — 1], cette confusion devient possible si le numéro de est égal au numéro de m2-On peut l’éviter en choisissant un crédit w inférieur à N/2 [Cerf 74], à condition que le délai de transmission des messages soit inférieur à l’intervalle de temps qui sépare l’utilisation de deux numéros distants de N — (w — 1) (voir exercice 4).
- 5.343 Modes particuliers de régulation
- 1) Régulation de flux par transmission alternée
- En transmission alternée [Bartlett 69], le crédit a la valeur 1 : l’émetteur doit attendre, pour chaque message émis, l’arrivée de l’accusé de réception avant d’envoyer le message suivant. Avec cette méthode, lors de l’ouverture de la communication, le récepteur réserve un tampon pour recevoir un message et un seul. Quand le message est arrivé, le récepteur renvoie un accusé de réception à l’émetteur. Cet acquittement confirme la bonne réception du message et autorise l’émission du message suivant. La détection des doubles est possible grâce à la numérotation des messages (voir exercice 5).
- Exemple. Le système de transfert de messages fonctionnant sur le réseau en étoile du CERN [Altaber 78] utilise ce type de régulation.
- La limitation du débit utile est due au délai d’acquittement qui, s’il est grand par rapport au temps séparant l’envoi de deux messages, entraîne l’attente de l’émetteur.
- 2) Crédit variable
- Le crédit est en général fixé à l’ouverture d’une communication. Il peut être redéfini en cours de communication par le récepteur en fonction, par exemple, de la disponibilité de ses tampons. Dans ce cas, le récepteur doit envoyer des commandes particulières pour en avertir l’émetteur. Pour éviter de perdre les modifications du crédit, on peut associer la valeur du crédit courant à chaque accusé de réception (voir l’exemple 2 du 5.344).
- 5.344 Exemples de stratégies de régulation de flux
- Exemple 1 : crédit constant
- Dans le réseau Arpanet, le crédit reste toujours égal à 4 messages [McQuil-lan 72]. Les messages n’arrivant pas dans l’ordre doivent attendre leur tour avant d’être acquittés et il est possible qu’ils soient réémis pendant cette attente. Au début de la communication, l’émetteur peut envoyer un nombre de messages égal au crédit. Ensuite les émissions sont rythmées par l’arrivée des accusés de réception : l’acquittement du message n autorise l’émission du message n + 4. Les fenêtres se déplacent d’un seul numéro à chaque fois. Dans ce fonctionnement, on est très proche du schéma classique du producteur-consommateur.
- p.132 - vue 150/387
-
-
-
- Gestion de la communication
- 133
- Exemple 2 : crédit variable
- Dans le réseau Cyclades comme dans Arpanet, le récepteur n’acquitte le message de numéro n que si tous les messages précédents ont été correctement reçus [Chambon 73]. Toutefois, dans Cyclades, chaque accusé de réception est accompagné de la valeur du nouveau crédit. Ainsi, recevant un accusé de réception contenant (n, w„), l’émetteur sait qu’il est autorisé à expédier les messages dont les numéros sont dans la fenêtre [n + 1, n + w„].
- La perte d’un accusé de réception peut être corrigée de deux manières [Zimmerman 75] :
- — soit par réémission du message si le délai de garde de l’émetteur se termine en premier,
- — soit par l’arrivée de l’accusé de réception suivant (voir exercice 6).
- Dans les deux exemples précédents, le récepteur peut mettre en jeu, suivant le nombre de tampons dont il dispose, une stratégie de régulation sûre ou une stratégie de régulation optimiste [Sunshine 75].
- 5.345 Influence de la valeur du crédit sur le débit de transmission
- L’influence du crédit a été étudiée par des simulations [Le Lann 78a] qui ont montré que le débit utile augmente avec la valeur du crédit, jusqu’à un seuil qui correspond à la saturation de la voie. Les deux stratégies comparées, celles des réseaux Arpanet et Cyclades, donnent les mêmes résultats. La valeur du crédit qui détermine le début du seuil ne dépend pas de la stratégie, mais de la taille des messages. Le seuil est atteint d’autant plus rapidement que les messages sont de grande taille.
- 5.4 COMMUNICATION PAR COLLOQUE
- 5.41 CARACTÉRISTIQUES D’UN COLLOQUE
- Rappelons qu’un colloque est un mode de communication qui permet à plusieurs processus, participant à une même application, de communiquer entre eux.
- Ce mode de communication est encore peu étudié et les concepts qui s’y rapportent ne sont pas stabilisés. La présentation qui suit utilise une terminologie qui nous est propre, et ne propose pas toujours de solution aux problèmes présentés.
- Considérons une voie de communication, virtuelle ou réelle, qui permet de relier N processus, implantés sur différents sites et rattachés à une même application A. Si l’application A nécessite que chaque processus communique des messages à tous les autres processus présents, il est commode de disposer d’un niveau de transport qui fournisse les primitives :
- informer {A,message) et écouter {A,message) .
- p.133 - vue 151/387
-
-
-
- 134 Systèmes informatiques répartis
- La primitive informer {A,message) a pour effet de transmettre le message à tous les processus de l’application A ; la primitive écouter {A,message) permet à chaque processus de recevoir des messages en provenance de l’un quelconque des processus de A.
- Ces primitives doivent fournir une qualité de service supérieure à celle de la voie : en particulier, elles doivent garantir l’absence de perte de message, un séquencement global identique pour tous les processus des messages émis à l’aide d'informer, un contrôle de flux, etc.
- Pour assurer l’entrée d’un processus dans l’application et son départ, deux primitives supplémentaires sont nécessaires, au niveau du transport :
- rejoindre (A ) et quitter (A ) .
- Les quatre primitives rejoindre, informer, écouter, quitter peuvent respectivement être considérées comme le pendant des primitives ouvrir, émettre, recevoir, fermer d’une communication point à point. Pour cette raison, nous parlerons d’une communication par colloque à N participants, pour qualifier le mode de communication que nous venons de définir. Le niveau de transport correspondant fournit ce qu’on appelle d’ordinaire un service de diffusion (« broadcasting service »).
- Bien qu’un certain nombre d’applications réparties (par exemple la mise à jour de copies multiples, voir chapitre 10) aient besoin d’un tel service, il revient souvent à l’utilisateur de le réaliser à l’aide de communications point à point.
- Le niveau de transport précédent s’implante sur un niveau de communication. Pour la simplicité de l’exposé, nous choisissons un niveau de communication offrant la primitive
- diffuser {message,destination) où
- destination est la liste des destinataires à atteindre
- message indique l’adresse du tampon de mémoire où est rangé le message.
- Remarque. Ce choix arbitraire conduit, si la voie dont on dispose n’offre pas naturellement la primitive diffuser, à construire ce premier niveau de communication. La différence entre informer et diffuser réside évidemment dans la qualité du service fourni. Nous verrons en 5.43 les problèmes de mise en oeuvre de la primitive diffuser. Nous aurions pu aussi faire un autre choix ; par exemple implanter directement le service de diffusion à partir d’un niveau de communication ne fournissant que des primitives point à point.
- 5.42 MISE EN ŒUVRE D’UN COLLOQUE 5.421 Exploitation d’un colloque en régime permanent
- Nous nous intéressons ici à l’implantation de la primitive informer ave^ une qualité de service supérieure à celle de la voie.
- p.134 - vue 152/387
-
-
-
- Gestion de la communication 135
- 1) Séquencement des messages
- Considérons un colloque à p participants et plaçons-nous dans la phase d’exploitation proprement dite. Supposons qu’il n’y ait pas de perte de message. Si on ne fait aucune hypothèse sur le délai de transmission des messages, deux phénomènes peuvent se produire :
- a) Les messages émis par un même correspondant peuvent se dépasser.
- b) Les messages émis par plusieurs correspondants ne sont pas forcément reçus dans le même ordre par des correspondants situés sur des sites différents.
- x x+1 x+2 x y y + 2 x+1 y + 1
- i i i i Messages émis par le correspondant i f Réseau \ I | | 1 1 Ordre de réception chez le correspondant k (site Sk)
- y y+1 y+ 2 i i i i k- / de transport I y y + 1 y + 2 x + 1 X I l r 1 1 h
- 1 l i l Messages émis par le correspondant j V / Ordre de réception chez le correspondant / (site St)
- Figure 8. Séquencement possible des messages d’un colloque.
- On peut facilement corriger les effets de a) par une numérotation des messages comme en 5.32. Le phénomène b) requiert la présence d’un mécanisme supplémentaire pour que tous les sites intervenant dans le colloque puissent s’accorder sur un même ordre de prise en compte des messages diffusés par des émetteurs différents. De tels mécanismes sont étudiés au chapitre 8.
- Remarque. Dans le cas particulier des voies de communication à canal unique (par exemple bus, anneau, voie à diffusion Ethernet ou Aloha) ces problèmes ne se posent pas.
- 2) Communication par colloque sur voie non fiable
- Lorsque la voie de communication n’est pas fiable, il est possible que des messages se perdent. On est donc obligé d’introduire un mécanisme de retransmission.
- De cette façon, tout message diffusé doit être systématiquement acquitté par chacun des p destinataires du colloque. Le message doit être éventuellement réémis à l’issue d’un délai de garde, à l’intention des processus dont l’accusé de réception n’a pas été reçu. Les doubles sont détectés par les destinataires, au moyen du numéro de message comme dans une communication point à point (voir 5.32).
- L’émetteur peut tomber en panne durant l’exécution de la primitive informer et le message diffusé n’être reçu que par un sous-ensemble des participants : la cohérence du colloque n’est plus assurée. Des méthodes doivent être envi-
- p.135 - vue 153/387
-
-
-
- 136 Systèmes informatiques répartis
- sagées pour augmenter la fiabilité. A titre d’exemple, l’émetteur peut, avant de commencer la diffusion, se prévoir des remplaçants. On peut aussi imposer que les récepteurs ne considèrent qu’un message n’est reçu que lorsque l’émetteur l’a confirmé.
- 5.422 Extension d’un colloque
- Un colloque est en général conçu pour admettre dynamiquement l’insertion de nouveaux correspondants : à un instant donné, si p correspondants sont engagés dans un colloque, l’exécution de la primitive rejoindre par un nouveau correspondant lui permet de s’introduire dans le colloque. Une façon commode de réaliser cette extension consiste à associer, à chaque correspondant, une liste de diffusion qui regroupe les noms des p correspondants du colloque courant. Le protocole d’extension se résume alors aux actions suivantes :
- — inclure le nom du nouveau correspondant dans la liste de tous les participants,
- — fournir une liste de diffusion au nouveau correspondant.
- Exemple : extension d’un colloque par accord confirmé sur une voie fiable
- Dans ce protocole (voir aussi l’exercice 7), le correspondant de nom iq qui désire rejoindre le colloque, le signale à tous les participants en diffusant la commande d’ouverture D(uj). A la réception de cette commande, chaque participant ut envoie en même temps qu’un accusé de réception REP(L{p), uj) sa liste de diffusion courante L(p).
- Après quoi, il cesse momentanément d’émettre des messages jusqu’à ce qu’il reçoive une confirmation CONF(uj) en provenance du nouveau participant. Ce dernier ne diffuse la confirmation à tous les participants que lorsqu’il a reçu tous les accusés de réception correspondants. La difficulté de ce protocole tient au risque de conflit lors de l’ouverture simultanée d’un colloque par deux participants.
- 5.423 Sortie d’un colloque
- Le départ, au moyen de la primitive quitter, d’un correspondant du colloque auquel il participait, peut être réglé par un protocole de fermeture négociée.
- Ce protocole doit veiller à ce que le colloque reste dans un état cohérent. Pour cela, le départ d’un participant ne doit être possible qu’après que tous les participants aient reçu et traité tous les messages qui précèdent la demande de départ.
- Les mécanismes d’ordonnancement des messages, évoqués en 5.421, permettent de résoudre ce problème de façon simple.
- Exemple : sortie d’un colloque par accord confirmé
- Le participant de nom up qui souhaite quitter un colloque, le signale aux autres correspondants, en diffusant une commande de fermeture F(up). Chaque correspondant répond à cette commande par un accusé de réception,
- p.136 - vue 154/387
-
-
-
- Gestion de la communication 137
- et cesse momentanément d’émettre jusqu’à la réception d’une confirmation de up. Le candidat au départ n’envoie la confirmation qu’après avoir reçu les accusés de réception de tous les autres participants.
- 5.43 MISE EN ŒUVRE DE LA PRIMITIVE DIFFUSER
- La mise en œuvre d’un colloque repose sur la diffusion d’un message à un ensemble de destinataires. Ce paragraphe présente les différentes façons de réaliser cette diffusion compte tenu des caractéristiques des voies de communications : voies à diffusion, anneau, communication point à point et réseau de communication maillé.
- 5.431 Voies à diffusion
- Sur une voie à diffusion, les signaux émis atteignent tous les correspondants. Les voies à diffusion peuvent être partagées, par compétition et sans arbitre (voir 4.2): les liaisons radio en sont un exemple.
- La primitive diffuser se traduit au niveau de communication par l’émission d’un message avec l’adresse conventionnelle de diffusion, suivie d’une écoute sur la voie. Après un délai correspondant au délai de propagation sur le support, l’émetteur entend son message et peut déterminer s’il a été brouillé ou non par suite d’une collision avec une autre émission. S’il y a collision, l’émetteur réémet son message selon la stratégie en vigueur sur la voie. Mais s’il n’y a pas collision, il ne peut pas néanmoins en déduire que tous les sites ont reçu son message ; des pertes sont possibles puisque des tampons de réception peuvent être remplis ou que le site récepteur peut effectuer une tâche plus prioritaire que l’écoute sur la voie.
- 5.432 Réseaux en anneau
- Pour réaliser la diffusion dans les réseaux en anneau (voir 4.4), tout message émis doit faire un tour complet avant de revenir au site émetteur. Il paraît donc avantageux d’autoriser chacun des sites traversés à ajouter une commande au message qu’il reçoit, ce qui permet, par exemple, de :
- — compter le nombre de correspondants qui ont pris connaissance du message,
- — noter qu’un correspondant particulier n’a pu recevoir le message par manque de tampon, etc.
- Cela peut simplifier le protocole d’extension d’un colloque, présenté en 5.4L
- 5.433 Communications point à point
- Lorsque tous les correspondants peuvent communiquer deux à deux, il leur est possible de réaliser un service de diffusion à l’aide de ces communications point à point. C’est par exemple le cas de correspondants connectés à un réseau de transport (3.62). Plusieurs méthodes sont concevables.
- p.137 - vue 155/387
-
-
-
- 138 Systèmes informatiques répartis
- 1) Utilisation de communications point à point entre tous les participants
- Des communications point à point sont maintenues entre tous les couples de participants du colloque. S’il y a N participants, cela fait communications à maintenir. La primitive diffuser (m, L(N)) est donc réalisée en envoyant un message vers chacun des N — 1 destinataires.
- Cette méthode, utilisée en particulier sur le réseau Arpanet, a comme principal avantage sa simplicité de mise en oeuvre sur les réseaux de transport ; si le réseau n’est pas trop chargé, la diffusion est faite rapidement. Son inconvénient est d’envoyer pliis de messages qu’il n’est nécessaire car elle ne tient pas compte de la topologie physique du réseau ; cela peut entraîner la congestion du réseau.
- 2) Technique de Vanneau virtuel
- Cette méthode consiste à décider d’un ordre circulaire fixe entre les N sites du réseau ; on réalise ainsi un anneau virtuel. Par hypothèse, chaque site connaît le nombre total N de sites et leur ordre de rangement sur l’anneau virtuel. Supposons les sites numérotés de 0 à N — 1, et rangés sur l’anneau selon cet ordre.
- L’émetteur n’envoie qu’un seul message qui circule dans le réseau selon l’ordre de parcours de l’anneau. Chaque site consulte donc les messages qui lui arrivent de son prédécesseur et les transmet à son successeur. Cette méthode offre les mêmes possibilités que la diffusion sur un anneau physique (voir 5.432). Elle présente en outre, par rapport à la méthode précédente, l’avantage de ne maintenir que N communications point à point. Lorsqu’un site tombe en panne, la reconfiguration de l’anneau [Le Lann 77] peut se faire par un algorithme distribué.
- Il apparaît que ces méthodes de réalisation d’un service de diffusion à partir de communications point à point ne prennent pas en compte la topologie physique du réseau. Au contraire, en se plaçant au niveau d’un réseau de communication dont la topologie est fixée, on peut envisager d’étendre les algorithmes d’acheminement vus au chapitre 4 pour permettre à un message diffusé d’atteindre tous les noeuds du réseau.
- 5.434 Réseaux de communication maillés
- Considérons un réseau maillé dans lequel les messages sont acheminés par routage (4.32). Pour diffuser un message, il suffit que tous les nœuds en reçoivent une copie et une seule. On cherche à éviter la saturation du réseau par une duplication excessive des messages et à limiter le délai maximal de diffusion d’un message. Les méthodes proposées réalisent divers compromis entre le nombre de copies, le délai maximal et d’autres facteurs tels que la modification du message, la taille des tables de routage nécessaires dans chaque nœud, la complexité des algorithmes d’acheminement et la fiabilité de la diffusion. On peut distinguer diverses méthodes, plus ou moins académiques.
- p.138 - vue 156/387
-
-
-
- Gestion de la communication 139
- 1) Liste de diffusion
- Chaque message est transporté avec la liste de ses destinataires. Lorsqu’un message arrive dans un nœud, l’algorithme de routage évalue, pour chaque destinataire de la liste, sur quelle voie de sortie une copie doit être émise. Chacune de ces copies ne contient que la liste des destinataires concernés.
- Cette méthode fournit de bons résultats, mais son principal inconvénient est le rallongement des messages pour contenir la liste variable des destinataires. Par exemple, dans un réseau de N noeuds, on doit réserver dans chaque message une chaîne de N bits pour indiquer si les nœuds sont destinataires du message. S’il y a plusieurs sites rattachés au même nœud, il faut en plus pouvoir les distinguer.
- 2) Inondation
- Chaque nœud qui reçoit un message le recopie vers chacun de ses voisins (on appelle voisin tout noeud qui lui est relié directement) sauf celui dont il a reçu le message. Nous ne reviendrons pas plus sur cette méthode qui est déjà décrite en 4.322.
- 3) Parcours de l'arbre de recouvrement
- Un arbre de recouvrement (« spanning tree ») d’un réseau est un arbre qui contient tous les nœuds et un sous-ensemble des voies du réseau, et qui permet d’établir un chemin unique entre deux noeuds du réseau. La méthode consiste à diffuser les messages sur cet arbre. Quand un message arrive à un noeud d’où partent plusieurs voies qui font partie de l’arbre de recouvrement, le message est recopié sur chacune d’elles, excepté la voie par où il est arrivé.
- Cette méthode réduit le nombre des copies du message, mais non le délai de diffusion. Chaque noeud doit contenir la liste des noeuds voisins qui font partie de l’arbre de recouvrement.
- 4) T est du chemin parcouru
- Tout noeud X qui reçoit un message de son voisin Y le recopie vers ses autres voisins, seulement si ce message a emprunté pour l’atteindre le plus court chemin à partir de l’émetteur initial E. Le chemin est considéré comme le plus court si la table de routage en X indique que le meilleur chemin de X à E passe par Y (on fait ici l’hypothèse que le meilleur chemin de E vers X est le même que celui de X vers E).
- Cette méthode élimine les messages qui n’ont pas employé le meilleur chemin pour parvenir au noeud : seul un message par noeud est retransmis. Le nombre de copies effectuées est assez grand, mais les copies sont détruites rapidement. Les délais sont courts et la fiabilité de la diffusion est bonne, si les tables de routage ne sont pas modifiées pendant la période de diffusion (exercice 8).
- p.139 - vue 157/387
-
-
-
- 140
- Systèmes informatiques répartis
- 5.435 Comparaison des méthodes de diffusion
- Les méthodes de diffusion par modification des algorithmes de routage, étudiées en 5.434, ainsi que la méthode utilisant des communications point à point pour chaque couple de participants, vue en 5.433, ont été simulées pour le réseau Arpanet [Dalal 78], Les critères de performances qui ont été utilisées dans ces simulations sont :
- — le nombre de copies d’un message nécessaires pour diffuser ce message à tous les sites du colloque,
- — le délai de transmission moyen et le délai maximal requis pour la diffusion d’un message à tous les sites du colloque.
- Ces simulations ont montré que deux méthodes l’emportent sur les autres : la méthode utilisant une liste de diffusion et la méthode du test du chemin parcouru.
- 5.5 PROTOCOLES DE HAUT NIVEAU
- Les services d’échange de messages entre les utilisateurs sont assurés par le réseau de transport. Nous avons vu au chapitre 3 que ce réseau de transport est structuré en plusieurs niveaux d’abstraction (niveau de ligne, niveau de communication et niveau de transport). Chaque niveau réalise des protocoles d’échange d’informations qui améliorent et complètent les services de niveau inférieur sur lesquels ils sont construits. Ainsi le niveau de transport présente à ses utilisateurs, des services d’échange de messages qui ne sont pas toujours fournis par le niveau de communication.
- Les protocoles décrits jusqu’ici assurent un service général indépendant des applications. A l’aide d’un réseau de transport, les utilisateurs construisent des applications réparties, et mettent en oeuvre des processus qui coopèrent suivant un protocole propre à l’application. Nous convenons d’appeler protocole de haut niveau tout protocole bâti avec l’interface de transport.
- Parmi les protocoles de haut niveau, trois classes importantes de protocoles correspondent à des applications d’intérêt général.
- 5.51 PROTOCOLES DE TERMINAL VIRTUEL
- Les utilisateurs accèdent à un réseau à partir d’une grande variété de terminaux et de périphériques (machines à écrire, écrans, etc.) qui diffèrent par le codage des caractères, la longueur des lignes mises en jeu, etc. Pour rendre les programmes des applications les plus indépendants possibles des caractéristiques physiques des terminaux, il est commode de définir pour un réseau donné un modèle unique de terminal idéal, appelé terminal virtuel. Ce modèle est paramétré pour prendre en compte toute une gamme de caractéristiques des terminaux réels. Les communications entre programme d’application et ter-
- p.140 - vue 158/387
-
-
-
- Gestion de la communication 141
- minai virtuel, et la correspondance entre terminal réel et terminal virtuel obéissent à un ensemble de règles qui constituent un protocole de terminal virtuel [Naffah 78b, Schicker 78, Davies 79].
- 5.52 PROTOCOLES DE TRANSFERT DE FICHIERS
- Un réseau de transport permet de relier plusieurs sites qui, en général, possèdent chacun leur propre système de fichiers. Il est intéressant de permettre à chaque utilisateur d’accéder aux fichiers des différents sites, même si l’organisation de ces fichiers diffère d’un site à l’autre. Il est alors commode de définir une représentation standard de fichier, que l’on appelle fichier virtuel.
- Dans le cas où l’utilisateur manipule un fichier distant, il est parfois plus économique de transférer tout le fichier pour effectuer un traitement local plutôt que de soumettre des requêtes successives au site sur lequel est implanté le fichier. Le transfert du fichier obéit alors à des règles qui prennent en compte les différences de représentation, et qui constituent un protocole de transfert de fichiers (« File Transfer Protocol »).
- Pour éviter, en cas de panne d’un des sites ou du réseau, de recommencer le transfert à partir du début, il faut pouvoir mettre en place des points de reprise (« check points ») ; l’utilisateur pourra relancer le transfert à partir du dernier point de reprise qu’il connaît. Ce point de reprise ne peut être que le numéro d’un article dont une copie existe sur chacun des deux sites concernés et qui est connu à la fois du récepteur, de l’émetteur et de l’utilisateur.
- Un exemple de protocole de transfert de fichiers est donné dans [Neigus 73]. Dans d’autres cas le protocole n’est pas réalisé avec l’interface de transport, mais avec des primitives d’un niveau inférieur. Sa structure et ses fonctions sont alors analogues à celles d’un protocole de transport. C’est par exemple le cas du protocole décrit dans [Shoch 76] (voir aussi l’exemple de 2.221).
- 5.53 PROTOCOLES DE SOUMISSION DE TRAVAUX A DISTANCE
- Lorsqu’un réseau est doté d’un protocole de transfert de fichiers, il est possible de transférer des fichiers de différents types, et en particulier des fichiers représentant des programmes à exécuter. En fait la soumission d’un travail à distance (« Remote Job Entry ») met en jeu plusieurs fichiers (pour le code, les données et les résultats) qui peuvent être distribués sur plusieurs sites. Un protocole de soumission de travail à distance permet au site qui demande le travail de communiquer avec celui qui l’exécute. Ce protocole a pour fonction de suivre l’évolution du travail en cours, d’informer l’utilisateur de son état d’avancement, et de relancer un transfert de fichier en cas de panne sur un des sites concernés.
- p.141 - vue 159/387
-
-
-
- 142 Systèmes informatiques répartis
- EXERCICES
- Exercice 1 : interblocage lors de l’ouverture et de la fermeture d’une communication
- Cet exercice se rapporte au protocole d’ouverture par entente après négociation (voir 5.332, fig. 4) et au protocole de fermeture négociée (voir 5.333, fïg. 5) d’une communication point à point de longue durée, en mode bidirectionnel simultané.
- 1) Exhiber un cas d’interblocage dans le protocole d’ouverture.
- 2) Exhiber un cas d’interblocage dans le protocole de fermeture.
- 3) Imaginer des méthodes permettant de diminuer la probabilité d’interblocage dans le protocole de fermeture.
- Indications de solution
- 1) Considérons le protocole au moment où les correspondants sont dans l’état < A, Al ). Pour ouvrir la communication, il suffit que le premier correspondant envoie la commande AC ; en effet à la réception de cette commande, la situation devient < CE, CE ). Supposons maintenant que cette commande AC soit envoyée, mais qu’elle n’arrive pas (soit elle est perdue soit elle est détériorée par la voie). Analyser la situation après écoulement du délai de garde du second correspondant.
- 2) Considérons le protocole au moment où la situation est < A, CE ). Après le transfert de la commande F(n-), la voie est fermée car la situation devient < N, N ). Analyser la situation en cas de perte de la commande F (nj).
- 3) En introduisant un délai de garde au bout duquel le correspondant passe automatiquement de l’état A à l’état N, on évite cet interblocage, mais on risque alors, si la commande F(n;) se perd, de tomber dans une nouvelle situation < N, CE ) où il y a aussi interblocage.
- On peut aussi imaginer qu’un correspondant ne passe à l’état N qu’après l’envoi de plusieurs commandes F(n-), pour augmenter la probabilité que l’une d’entre elles parvienne à l’autre correspondant.
- Exercice 2 : communication point à point d’un message isolé
- La communication point à point d’un message isolé est utilisée pour transmettre des informations brèves (requêtes transactionnelles, demandes d’exécution à distance d’un programme, destruction d’un fichier, etc.) ou urgentes (alarme, dépassement de seuil, etc.) d’un site à un autre. La taille du message émis dans ce mode de communication est inférieure ou égale à la taille d’un message acceptable par la voie sur laquelle est réalisé ce service. On met à profit l’unicité du message pour simplifier le protocole de transport lorsqu’un taux de perte plus élevé qu’en communication de longue durée est acceptable ; les communications sont établies pour chaque message émis et détruites à la fin du transfert du message. Il n’y a pas de numérotation.
- p.142 - vue 160/387
-
-
-
- Gestion de la communication 143
- Le thème de cet exercice est la formalisation de deux protocoles de transport d’un message isolé : le protocole d’accord mutuel et le protocole de rendez-vous [Walden 12}.
- 1) Dans le protocole d’accord mutuel, il n’y a pas de primitive d’ouverture explicite. L’envoi d’un message d’un émetteur A à un récepteur B, par la primitive émettre, se traduit par un dialogue dont la première phase (ouverture) est une phase de reconnaissance où A s’assure de la présence et de la disponibilité de B.
- A précise au moyen de la commande SYN (nom de porte émettrice, nom de porte réceptrice, longueur) qu’il cherche à délivrer à' B un message de longueur donnée.
- Lorsque B reçoit la commande SYN il peut répondre :
- — soit son intention d’accepter le message annoncé, par l’envoi d’un accusé de réception AC, ce qui n’implique nullement que le message sera toujours reçu ni qu’un processus du site B a émis une primitive recevoir (nom de porte réceptrice) pour prélever le message transféré,
- — soit son refus de recevoir le message, par l’envoi d’un accusé de réception négatif N AC (à cause par exemple de l’absence de place).
- Cette première phase se termine par la réception par A de la commande AC. La perte de SYN ou de AC provoque le retour à l’état neutre après le délai de garde et donc l’échec de la reconnaissance. Une fois qu’il a reçu AC, A envoie le message ME vers B et remet à zéro son horloge de garde. Lorsque B reçoit le message et l’accepte, il le signale par une commande ACME. Le transfert est considéré comme terminé par A lorsqu’il reçoit cette commande ACME. Si A ne la reçoit pas avant la fin du délai de garde, il réémet le message et réarme son horloge de garde. A effectue X essais successifs avant de considérer que la voie est hors service ou que B ne peut accepter son message. Plusieurs messages peuvent donc être en circulation sur la voie : c’est le cas si la commande ACME est émise par B après le délai de garde de A et croise le message réémis par A ; B ignore alors ce second message.
- Décrire ce protocole à l’aide de réseaux d’évaluation.
- 2) On appelle site de rendez-vous un site auquel doivent être adressées les demandes d’émission et de réception pour qu’une communication ait lieu.
- A partir de ce principe, imaginez un protocole de communication d’un message isolé et décrivez-le à l’aide de réseaux d’évaluation.
- Exercice 3 : ouverture d’une communication unidirectionnelle de longue durée
- Dans une communication unidirectionnelle, le sens du transfert des messages est fixé et l’ouverture de la communication relève de l’initiative de l’émetteur. Il envoie au récepteur une commande contenant les paramètres d’ouverture et en particulier l’origine n0 de la numérotation des messages.
- Dans le protocole d’ouverture par entente après négociation, le récepteur n’accepte la commande initiale qu’après en avoir obtenu confirmation par
- p.143 - vue 161/387
-
-
-
- 144 Systèmes informatiques répartis
- l’émetteur. En particulier, la demande de confirmation contient la valeur n0 que le récepteur a reçue dans la commande initiale. A la réception d’une demande de confirmation, l’émetteur peut :
- — soit confirmer la validité du paramètre n0 par une commande ACCORD qui permettra au récepteur de déclarer la communication ouverte,
- — soit indiquer son désaccord, ce qui permettra au récepteur de revenir dans l’état neutre.
- Décrire ce protocole à l’aide de réseaux d’évaluation.
- Exercice 4 : mécanisme de la fenêtre
- Montrer que le mécanisme de la fenêtre (voir 5.342) permet de détecter les doubles quand on choisit un crédit inférieur à N/2, où [0, N — 1] est le cycle de numérotation des messages, à condition que le délai de transmission des messages soit inférieur au délai d’allocation de deux numéros distants de N — (w — 1), où w est le crédit maximum.
- Indications de solution
- La fenêtre de l’émetteur repère les numéros des messages qu’il est autorisé à émettre tandis que la fenêtre du récepteur repère les numéros des messages que ce dernier doit accepter. Ces deux fenêtres évoluent de telle sorte qu’elles ont des numéros communs ou qu’elles sont adjacentes. Les numéros de messages qui sont dans l’une des fenêtres appartiennent à un intervalle de largeur 2 w, si w est la valeur maximum du crédit. Pour éviter toute ambiguïté, il faut que l’intervalle de numérotation [0, N — 1] soit supérieur à 2 w donc que w soit inférieur à N/2. Les messages dont le numéro figure dans la fenêtre du récepteur sont acceptés. Si 2 w < N, les messages qui portaient précédemment un numéro x qui se trouve à nouveau appartenir à la fenêtre du récepteur ont tous été acquittés correctement et leur acquittement a été reçu par l’émetteur ; leurs doubles, s’il en existe, ont été émis au plus tard avant le message de numéro x + w. Ces doubles ne seront plus en transit, si le délai de transmission d’un message est inférieur à l’intervalle de temps qui sépare l’allocation de deux numéros distants de N — (w — 1).
- Exercice 5 : régulation de flux par transmission alternée
- Décrire à l’aide de réseaux d’évaluation le comportement en régime permanent, d’un émetteur et d’un récepteur utilisant la régulation de flux par transmission alternée (voir 5.343).
- Exercice 6 : régulation de flux par transmission anticipée
- On se place dans le cadre d’une méthode de régulation de flux qui met en jeu un accusé de réception global valable pour plusieurs messages (comme dans le réseau Cyclades, voir 5.344) et qui utilise un crédit constant.
- Décrire le protocole régissant le fonctionnement de l’émetteur et du récepteur en régime permanent.
- Comparer ce protocole avec le protocole PAR décrit en 5.321.
- p.144 - vue 162/387
-
-
-
- Gestion de la communication 145
- Exercice 7 : extension d’un colloque à p sur une voie fiable
- Considérons le protocole d’extension d’un colloque par accord confirmé décrit en 5.422. Soit w • le nom du processus qui souhaite rejoindre le colloque et Ui celui d’un des correspondants présents. Les états de chaque correspondant sont donnés par les deux diagrammes suivants.
- O diffuser (D(uj), à tous
- NACffi)
- moins de 1 réponses
- réponses
- réponses
- reçues
- -t> diffuser (<CONF{uy)
- Hp))
- N AC ou REP]
- moins de p réponses
- réponses
- reçues
- Légende
- Etats
- N : neutre
- A : attente d’entrée en colloque F : attente de p réponses Cp : colloque à p O : attente de confirmation
- Commandes et messages
- (E) : envie d’émettre
- Me : message
- D(uj) : demande d’entrée en collo-
- que de la part de iq
- AB(uj) : abandon de Uj pour rejoindre
- le colloque
- REP(Ui) : accusé de réception de «, avec liste de diffusion L(p) CONF(uj) : confirmation de u-NACffi) : refus de la part de «,•
- Etats du processus de nom Uj.
- CORNAFION. — Systèmes informatiques répartis
- 6
- p.145 - vue 163/387
-
-
-
- 146 Systèmes informatiques répartis
- t> diffuser
- traitement
- diffuser
- ement
- CONF(Uj)
- L(p) = L(p) u { uj}
- Etat du correspondant de nom ut.
- — Discuter ce protocole.
- — Décrire un protocole d’extension d’un colloque, qui évite la privation et l’interblocage, en l’absence de panne. On suggère pour cela d’associer à chaque application A un site privilégié qui accorde le droit de rejoindre le colloque.
- Indications de solution
- Ce protocole suppose que le premier message (REP ou N AC) reçu par Uj contient la liste L(p) courante.
- Dans le protocole présenté, des incohérences peuvent apparaître si deux correspondants tq et uk décident simultanément de rejoindre le colloque : il suffît pour cela que les commandes d’ouverture D(uj) et D(uk) parviennent à deux participants du colloque courant dans des ordres différents. La solution adoptée ici, qui consiste pour chaque participant à refuser toute nouvelle demande alors qu’il se trouve en phase d’ouverture en attente d’une confirmation, peut entraîner des situations de privation.
- L’extension d’un colloque suppose qu’il existe au moins, dès le départ, deux correspondants en communication. Si ce n’est pas le cas, le processus qui désire rejoindre un colloque diffuse sa commande d’ouverture ; si aucune réponse ne lui parvient, il doit attendre qu’une autre demande d’ouverture soit faite pour y répondre. Sa réponse à une telle demande consiste alors à
- p.146 - vue 164/387
-
-
-
- Gestion de la communication 147
- envoyer une liste de diffusion ne comportant que son nom. A la réception de la confirmation, il met à jour sa liste de diffusion. Dès lors, le colloque existe.
- Exercice 8 : transport par diffusion (méthode du test du chemin parcouru)
- Dans la méthode du test du chemin parcouru (voir 5.434), montrer que si la table de routage d’un noeud évolue entre l’arrivée de deux copies provenant de deux noeuds voisins différents, cette évolution peut aussi bien avoir comme conséquence de refuser les deux copies que de les accepter toutes deux.
- Indications de solution
- Appliquons la méthode du test du chemin parcouru à un message de diffusion issu du site 51 sur le résgau R^ et notons Mijk un message qui est issu du noeud i, qui est passé par j et qui arrive au noeud k. Si le message M124 arrive au noeud 4 alors que la table de routage indique la voie du noeud 3 pour aller au noeud 1, il est rejeté. Si cette table de routage est modifiée avant l’arrivée du message M134, second message émis par le noeud 1, ce message est aussi rejeté et le site 54 ne reçoit aucun message. Si maintenant on a l’ordre des événements : arrivée de M134, changement de routage, arrivée de M124, les deux messages sont acceptés.
- Avant Après
- 1 3 2
- 2 2 2
- 3 3 3
- 4 - -
- Réseau R
- Evolution des tables de routage au nœud 4
- RENVOIS
- Références citées dans le chapitre 5
- Altaber 78, Bartlett 69, BBN 76, Cerf 74, Chambon 73, Çornafion 77a, Cornafion 79, Dalal 78, Davies 79, Heart 73, Le Lann 77, Le Lann 78a, McQuil-lan 72, Naffah 78b, Neigus 73, Schicker 78, Shoch 76, Sunshine 75, Swan 77, Télémécanique 76, Tomlinson 75, Walden 72, Zimmermann 75.
- Illustrations concernant le chapitre 5
- 12, 13, 15, 16.
- Principaux termes définis dans le chapitre 5
- Régulation de flux, crédit, fenêtre.
- p.147 - vue 165/387
-
-
-
- p.148 - vue 166/387
-
-
-
- SECONDE PARTIE
- LES PROBLÈMES DE LA RÉPARTITION
- Chapitre 6. Introduction aux problèmes des systèmes informatiques répartis. Chapitre 7. Programmation et exécution d’applications réparties.
- Chapitre 8. Ordonnancement et synchronisation des processus.
- Chapitre 9. Allocation de ressources.
- Chapitre 10. Accès à l’information répartie.
- p.149 - vue 167/387
-
-
-
- p.150 - vue 168/387
-
-
-
- CHAPITRE 6
- INTRODUCTION AUX PROBLÈMES DES SYSTÈMES INFORMATIQUES RÉPARTIS
- Nous introduisons dans ce chapitre les principaux problèmes de conception des systèmes informatiques répartis. Il a été indiqué, en introduction, que des critères stricts de répartition sont difficiles à dégager et qu’il existe en fait un continuum de systèmes dont le caractère réparti se manifeste de manières diverses. Nous serons donc amenés à examiner des problèmes déjà classiques.
- L’exemple d’une application concrète, introduit en 6.1, nous aide tout d’abord à dégager quelques problèmes de conception et nous proposons en 6.2 un plan pour leur étude.
- 6.1 EXEMPLE INTRODUCTIF : UN RÉSEAU D’AGENCES DE VOYAGE
- L’application présentée concerne la gestion d’un réseau d’agences de voyage situées dans des villes différentes (une agence par ville). Chaque agence possède un système local, comportant des moyens de traitement et une base de données, qui contient à tout instant la liste, pour une période déterminée :
- — des chambres d’hôtel disponibles ou réservées dans la ville où elle se trouve,
- — des moyens de transport (train, avion) au départ de cette ville et des places disponibles ou réservées correspondantes.
- Ce système réalise les fonctions locales suivantes :
- — mise à jour des renseignements figurant dans la base de données (par exemple indication des trains supplémentaires, des fermetures d’hôtels),
- — réponse à toute demande de renseignements concernant les moyens de transport et les hôtels (horaires de trains, tarifs d’hôtels, nombre de chambres ou places disponibles),
- p.151 - vue 169/387
-
-
-
- 152 Systèmes informatiques répartis
- — réservation d’une chambre dans la ville où se trouve le système, ou d’une place dans un moyen de transport pour en partir.
- Ces systèmes locaux sont connectés entre eux par un système de communication sur lequel nous ferons les hypothèses suivantes :
- 1) chaque système local peut communiquer avec tous les autres,
- 2) chaque système local est désigné par un nom unique connu du système de communication.
- Les concepts et techniques relatifs à de tels systèmes de communication ont été présentés dans la première partie de cet ouvrage.
- Ville A
- Système
- Ville B
- communication
- Base de données
- — chambres >
- — places S
- locales à A
- Base de données
- — chambres )
- — places ' l°cales a B
- Figure 1. Première architecture : données partitionnées.
- Chaque système local peut répondre à des requêtes, ou, plus généralement, exécuter des travaux demandés par d’autres systèmes locaux.
- Pour apprécier l’intérêt d’une telle organisation, on peut la comparer à deux autres schémas possibles représentant des cas extrêmes.
- 1) Organisation centralisée : une agence particulière gère l’ensemble des informations; les autres agences ne disposent que de terminaux d’accès. Toute mise à jour d’information ou toute demande de renseignements nécessite un transfert d’information entre agences. Une défaillance de l’agence centrale paralyse toute l’activité.
- 2) Organisation cloisonnée : les divers systèmes'locaux ne sont pas reliés entre eux. Il est maintenant impossible de confier au système un travail mettant en jeu des informations résidant sur plusieurs sites : il faut faire intervenir des opérateurs qui correspondent par un moyen de communication séparé (courrier, téléphone).
- Suivant le débit des communications échangées entre agences ou suivant d’autres critères, telle ou telle organisation intermédiaire pourra être choisie.
- p.152 - vue 170/387
-
-
-
- Introduction aux problèmes des systèmes informatiques répartis 153
- Pour prendre un exemple réel, le système international de réservation des compagnies aériennes comprend actuellement une agence centrale par pays et un réseau de communication interconnectant ces agences centrales. Un schéma centralisé est utilisé à l’intérieur de chaque pays.
- 6.11 DEMANDE DE RENSEIGNEMENTS A DISTANCE
- Le premier exemple est très simple : la seule fonction exécutable à distance est la fonction « demande de renseignements ». sans préjuger de la façon dont la réservation elle-même pourra intervenir. Elle ne peut de toute façon être réalisée que par le système local (sur demande écrite ou téléphonique, par exemple).
- Imaginons donc un client d’une ville A qui demande, dans une agence de cette ville, des informations sur les chambres d’hôtel disponibles dans la ville B. Pour répondre à cette demande, le système doit pouvoir réaliser un certain nombre d’actions élémentaires.
- Tout d’abord, il faut localiser l’information nécessaire à la réponse. Il s’agit d’un problème de désignation : comment passer du nom de la ville B au nom du système local gérant cette ville, nom connu du système de communication ? Avec nos hypothèses actuelles, le système local qui gère B est bien connu de tous les autres et ne change jamais. Une solution simple consiste alors à confondre nom de ville et nom de système, ce qui implique que chaque ville soit désignée par le même nom sur tous les sites. Ce n’est pas nécessairement le cas, sauf convention, dans un système international. Par exemple le système de Milano doit pouvoir trouver le système désigné par Florence aussi bien que par Firenze. On doit alors implanter sur chaque site une table de correspondance entre les noms locaux associés à un même nom global.
- De même s’il existe plusieurs agences par ville et si la responsabilité de gestion des données locales à cette ville peut passer d’une agence à l’autre, il faut utiliser un catalogue, table de correspondance entre le nom local d’une ville et le nom unique du système qui la gère. On peut alors se poser le problème de la localisation du catalogue, de son unicité, de sa mise à jour en cas de changement. Les solutions à ces problèmes sont examinées au chapitre 7 (« Programmation et exécution d’applications réparties »).
- Supposons déterminé le nom du système local capable de fournir l’information demandée. Ce système doit réaliser les actions suivantes :
- — recevoir et enregistrer la demande de renseignements,
- — interpréter cette demande pour obtenir l’information recherchée ce qui peut nécessiter, outre la recherche proprement dite dans la base locale, une part d’intendance (vérification des droits d’accès à l’information, facturation du service),
- — renvoyer le résultat au système qui a émis la demande.
- Dans ce mode de coopération, le système (ou le site) qui a émis la demande est appelé client et le système (ou le site) qui fournit l’information est appelé serveur. L’opération de demande de renseignements est appelée transaction.
- p.153 - vue 171/387
-
-
-
- 154
- Systèmes informatiques répartis
- On peut, par exemple, implanter sur A et B les programmes suivants : Système client A Système serveur B
- cycle
- recevoir demande de chambres du système(S) ; si demande valide alors consultation ; facturation ; envoyer à S liste(l) sinon
- envoyer à S message d'erreur
- fsi f cycle
- Considérons maintenant une situation plus complexe où un voyageur de la ville A demande un ensemble de renseignements qui nécessite plusieurs consultations de la base de données de l’agence B, une consultation pouvant être influencée par le résultat des consultations précédentes. La transaction doit alors être réalisée par un programme d’interrogation, enchaînement de consultations élémentaires. Ce programme peut être implanté sur le site client ou le site serveur : les deux solutions diffèrent par la nature et le volume des informations échangées entre les sites. La réalisation de ces solutions sera étudiée au chapitre 7.
- Quel degré de confiance peut-on avoir dans l’information obtenue par une telle méthode ? Une information élémentaire est vraie à la date à laquelle le système serveur la lit mais elle peut être périmée lorsque le demandeur la reçoit. Encore cela suppose-t-il que le serveur ait pris de son côté toutes les précautions pour éviter qu’une mise à jour ne soit en cours au moment où l’information est lue : il s’agit d’un problème classique des bases de données à accès simultanés. Dans le cas où un client en A demande une information située en B et C (par exemple les places disponibles pour les voyages B-C et les chambres disponibles en C), il peut obtenir une réponse correspondant à un état global (chambres-places) qui n’a jamais existé, en raison des réservations ayant pu survenir entre le traitement des deux demandes ou pendant les délais de transmission. Dans le cas présent, cette possibilité d’incohérence n’a pas de conséquence grave, mais elle doit être évitée dans un système réel. Le chapitre 10 (« Accès à l’information répartie ») traite de ce problème.
- L’information une fois obtenue, le client peut effectuer comme indiqué plus haut les réservations de son choix. Mais il risque de se heurter à un refus, d’autres réservations ayant pu être faites depuis l’obtention de ces informations. On cherche donc à regrouper autant que possible les demandes de renseignements et les réservations.
- demander à B la liste des chambres libres ; recevoir listeij) ;
- p.154 - vue 172/387
-
-
-
- Introduction aux problèmes des systèmes informatiques répartis 155
- 6.12 RÉSERVATION A DISTANCE
- Un voyageur de la ville A souhaite réserver simultanément un voyage de A en B et une chambre en B, le plus tôt possible^ l’intérieur d’une période donnée.
- Figure 2. Réservation à distance.
- Quelles sont les difficultés soulevées par la conception d’un système réparti capable de remplir cette fonction ?
- Il faut d’abord, comme dans l’application précédente, savoir trouver le nom interne du gestionnaire de la base B et pouvoir lui demander d’effectuer un travail particulier (ici, la réservation de chambre).
- Il faut aussi garantir que l’on obtient une solution cohérente (voyage et chambre réservés le même jour), même si d’autres réservations interfèrent. On peut par exemple implanter en A le programme suivant :
- j — premier jour; ok = faux ;
- tant que j < — dernier jour et non ok faire
- réserver voyage{A-B, j) ; { pré-réservation } si succès alors
- réserver chambre(B, j) ;{ demande d’exécution à distance sur B }
- si succès alors ok i=vrai
- sinon
- annuler voyage (A-B, j) ; j suivant{j)
- fsi
- sinon
- j-— suivant(j);
- fsi
- ftantque
- p.155 - vue 173/387
-
-
-
- 156 Systèmes informatiques répartis
- Sur cet exemple, un programme qui s’exécute en A lance un programme qui Va s’exécuter en B. Les méthodes de contrôle de l’exécution de programmes à distance sont décrites au chapitre 7.
- Cette façon de procéder permet de ne réserver qu’à bon escient l’ensemble < voyage, chambre ). Toutefois, en cas d’exécutions parallèles de plusieurs programmes de réservation pour des personnes différentes, on risque un échec alors que des couples < voyage, chambre ) sont libres en raison de « préréservations » annulées.
- Pour éviter cela, on peut écrire sous une autre forme le programme exécuté end :
- demander à B la liste des jours où il existe des chambres libres dans la période considérée ; recevoir liste{ l ) ; j — premier(l) ;ok -—faux ; tant que j< =dernier(l) et non ok faire réserver voyage{A-Bj ) ; si succès alors
- réserver chambre(B,j ) ; { demande d’exécution à distance sur B } ok — vrai
- sinon
- j~ suivant(j )
- fsi
- ftantque
- Une telle solution réduit le nombre d’essais et de messages échangés ; mais elle ne peut être correcte que si aucune réservation ne se produit entre l’envoi de la liste et la réservation de la chambre. On est donc amené à encadrer le programme ci-dessus, exécuté en A, par un prologue :
- et un épilogue
- verrouiller(B) déverrouiller(B)
- qui lui assurent l’exclusivité d’accès aux données de B. Tout accès aux données d’un site S doit maintenant être encadré par verrouiller(S) et déverrouiller(S). Par conséquent, l’appel de procédure réserver voyage(A-B,j) qui met en jeu les données locales de A, doit être encadré par verrouiller(A) et déverrouiller(A).
- Examinons les conséquences de cette organisation.
- 1) Des demandes « simultanées » de réservation voyage-chambre dans les sens A-B et B-A peuvent conduire à une situation d’interblocage. En effet, les séquences verrouiller{B) ; verrouiller(A) et verrouiller{A) ; verrouiller(B) sont exécutées respectivement en A et B.
- 2) La situation peut être améliorée en remarquant que l’exclusion globale d’accès aux données d’un site n’est pas nécessaire. Il suffit de pouvoir verrouiller et déverrouiller sélectivement les données concernant les chambres ou les voyages. Introduisons donc un nouveau paramètre dans les primitives
- p.156 - vue 174/387
-
-
-
- Introduction aux problèmes des systèmes informatiques répartis 157
- verrouiller et déverrouiller pour spécifier à quelle classe de données s’applique la restriction d’accès. La solution ci-dessus est ainsi modifiée :
- — le programme de réservation en A est encadré par
- verrouiller (chambres,B) et déverrouiller (chambres,B),
- — la procédure réserver voyage(A-B,j) est encadrée par
- verrouiller (voyage,A) et déverrouiller (voyage,A).
- L’exclusion mutuelle s’applique maintenant à des données disjointes; il n’y a plus de risques d’interblocage pour cet exemple.
- 3) Supposons maintenant qu’un programme de voyage comporte la réservation de chambres dans la ville de départ et dans la ville d’arrivée. On retrouve le risque d’interblocage sur les données concernant les chambres. Une manière d’éviter ce risque est d’exécuter tout programme de réservation comme une section critique, l’exclusion mutuelle s’étendant à l’ensemble des sites. Cette solution est coûteuse à réaliser et peu efficace. D’autres solutions existent, autorisant le parallélisme d’exécution des programmes de réservation. Elles reposent sur la détection des conflits, la possibilité d’annulation et de reprise de l’exécution d’un des programmes en cas de conflit, et elles évitent les attentes infinies. Ces solutions sont étudiées aux chapitre 9 (« Allocation de ressources ») et 10 (« Accès à l’information répartie »).
- 6.13 CONSTRUCTION D’UN VOYAGE
- Le système doit maintenant réaliser les réservations (voyage et chambres) pour un circuit complet de A en A, en passant par les villes B, C, D, le plus tôt possible à l’intérieur d’une période donnée.
- Une première solution consiste, depuis le site où est présentée la demande :
- — à effectuer de la même façon que précédemment la réservation en A et les demandes de réservation (chambres et voyages) en B, C, et D,
- — à traiter les échecs, soit par des tentatives successives, soit en demandant à chaque système local, à l’intérieur d’une section critique, la liste de ses disponibilités.
- On peut concevoir une autre façon de procéder, qui n’est plus organisée sous le contrôle d’un programme localisé en A, mais qui utilise une structure d’exécution différente.
- 1) A constitue une liste de toutes les étapes du voyage, avec les réservations à effectuer à chaque étape. Cette liste circule entre les systèmes locaux correspondant à ces étapes.
- 2) Chaque système procède aux réservations qui mettent en jeu sa base locale et les inscrit dans la liste, efface son nom de la liste et transmet la liste au suivant.
- p.157 - vue 175/387
-
-
-
- 158 Systèmes informatiques répartis
- On réalise ainsi une structure d’exécution originale : un ensemble d’informations circule de système local en système local, simulant le voyage projeté et provoquant sur chacun des systèmes locaux l’exécution d’une suite d’opérations. A chaque instant, le contexte d’exécution de cet algorithme réparti est constitué de la liste circulante, qui contient également le résultat des réservations déjà effectuées et de la base de données locale du système où se trouve la liste. Le traitement des échecs lors des réservations peut là encore se faire par des procédés de reprise que nous laissons au lecteur le soin de préciser.
- On peut aussi noter que dans cette solution les problèmes de désignation peuvent être traités de plusieurs façons : la conversion de nom de ville en nom de système local peut être réalisée soit en A pour tous les éléments de la liste, soit pas à pas, chaque système local faisant la conversion pour l’élément suivant de la liste.
- 6.14 INFORMATIONS EN EXEMPLAIRES MULTIPLES
- On peut imaginer une organisation différente du système de réservation. Dans cette organisation, chaque système local contient une copie de toutes les informations concernant l’ensemble des villes.
- Système de communication
- pour l’ensemble des villes.
- places
- chambres
- pour l’ensemble des villes
- — places
- — chambres
- Figure 3. Deuxième architecture : données en exemplaires multiples.
- Une telle organisation facilite évidemment les demandes de renseignements, qui peuvent être traitées localement, et permet donc de rechercher rapidement un voyage possible.
- Toutefois ce type de consultation « au vol » ne donne qu’une approximation de l’état des réservations dans le système, l’existence de copies multiples d’une même information entraînant deux types de conséquences.
- 1) Toute modification des données résultant d’une réservation ou d’une mise à jour locale doit être retranscrite dans chaque système local. Pendant
- p.158 - vue 176/387
-
-
-
- Introduction aux problèmes des systèmes informatiques répartis 159
- la durée de cette retranscription, il faut garantir que la consultation d’une donnée modifiée donne un résultat à jour, ou encore suspendre la consultation des données modifiées.
- 2) Il faut éviter que des actions exécutées concurremment sur deux copies différentes de la même information ne conduisent à une situation incohérente. Par exemple, une même chambre d’hôtel ne doit pas pouvoir être attribuée le même jour à deux clients.
- Ces deux conditions définissent les contraintes de cohérence des copies. Pour assurer cette cohérence, une condition suffisante est d’intégrer dans le même ordre sur chaque copie toutes les modifications apportées à l’information.
- Une première solution consiste à réaliser une exclusion mutuelle globale sur l’ensemble des copies lors de toute réservation, et à reporter les modifications sur l’ensemble des copies avant de relâcher l’exclusion mutuelle. Outre sa difficulté de réalisation, cette solution présente l’inconvénient d’interdire les exécutions parallèles des programmes de réservation, toutes les copies étant bloquées pendant la durée d’une réservation.
- Une autre solution consiste à diffuser les documents de réservation vers toutes les copies et à prendre en compte ces demandes dans le même ordre sur chaque système local. La difficulté de réaliser cet ordre total est comparable à celle de la première solution, mais les programmes de réservation des différents systèmes peuvent s’exécuter en parallèle et les consultations «au vol » mentionnées au début du paragraphe sont possibles.
- Ces questions d’ordonnancement et de cohérence d’information entre exemplaires multiples sont étudiées aux chapitres 8 (« Ordonnancement et synchronisation de processus») et 10 («Accès à l’information répartie»).
- 6.2 LES PROBLÈMES DE LA RÉPARTITION
- L’exemple qui précède a permis de présenter informellement quelques aspects de la conception d’un système informatique réparti et de mettre en évidence plusieurs classes de problèmes.
- L’objet de la seconde partie de cet ouvrage est de traiter de façon plus détaillée ces problèmes. Nous ne tentons pas, dans un domaine qui évolue rapidement, d’en donner une étude exhaustive, mais nous essayons de dégager quelques concepts de base. Des exemples pris dans divers domaines d’application illustrent cette étude, dont nous allons maintenant esquisser le plan.
- Le chapitre 7 (« Programmation et exécution d’applications réparties ») décrit les méthodes de contrôle de l’exécution de programmes répartis sur plusieurs machines : lancement à distance de l’exécution d’un programme, synchronisation et communication entre programmes répartis. Dans ce même chapitre est traité également le problème de la désignation et plus particulièrement la question de la constitution d’un référentiel global dans un système
- p.159 - vue 177/387
-
-
-
- 160 Systèmes informatiques répartis
- réparti. Enfin quelques exemples de langages de haut niveau adaptés au parallélisme et à la répartition sont présentés.
- Le chapitre 8 (« Ordonnancement et synchronisation de processus ») montre que les problèmes de synchronisation dans un système réparti peuvent se ramener à la construction d’un ordonnancement global des événements qui se produisent dans le système. Du fait de la communication par messages avec des délais de transmission variables, les informations temporelles échangées n’ont pas de valeur absolue et cet ordonnancement global doit être réalisé au moyen d’algorithmes qui mettent en jeu tous les processus concernés.
- Le chapitre 9 (« Allocation de ressources ») montre que la répartition introduit une difficulté supplémentaire dans les problèmes de l’allocation de ressources. En effet, en univers réparti, on ne dispose pas de façon immédiate de la représentation d’un état global d’allocation des ressources du système, et l’interblocage est plus difficile à éviter. Plusieurs solutions sont exposées, qui reposent soit sur la reconstitution d’un état global, soit sur des algorithmes plus répartis. La deuxième partie du chapitre traite de la régulation et de la répartition de charge dans le cas de ressources banalisées.
- Le chapitre 10 (« Accès à l’information répartie ») introduit la notion de cohérence d’un ensemble d’informations, et en particulier d’un ensemble d’informations réparties. On y montre les méthodes employées pour respecter cette cohérence lors des accès parallèles à l’information. La répartition cause des difficultés de plusieurs ordres : difficulté d’ordonnancement global (comme aux chapitres 8 et 9), difficulté pour traiter les interblocages (comme au chapitre 9), pannes possibles d’une partie du système. La première partie du chapitre traite le cas d’informations partitionnées, la deuxième partie le cas d’informations dont il existe des copies multiples.
- Notons enfin deux caractéristiques communes à tous les systèmes informatiques répartis.
- 1) En raison des caractéristiques des systèmes de communication décrits dans la première partie du livre, on doit tenir compte du fait que les délais de transmission peuvent varier, que des messages peuvent se perdre ou se doubler, qu’enfin le système de communication peut tomber en panne.
- 2) Un (ou plusieurs) des calculateurs constituant le système peut défaillir et il faut étudier l’impact de ces pannes et le fonctionnement dégradé du reste du système.
- Dans l’état actuel des connaissances, il ne nous a pas paru possible de présenter un traitement uniforme des problèmes de la fiabilité des systèmes répartis. C’est pourquoi nous n’avons pas consacré de chapitre spécial à cette étude. Des méthodes d’amélioration de la fiabilité (redondance, reconfiguration, détection des défaillances) sont donc illustrées par des exemples dans chacun des domaines étudiés : désignation, synchronisation, allocation de ressources, accès aux objets.
- p.160 - vue 178/387
-
-
-
- CHAPITRE 7
- PROGRAMMATION ET EXÉCUTION D’APPLICATIONS RÉPARTIES
- Le but de ce chapitre est d’étudier les concepts et les outils de base nécessaires à la programmation d’une application répartie. Les outils de base sont des langages de programmation qui peuvent ou non être complétés par un langage de commande. Les concepts s’appliquent à la désignation des objets manipulés par l’application et à l’expression du contrôle qui définit l’enchaînement temporel des diverses actions élémentaires.
- Les problèmes liés à la désignation et au contrôle se sont évidemment posés dans le cadre des applications centralisées. Pour la désignation, ils semblent résolus, d’une part par les diverses techniques de liaison («binding») entre un identificateur (chaîne de caractères représentant l’objet pour le programmeur) et les emplacements physiques de l’objet qu’il désigne et, d’autre part, par les méthodes qui permettent de définir des ensembles d’identificateurs (structure de bloc, catalogue hiérarchisé).
- Les structures de contrôle séquentielles (conditionnelles, itérations, procédures) semblent avoir acquis une certaine universalité, mais l’accord n’est pas encore fait pour le contrôle du parallélisme, riche de formes diverses (coroutines, collatérales, processus, rendez-vous, acteurs) qui pourraient être réductibles à une ou deux formes primitives. Ce foisonnement s’explique en grande partie par le fait que ces constructions n’ont, pour la plupart, pas été suffisamment expérimentées et que les quelques mises en œuvre existantes concernent surtout des monoprocesseurs pour lesquels le parallélisme présente un intérêt essentiellement méthodologique. On peut penser que les machines multiprocesseurs offriront l’indispensable sanction pratique.
- Il est peu vraisemblable que la nécessité de programmer des applications réparties fasse apparaître des concepts nouveaux en ce qui concerne la désignation et les structures de contrôle car la distance apporte des changements plus quantitatifs que qualitatifs. Les nouveautés résident probablement dans des mises en œuvre différentes des concepts existants, ou bien, en ce qui concerne les structures de contrôle, dans une nouvelle évaluation de l’efficacité des outils proposés.
- p.161 - vue 179/387
-
-
-
- 162 Systèmes informatiques répartis
- Avant de présenter les diverses propositions de langages (7.4), nous examinons séparément le contrôle (7.2) et la désignation (7.3). Pour guider cet examen, nous avons choisi un exemple simple (donc un peu artificiel) qui est présenté en 7.1.
- 7.1 PRÉSENTATION D’UNE APPLICATION
- L’application téléphone que nous présentons ici a pour but de fournir un support unique pour l’illustration des principales notions introduites dans le chapitre. L’objet de cette application est la consultation d’annuaires téléphoniques. Un annuaire est une collection de doublets {nom, numéro de téléphonej, où nom est un identificateur désignant une personne de manière unique. L’ensemble des noms caractérise une population donnée (entreprise, service, commune) ; chaque personne peut avoir plusieurs numéros de téléphone et peut donc être enregistrée dans plusieurs annuaires (par exemple dans l’annuaire des numéros personnels, dans l’annuaire des résidences secondaires, dans l’annuaire des bureaux).
- Le but de l’application téléphone est de permettre à ses utilisateurs d’obtenir, à partir d’une console, tous les numéros de téléphone d’une personne donnée.
- Pour implanter cette application, on dispose d’une architecture sans mémoire commune (fig. 1) formée d’un ensemble de sites reliés par un réseau de communication. Nous nous limitons souvent à trois sites, archive 1, archive2 et enquêteur 1, mais, en toute généralité l’architecture comporte N sites de type archive où résident les annuaires et P sites de type enquêteur d'où les utilisateurs consultent le système.
- annuaire 1
- archive 1
- Réseau
- console 1
- enquêteur 1
- annuaire 2
- archive2
- Figure 1. Architecture de l’application téléphone.
- p.162 - vue 180/387
-
-
-
- Programmation et exécution d’applications réparties 163
- Sur chaque site archive est implanté un fichier annuaire qui contient un des annuaires de l’application. A chaque site enquêteur est reliée une console console.
- Examinons la structuration de cette application. Trois aspects sont à considérer.
- 1) Décomposition de l'application
- Il paraît naturel de définir deux types de fonctions : dialogue et consultation.
- Consultation a pour but de rechercher si un nom de personne est présent dans un fichier annuaire et si oui de fournir le numéro de téléphone correspondant (nom et fichier sont des paramètres de cette fonction); dialogue acquiert un nom à partir d’une console, commande l’exécution des deux fonctions consultation (dans le cas de deux annuaires) et imprime la réponse sur la console.
- 2) Contrôle de l'exécution
- Pour programmer le contrôle d’exécution de cette application, on doit disposer de techniques qui permettent :
- a) de représenter à un instant donné les liens logiques entre les diverses fonctions de l’application (séquentialité, indépendance totale, parallélisme avec points de contrôle),
- b) d’exprimer sur quels sites les fonctions sont exécutées.
- Nous présentons en 7.22 plusieurs schémas possibles.
- 3) Désignation des objets
- Les différents objets de l’application (fonctions, fichiers, éventuellement sites) doivent être désignés par des identificateurs qui apparaissent dans le texte des fonctions dialogue et consultation. Deux aspects de la désignation seront examinés.
- a) Structuration des identificateurs. S’il existe un seul espace d’identificateurs pour le système, ceux-ci sont dits globaux. Si les identificateurs sont propres à chaque site, ils sont dits locaux ; on doit alors résoudre le problème de la désignation sur un site des objets non locaux.
- b) Mise en correspondance, ou liaison, des identificateurs avec les objets qu’ils désignent. La liaison peut être statique ou dynamique.
- Nous présentons en 7.33 deux schémas possibles de liaison et en 7.42 deux modes de programmation de certaines fonctions de l’application.
- 7.2 CONTRÔLE DE L’EXÉCUTION
- Le programmeur d’une application informatique produit un certain nombre de textes de programme. Le mode de production des programmes a sensiblement évolué ces dernières années ; les principales méthodes (analyse des-
- p.163 - vue 181/387
-
-
-
- 164 Systèmes informatiques répartis
- cendante, transformation de programmes) visent à décomposer l’application en unités fonctionnelles relativement indépendantes. Nous qualifions une telle décomposition de programmation modulaire ; un module regroupe en général une collection de fonctions qui partagent des données. Suivant les langages, ces fonctions sont appelées sous-programme, « subroutine », « function », procédure.
- Cette décomposition a l’avantage de permettre le travail simultané de plusieurs programmeurs ; elle permet en outre une mise au point systématique, car chaque module peut être testé séparément. Enfin, si la décomposition en modules est bien faite, l’entretien du produit est facilité. Si on souhaite que la production, la mise au point et l’entretien des différents modules se fassent indépendamment, en revanche la conception globale de l’application nécessite la définition des relations entre modules et la spécification du mode d’enchaînement des actions élémentaires. Cette description de l’exécution, appelée schéma global de contrôle, est exprimée à l’aide d’outils, les structures de contrôle, qui peuvent prendre des formes diverses. Comme nous l’avons remarqué dans l’introduction, nous ne sommes pas en mesure de présenter des structures de contrôle universellement admises ; aussi, après un exposé de la terminologie utilisée, nous étudions en 7.22 deux structures de contrôle séquentielles particulières. La première (procédure) a été choisie parce qu’elle est d’un usage répandu, tandis que la seconde (continuation) semble répondre à certains impératifs de programmation d’applications réparties. En 7.23 nous étudions des extensions à ces structures pour permettre le parallélisme et en 7.24 nous donnons un aperçu de leur mise en œuvre sur une architecture répartie.
- 7.21 TERMINOLOGIE
- Un programme manipule des objets qui sont désignés dans le texte source par des identificateurs. Ces identificateurs sont mis en correspondance avec les objets réels à divers stades (compilation, édition de liens, exécution) suivant des règles de liaison. A cause des règles de portée des identificateurs (par exemple la structure de bloc) et à cause du changement des règles de liaison (suivant l’endroit où il apparaît dans un programme, un même identificateur peut être lié à des objets différents), l’ensemble des objets accessibles, ou contexte, varie pendant l’exécution du programme. Ces variations interviennent lors de l’exécution de certaines instructions, comme l’appel de procédure ; l’exécution d’un programme peut donc être vue comme la composition d’exécutions plus élémentaires, les activités, qui, par définition, ont un contexte invariant. Les instructions qui permettent de changer de contexte, donc de démarrer une nouvelle activité, sont appelées instructions de passage de contrôle.
- Remarque. Il ne faut pas confondre la notion d’activité et celle de processus. Les activités sont des processus qui évoluent dans un seul contexte. Les processus, dans l’acception usuelle, sont des compositions séquentielles d’activités. On trouvera dans [Lampson 74] une discussion de la notion de contexte et des instructions de passage de contrôle.
- p.164 - vue 182/387
-
-
-
- Programmation et exécution d’applications réparties 165
- Les diverses activités d’un programme coopèrent pour mener à bien certains calculs. Pour poursuivre son exécution, une activité doit parfois attendre qu’une autre activité lui communique des résultats (des valeurs ou, au sens large, de simples signaux). Il convient alors d’enrichir notre modèle : une activité peut être en cours d’exécution ou suspendue dans l’attente d’informations produites par d’autres activités. On doit donc disposer d’instructions de reprise d’une activité suspendue.
- Les diverses activités d’un programme donné sont prises en charge par un ou plusieurs processeurs. Avant même que n’apparaissent de véritables multiprocesseurs, on a trouvé avantage à considérer que l’exécution d’une application peut comporter plusieurs activités logiquement exécutées en parallèle, et donc à définir des instructions de passage de contrôle qui permettent de gérer le parallélisme.
- Quand une activité A, à l’aide d’une instruction de passage de contrôle, lance une nouvelle activité B, il faut :
- 1) préciser la définition de l’activité B : celle-ci est composée du texte de programme qu’elle va exécuter et de son contexte, ou tout au moins de la partie du contexte qui ne lui est pas associée statiquement,
- 2) définir le devenir de l’activité A : celle-ci peut en effet être détruite, être suspendue ou continuer son exécution,
- 3) spécifier à quelle activité B doit communiquer les résultats de ses calculs. En effet ceux-ci sont destinés à être exploités par une activité que B ne connaît en général pas statiquement. Par exemple, une procédure délivre un résultat à la procédure appelante qu’elle ne connaît pas explicitement : on crée donc, lors de l’appel, un lien de contrôle qui est exploité par l’instruction de retour. Cette notion ne s’applique pas qu’à l’appel procédural (voir 7.222 et 7.23); aussi définissons-nous les liens de contrôle comme l’ensemble des informations qui permettent à une activité de communiquer ses résultats. Ces liens sont exploités au moyen d’instructions spéciales.
- Exemple. Dans l’application téléphone, c’est une activité qui acquiert un nom de personne sur le site enquêteur. Dans son contexte, cette activité dispose des moyens d’accès à la console et à la fonction consultation.
- Il n’est pas indispensable (mais ce n’est pas impossible) qu’elle puisse atteindre les objets annuaire. Si ce n’est pas le cas, elle doit créer une nouvelle activité pour effectuer la consultation. Lors de cette création, il faut préciser :
- — le texte de programme qui met en oeuvre la fonction de consultation,
- — le contexte, dont une partie peut avoir été associée statiquement (1 ’annuaire par exemple) et dont le reste est précisé à la création (au moins le nom de la personne recherchée),
- — l’activité qui doit être créée, ou reprise, lorsque la consultation sera terminée,
- — ce qu’il advient de l’activité appelante qui peut, soit être suspendue (dans l’attente du résultat), soit continuer pour lancer une seconde consultation, soit être détruite.
- Nous étudions maintenant l’établissement des liens de contrôle et les devenirs possibles d’une activité appelante.
- p.165 - vue 183/387
-
-
-
- 166 Systèmes informatiques répartis
- 7.22 LIENS DE CONTRÔLE 7.221 Procédure
- La forme la plus répandue de lancement d’activité est l’appel de procédure. Le contexte d’une procédure lui est associé statiquement (objets locaux, rémanents et globaux) et il est complété à l’appel par des objets communiqués par l’activité appelante (les paramètres effectifs).
- Lors de l’appel, l’activité appelante est suspendue ; un lien de contrôle est créé qui permettra à l’activité appelée de la reprendre ultérieurement. Notons, et c’est important, que le contexte de l’appelante est conservé durant la suspension.
- A l’aide de l’appel de procédure, on peut programmer l’activité téléphone de différentes manières. Nous en présentons deux qui diffèrent surtout par la définition des contextes. Certaines limitations de l’appel procédural seront mises en évidence en 7; 222 et nous conduiront à introduire une nouvelle forme du lien de contrôle.
- Pour la programmation des exemples, une procédure qui délivre un résultat est notée fonction.
- Exemple 1. L’activité dialogue 1 possède dans son contexte les deux annuaires annuaire1 et annuaire2. Elle lance successivement, en (1) et (2), deux activités qui sont deux appels de la même procédure consultation afin de déterminer tous les numéros de téléphone d’une personne donnée. Lors de l’appel, on complète dynamiquement le contexte de l’activité appelée en lui communiquant l’annuaire sur lequel elle doit travailler.
- procédure dialogue 1 ;
- déclarations console 1, consultation, annuairel, annuaire2, nom, tell, tell ;
- cycle
- nom ••= \ire(console\) ; tell — consultation(nom, annuairel) ; (1) tell — consultationinom, annuairel) ; (2) ècnxe{consolel, nom, tell, tell)
- fcycle
- fin dialogue 1 ;
- fonction consultation(nom, annuaire) ;
- consultation = < résultat d'un calcul portant sur nom et annuaire )
- fin consultation ;
- Exemple 2. Trois activités sont prédéfinies : dialoguel, consultationl et consultationl. Par rapport à l’exemple 1, les annuaires concernés sont implantés statiquement dans le contexte de l’activité qui effectue la consultation.
- p.166 - vue 184/387
-
-
-
- Programmation et exécution d’applications réparties 167
- procédure dialogue ;
- déclarations console 1,
- consultation1, consultation1, nom, /e/l, tell ; cycle
- «om =— lire(co/m>/el) ;
- /e/l =— consultationl(nom) ; tell consultationlinom) ; écrire(eo«w/el, nom, tel 1, tell)
- fcycle
- fin dialogue 1 ;
- fonction consultationinom) ; déclarations annuaire 1 ;
- consultation 1 < résultat d’un calcul portant sur nom et annuairel ) ;
- fin consultation1 ;
- fonction consultationlinom) ; déclarations annuairel ;
- consultation! <( résultat d’un calcul portant sur nom et annuairel ) ; fin consultation2 ;
- 7.222 Continuation
- Modifions les conditions du problème. Supposons qu’on ne recherche qu’un seul numéro de téléphone pour une personne. La seconde consultation est donc décidée en fonction des résultats de la première, si le nom ne se trouve pas dans annuaire 1.
- Exemple 3
- procédure dialogue1 ;
- déclarations console 1, consultationl, nom, tel ; cycle
- nom — \irz(console\) ; tel := consultationlinom) ; écrirefconso/el, nom, tel) ;
- fcycle
- fin dialogue 1 ;
- fonction consultationlinom)',
- déclarations annuairel, consultationl ;
- < rechercher nom dans annuairel ) ; si trouvé
- alors consultationl < résultat de la recherche ) sinon consultationl consultationlinom) fsi fin consultationl ;
- p.167 - vue 185/387
-
-
-
- 168 Systèmes informatiques répartis
- fonction consultation2(nom) ;
- déclarations annuaire2 ; (1)
- consultation2 = < résultat d'un calcul portant sur nom et annuaire2 ) ; fin consultation2 ;
- On remarque alors un des défauts de l’appel procédural : quand on est au point (1), le contexte de la procédure précédente est inutilement conservé sur le site archive 1 (perte de place) ; ce contexte n’est détruit qu’à la fin de consultation1, ce qui nécessite d’y revenir depuis consultation2.
- Cette critique montre que la notion de procédure est trop contraignante dans certains cas. Elle est en effet la composition de deux concepts :
- a) activité logique ou fonctionnelle, la procédure est une «boîte noire» dont on peut définir précisément les entrées, l’action et les sorties ; cet « encapsulage logique » (ou abstraction) est important et non réductible en tout cas à une suite d’instructions dont la première serait étiquetée ;
- b) le lien de contrôle est forcément du type « retour à l’activité appelante après exécution de la procédure ».
- Ainsi, sans vouloir revenir à la forme la plus archaïque de lien de contrôle (le goto), il est apparu intéressant d’associer le concept d’abstraction fonctionnelle avec celui d’un mode de passage de contrôle plus général dont la forme procédurale ne serait qu’un cas particulier.
- Nous définissons donc une primitive de passage de contrôle plus générale, le transfert avec continuation : les liens de contrôle, au lieu d’être implicites comme dans le cas de l’appel procédural (retour à l’activité appelante), sont construits explicitement par l’activité appelante. Pour l’activité appelée, ces liens sont donc des paramètres particuliers, de type activité, qu’elle peut exploiter au moyen d’une instruction de lancement.
- Activité appelante
- déclarations C : activité, P : ...
- Activité appelée
- activité ^(activité act,
- paramètres X ) ;
- lancer A (C, P) ;
- < calcul sur X )
- {Cest la continuation de A } lancer act{...)
- La notion d’acteur [Hewitt 77] est un modèle de structure de contrôle qui correspond aux continuations que nous venons de définir ; des langages utilisant les acteurs comme structure de contrôle ont été proposés. Dans le
- p.168 - vue 186/387
-
-
-
- Programmation et exécution d’applications réparties 169
- même ordre d’idées, on peut citer [André E. 78], où le langage PL/l a été étendu pour admettre des continuations.
- Nous donnons ci-dessous une programmation possible de l’application téléphone qui suit le schéma global de contrôle de l’exemple 3.
- Exemple 4. Dans cet exemple l’activité enregistrement est implicitement lancée par l’utilisateur quand il frappe un nom à sa console. A chaque activité peut être associé un paramètre de type activité utilisé pour la continuation.
- activité enregistrement(para.mètres nom) ;
- déclarations consultation1, réponse : activité ;
- lancer consultationl(réponse, nom) ; { réponse est une continuation pour
- consultation1 }
- fin enregistrement ;
- activité consultationl(acti\ité rep, paramètres nom) ; déclarations consultation2 : activité,
- annuaire1, tel, trouvé :... ;
- tel — <( résultat d’un calcul utilisant nom et annuairel ;
- ce calcul affecte le booléen trouvé > ; si trouvé alors
- lancer rep(nom, tel)
- sinon
- lancer consultation2{rep, nom)
- fsi
- fin consultation1 ;
- activité consultation2(acti\ité rep, paramètres nom) ; déclarations annuaire2, tel : ... ;
- tel = < résultat d'un calcul utilisant nom et annuaire2 ) ; lancer rep{nom, tel) fin consultation2 ;
- activité réponse{paramètres nom, numéro) ; déclarations console 1 :... ; écrire(console 1, nom, numéro) fin réponse ;
- 7.223 Eléments de comparaison
- Le schéma procédural est bien adapté à une situation fréquente : celle où, après un calcul intermédiaire (la procédure), on veut revenir dans le même contexte. Les continuations permettent de construire des schémas d’exécution plus généraux, tels que le schéma sans retour :
- enregistrement -» consultation1 consultation2 -* réponse
- de l’exemple 4 .
- Cependant, si on doit retrouver dans une activité située en bout de chaîne des éléments du contexte initial, on est amené à transmettre ce contexte, qui peut être important, à travers toutes les activités intermédiaires. C’est
- p.169 - vue 187/387
-
-
-
- 170 Systèmes informatiques répartis
- le cas du nom dans l’exemple 4, ce qui n’est pas pénalisant ici car toutes les activités ont besoin de ce nom.
- Une architecture distribuée se prête bien à la mise en oeuvre des continuations [André F. 80a]. On peut en effet utiliser pour chacun des éléments de la chaîne une machine adaptée (par exemple des processeurs associatifs pour réaliser les recherches dans les annuaires) afin d’harmoniser leurs temps de calcul. De plus, l’utilisation des continuations permet l’instauration dynamique de tels schémas, ainsi que la mise en commun d’éléments appartenant à des schémas différents. Le transfert du contexte le long d’une suite de continuations présente alors l’avantage de fournir une seule représentation compacte (localisée dans une activité) des données de l’application et des liens de contrôle. En particulier, le traitement des erreurs, qui consiste souvent à détruire une activité, donc à annuler son contexte, en est facilité.
- 7.23 PARALLÉLISME
- L’appel procédural, en suspendant l’activité appelante, laisse constant le nombre d’activités en exécution. Un programme ne peut donc jamais comporter un degré de parallélisme plus grand que celui qu’il possède au départ.
- Il est facile d’éviter un tel inconvénient en offrant la possibilité à une activité de ne pas se suspendre lorsqu’elle en lance une autre : entre l’activité créatrice et l’activité créée il y a alors parallélisme. Au cours de leur déroulement, les activités parallèles peuvent avoir besoin de se synchroniser pour échanger des informations. C’est en particulier vrai à la fin de l’activité lorsqu’on exploite les liens de contrôle.
- Par exemple, si les deux consultations n’interfèrent pas, elles peuvent s’effectuer totalement en parallèle et l’application téléphone est alors structurée de la manière suivante :
- dialogue1 :
- nom = \ire(console2)
- tel 1 == consultation\(nom) tell — consultationl(nom)
- J
- 1
- écrire (console 1, nom, tel 1, tell)
- p.170 - vue 188/387
-
-
-
- Programmation et exécution d’applications réparties 171
- L’instruction de contrôle placée en S exprime le lancement parallèle. D’une manière générale on peut considérer indifféremment :
- 1) que l’activité principale crée une nouvelle activité et continue son propre déroulement,
- 2) que l’activité principale se scinde en plusieurs sous-activités parallèles.
- Les instructions de contrôle qui terminent les activités (placées aux points J sur l’exemple), sont différentes selon les liens de contrôle transmis au moment du lancement. Dans le cas 1, l’activité créée doit se synchroniser avec l’activité principale qui n’a pas été suspendue. Dans le cas 2, les différentes sous-activités doivent se rejoindre.
- Nous donnons ci-dessous quelques exemples illustrant les diverses possibilités :
- 1) Activités parallèles parenthésées
- La forme la plus primitive est le fork-join introduit dans [Conway 63] et comparable au goto en programmation séquentielle. Il n’y a pas de véritable établissement de liens de contrôle : l’activité parallèle créée et le point de retour sont spécifiés par des étiquettes. Par exemple, pour la programmation de l’application téléphone, le point S correspond à l’instruction de lancement fork et chaque point J est une instruction join K.
- Avec ces instructions, on peut représenter un graphe quelconque dont les noeuds sont les points de lancement et de jonction. Une forme strictement parenthésée, rappelant l’appel procédural, est obtenue par des instructions du type parbegin-parend [Dijkstra 68] ou par d’Algol 68. L’application téléphone peut alors se programmer comme suit :
- parbegin
- tel 1 ~ consultationl(nom) ; tell = consultationl(nom)
- parend ;
- écrire(consolel, nom, tel 1, tell);
- 1) Continuations
- Le transfert avec continuation (7.222) offre des possibilités de parallélisme puisque l’activité appelante n’est pas suspendue et peut lancer plusieurs activités, en spécifiant explicitement les liens de contrôle.
- L’exploitation du lien de contrôle se fait par le lancement éventuel des activités définies par la continuation. Exprimer une jonction n’est envisageable qu’au prix d’artifices [Hewitt 79, McQueen 79].
- 3) Activités parallèles en arbre
- On peut évidemment ne pas avoir besoin de synchronisation en fin d’activité. Il n’y a alors pas de lien de contrôle entre l’activité créatrice et l’activité créée : un tel programme peut être schématisé par un arbre (ou plusieurs),
- p.171 - vue 189/387
-
-
-
- 172 Systèmes informatiques répartis
- dont les branches représentent des activités et les noeuds des lancements en parallèle. Les instructions comme startprocess (de Concurrent Pascal [Bnnch Hansen 77] par exemple), offrent de telles constructions.
- 7.24 MISE EN ŒUVRE D’ACTIVITES SUR ARCHITECTURES RÉPARTIES
- Les structures de contrôle que nous venons de décrire (procédures, continuations, structures parallèles) peuvent être mises en œuvre sur des systèmes centralisés. Sur une architecture répartie, elles nécessitent
- — des primitives de communication,
- — un certain nombre d’activités prédéfinies sur chaque site.
- En effet, pour lancer une activité à distance, il faut d’une part qu’un message comportant l’identification du texte à exécuter et les paramètres soit envoyé, et, d’autre part, qu’une entité soit prête à le recevoir sur le site distant. Cette entité est un processus.
- Remarque. Nous donnons ici au terme « processus » sa signification habituelle d’exécution de programme sur un site déterminé. (Un processus est une composition séquentielle d’activités.) Nous supposons que chaque site dispose d’un allocateur qui partage le (ou les) processeur(s) du site entre les processus (éventuellement en nombre variable), et que les processus de deux sites distants peuvent échanger des messages à l’aide des primitives de communication.
- L’exploitation des liens de contrôle implique en général une attente de message lorsque les activités doivent se rejoindre.
- Nous allons étudier successivement les méthodes de gestion des activités lancées à distance et les primitives de communication réalisant l’envoi et l’attente de messages.
- 7.241 Gestion des activités créées à distance
- Sur chaque site, un processus au moins, appelé veilleur, est en attente de messages. Chaque message demandant un lancement d’activité doit contenir l’identification du programme à exécuter, les valeurs des paramètres et toutes les informations nécessaires au lancement de l’activité (identité de l’émetteur dans le cas où on établit un lien de contrôle de type retour, continuation, etc.). Nous distinguons deux politiques de gestion des requêtes selon qu’elles sont exécutées par un nombre fixe ou variable de processus. On appelle serveur un processus qui exécute le programme de traitement d’une requête.
- 1) Processus créés à la demande
- Pour chaque requête, un processus serveur est créé ; il est chargé d’exécuter la demande, puis il se termine. A chaque type d’activité qui peut être réalisée sur un site donné, correspond un modèle de serveur comprenant en parti-
- p.172 - vue 190/387
-
-
-
- Programmation et exécution d’applications réparties 173
- culier le code (partie statique) de l’activité. Le processus veilleur crée pour chaque message reçu, un nouveau serveur, sur le modèle associé à l’activité demandée. Sur le site, le nombre de processus varie donc dynamiquement, au fur et à mesure que le veilleur démarre les serveurs.
- 2) Nombre de processus fixé statiquement
- Pour éviter d’avoir à gérer un nombre variable de processus, il peut être préférable de fixer statiquement le nombre de processus serveurs associés à un type d’activité donné. Ces processus sont alors programmés de façon cyclique pour traiter une requête à chaque cycle. Les messages restent en attente tant qu’un serveur n’est pas libre.
- Lorsqu’un seul serveur est associé à un type d’activité donné, le processus veilleur est souvent confondu avec celui-ci : à chaque cycle, le serveur attend un message puis effectue le traitement correspondant.
- 3) Comparaison des deux politiques
- La politique qui correspond à un nombre fixe de processus serveurs a les propriétés suivantes.
- — Il n’y a pas de gestion dynamique des processus pour une activité donnée ; la mémoire peut être gérée statiquement car le nombre d’exemplaires des variables locales est parfaitement connu.
- — La réentrance est limitée au nombre de serveurs associés à chaque type d’activité. Dans le cas d’un seul serveur, elle est impossible : quand une activité A est en cours d’exécution aucun nouvel appel de A ne peut être pris en compte, le serveur ne redevenant disponible qu’à la fin de l’activité. De plus si A lance, au cours de son exécution, une autre activité selon un schéma procédural, le serveur associé à A est alors inactif, donc mal utilisé. Ceci conduit éventuellement à des interblocages, dans le cas d’appels croisés.
- Dans le cas de processus créés dynamiquement, ces caractéristiques s’inversent :
- — les messages sont pris en compte le plus rapidement possible (mais ils ne sont pas obligatoirement exécutés plus vite, à cause du multiplexage des processus sur les processeurs),
- — un processeur ne reste pas inutilisé tant que des messages arrivent; quand on dispose de plusieurs processeurs, on peut obtenir une exécution réellement parallèle des différentes activités.
- Pour un même système, les deux politiques peuvent coexister selon les types d’activités. Dans un système orienté vers la réalisation d’une application donnée, on peut tirer partie de la connaissance des activités pour associer statiquement un seul serveur à chaque activité qui n’en appelle aucune autre (de façon procédurale). On bénéficie ainsi des avantages d’une gestion simple tout en prévenant les risques de sous-utilisation et de blocage [André F.80].
- p.173 - vue 191/387
-
-
-
- 174
- Systèmes informatiques répartis
- Remarque. Le modèle de processus serveur (en particulier le code du programme à exécuter) peut ne pas résider en permanence sur le site où est effectué le service. Il est parfois transféré en même temps que la demande de service [Altaber 78],
- 7.242 Coopération et communication
- Nous donnons dans ce paragraphe quelques généralités sur les formes prises par les primitives de communication dans les langages de programmation. Nous traitons successivement :
- — des synchronisations entre les entités communicantes,
- — de la nature des messages,
- — de l’identité des correspondants,
- — des possibilités de traitement des erreurs de communication.
- D’une façon générale, pour programmer les exemples, nous utilisons la syntaxe suivante.
- —M = attendremessage(A) exprime l’attente d’un message envoyé par le
- processus X. Le contenu du message est affecté à la variable M. X peut
- ne pas être spécifié, dans ce cas l’émetteur est quelconque.
- — envoyermessage(M, X) exprime l’envoi de M au processus X.
- 1) Synchronisation des entités communicantes
- Deux primitives au moins sont nécessaires pour envoyer et recevoir un message. Pour les mettre en œuvre, il est utile de faire l’hypothèse qu’à chaque processus est associée une boîte à lettres où sont placés automatiquement les messages à leur arrivée. La réception d’un message est une opération explicite par laquelle un processus retire un message de sa boîte afin de le traiter. Si un processus essaie de retirer un message alors que la boîte est vide, il est mis en attente.
- Contrairement à la réception (qui est bloquante par construction), l’émission d’un message peut prendre deux formes :
- — une forme non bloquante, lorsque le processus émetteur poursuit son activité,
- — une forme bloquante, lorsque l’émetteur attend éventuellement pour s’assurer que le récepteur est prêt à recevoir le message. Cette forme de communication est appelée rendez-vous, comme dans CSP [Hoare 78] qui est présenté en 7.42.
- 2) Nature des messages
- Un message, bien qu’il soit traité par le médium de communication comme une chaîne de caractères, possède une structure imposée par l’émetteur et que le récepteur doit connaître.
- Une amélioration linguistique des primitives de communication consiste à attribuer un type aux messages, ce qui permet de contrôler la compatibilité entre messages envoyés et messages attendus. Nous qualifions ces communications de typées. Pour assurer un dialogue cohérent entre processus, le
- p.174 - vue 192/387
-
-
-
- Programmation et exécution d’applications réparties 175
- récepteur doit pouvoir sélectionner parmi les messages de sa boîte aux lettres ceux qui l’intéressent et effectuer un traitement fonction du type du message.
- Nous exprimons l’attente d’un message et cette possibilité de choix par des énoncés dont la forme générale est la suivante :
- sélection
- typel : X •= attendremessage ; traitement 1
- ou
- type2 : Y := attendremessage ; traitement2
- ou
- fsélection
- S’il arrive un message dont le contenu est de typel (respectivement de type2), traitement 1 (respectivement traitement2) est exécuté. Nous verrons des formes particulières de cet énoncé au paragraphe 7.4 et au point 3) ci-dessous.
- 3) Identité des correspondants
- Les formes des primitives de communication et leurs possibilités varient selon que l’identité des correspondants est précisée ou non lors de la communication. Nous présentons ici, à l’aide de l’application téléphone, les formes les plus courantes (en adaptant la forme générale). Nous cherchons à exprimer un processus consultation1, du type serveur, susceptible de travailler pour le compte de deux processus enquêteurs, enquêteurl et enquêteur2.
- a) On peut imposer que l’identité des correspondants soit notée statiquement dans la primitive de communication.
- Exemple
- processus enquêteur 1 ;
- envoyermessage(«om) vers consultation 1 ; tel := attendremessage de consultation1 ;
- fin enquêteurl ; processus enquêteurl ;
- envoyermessage(«ow) vers consultationl ; tel ••= attendremessage de consultationl ;
- fin enquêteur2 ;
- p.175 - vue 193/387
-
-
-
- 176 Systèmes informatiques répartis
- processus consultation1 ; cycle
- sélection
- nom — attendre message de enquêteurl ;
- tel = ... ;
- envoyermessagepe/) vers enquêteurl
- ou
- nom = attendremessage de enquêteurl ;
- tel = ... ;
- envoyermessagepe/) vers enquêteur2 ’ fselection
- fcycle
- fin consultation1 ;
- Remarque. La sélection s’effectue ici sur l’identité de l’émetteur des messages dont le type est celui de la variable nom.
- Ce type d’expression, adopté par exemple dans CSP [Hoare 78] permet d’effectuer, à la compilation (ou à l’édition de liens si les processus sont écrits séparément), des contrôles sur l’existence des correspondants. En revanche, l’écriture de certains schémas fréquents (comme celui du veilleur) est lourde : le processus consultation1 doit effectuer une sélection sur le nom de son interlocuteur alors qu’il effectue des traitements semblables. En outre, il doit connaître statiquement tous ses correspondants.
- b) Pour résoudre le problème que nous venons d’évoquer, il est commode de disposer d’une primitive de réception indifférenciée, ne mentionnant pas l’émetteur.
- Exemple
- processus consultation 1 ; cycle
- nom — attendremessage ; tel — ... ;
- fcycle
- fin consultationl ;
- Dans cet exemple, consultationl accepte des messages de n’importe quel processus, pourvu que leur type soit celui de la variable nom.
- c) Quand on utilise une telle primitive, il est souvent utile de connaître quand même l’identité du processus émetteur, afin de lui communiquer une réponse. Une solution générale consiste à faire délivrer par la primitive de réception le nom du processus qui a émis le message ; ce nom est utilisable pour une émission ultérieure.
- p.176 - vue 194/387
-
-
-
- Programmation et exécution d’applications réparties 177
- Exemple
- processus consultation1 ; cycle
- {id, nom) — attendre message ;
- tel ... ;
- envoyermessage(7e/, id) fcycle
- fin consultation1 ;
- La variable id joue un rôle identique à celui d’une continuation : c’est un
- lien de contrôle.
- Une extension de cette technique tient à l’usage fréquent de constructions parenthésées (procédures ou branches parallèles). Quatre primitives de communication sont alors nécessaires ; elles sont analogues à celles décrites dans [Brinch-Hansen 70]. La primitive d’envoi de message délivre une valeur qui est l’identité d’un dialogue particulier. Cette valeur permet d’associer une réponse à la demande correspondante, ce qui est utile si plusieurs messages distincts sont envoyés à un même destinataire.
- Exemple
- processus enquêteurl ;
- id — envoyermessage(nora, consultationl) ; tel == attendreréponse(id) fin enquêteur 1 ;
- processus consultationl ; cycle
- {id, nom) == attendremessage ; tel — ... ;
- envoyerréponse(te/, id) fcycle
- fin consultationl ;
- Dans le cas de l’appel procédural, on peut utiliser une primitive particulière rendant indivisible l’envoi du message et l’attente de la réponse [Liskov 79].
- Remarque. La manière dont l’identité du processus est interprétée relève de la désignation. Le paragraphe 7.3 indique quelques techniques pour atteindre, à partir de l’identificateur, l’objet désigné. En particulier la désignation d’un processus à distance se fait souvent de manière indirecte en utilisant un objet relais de type « porte ».
- 4) Prise en compte des erreurs de communication
- Les erreurs de communication peuvent être traités de deux manières.
- — Soit elles sont cachées à l’utilisateur, qui ne peut donc pas les récupérer ;
- CORNAFION. — Systèmes informatiques répartis
- 7
- p.177 - vue 195/387
-
-
-
- 178 Systèmes informatiques répartis
- on fait alors l’hypothèse qu’elles sont entièrement traitées par le niveau inférieur.
- — Soit elles sont gérées explicitement par le programmeur, ce qui implique en particulier que les paramètres des primitives de communication comportent des indicateurs d’erreurs, des délais de garde et le nom des procédures à appeler en cas d’erreur.
- 7.3 LA DÉSIGNATION
- 7.31 LIAISON 7.311 Définition
- Un texte de programme comprend des identificateurs (chaînes de caractères) qui désignent des objets. Durant l’exécution du programme, ces identificateurs doivent être associés aux objets réels. A un instant donné, l’ensemble des couples (identificateurs, objets désignés) forme le contexte d’exécution. L’association entre l’identificateur et l’objet correspondant s’appelle la liaison : elle consiste à établir la chaîne d’accès à l’objet et elle doit être faite au plus tard au moment de l’exécution d’une instruction qui accède à l’objet. Effectuer la liaison à ce stade est coûteux en temps ; il est plus économique dans certains cas, de la réaliser avant l’exécution. Par exemple, le compilateur peut remplacer l’identificateur d’une constante par sa valeur. Pour un objet local à une procédure, le compilateur peut remplacer l’identificateur par l’adresse (au moins relative) de l’objet.
- Cependant, pour plusieurs raisons, il peut être nécessaire d’effectuer dynamiquement, à l’exécution, l’opération de liaison d’un objet. Nous en citons trois exemples.
- 1) Indépendance des durées de vie de l'objet et du programme. Un objet peut être créé et détruit de façon indépendante de l’exécution du programme. Ce n’est qu’au moment de l’accès qu’il est nécessaire que l’objet existe réellement. C’est par exemple le cas d’un fichier.
- 2) Réutilisation des identificateurs. Le même identificateur peut servir, au gré des opérations explicites de liaison (ouverture d’un fichier) et de déliaison (fermeture), à représenter des objets différents au cours de l’exécution du même programme.
- 3) Objet en dehors de l'espace physique d'adressage du processeur. L’objet est situé à un emplacement inaccessible au processeur sur lequel s’exécute le programme. Une interprétation de l’accès utilisant l’identificateur de l’objet est nécessaire. Pour une architecture répartie, cette raison prend une grande importance.
- p.178 - vue 196/387
-
-
-
- Programmation et exécution d’applications réparties 179
- Les objets désignés dans un programme sont donc classés en deux catégories : ceux pour lesquels le compilateur ou l’éditeur de liens a pu effectuer la liaison et ceux qui sont encore représentés lors de l’exécution par un identificateur, pour lesquels la liaison doit se faire au moment de l’accès.
- Les mécanismes de liaison ont été amplement étudiés pour les architectures centralisées [Crocus 75]. Les architectures réparties n’apportent pas de modifications radicales, si ce n’est (voir l’alinéa 3 précédent), des raisons supplémentaires pour retarder la liaison des identificateurs qui désignent des objets en dehors de l’espace adressable du processeur. Cette raison justifie le parti pris de n’étudier dans ce chapitre que la liaison dynamique.
- 7.312 Liaison dynamique
- Pour mettre en oeuvre un mécanisme de liaison dynamique, on rencontre deux problèmes principaux :
- a) à partir de l’identificateur, trouver l’objet désigné,
- b) établir la chaîne d’accès à l’objet.
- Pour résoudre le point a) on utilise un ensemble de répertoires qui sont des tables mettant en relation des identificateurs et des descriptions de localisation d’objets.
- Les règles d’interprétation d’un identificateur peuvent varier en fonction du site, de l’utilisateur, de l’endroit du programme où il apparaît. Plus généralement, ces règles sont définies par l’« environnement » courant, dont nous ne donnons pas une définition plus précise. Un exemple d’environnement est celui défini par le bloc courant dans les langages de programmation de type Algol ; le « working directory » du système Multics [Organick 72] en est un autre. Nous admettons dans la suite qu’il y a un environnement unique par site.
- Plusieurs cas peuvent alors se produire.
- — Le même identificateur peut désigner des objets différents dans des environnements différents (par exemple la même adresse de périphérique sur des sites différents peut désigner des périphériques différents).
- — Au contraire, le même identificateur peut désigner le même objet dans des environnements différents (par exemple le nom d’un processus dans le réseau DCS [Farber 72a], ou bien la même fonction, ou la même classe d’objets (par exemple, dans le réseau Arpanet, la porte n° 3 sur des sites différents désigne toujours la fonction «transfert de fichiers»).
- — Enfin, le même objet peut, suivant les environnements, être désigné par des identificateurs différents (cas très fréquent dans les langages de programmation, dans les langages de commande).
- Nous étudions en 7.32 les principaux types de désignation et les problèmes de gestion des répertoires.
- Le point b) concerne la construction et l’interprétation de chaînes d’accès. Dans une architecture où les processeurs n’ont pas de mémoire commune, l’interprétation d’une chaîne d’accès met évidemment en jeu plusieurs procès-
- p.179 - vue 197/387
-
-
-
- 180 Systèmes informatiques répartis
- sus qui coopèrent. Les exemples donnés en 7.22 illustrent cette coopération pour l’accès à un fichier à distance : depuis le, site enquêteur1, on accède à un objet annuaire en activant un processus consultation. La construction et l’interprétation des chaînes d’accès aux objets supposent donc l’existence d’outils généraux pour désigner des processus à distance. Nous verrons de tels outils en 7.33.
- 7.32 STRUCTURE ET INTERPRETATION DES IDENTIFICATEURS
- 7.321 Propriétés
- Plusieurs propriétés peuvent caractériser un identificateur.
- 1) La portée, ou domaine de validité, de l'identificateur. Un identificateur est dit global lorsqu’il a la même signification quel que soit l’environnement où il est utilisé. Par exemple, dans l’application téléphone, on peut prendre pour les annuaires des identificateurs globaux, annuaire1 et annuaire2, utilisables sur l’ensemble des sites du réseau.
- Au contraire, un identificateur local n’a de sens que dans un environnement donné (processus, niveau de système, site). Ainsi console 1 peut être utilisable uniquement sur le site enquêteur 1 pour désigner la console de ce site (éventuellement console 1 peut apparaître sur un autre site, avec une autre signification).
- 2) La dépendance de /’identificateur vis-à-vis de la localisation de l'objet. La désignation peut être explicite : dans ce cas, l’identificateur comporte en général une partie qualifiant le site et une partie propre au site. Ainsi, l’annuaire du site archive 1 peut être désigné par archivel .annuaire. En revanche, une désignation qui ne fait pas référence à la localisation de l’objet permet de déplacer un objet d’un site à un autre sans que l’utilisateur en ait conscience, ce qui est appréciable pour mettre en œuvre des techniques de répartition de charge et de reconfiguration.
- 3) Le nombre d'objets associés à l'identificateur. Un identificateur peut représenter un objet particulier (désignation individuelle) ou au contraire une classe d’objets. Le mécanisme d’accès permet dans ce dernier cas de sélectionner un des objets de manière invisible à l’utilisateur (désignation collective) afin, en particulier, de masquer des défaillances. Par exemple, si plusieurs sites disposent d’un compilateur Fortran, l’identificateur Fortran désigne la classe de ces compilateurs et le choix de l’un d’eux se fait selon un critère de répartition de charge (voir chapitre 9).
- 7.322 Exemples
- 1) Désignation globale indépendante du site
- Dans le système DCS [Farber 72a] l’espace des fichiers, unique, s’étendant sur tous les sites, est représenté par un arbre. Un fichier est désigné sans ambi-
- p.180 - vue 198/387
-
-
-
- Programmation et exécution d’applications réparties 181
- guïté par le nom de la feuille qui lui est associée et cette désignation est indépendante du site, donc globale.
- objet usagerl.fi
- Figure 2. Désignation dans le système DCS.
- Dans ce système, une classe de processus est désignée par un identificateur global implicite collectif, tel que Fortran.
- 2) Désignation globale explicite
- Dans le système Rsexec [Thomas 73] qui s’exécute sur plusieurs sites Tenex/PDPIO reliés par le réseau Arpanet, un fichier est désigné par l’identificateur du site où il est situé, concaténé à l’identificateur local du fichier sur le site ; c’est donc une désignation globale explicite.
- disk
- imp
- fl fl cl cl
- Figure 3. Désignation dans le système Rsexec.
- p.181 - vue 199/387
-
-
-
- 182 Systèmes informatiques répartis
- Pour faciliter la désignation, un mode abrégé est défini : l’usager peut construire un contexte local appelé profil, à partir duquel se fait en cours d’exécution l’interprétation des identificateurs. Ainsi un utilisateur sur site2 peut définir dans son profil un identificateur local fich et l’associer à l’identificateur global site 1 .disk.u2.c2. Pour désigner l’objet correspondant, il utilise désormais fich, ce qui simplifie l’écriture.
- 3) Désignation locale explicite
- Le système de gestion des fichiers de Unix [Chesson 75], étendu pour exécution sur le réseau Arpanet, permet de désigner des fichiers sur des sites distants. Chaque fichier est désigné sur son propre site par un identificateur hiérarchique tel que J l/x2. Pour désigner ce fichier a distance, on ajoute un composant qui est l’identificateur du site de résidence du fichier, identificateur local au site qui fait l’accès. Ainsi, sur le site A, on a la désignation hote-b/f\lx2 si hote-b désigne le site B sur A ; sur le site A', on a sb/fl/x2, si sb désigne le site B sur A '.
- 7.323 Réalisation d’un répertoire global
- Dans tous les systèmes, on utilise des identificateurs globaux, car deux environnements du même système ne peuvent pas être totalement indépendants. Conceptuellement, tous les identificateurs globaux sont décrits dans un répertoire, le répertoire global ; nous nous proposons d’analyser les problèmes posés par l’absence d’une mémoire commune à tous les environnements pour implanter ce répertoire. Plusieurs approches sont possibles.
- 1) Répertoire global implanté sur un site unique
- L’avantage principal de cette méthode réside dans l’unicité du répertoire, ce qui facilite les mises à jour. Son inconvénient majeur résulte du rôle privilégié joué par le site du répertoire ; en particulier, le système est indisponible en cas d’avarie de ce site. En outre, l’unicité du répertoire peut limiter le débit en créant des congestions, car les demandes d’accès transitent par le même site.
- 2) Répertoire global dupliqué sur chaque site
- Tous les sites ont une copie du répertoire entier. Le système DCS où chaque site dispose du répertoire général (fig. 2) est une illustration de ce cas. Un des principaux inconvénients de la méthode réside dans la difficulté d’assurer une mise à jour cohérente de toutes les copies (voir chapitre 10).
- 3) Répertoire global réparti sur les sites
- Une illustration de ce cas est donnée par le système de gestion de fichiers de Rsexec (7.322). Chaque site possède son propre catalogue, racine de l’arborescence des fichiers locaux. Le répertoire global peut alors être vu comme la réunion de ces catalogues particuliers. Cette méthode soulève les problèmes suivants :
- p.182 - vue 200/387
-
-
-
- Programmation et exécution d’applications réparties 183
- — elle nécessite l’établissement d’une communication avec chaque site pour connaître l’état exact des objets qu’il gère,
- — pour accéder à un objet, un site doit connaître la structure du répertoire local où il est décrit,
- — la référence à l’objet est généralement qualifiée par l’identificateur du site : on peut s’en affranchir par des mécanismes accélérateurs (profil d’un usager dans Rsexec), mais parfois au prix de nouveaux problèmes (homonymie d’identificateurs globaux).
- Par contre, l’accès depuis un site aux fichiers locaux est rapide, la gestion des catalogues se fait localement et indépendamment sur chaque site, et un contrôle des accès concurrents à un fichier peut être assez facilement mis en oeuvre.
- 7.33 ÉTABLISSEMENT DE CHAÎNES D’ACCÈS
- 7.331 Introduction
- Pour réaliser des accès à distance, il faut mettre en communication des processus implantés sur des sites différents. Cette communication se ramène à un échange de messages. Un message contient toujours l’information nécessaire à l’identification des processus émetteur et destinataire.
- Dès lors le problème de l’identification des processus se pose car, à l’initialisation de la communication, un processus n’a généralement pas connaissance de l’identité de son correspondant sous une forme directement interprétable par le système distant de gestion des processus. De plus il est intéressant de laisser à chaque site ses propres conventions de désignation. L’utilisation d’objets relais résout ce problème en offrant un méchanisme de désignation (indirecte) uniforme (7.332). Il reste à associer processus et objets de liaison ; on présente quelques possibilités en 7.333.
- 7.332 Portes
- En général, la communication entre deux processus distants passe, au moins pour l’initialisation, par des objets intermédiaires. Nous appelons ces objets des portes, terme couramment utilisé dans les réseaux d’ordinateurs. Une porte, située sur un site, est désignée le plus souvent par un identificateur composé de l’identificateur global du site et d’un identificateur local. Chaque site se charge d’établir une correspondance entre ses portes et ses processus. Un processus peut donc être désigné à partir des autres sites par la porte (ou les portes) à laquelle il est associé. Les messages empruntent des voies désignées par un couple de portes.
- Une porte est partagée lorsque, au même instant, elle fait partie de plusieurs voies : elle est reliée à plusieurs portes distantes, comme le montre la figure 4.
- p.183 - vue 201/387
-
-
-
- 184 Systèmes informatiques répartis
- s'Vi / y y — ©
- / ^/^Voie (A, B)
- Cfr - s Voie (A, C) T-l \ -*©
- \ v Voie (A, D) \
- / / —©
- Porte partagée Portes non partagées
- Figure 4. Exemple de partage de porte.
- L’utilisation de portes pour la communication entre processus offre les avantages suivants.
- — Les seuls identificateurs globaux à l’ensemble du système sont ceux des portes; chaque site peut par ailleurs conserver ses propres conventions de désignation et avoir des langages différents pour l’écriture des processus.
- — Les processus peuvent être associés dynamiquement aux portes. Ainsi une opération d’envoi de messages peut concerner au cours du temps des destinataires différents : il suffit de changer les processus associés à la porte de réception.
- Nous exposons maintenant la mise en relation dynamique des processus et des portes. Notons cependant que leur association statique présente également des avantages car elle permet d’effectuer, avant l’exécution, des contrôles sur la validité des communications. Des propositions de langages ont été faites dans ce sens [Thomesse 79, Le Guernic 80] : elles permettent de décrire de manière indépendante, en utilisant deux langages différents, les processus et leurs relations de communication exprimées comme des connexions entre portes.
- 7.333 Association processus-porte
- Nous étudions dans ce paragraphe comment, en l’absence de désignation globale de processus, deux processus distants arrivent à connaître l’identité respective de leurs portes en vue d’entrer en communication.
- Pour résoudre ce problème, il est commode de définir des classes de processus en fonction des services qu’ils assurent, de l’application à laquelle ils coopèrent, etc. A chaque classe i est associé un processus veilleur particulier (voir 7.241) chargé de recevoir les demandes de service de la classe i. En général, pour faciliter leur désignation, les veilleurs relatifs au service Si sont associés statiquement sur les divers sites à des portes de même identificateur local.
- p.184 - vue 202/387
-
-
-
- Programmation et exécution d’applications réparties 185
- Remarque. La division des processus en plusieurs classes est une commodité offerte dans les systèmes à vocation générale (par exemple, dans Arpa-net, la porte n° 1 de chaque site est associée au veilleur Telnet, la porte n° 3 au veilleur « transfert de fichiers », etc.).
- Différents schémas d’établissement des chaînes d’accès peuvent être envisagés suivant que le veilleur assure lui-même le service ou non, et donc suivant la connaissance que chaque processus a de son partenaire.
- 1) Accès direct
- Dans le cas de l’accès direct, le veilleur réalise la fonction demandée par l’usager, qui lui est donc directement relié. Lorsqu’un usager associé à une porte a désire établir une communication avec le veilleur Vi d’un site distant, il s’adresse à la porte b qui lui est associée, en lui communiquant l’identificateur a de sa porte ; si Fi accepte, il le notifie au processus usager et la voie (a, b) est établie.
- Voie usager-serveur
- Processus veilleur Vi (qui assure le service)
- OIK
- O
- Figure 5. Accès direct usager-serveur.
- Si la porte du veilleur peut être partagée, plusieurs processus usagers peuvent dialoguer simultanément avec lui pour obtenir le même service.
- Exemple. Une mise en œuvre possible pour l’application décrite en 7.1 consiste à créer deux processus veilleurs sur chaque site archive ; l’un a pour rôle de faire des consultations de l’annuaire, l’autre effectue des modifications sur cet annuaire.
- Voie établie pour consultation
- Usager
- O—eu
- Site enquêteur
- Processus veilleur 1 consultation
- cm—O
- Processus veilleur2 modification
- Site archive
- Figure 6. Application téléphone : cas de l’accès direct.
- p.185 - vue 203/387
-
-
-
- 186 Systèmes informatiques répartis
- 2) Accès en cascade
- Dans le cas de l’accès en cascade la voie (a, b) est établie entre l’usager et le veilleur qui doit mettre en communication directe le processus demandeur et le processus serveur. Il est alors amené à communiquer au processus demandeur, en utilisant la voie (a, b), l’identificateur c de la porte associée au serveur ; ensuite il rompt la voie (a, b). Une nouvelle voie (a, c) doit alors être initialisée par le processus usager.
- Première voie (a, b)
- —O
- Processus veilleur Vi
- Processus usager Deuxième voie (a, c)
- o
- Processus serveur Si
- Figure 7. Accès en cascade.
- Ce mode de désignation s’impose lorsque la porte b du veilleur n’est pas partagée, comme dans Arpanet. Il importe alors que la durée de la communication via (a, b), soit aussi courte que possible pour ne pas ralentir les autres demandeurs.
- Exemple. Une autre mise en œuvre de l’application de 7.1 peut être réalisée en créant sur chaque site un veilleur pour recevoir les messages et des processus serveurs pour les consultations et les modifications. Une seule porte est allouée statiquement, celle du veilleur.
- 3) Accès indirect
- Dans le cas de l’accès indirect, la désignation du processus serveur n’est jamais connue directement du processus demandeur. Ce dernier ne connaît qu’un intermédiaire par lequel se font toutes les communications.
- Exemple. Le système Igor [Dang 77] utilise cette méthode de chaînage pour établir une communication entre deux processus frères distants. L’objet de rendez-vous, qui joue le rôle d’une boîte aux lettres, est situé sur le site du processus père. Son identificateur global est communiqué aux processus fils. Chaque fils ignore l’identificateur de son frère, qui figure dans l’objet de rendez-vous.
- Ces différentes possibilités se distinguent donc suivant le nombre de voies à établir, le nombre de processus mis en jeu et la possibilité de traitements simultanés.
- p.186 - vue 204/387
-
-
-
- Programmation et exécution d’applications réparties 187
- 7.34 CONCLUSION
- Dans un système réparti sans mémoire commune, tout accès à distance se traduit finalement par une communication entre processus. Nous avons donné en 7.33 des indications sur la manière de réaliser un système général de désignation des processus. Pour les communications, les identificateurs globaux sont ceux des portes et chaque site peut utiliser ses propres conventions de désignation.
- Sur un tel système, on peut construire des applications possédant leur propre système de désignation global (voir 7.32), pour lesquels les objets désignés peuvent être autres que des processus.
- Exemple 1. Le réseau Arpanet offre un mécanisme de désignation utilisant des portes ; sur ce réseau, des systèmes de gestion de fichiers qui utilisent des désignations globales ont été implantés (voir en 7.322 les exemples de Rsexec et de Unix). Ce mécanisme permet aux utilisateurs de traiter uniformément des objets locaux ou distants.
- Exemple 2. L’application téléphone peut évidemment se prêter à une construction en niveaux.
- 1) On définit un mode uniforme de désignation des annuaires. La programmation des fonctions consultation, sur chacun des sites enquêteur. a alors la même expression.
- 2) Pour la mise en oeuvre d’une fonction consultation particulière, les informations contenues dans les répertoires permettent de localiser les annuaires concernés, et leur accès prend une des formes exposées en 7.2 (activation de processus à distance), éventuellement différente suivant les sites.
- 3) L’activation de processus à distance est rendue possible par l’implantation préalable de veilleurs ou de serveurs associés statiquement à des portes.
- La conception d’un système de désignation globale sur une architecture répartie, du type de ceux que nous avons présentés en 7.32 doit donc prévoir :
- — des outils de contrôle de l’exécution pour gérer les processus,
- — des mécanismes de désignation des processus distants tels que les portes.
- 7.4 EXPRESSION DU PARALLÉLISME ET DE LA RÉPARTITION DANS LES LANGAGES DE PROGRAMMATION
- 7.41 INTRODUCTION
- Nous décrivons maintenant quelques aspects des langages de programmation qui permettent d’exprimer les structures de contrôle et les mécanismes de désignation que nous venons de définir.
- p.187 - vue 205/387
-
-
-
- 188 Systèmes informatiques répartis
- Ces langages se répartissent en deux catégories.
- — Les uns permettent de programmer des applications en terme d’activités parallèles et ne font a priori aucune hypothèse sur l’implantation des programmes sur une architecture centralisée ou distribuée. Nous les retenons pour deux raisons : ils n’utilisent pas seulement une structure de contrôle procédural, et ils peuvent être mis en oeuvre sur un système réparti, au prix de certaines restrictions.
- — Les autres permettent de gérer explicitement la répartition. Ils offrent les moyens de programmer les relations d’un site avec le reste du système.
- 7.42 EXPRESSION DU PARALLÉLISME DANS LES LANGAGES
- Nous étudions dans deux langages, CSP [Hoare 78] et Ada [Ichbiah 79], les moyens de définir des processus et de réaliser des échanges d’informations entre eux. Tous deux permettent de fragmenter les données d’une application en ensembles indépendants, la gestion de chacun des ensembles étant confiée à un processus particulier. C’est cette propriété, fondamentale pour une répartition éventuelle, qui a motivé leur choix.
- Ces deux langages ont un certain nombre de propriétés communes.
- — La communication entre deux processus ne repose pas nécessairement sur l’existence de variables globales.
- — Les mécanismes élémentaires de synchronisation (« rendez-vous » pour CSP, « entrées » pour Ada) sont voisins.
- — Des constructions similaires donnent aux processus la possibilité d’exprimer l’attente indifférenciée, et éventuellement conditionnelle, d’un événement parmi plusieurs possibles.
- Les différences principales tiennent au choix des constructions qui expriment les relations entre les processus, ainsi qu’au parallélisme possible pour l’accès aux données.
- a) Dans CSP, les relations et les synchronisations entre les processus sont exprimées explicitement par des échanges de messages. Par contre, dans Ada, un processus Tl peut accéder aux données locales d’un autre processus T2 au moyen d’une primitive dont l’effet externe est celui d’un appel de procédure. Les synchronisations éventuelles sont exprimées par T2, à l’aide de constructions adéquates.
- b) Dans CSP, le nombre et l’identité des processus sont définis statiquement. Une donnée quelconque n’est utilisable que par le processus explicitement chargé de sa gestion, alors que dans Ada une donnée peut être utilisée par plusieurs processus (le contrôle des accès est cependant dévolu à un processus particulier).
- Signalons enfin que Ada est un langage à vocation générale : il présente un certain nombre de caractéristiques (variables globales, règles de visibilité des objets, etc.) dont l’étude sort du cadre de ce chapitre.
- p.188 - vue 206/387
-
-
-
- Programmation et exécution d’applications réparties 189
- 7.421 Communicating Sequential Processes (CSP)
- Le langage CSP [Hoare 78] permet de programmer une application sous forme d’un nombre fixe de processus qui coopèrent à l’aide d’opérations de communication du type « rendez-vous » (7.242).
- Un programme composé d’un ensemble de processus est noté comme suit :
- [< processl ) | | < processl ) | |... | K processn>] où < process ) consiste en l’association d’un nom à un texte de processus :
- nom : : < texte )
- Les variables globales sont interdites.
- Les processus disposent de deux primitives de communication : l’envoi (sortie) et la réception (entrée) d’un message. Chaque processus doit explicitement désigner son interlocuteur et les messages sont typés. Les entrées/sorties classiques sont assurées par des processus prédéfinis associés à chaque périphérique.
- Pour envoyer un message à un processus Q, le processus P utilise une commande de sortie de la forme :
- Q ! < expression )
- La réception du message par Q se fait par une commande d’entrée de la forme :
- P ? < variable )
- Ces deux commandes expriment une demande de communication. Pour que le transfert ait lieu, il faut qu’il y ait rendez-vous, c’est-à-dire que le récepteur ait exécuté la commande d’entrée correspondant à la commande de sortie de l’émetteur et que les types respectifs des messages envoyé et reçu soient identiques. Autrement dit, il y a attente éventuelle de l’émetteur.
- On admet des messages structurés ; par exemple, le passage de deux valeurs entières peut s’exprimer par :
- Q ! (4, 5) dans P et P ? (/, J) dans Q
- Le contrôle strict sur l’identité d’un interlocuteur et sur le type des messages échangés facilite la preuve des programmes et la détection d’erreurs dès la compilation. Par contre, ce même contrôle peut sembler contraignant au programmeur, par exemple pour exprimer l’attente de messages quelconques venant d’un ensemble de processus. Une construction inspirée des énoncés gardés [Dijkstra 76] permet de décrire les différentes possibilités d’attente d’une manière analogue à l’emploi de la sélection (7.242).
- Un énoncé gardé exprime un choix entre plusieurs traitements, selon la valeur de conditions appelées gardes. Dans les gardes peuvent apparaître des expressions booléennes et des commandes de réception de messages.
- p.189 - vue 207/387
-
-
-
- 190 Systèmes informatiques répartis
- Une garde est vraie si et seulement si les expressions booléennes qui la composent sont vraies et si un message correspondant au type attendu a été reçu. L’exécution d’un énoncé gardé correspond à l’exécution d’un traitement choisi au hasard parmi ceux dont la garde est vraie. Quand toutes les gardes sont fausses, on est en attente d’une réception de message ; si aucune garde ne comporte d’opération de réception, le programme est erroné.
- Un énoncé gardé se présente sous la forme suivante :
- [< garde 1 > - Tl
- < garde2 ) -> T2
- Ce genre de construction peut être utilisé de manière répétitive, ce qui est noté :
- *[... •••]
- L’itération s’arrête lorsque toutes les gardes sont fausses.
- Exemple 1. Soit par exemple deux variables X et Y, de types Tl et T2 respectivement, et un programme défini par :
- [P : : ... Il Q(1:1..10) : : ... Il R :: ...]
- où la notation Q(I : 1. . 10) permet de déclarer 10 processus Q( 1), Q(2), ..., (2(10), de même texte.
- Considérons l’énoncé suivant dans R, où une variable Z a été déclarée :
- [PI X ^ T1
- Z = 0; P 1 Y T2
- (J : 1. .10) Q{J) ? Z T3(J)]
- Il signifie que l’on attend un message du type de X venant de P ou, si la variable Z vaut 0, un message du type de Y venant de P ou encore un message du type de X venant de l’un quelconque des 10 processus Q{J). Selon la nature du premier message reçu et la valeur de Z, R exécute les énoncés Tl ou T2 ou T3(J).
- Si plusieurs messages acceptables sont disponibles, R en choisit un au hasard; par contre si aucun message ne correspond aux critères d’attente, R reste bloqué.
- Exemple 2. Donnons maintenant une programmation d’un système de consultation et de modification d’annuaires téléphoniques. N utilisateurs peuvent dialoguer simultanément avec le système. A chaque annuaire sont associés N processus de consultation (un par utilisateur) et un processus de modification. L’accès à l’annuaire est contrôlé par un processus contrôleur qui autorise des consultations en parallèle et assure l’accès exclusif pour la modification (modèle des lecteurs et rédacteurs).
- p.190 - vue 208/387
-
-
-
- Programmation et exécution d’applications réparties 191
- annuairel 1 1 1 1 annuaire 2
- contrôleurX O O contrôleur2
- consultationX(X) O i O 1 consultation2{\)
- consultation 1 (N) 1 O 1 1 O consul tation2(N)
- modificationX O O modification
- dialogue(X) O O dialogue(N)
- Figure 8. Processus mis en jeu par l’application téléphone.
- La programmation peut être schématisée de la façon suivante :
- [
- dialogue(I : 1. .N)< communication avec l'usager; appel des procédures de consultation ou de modification )
- II
- consultationl(I : 1. . N) ’.
- tel : entier ; nom : identificateur ; debcons : commande 1 ; fincons : commande2 ; *[ dialogueiï) ? nom -* contrôleurX ! debcons ;
- tel = < recherche annuaire ) contrôleur 1 ! fincons ; dialogue(I) ! tel
- modification1 : :
- tel : entier ; nom : identificateur ;
- debmod : commande3 ; finmod : commande4 ;
- *[(/ : 1. . N) dialogue(I) l(nom, tel) -> contrôleurX ! debmod ;
- < modification de l'annuaire ) j contrôleurX ! finmod
- contrôleurX : :
- lec : entier == 0 ;
- dcons ; commandel ; dmod : commande3 ; fcons : commande2 ; fmod : commande4 ;
- *[(/ : 1. .N) consultationi(I)ldcons lec — lec + 1
- (/ : 1. .N) consultationXtf)’!fcons -* lec — lec — X
- lec — 0; modificationXldmod -> modificationXlfmod
- ... idem pour le deuxième annuaire...
- p.191 - vue 209/387
-
-
-
- 192
- Systèmes informatiques répartis
- Chaque consultation et chaque modification commencent par un appel au contrôleur afin de s’assurer du droit de lire ou de modifier l’annuaire. Le contrôleur n’accepte une demande de modification que lorsqu’il n’y a pas de consultation en cours (lec = 0) ; une fois le message de début de modification accepté, il attend le message de fin de modification. Ainsi aucun autre message ne sera accepté pendant la durée de la modification, ce qui assure l’exclusion mutuelle.
- 7.422 Le langage Ada
- Le langage Ada [Ichbiah 79] permet la décomposition d’un programme en processus parallèles, appelés tâches, qui se partagent éventuellement des variables globales. Le nombre de tâches peut évoluer dynamiquement et les communications se font par appels de procédures ou de points d’entrée.
- Remarque. Notre description s’applique au langage Ada tel qu’il est défini à la fin de 1979 ; cet état du langage n’est pas définitif.
- 1) Tâches
- Dans Ada, une tâche est définie statiquement, mais son lancement est effectué dynamiquement à l’aide d’une instruction initiate.
- Lorsqu’on déclare une tâche, on définit :
- — des données locales,
- — des procédures qui peuvent accéder aux données locales,
- — un programme séquentiel ou corps de tâche qui est lancé lors de l’instruction initiate.
- Les données locales d’une tâche ne sont pas accessibles directement par les autres tâches, mais celles-ci ont la possibilité d’appeler certaines des procédures, qui sont alors exécutées pour le compte de la tâche appelante (fig. 9).
- 2) Points d'entrée
- Au cours de leur exécution, deux tâches quelconques peuvent échanger des informations ou entrer en compétition pour l’accès à des données. Dans l’exemple ci-dessus, lorsque Tl exécute P, elle peut entrer en conflit avec T2 pour l’accès aux données D. En fait T2 agit comme un contrôleur d’accès aux données D. Toutes les actions sur D qui peuvent être effectuées en parallèle sont définies comme des procédures ; par contre, les actions en exclusion
- p.192 - vue 210/387
-
-
-
- Programmation et exécution d’applications réparties 193
- Corps de la tache Tl y' r , " Données D Procédure P
- / s- i :i
- ——^ """ Corps de la tâche Tl
- i i \
- T1.P(X) ; ^ 1 \
- i ♦
- Déclaration de T\ Déclaration de T2
- Exécution de Tl Exécution de Tl--------
- Figure 9. Exécution à distance de procédure dans Ada.
- mutuelle sont exécutées directement par Tl ; elles sont définies comme étant des entrées. Dans une tâche, une déclaration d’entrée se présente comme l’en-tête d’une déclaration de procédure. Ainsi dans T2, on peut trouver la déclaration
- entry E{X : in integer ; Y : out integer)
- qui signifie que E est une entrée à deux paramètres de type entier, le second étant modifiable.
- On peut trouver dans une autre tâche, par exemple Tl, un appel de la forme T2.£(4, Z). D’un point de vue externe, pour Tl, cet appel se comporte comme un appel de procédure : quand Tl passe à l’instruction suivante, le traitement correspondant à E, utilisant 4 et Z, a été fait. La valeur de Z, qui est un paramètre de sortie, a pu changer. En fait ce traitement est effectué par Tl qui doit exécuter pour cela une instruction particulière, accept, utilisée comme suit :
- accept E(X : in integer, Y : out integer) do Y-= X -fl end ;
- Tant qu’une instruction d’appel d’entrée n’a pas été effectuée, l’instruction accept est bloquante. Réciproquement, l’appel d’entrée bloque la tâche qui l’exécute jusqu’à ce que la tâche où est déclarée l’entrée ait terminé l’exécution d’une instruction accept correspondant à cette entrée, c’est-à-dire l’exécution des instructions comprises entre le do et le end associés à l’accept.
- Pour la même entrée, on peut trouver plusieurs instructions accept, ce qui permet de lui associer des traitements différents ; enfin le traitement peut être omis (absence de do... end), ce qui équivaut à effectuer uniquement un rendez-vous.
- p.193 - vue 211/387
-
-
-
- 194 Systèmes informatiques répartis
- 3) Attente multiple
- Ada offre la possibilité d’attendre indifféremment un appel parmi plusieurs possibles. Par exemple, l’énoncé
- select
- accept AT(...) do Tl end ;
- TL1
- or
- when C1 => accept Y(...) do T2 end ;
- TL2;
- end
- indique :
- — si Cl est faux, l’attente d’un appel de X,
- — si Cl est vrai, l’attente indifférenciée d’un appel de X ou de Y.
- Dans ce dernier cas, si aucun appel de X ou de Y n’a encore été fait, la tâche qui exécute le select est bloquée : elle reprendra en acceptant le premier appel qui se présente parmi les deux attendus. Lorsque le choix est possible, il est aléatoire.
- Le traitement de chaque branche de l’alternative est divisé par le end en deux parties, Ti et TLi ; durant Ti, la tâche appelante est en attente et durant TLi, elle peut poursuivre son exécution en parallèle.
- Notons que les traitements Ti et TLi sont des suites d’énoncés quelconques et peuvent contenir des select et des accept.
- Exemple. Nous reprenons l’exemple de la consultation-modification d’annuaires. A chaque annuaire est associée une tâche, appelée de l’extérieur pour une consultation ou une modification. Comme le point d’entrée consultation est réentrant, il est déclaré comme une procédure tandis que celui associé à la modification est déclaré comme entry. Ces deux points d’entrée sont décrits dans une partie « spécification externe de la tâche ». Dans le « corps » de la tâche, deux déclarations d’entry non accessibles de l’extérieur, debcons et fincons, sont utilisés par la procédure de consultation pour empêcher les consultations pendant une modification.
- Partie spécification externe :
- task annuaire 1 is
- procedure consultation\{nom : in identifier ; tel : out integer) ; entry modification\{nom : in identifier ; tel : in integer) ;
- end ;
- Corps de la tâche :
- task body annuaire 1 is lec : integer — 0 ; entry debcons ; entry fincons;
- procedure consultation\(nom : in identifier ; tel : out integer) is begin
- p.194 - vue 212/387
-
-
-
- Programmation et exécution d’applications réparties 195
- debcons;
- tel — < recherche annuaire ) ; fincons
- end ;
- begin
- loop
- select
- accept debcons ; lec •= lec + 1
- or
- accept fincons ; lec = lec — 1
- or when(/ec = 0) =>
- accept modification1
- {nom : In identifier ; tel : in integer) do < modification de l’annuaire > end
- end select end loop end
- end annuaire 1
- 7.423 Conclusion
- Les deux langages présentés peuvent être mis en œuvre sur des architectures réparties. Une compilation séparée de chaque processus ou tâche est possible. Une interprétation à l’exécution, à l’aide d’opérations d’envoi et de réception de messages, permet de réaliser les communications de CSP et les appels de procédures ou de points d’entrée de Ada.
- Dans l’exemple choisi, l’aspect statique de la définition des processus de CSP oblige à créer autant de processus de consultation qu’il peut y avoir de processus de dialogue. Dans Ada, la mise en œuvre la plus naturelle consiste a créer un nouveau processus à chaque appel de la procédure de consultation, pour la durée de la consultation. Le nombre de processus suit donc exactement les besoins ; si ce nombre devient trop important, une autre forme de programme doit être utilisée.
- 7.43 EXPRESSION DE LA RÉPARTITION DANS LES LANGAGES
- La répartition n’est pas toujours directement visible par l’utilisateur. Dans de nombreux cas, les systèmes permettent de dissimuler l’existence de plusieurs sites, en offrant par exemple un adressage uniforme, des accès à distance de même type que les accès locaux, etc.
- Cependant, dans certains cas, l’utilisateur a connaissance de l’architecture sur laquelle il travaille et il utilise alors des langages que l’on peut considérer comme spécifiques de la répartition. Parmi ceux-ci, certains ont pour rôle de définir et de contrôler l’organisation de l’architecture (langages de mise
- p.195 - vue 213/387
-
-
-
- 196 Systèmes informatiques répartis
- en œuvre), d’autres sont offerts aux programmeurs d’applications et sont analogues à des langages de commande : ils se superposent aux langages de programmation usuels et n’expriment que le contrôle de l’exécution répartie (langages de commande pour réseau). Enfin, on trouve des langages de programmation complets, avec des instructions spéciales pour gérer les problèmes de la répartition (langages de programmation d’architectures réparties).
- 1) Langages de mise en œuvre
- Ces langages sont utilisés par les responsables de l’organisation d’un réseau. Ils permettent en général :
- — d’établir une configuration initiale,
- — de modifier cette configuration par adjonction ou retrait dynamique d’éléments,
- — d’effectuer des contrôles sur le fonctionnement des divers éléments.
- Exemple. Le système SNA d’IBM offre un langage de ce type [Cypser 78] avec par exemple les commandes suivantes :
- — établissement de voies de communication :
- activate link < en-tête ), < adresse de voie )
- — connexion d’un élément physique :
- activate physical unit < code ), < procédure de récupération d'erreur ),
- < profil ),..., < identification )
- Certains systèmes peuvent ne pas offrir de tels langages si la configuration est toujours identique et définie statiquement : les programmes sont alors chargés manuellement.
- 2) Langage de commande pour réseau
- Un langage de commande pour réseau peut offrir aux programmeurs d’applications le choix du lieu d’exécution de leurs programmes et du lieu de production des résultats des exécutions.
- Choisir le lieu d’exécution peut être utile par exemple pour faire une sélection entre plusieurs processeurs : exécution d’un programme sur un ordinateur particulier, ou compilation d’un programme avec une version particulière d’un compilateur. Définir un lieu de production des résultats permet d’envoyer directement des résultats à distance. Un langage de soumission de travaux pour le réseau SNA d’IBM et le système associé a été défini dans ce sens [Simpson 78]. Il faut cependant noter que ce système a pour rôle initial de masquer l’existence du réseau à l’utilisateur et que des choix par défaut sont faits la plupart du temps à la place de l’utilisateur.
- 3) Langages de programmation d'architectures réparties
- Les langages de programmation d’architectures réparties servent aux programmeurs pour écrire des applications, en tenant compte des particularités de l’architecture support de leurs programmes. Lorsque ce sont des langages
- p.196 - vue 214/387
-
-
-
- Programmation et exécution d’applications réparties 197
- de « haut niveau », l’expression des applications est très proche de celle donnée en 7.42 (Ada ou CSP). Nous avons en effet utilisé ces langages en nous efforçant de satisfaire les contraintes d’une architecture répartie.
- Un exemple de langage de ce type est donné dans [Liskov 79] : c’est une extension du langage CLU [Liskov 77] qui permet d’écrire un programme sur une architecture composée de sites (processeurs et mémoire) reliés par des voies de communication. Un des objectifs du langage est d’obtenir une programmation efficace en adaptant bien les structures logiques des applications à l’architecture réelle.
- Les processus d’une application sont regroupés en classes, appelées gardiens (« guardians »). A l’intérieur d’un gardien, les processus peuvent accéder directement à des données communes mais la communication entre processus de gardiens différents se fait uniquement par le biais de messages. La mise en oeuvre d’une application consiste à définir des gardiens de telle façon qu’un gardien réside entièrement sur un site. En fait, les messages ne sont pas directement adressés de processus à processus mais passent par des portes : une porte est attachée à un gardien et possède un identificateur global, connu de l’ensemble du système. Cette technique permet de rendre la composition interne d’un gardien (nombre et identité des processus) invisible de l’extérieur. Deux primitives d’envoi et de réception de messages sur des portes sont définies : l’envoi est non bloquant, les risques d’erreurs (message perdu ou erroné) ne sont pas masqués. Une sélection sur le type des messages reçus est possible en utilisant un énoncé voisin des commandes gardées [Dijkstra 76].
- Les principaux éléments des systèmes répartis (sites, messages, portes) se trouvent donc exprimés dans ce langage.
- 7.44 CONCLUSION
- Comme nous l’avons vu en 7.34, une application répartie est généralement décomposée en plusieurs niveaux qui posent chacun des problèmes spécifiques. On est amené à choisir, selon le niveau, un langage de programmation plus ou moins indépendant de la répartition physique.
- Dans tous les cas, le programmeur d’une application a besoin de définir des processus parallèles et coopérants. Pour mettre en oeuvre ces processus, il faut pouvoir exprimer le lancement sur des sites différents ainsi que la communication entre sites.
- RENVOIS
- Références citées dans le chapitre 7
- Altaber 79, André E. 78, André F. 80a, Brinch Hansen 70, Brinch Hansen 77, Chesson 75, Conway 63, Crocus 75, Cypser 78, Dang 77, Dijkstra 68, Dijkstra 76, Farber 72a, Hewitt 77, Hewitt 79, Hoare 78, Ichbiah 79, Lampson 74, Le Guer-
- p.197 - vue 215/387
-
-
-
- 198 Systèmes informatiques répartis
- nie 80, Liskov 77, Liskov 79, McQueen 79, Organick 72, Simpson 78, Thomas 73, Thomesse 79.
- Illustrations concernant le chapitre 7
- 16, 17.
- Principaux ternies définis dans le chapitre 7
- Structures de contrôle, schéma de contrôle, passage de contrôle, liens de contrôle, contexte, activité, continuation, veilleur, serveur, liaison, répertoire, identificateur local, identificateur global, porte.
- p.198 - vue 216/387
-
-
-
- CHAPITRE 8
- ORDONNANCEMENT ET SYNCHRONISATION DES PROCESSUS
- 8.1 INTRODUCTION
- Dans tout système informatique, on doit disposer d’outils de synchronisation pour deux raisons principales :
- 1) des processus, même s’ils appartiennent à des applications indépendantes, entrent en compétition tant pour l’accès à des ressources, dont le nombre d’exemplaires est limité, que pour l’accès à des informations partagées ;
- 2) des processus d’une même application fonctionnent en coopération pour mener à bien l’application.
- La compétition et la coopération entre plusieurs processus requièrent des échanges d’information. Dans les systèmes centralisés, ceux-ci sont réalisés par l’accès en exclusion mutuelle à des variables partagées situées dans une mémoire commune. Dans un système réparti, les informations échangées empruntent les voies de communication.
- 8.11 EXEMPLE INTRODUCTIF
- A titre d’exemple, considérons le fonctionnement d’un parking pour automobiles. Les automobilistes qui veulent y garer leur voiture sont en compétition pour l’utilisation des places du parking.
- Si le parking comporte un accès unique surveillé par un seul gardien, celui-ci n’a qu’une connaissance partielle de la situation car il peut croire le parking plein alors que plusieurs voitures ont quitté leur place et sont en route vers la sortie ; dans ce cas il est amené à refuser des entrées alors que des places sont libres. Le gardien ne connaît donc pas l’état instantané du parking.
- S’il y a plusieurs accès et un gardien à chaque accès, chaque gardien ne connaît qu’avec retard les observations des autres et cela introduit un deuxième
- p.199 - vue 217/387
-
-
-
- 200 Systèmes informatiques répartis
- type d’incertitude dû à la multiplicité des centres de décision. En effet un gardien peut croire qu’il n’y a plus de place libre alors qu’un autre gardien vient de noter la sortie d’une voiture sans avoir eu encore le temps de l’en avertir. Inversement, plusieurs gardiens risquent d’allouer la même place à plusieurs voitures s’ils ne s’informent pas de son attribution. Les gardiens doivent donc coopérer pour attribuer correctement les places ; cette coopération est d’autant plus nécessaire qu’il reste peu de places à attribuer. Une méthode de coopération utilisable entre les gardiens est proposée en exercice 1.
- 8.12 ORDRE PARTIEL
- Dans les systèmes centralisés, la mise en oeuvre des outils de synchronisation repose sur un mécanisme d’exclusion mutuelle, qui fournit en fait un moyen d’ordonner totalement les événements. Mais, en toute rigueur, certains problèmes de synchronisation n’exigent qu’un ordre partiel entre les événements dont les processus à synchroniser sont le siège [André F. 80b].
- Dans un système réparti, la synchronisation repose uniquement sur l’établissement d’un ordre entre événements. Entre sites différents, cet ordre ne peut être réalisé que par l’échange de messages.
- Supposons défini un tel ordre sur l’ensemble des événements d’un système réparti, au moyen d’une relation notée -> et nommée précède. Cette relation doit satisfaire au minimum les contraintes suivantes :
- Cl : si A et B sont des événements d’un même site et si A est exécuté avant B, selon l’ordre local au site, alors on a : A B,
- C2 : si A est l’émission d’un message par un site et si B est la réception de ce message, alors on a : A -» B.
- Ordre local des événements
- Al -> A2 -» A3 -> A4 -> A5 Bl -> B2 -+ B3 -> B4
- Echanges de messages A2 -* B2 et B3 - A4 Transitivité
- Al -> A2 -» B2 -> B3 -*• B4 Bl -» B2 -* B3 -*• A4 -+ A5 Al —> A2 —> B2 —> B3 — A4 —> A5
- Exemples d’événements incomparables
- Bl et Al,A2,A3 A3 et B2, B3, B4
- Site 1 Site 2
- — B4
- A5 —
- Figure 1. Exemple d’ordonnancement partiel des événements d’un système.
- p.200 - vue 218/387
-
-
-
- Ordonnancemen t et synchronisation des processus 201
- La contrainte Cl exprime que l’ordre obtenu par la relation précède est compatible avec les ordres locaux définis sur chaque site. La contrainte C2 exprime le principe de causalité. La relation précède définit un ordre partiel sur l’ensemble des événements du système. Cet ordre est illustré sur la figure 1.
- 8.13 HYPOTHESES COMMUNES
- Les méthodes présentées dans ce chapitre reposent sur un ensemble d’hypothèses que nous allons énoncer.
- Les systèmes répartis sont constitués par un ensemble de sites interconnectés. Chaque site possède une mémoire privée et il n’y a pas de mémoire commune. Nous supposons que :
- H1 : tout site peut communiquer directement avec tout autre site (maillage logique),
- H2 : il n’y a pas d’erreurs de transmission, ni de pertes de message,
- H3 : l’ordre de réception sur un site j d’une suite de messages provenant du même site i est identique à leur ordre d’émission.
- H4 : la panne ou l’isolement physique d’un site sont détectés et signalés aux sites qui tentent de communiquer avec lui.
- Nous avons vu au chapitre 5 que le fonctionnement des réseaux de transport est généralement conforme à ces hypothèses.
- Nous étudions d’abord le fonctionnement des mécanismes en l’absence de panne, puis nous montrons l’effet d’une panne ou de la réinsertion d’un site (toujours dans l’hypothèse H4 ci-dessus). Nous supposons que la panne d’une voie de communication n’isole qu’un seul site et non un groupe de sites.
- 8.2 SYNCHRONISATIONS UTILISANT UNIQUEMENT L’ORDRE PARTIEL
- Nous avons indiqué en 8.12 les propriétés que doit vérifier un ordre partiel défini sur les événements dans un système réparti. Certains problèmes de synchronisation peuvent être résolus uniquement au moyen d’un tel ordre. Nous en donnons un exemple en 8.21 et nous présentons en 8.22 un mécanisme de synchronisation utilisable pour ce type de problème.
- 8.21 EXEMPLE DE PROBLÈME
- Prenons à titre d’exemple, un système producteur-consommateur [Crocus 75], dans lequel la capacité limitée d’absorption du consommateur impose au nombre de productions de ne jamais dépasser le nombre de consommations
- p.201 - vue 219/387
-
-
-
- 202 Systèmes informatiques répartis
- d’une valeur supérieure à N. Le producteur P et le consommateur C sont sur des sites différents.
- Soit NP le nombre de productions et NC le nombre de consommations, depuis l’instant initial. C ne peut consommer une information que si la production correspondante a eu lieu, c’est-à-dire si
- (1) NP - NC > 0 .
- De même P ne peut produire une information que si
- (2) N P - NC < N .
- Ces deux relations expriment les conditions de synchronisation. Elles sont illustrées sur la figure 2. On constate qu’un ordre partiel est défini sur l’ensemble des productions et des consommations.
- Pi---------------Q
- Légende
- a —- b : l’événement a précède l’événement b Pt : /-ième production C, : /-ième consommation
- Figure 2. Relations de précédence dans l’exemple du producteur-consommateur.
- Dans un système réparti, on peut mettre en oeuvre cette coopération de la manière suivante :
- a) On implante
- — sur le site de P, une variable NP représentant le nombre exact de productions faites,
- — sur le site de C, une variable NC représentant le nombre exact de consommations effectuées.
- b) On implante
- — sur le site de P, une variable NC', image de NC, que P incrémente chaque fois qu’il reçoit un message de C lui indiquant qu’une nouvelle consommation a eu lieu,
- — sur le site de C, une variable NP', image de N P, que C incrémente chaque fois qu’il reçoit un message de P signalant qu’une nouvelle production a eu lieu.
- p.202 - vue 220/387
-
-
-
- Ordonnancement et synchronisation des processus 203
- Nous allons montrer qu’une synchronisation correcte est assurée en vérifiant sur chaque site les conditions suivantes :
- — sur le site du consommateur :
- (3) NP' — NC > 0
- — sur le site du producteur :
- (4) NP - NC' < N .
- En effet nous pouvons écrire :
- (5) N P = N P' + np , avec np > 0,
- où np est le nombre d’informations produites par P et dont C n’a pas encore connaissance,
- (6) NC = NC' + ne, avec ne ^ 0,
- où ne est le nombre de consommations effectuées par C et dont P n’a pas connaissance.
- Compte tenu de (5) et (6), les conditions (3) et (4) impliquent les conditions initiales demandées (1) et (2).
- Remarque. On peut généraliser cette méthode à une condition de synchronisation de la forme :
- I c, X, > K
- i
- où C; et K sont des constantes ; il est toujours possible d’obtenir une condition plus forte en remplaçant tous les Xt dont le coefficient est positif par leurs images X[, si et seulement si les Xt sont des variables non décroissantes [Bochmann 79b].
- La mise en oeuvre habituelle de ce problème sur un système centralisé utilise l’exclusion mutuelle d’accès à des variables d’état partagées, représentant exactement le nombre de productions et de consommations. Ceci implique un ordre total entre les événements associés aux débuts de production et de consommation. En raison du couplage lâche existant entre le producteur et le consommateur, cet ordre total n’est pas nécessaire et il suffit d’utiliser pour les synchroniser des copies des variables d’état donnant une valeur approchée. Nous retrouverons ultérieurement d’autres exemples où on s’accomode d’une incertitude sur la valeur des variables d’état (voir chapitre 10).
- Remarque. Dans le problème du producteur-consommateur, si N = 1, il y a un couplage strict entre les deux processus, qui définit un ordre total strict entre les événements.
- p.203 - vue 221/387
-
-
-
- 204 Systèmes informatiques répartis
- 8.22 LES COMPTEURS D’ÉVÉNEMENTS
- Nous avons vu en 8.21 un exemple de problème utilisant des variables d’état entières non décroissantes, ce qui autorisait l’utilisation de copies approchées de ces variables. Un mécanisme de synchronisation, les compteurs d’événements, adapté à ce type de problèmes, est proposé dans [Reed 79]. Chaque compteur, variable entière non-décroissante, est associé à une classe particulière d’événements.
- Sur un compteur d’événement associé à la classe E sont définies trois primitives.
- avancer{E) : augmente de 1 la valeur du compteur, ce qui correspond à
- l’arrivée d’un événement de la classe E,
- consulter(E) : fournit la valeur courante du compteur associé à E,
- attendreiE, n) : suspend le processus appelant tant que la valeur du compteur est inférieure à n.
- Chaque compteur est initialisé lors de sa création.
- Pour prendre l’exemple de 8.21, avec les mêmes noms de variables, nous définissons :
- — deux compteurs d’événements N P' et NC', initialisés à 0,
- — deux variables entières NP et NC, initialisées à 0, locales respectivement au processus producteur P et au processus consommateur C,
- et nous écrivons les processus en conservant l’analogie.
- Producteur P
- cycle
- attendre(N C ', N P — N +1) ;
- { passage lorsque N P — NC'< N}
- production ;
- avancer(NP');
- NP := NP+ 1 fcycle
- Consommateur C
- cycle
- attendre{NP', NC +1) ;
- {passage lorsque NP' — NC > 0} consommation ; avancer(NC') ;
- NC* := NCP+1 fcycle
- Il faut observer que nous n’avons fait aucune hypothèse sur le site de résidence des compteurs NC' et NP'. On démontre la validité de cette solution en utilisant l’ordre partiel introduit en 8.21 (exercice 2).
- La mise en oeuvre des compteurs d’événements peut évidemment être réalisée en chargeant un processeur unique de leur gestion. Dans l’exercice 3, on trouvera une suggestion pour la mise en oeuvre de compteurs répartis.
- p.204 - vue 222/387
-
-
-
- Ordonnancement et synchronisation des processus 205
- 8.3 SYNCHRONISATION NÉCESSITANT UN ORDRE TOTAL STRICT
- Tous les problèmes de synchronisation ne peuvent pas être traités en utilisant un ordre partiel. Dans certains cas, il faut ordonner totalement, et de manière stricte, les événements d’un système. Les deux exemples que nous présentons sont relatifs à l’allocation de ressources. Précisons la terminologie employée : un processus émet une requête pour demander l’allocation d’une ressource ; un processus qui occupe une ressource émet un avis de libération quand il cesse de l’utiliser.
- 8.31 ALLOCATION CENTRALISEE
- Dans un système centralisé, une ressource est gérée par un allocateur unique. Celui-ci reçoit toutes les requêtes et avis de libération, les ordonne dans une file d’attente manipulée en exclusion mutuelle, et les traite en séquence dans l’ordre de la file.
- Dans un système réparti où l’allocateur est sur un site unique et les processus demandeurs sur d’autres sites, les requêtes et avis de libération sont transmis à l’allocateur par des messages qui circulent sur les voies de communication. Il est toujours nécessaire d’ordonner ces demandes.
- Si un seul message peut parvenir à la fois à l’allocateur, l’ordre d’arrivée réalise un ordonnancement strict. Si plusieurs messages peuvent arriver simultanément, leur rangement en exclusion mutuelle dans une file locale au site allocateur permet d’obtenir encore un ordre strict. L’ordre des messages ainsi obtenu sur le site de l’allocateur peut être différent de leur ordre d’émission, si les délais de propagation ne sont pas fixes, ce qui est le cas général dans les réseaux. Si l’on veut néanmoins traiter les messages dans un ordre qui ne tienne pas compte des délais de propagation (et présente donc une certaine équité), il est nécessaire de pouvoir ordonner globalement les émissions de messages provenant de sites différents. Les mécanismes décrits en 8.4 et 8.5 réalisent cette fonction.
- 8.32 ALLOCATION RÉPARTIE
- Pour des raisons de fiabilité et d’efficacité (voir chapitre 9), il peut être intéressant de répartir la fonction d’allocation sur plusieurs sites. Un fonctionnement cohérent des divers allocateurs est nécessaire pour assurer une allocation correcte. L’exemple suivant montre les problèmes qu’il faut résoudre.
- 1) Exemple d'incohérence
- Reprenons l’exemple du 8.11. Chaque gardien joue le rôle d’un allocateur des places du parking. Supposons qu’il y ait quatre gardiens et qu’à un certain
- p.205 - vue 223/387
-
-
-
- 206 Systèmes informatiques répartis
- instant il y ait exactement 100 places libres dans le parking. Chaque gardien dispose de cette information : l’état du système est alors cohérent. Trois de ces gardiens diffusent ensuite aux autres les trois messages suivants :
- M1 : 20 places de plus sont libres,
- M2 : 10 places de plus sont occupées,
- M3 : je réserve 10 % des places libres pour le nettoyage du parking.
- La figure 3 montre que si on n’impose pas de contrainte sur l’ordre de traitement des messages reçus par les gardiens, ceux-ci vont obtenir pour le nombre de places libres des valeurs différentes. Si chaque gardien entretient un exemplaire de l’état d’allocation des places, il faut, pour que ces exemplaires demeurent cohérents entre eux, exécuter la séquence des mises à jour dans le même ordre sur chaque site.
- Ordre de traitement Message Valeur Message Valeur Message Valeur Message Valeur
- 1 100 Ml 120 100 Ml 120 100 M3 90 100 M2 90
- 2 M 3 108 M2 110 Ml 110 M 3 81
- 3 M2 98 M3 99 M2 100 Ml 101
- Figure 3. Exemple d’incohérence entre des allocateurs initialement cohérents.
- 2) Algorithme réparti d'allocation
- Un fonctionnement cohérent de plusieurs allocateurs répartis gérant le même ensemble de ressources est obtenu en respectant les règles suivantes (où le terme de « message » désigne globalement requêtes proprement dites et avis de libération) :
- — les allocateurs exécutent tous le même algorithme,
- — chaque allocateur reçoit tous les messages émis par les processus,
- — les messages sont traités dans le même ordre par tous les allocateurs.
- Cette dernière règle nécessite l’établissement d’un ordre unique sur l’ensemble des messages du système. Cet ordre peut être réalisé par coopération entre les processus allocateurs (voir chapitre 9) ou entre les processus émetteurs des messages. Dans la suite de ce chapitre nous examinons deux politiques de coopération des processus émetteurs pour attribuer à chaque message une marque, telle que l’ensemble des marques attribuées soit totalement ordonné. Ces politiques résistent à la défaillance d’un site si l’hypothèse H4 du 8.13 est vérifiée.
- p.206 - vue 224/387
-
-
-
- Ordonnancement et synchronisation des processus 207
- 8.4 ORDONNANCEMENT AU MOYEN D’ESTAMPILLES
- Dans la méthode présentée ici, l’émetteur de chaque message lui associe un numéro appelé estampille. Ce numéro est la valeur instantanée, sur le site d’émission, d’une horloge logique locale à ce site. Les horloges des différents sites sont recalées au moyen de dialogues entre sites.
- 8.41 CONSTRUCTION D’UN ORDRE TOTAL STRICT
- L’algorithme suivant est proposé dans [Lamport 78] pour dater les événements d’un système réparti.
- Chaque site s est muni d’un compteur à valeurs entières, noté Hs et appelé horloge logique, qu’il incrémente entre deux événements successifs. Un site e qui émet un message le marque d’une estampille E égale à la valeur courante de He. A la réception du message, le site récepteur r met à jour sa propre horloge Hr selon l’algorithme suivant :
- si Hr < E alors Hr--= E + 1
- fsi
- L’événement « réception du message » est alors daté par la valeur de Hr. Cet algorithme assure que la date de réception d’un message est postérieure à celle de son émission.
- Cette datation permet de définir une relation d’ordre total, que nous notons
- et qui vérifie les deux conditions Cl et C2 du 8.12. Un événement a qui se produit sur un site i est daté par la valeur courante de l’horloge de ce site, notée H;(a). Si a et b sont deux événements localisés respectivement sur les sites i et j, on a, par définition :
- a -* b o H la) < H^b).
- Cet ordre total n’est pas strict : deux événements qui se produisent sur deux sites distincts peuvent avoir des dates identiques.
- On peut étendre la relation -> à une relation d’ordre total strict, notée =>, en associant un numéro distinct fixe à chaque site, et en datant chaque événement a du site i par le couple (Hla), i). Par définition :
- a => b <=> (Hla) < Hj(b)) ou (Hla) — Hj{b) et i < j ).
- 8.42 EXEMPLE D’UTILISATION
- Un exemple d’utilisation de ce système de datation pour la réalisation de l’exclusion mutuelle est donné dans [Lamport 78].
- p.207 - vue 225/387
-
-
-
- 208 Systèmes informatiques répartis
- 1) Présentation de Valgorithme
- L’exclusion mutuelle peut être réglée sur un site central qui reçoit des autres sites les messages de requête et de libération. Ce site maintient une file des requêtes, ordonnée suivant l’ordre d’arrivée, et les sert une à une dans cet ordre.
- Répartir cet algorithme implique de répartir la fonction d’allocation, donc de gérer une file par site. Chaque site doit donc recevoir les messages contenant les requêtes et les avis de libération de tous les autres sites. Un ordre identique sur chaque site est obtenu en estampillant les messages par leur heure logique d’émission et leur numéro de site. La relation d’ordre total définie précédemment est alors utilisée. De plus, pour qu’un site puisse prendre sa décision en consultant uniquement sa file, il doit avoir reçu un message de chacun des autres sites, pour garantir qu’un message antérieur aux autres n’est pas en transit.
- L’algorithme fonctionne comme suit.
- a) Chaque site i du réseau peut envoyer aux autres des messages de la forme (T, Hh i), où H, est l’estampille du message, c’est-à-dire son heure logique d’émission, et T peut prendre les trois valeurs REQ, REL, et ACQ, qui définissent trois types de messages :
- — un message REQ est diffusé à tous les sites quand le site i veut entrer en section critique,
- — un message REL est diffusé à tous les sites quand le site i a quitté sa section critique,
- — un message ACQ est renvoyé par le site j au site i, lorsque le site j a reçu du site i un message REQ.
- b) Chaque site gère une file de messages ordonnée totalement par la relation => suivant le couple (heure, numéro de site) de chaque message. Par construction, la file contient toujours un message et un seul en provenance de chaque site, y compris le site local (quand un message est envoyé par le site i, il est également enregistré dans la file de ce site). Supposons que chaque file contienne initialement les messages :
- Mt = (REL, Hinit, i)
- pour tout i, H;„it étant l’heure initiale identique pour tous les sites.
- c) Sur chaque site, lors de la réception d’un message (REQ, Hb i) ou (REL, i), ce message remplace M; quel qu’il soit. A la réception d’un message
- (ACQ, Hb i), celui-ci remplace le message M, sauf si est une requête, auquel cas ACQ est ignoré. (On peut donc faire l’économie de l’envoi du message ACQ par le site i quand celui-ci a déjà diffusé un message REQ et pas encore le message REL.)
- d) Un site i s’octroie le droit d’entrer en section critique lorsque sa requête REQ précède, au sens de la relation =>, tous les autres messages de sa file d’attente (qui, rappelons-le, contient un message par site).
- p.208 - vue 226/387
-
-
-
- Ordonnancement et synchronisation des processus 209
- 2) Justification de l'algorithme
- Les demandes d’entrée en section critique sont traitées dans l’ordre « premier arrivé, premier servi », au sens de la relation =>. Pour le démontrer, remarquons que, lorsque le site i décide d’entrer en section critique, il ne peut cheminer dans le réseau aucune requête REQyémise avant la sienne : en effet, quand le site i entre en section critique, c’est qu’il a reçu un message de tous les autres sites, et que tous ces messages sont postérieurs à son propre message REQ. Comme les messages ne peuvent se dépasser entre deux sites, la requête du site i précède, au sens de la relation =>, toutes les requêtes émises.
- On vérifie les propriétés suivantes.
- a) Un site i en section critique est le seul site en section critique. En effet, le message REQ émis par i demeure dans toutes les files d’attente jusqu’à ce qu’il soit remplacé par un message REL.
- b) Tout site qui a demandé à entrer en section critique y parvient en un temps fini, à condition que chaque site sorte de sa section critique au bout d’un temps fini. L’algorithme est équitable et il n’y a pas de privation.
- 3) Exemple
- Considérons le cas de 3 sites tels que les sites 1 et 2 demandent à entrer en section critique à l’instant 2 de leurs horloges logiques. L’ensemble des messages échangés entre les sites est donné sur la figure 4 où on a aussi représenté quelques états des files de messages.
- 4) Tolérance aux pannes
- Une panne qui survient sur un site quand celui-ci n’est pas en section critique ne perturbe pas le fonctionnement de l’algorithme à condition qu’elle provoque la diffusion d’un message spécial ABSENT, à la charge du réseau de transport. A défaut d'un tel dispositif, l’entrée en section critique devient rapidement impossible pour les autres sites si le site défaillant a envoyé une requête : celle-ci finit en effet par devenir antérieure à toutes les autres.
- Lorsqu’un site se réinsère dans le réseau après une défaillance, il doit reconstituer l’état courant des demandes. A cet effet, il diffuse un message RENTRÉE auquel chaque site répond en envoyant soit la date de sa dernière requête REQ non satisfaite, s’il en existe une, soit un message REL. Le réseau doit suppléer aux sites en panne en renvoyant pour eux un message ABSENT. Quand il a reçu toutes les réponses à son message RENTRÉE, le site qui s’est réinséré peut à nouveau envoyer des requêtes.
- 5) Commentaires
- Pour cet algorithme, il suffit à chaque site de connaître un état approximatif de tous les autres. Cette approximation ne met pas en défaut l’exclusion mutuelle ; elle peut tout au plus retarder l’entrée d’un site en section critique.
- CORNAFION. — Systèmes informatiques répartis
- p.209 - vue 227/387
-
-
-
- 210 Systèmes informatiques répartis
- Site 1 Site 2 Site 3
- section critique du site 1
- section critique' du site 2
- | temps
- REQ, 2, 1 2- REQ, 2, 1 3 REQ, 2, 1
- REQ, 2, 2 3 REQ, 2, 2 2 REQ, 2, 2
- A CQ, 6, 3 ' 1' ACQ, 4, 3 5 REL, 0, 3
- REL, 10, 1 11
- REQ, 2,2 2
- ACQ, 4,3 5
- Le site 1 entre en section critique à Hx = 7 Le site 2 entre en section critique à H2 = H
- Figure 4. Exemple d’exclusion mutuelle au moyen d’estampilles.
- 8.43 CONCLUSION
- Les estampilles fournies par les horloges logiques permettent de dater les événements et de définir entre eux un ordre total strict. Toutefois, il n’y a pas de relation biunivoque entre les événements et les valeurs des estampilles. La réception, sur un site donné, d’un message estampillé, ne permet pas à elle seule de déterminer si un événement antérieur à la date de cette estampille s’est
- p.210 - vue 228/387
-
-
-
- Ordonnancement et synchronisation des processus 211
- produit ou non. Pour cela il faut en outre avoir reçu un message de chacun des autres sites.
- Une autre méthode d’ordonnancement à base d’estampilles [Kaneko 79] est présentée dans l’exercice 4. Elle utilise la diffusion systématique des heures logiques. Cette méthode paraît plutôt adaptée à la coopération entre processus, mettant en jeu une communication par colloque (voir 5.4), car elle permet à chaque site de connaître l’état des autres sites avec une bonne précision. Elle a été proposée pour la gestion de copies multiples dans une base de données réparties.
- 8.5 ORDONNANCEMENT PAR SÉQUENCEUR
- 8.51 NOTION DE SÉQUENCEUR
- La notion de séquenceur [Reed 79] a été introduite pour numéroter et ordonner les événements d’un système, en évitant les inconvénients d’une numérotation présentant des « trous », telle que celle fournie par les estampilles.
- Un séquenceur est un objet qui délivre sur demande une valeur entière non négative. A deux demandes consécutives, il répond par deux valeurs consécutives. La valeur 0 est fournie à la première demande.
- Pour obtenir une valeur d’un séquenceur S, un processus appelle une fonction ticket(S). Chaque valeur obtenue sert à numéroter un événement et un seul. Supposons que tous les événements soient numérotés par un séquenceur unique S. Quand un processus donne à un événement un numéro t obtenu par ticket(S), on peut affirmer, en l’absence de pannes :
- a) que les t événements portant un numéro inférieur à t se sont produits,
- b) que le numéro d’événement suivant attribué par le séquenceur est égal a t + 1.
- Toute réalisation d’un séquenceur doit posséder les deux propriétés suivantes :
- PI : si a et b sont les événements correspondant à l’exécution d’opérations ticket sur le même séquenceur S, alors a -> b ou b -> a ;
- P2 : si a est une exécution de t — ticket(S), alors la valeur affectée à t est le nombre des opérations ticket{S) qui ont précédé a.
- La propriété PI exprime l’exclusion mutuelle sur les opérations ticket.
- La propriété P2 exprime l’absence de trou dans la numérotation.
- La mise en oeuvre d’un séquenceur dans une architecture monoprocesseur ou multiprocesseur à mémoire commune se fait en utilisant un mécanisme élémentaire d’exclusion mutuelle. Dans une architecture répartie, cette mise en oeuvre peut également être facilitée par la présence de voies de communications
- p.211 - vue 229/387
-
-
-
- 212 Systèmes informatiques répartis
- utilisées en exclusion mutuelle et en particulier par l’existence d’un anneau unique ou d’une voie unique à diffusion.
- Une mise en oeuvre plus générale d’un séquenceur S dans un système réparti, consiste à faire circuler entre les sites une marque unique ou privilège portant la valeur courante du séquenceur. Quand un site est en possession du privilège, il a le droit d’exécuter ticket(S). Nous examinons d’abord deux méthodes permettant la circulation d’un privilège, puis nous donnons un algorithme de mise en oeuvre de l’opération ticket. Nous présentons ensuite une deuxième mise en oeuvre qui repose sur l’utilisation d’une voie à diffusion qui relie tous les sites, et sur l’entretien d’une copie du séquenceur sur chaque site.
- 8.52 SÉQUENCEUR CIRCULANT
- 8.521 Anneau virtuel
- Pour mettre en oeuvre un privilège, il faut d’abord définir un itinéraire pour son parcours. Une méthode simple consiste à disposer les sites sur un anneau unidirectionnel de communication : chaque site ne communique qu’avec deux sites voisins.
- Considérons un réseau totalement maillé, c’est-à-dire un ensemble de N sites dont chacun peut communiquer avec tous les autres. Un numéro unique, compris entre 0 et N — 1, est attribué une fois pour toutes à chaque site. Chaque site i a un voisin de droite,' ou successeur, dont le numéro est noté suc[i] et un voisin de gauche, ou prédécesseur, dont le numéro est noté pred[i]. Cette disposition définit un anneau virtuel. En fonctionnement normal, les N sites sont présents sur l’anneau ; on a alors :
- suc[i\ = i + 1 modulo N pred[i] — i — 1 modulo N .
- Les algorithmes que nous présentons sont fondés sur le principe suivant : le privilège est matérialisé par une certaine configuration de variables d’état, et tourne sur l’anneau virtuel toujours dans le même sens.
- La bonne marche des algorithmes, en cas de panne d’un site, nécessite de pouvoir reconstruire l’anneau. Cette opération, appelée reconfiguration, comporte la mise à jour des valeurs suc et pred des voisins du site défaillant ; elle ne présente pas de difficulté, à condition que la panne ne détruise pas le maillage logique total. Lorsque le site défaillant peut de nouveau fonctionner, une opération de réinsertion permet de le réintégrer dans l’anneau. Il est souhaitable que les opérations de reconfiguration et de réinsertion soient prises en charge par le réseau de transport.
- 8.522 Privilège matérialisé par des variables d’état
- Le premier algorithme que nous présentons est une adaptation [Mossière 77] d’un algorithme proposé dans [Dijkstra 74].
- p.212 - vue 230/387
-
-
-
- Ordonnancement et synchronisation des processus 213
- 1) Fonctionnement en l'absence de pannes
- Un entier K (K > 1) est choisi pour l’ensemble du système. Sur chaque site i (i variant de 0 à iV — 1), un processus Pt assure la circulation du privilège en respectant les règles suivantes :
- — chaque processus Pt possède une variable d’état S[i\ pouvant prendre des valeurs entières comprises entre 0 et K — 1 ;
- — chaque variable S[i\ est modifiable par Pt et peut être lue par le successeur de P,..
- L’algorithme de circulation de l’état privilégié est le suivant :
- — le processus Pt possède le privilège lorsque :
- S[i] ^ S[i — 1] pour i ^ 0
- S[0] = S[N — 1] pour i — 0 ;
- — lorsqu’un processus Pt possède le privilège, il doit l’abandonner au bout d’un temps fini et il change alors son état :
- S[i] := S[i - 1] , si i Ï 0
- S[0] := S[0] + 1 mod^f, si i = 0 .
- C’est le seul cas où un processus modifie ses variables d’état.
- Si tous les processus Pt appliquent cet algorithme, l’équité est assurée puisque chaque processus reçoit le privilège à tour de rôle.
- Prenons un exemple avec N = 3 et K = 2. Si l’état initial des trois variables d’état est 000, le système passe par les états suivants (on note d’une astérisque la variable du processus privilégié) :
- Ôoo-iÔo-iiÔ-Tn-oïi-ooï.
- La figure 5 montre l’évolution du système dans ce cas.
- S[{\‘ sm ‘ S[i\‘
- 1 1 « -"I 1‘ i—•-, 11 i y « «
- 0 i • • o i i ^ i \ - —• 0 I 1—^ i L-• 0 1 1^ i i
- __I_L_____I_!_ I _I_I___I_J_
- 012 012 012 012
- * * * . *
- (a) (b) (c) (d)
- Légende : le processus marqué par * détient le privilège.
- Figure 5. Evolution des variables d’état.
- p.213 - vue 231/387
-
-
-
- 214 Systèmes informatiques répartis
- On peut assimiler le passage du privilège à la progression d’un front matérialisé sur la figure 5 par un tracé en pointillé. En bout de progression, le front disparaît (fig. 5d) et il est régénéré grâce au caractère dissymétrique de P0. On trouve dans [Mossière 77] la preuve formelle de la validité de cet algorithme.
- Remarque. Le privilège est unique, ce qui permet de futiliser pour l’exclusion mutuelle. Lin site qui reçoit le privilège mais qui ne veut pas entrer en section critique doit le libérer immédiatement.
- 2) Panne d'un processus différent de P0
- L’élimination d’un processus différent de P0 ne provoque ni disparition, ni apparition de privilège, à condition que l’anneau soit reconfiguré. On peut le vérifier sur la figure 5 : aucun nouveau front n’est créé par la disparition d’un processus ; les seuls cas où le front est supprimé sont ceux correspondant à des situations analogues à la disparition de P2 dans la figure 5c. Dans ces cas P0 régénère normalement un nouveau front.
- 3) Panne de P0
- L’élimination de P0 rend impossible la régénération du front en bout de course (fig. 5d). Il est cependant important de noter que l’exclusion mutuelle n’est pas mise en défaut.
- Il est possible de détecter la disparition de P0 et de le remplacer par un des autres processus : sur un anneau, le processus qui doit jouer le rôle de P0 est en effet le seul pour lequel pred[i] > i.
- Chaque processus est donc programmé pour pouvoir remplacer P0 :
- si pred[i] > i
- alors
- < comportement selon P0 )
- sinon
- < comportement selon P, )
- fsi
- Remarque. En cas de coupure de l’anneau en deux sous-anneaux indépendants, le remplacement de P0 entraîne une violation de l’exclusion mutuelle globale : chaque sous-réseau dispose d’un processus privilégié et d’un seul. Si on admet cette situation, la reconfiguration de l’anneau virtuel initial est une opération complexe ; sinon, on se contente d’attendre la réparation de P0.
- 4) Réinsertion d'un processus
- Quand un processus i se réinsère après un incident, il faut d’abord reconfigurer l’anneau virtuel. Puis le processus doit réinitialiser S[i]. Pourvu que le site j = suc[i] n’autorise pas la lecture de sa variable S[j ] pendant le temps où il est en section critique, il suffit que i fasse :
- si j < i alors S[i] — S[j ] — 1 mod K sinon S[i] S[j ]
- fsi
- p.214 - vue 232/387
-
-
-
- Ordonnancement et synchronisation des processus 215
- 8.523 Circulation d’un jeton
- Dans le deuxième algorithme [Le Lann 78b], le privilège est matérialisé par un message spécial, ou jeton, qui circule sur l’anneau. La panne d’un site peut entraîner la perte du jeton. Des variables d’état entretenues sur chaque site fournissent des informations redondantes, utilisées pour regénérer le jeton en cas de perte. L’algorithme est mis en oeuvre comme suit.
- 1) Le jeton porte une valeur v (analogue à la hauteur du front dans l’algorithme du 8.522); chaque site j possède une variable d’état S[j]; avant la retransmission du jeton les actions suivantes sont effectuées :
- S[j ] := v pour ; # 0
- v = v + 1 mod K ; S[j ] — v pour j = 0.
- 2) A chaque passage du jeton sur un site j, une horloge de garde est armée. Si elle se déclenche avant l’arrivée du jeton, j consulte la variable d’état S[î\ de son prédécesseur i = pred(j) sur l’anneau. Si l’une des deux conditions suivantes est vérifiée :
- j > i et S[j] ^ S[i]
- ou
- j < i et S[j] = S[i]
- alors le jeton est considéré comme perdu. Le site j le régénère en lui donnant la valeur correcte S[i], et réarme l’horloge de garde.
- 8.524 Mise en oeuvre d’un séquenceur circulant
- Les deux algorithmes fondés sur la circulation d’un privilège peuvent être utilisés pour réaliser un séquenceur. Dans le deuxième algorithme, par exemple, on adjoint au jeton un compteur à valeurs entières que seul le site possédant le jeton peut incrémenter et consulter. Les valeurs résultant de ces consultations sont considérées comme le résultat d’opérations ticket exécutées sur le site.
- L’intérêt apparent de cette méthode de numérotation sans trou est d’éviter un dialogue entre sites pour connaître le numéro de l’événement qui suit un événement donné. Mais en fait, ce dialogue a lieu pour obtenir le numéro courant. La distinction entre cette méthode et celle des estampilles s’atténue encore en cas de panne. En effet, quand le site défaillant ne s’est pas servi des numéros obtenus, l’allocateur doit retrouver le nombre et la valeur de ces numéros, ce qui nécessite des dialogues avec d’autres sites (voir exercice 5).
- 8.53 SÉQUENCEUR SUR UNE VOIE A DIFFUSION
- On considère le cas où la communication entre les sites s’effectue par une voie unique à diffusion, chaque site étant relié à cette voie par un communicateur [Banino 79]. La compétition pour l’accès à la voie, le traitement des colli-
- p.215 - vue 233/387
-
-
-
- 216 Systèmes informatiques répartis
- sions et la réception des messages sont réalisés par ces communicateurs selon les techniques présentées aux chapitres 3 et 4. Par construction, un seul message est diffusé à la fois.
- On suppose que chaque communicateur diffuse les messages sur la voie suivant l’ordre selon lequel le site les lui communique et qu’il répercute vers le site tous les messages qui sont diffusés sur la voie, y compris ceux émis par le site lui-même. Si on suppose que la voie fonctionne sans perte de message, tous les communicateurs classent les messages dans le même ordre ; on dispose ainsi d’un ordonnancement global (voir fig. 6).
- Pour réaliser un séquenceur réparti S chaque site i entretient un compteur local et exécute le même algorithme.
- — Lorsqu’un processus appelle sur un site une opération ticket(S), une requête est déposée dans la file d’entrée du communicateur. Le processus demandeur attend que la requête apparaisse dans la file de sortie du communicateur : à ce moment, la requête a été diffusée et elle est interclassée avec les autres messages.
- — Un site i traite toutes les requêtes ticket(S) qui figurent dans la file de sortie de son communicateur. Quand une requête provient d’un autre site, le site i se contente d’incrémenter son compteur local. Quand cette requête provient d’un processus du site i, ce processus reçoit la valeur courante du compteur local, et celui-ci est incrémenté.
- Voie à diffusion
- ordre
- global
- (file
- de sortie)
- ordre
- local
- (file L d’entrée)
- Site K
- Site I
- Site J
- Communicateur
- Communicateur
- Communicateur
- Figure 6. Mise en œuvre d’un séquenceur sur une voie à diffusion : fonctionnement des communicateurs.
- En cas de panne d’un site, les autres sites continuent à fonctionner avec l’algorithme ci-dessus. Il y a simplement un compteur en moins.
- Pour se réinsérer, un site i envoie une requête de réinsertion vers l’un quel-
- p.216 - vue 234/387
-
-
-
- Ordonnancement et synchronisation des processus 217
- conque des autres sites, soit j, et se met à l’écoute de la voie sur la file de sortie de son communicateur. Le site j lui renvoie un message de synchronisation pour mise à jour. Quand ce message apparaît dans la file de sortie des communicateurs :
- — le site j qui l’a émise sait qu’il peut envoyer au site i la valeur courante de son compteur ;
- — le site i sait qu’il va pouvoir se réinsérer ; pour cela, il commence par ignorer tous les messages qui précèdent le message de synchronisation; arrivé à ce dernier, il conserve, sans les traiter, tous les messages qui le suivent et cela jusqu’à l’arrivée de la valeur courante du compteur envoyée par le site j ; après cette arrivée, il traite les messages qui suivent le message de synchronisation.
- Les autres sites n’ont pas à intervenir ; ils ignorent donc la requête de réinsertion, le message de synchronisation et la valeur transmise.
- Cette méthode de mise à jour peut aussi être utilisée par les sites pour se communiquer, afin de faire des vérifications périodiques, les valeurs de leurs compteurs.
- 8.6 CONCLUSION
- L’état des éléments d’un système informatique réparti n’est connu qu’avec incertitude à cause des délais variables de la transmission sur les voies de communication, de la multiplicité des centres de décision et de l’éventualité des pannes.
- Nous avons étudié certains problèmes de synchronisation qui peuvent être traités malgré cette incertitude et nous avons montré que d’autres problèmes nécessitent de la lever, à l’aide d’un ordre total, dont la mise en œuvre s’appüie sur une numérotation des événements.
- Nous avons fait l’hypothèse qu’une panne d’un site ou d’une voie de communication n’empêchait pas les autres sites de communiquer entre eux. Il peut arriver qu’il n’en soit pas ainsi, et que le réseau ou l’anneau virtuel soit divisé en deux sous-réseaux ou deux sous-anneaux. Deux numérotations vont se poursuivre indépendamment, une dans chaque sous-ensemble. Si cette situation est incompatible avec les spécifications de l’application, il suffit d’ajouter, comme condition de fonctionnement d’un réseau ou d’un anneau virtuel, la présence d’un nombre d’éléments égal à la majorité absolue des sites initiaux.
- EXERCICES
- Exercice 1 : coopération entre les gardiens d’un parking.
- Considérons un parking pour automobiles, doté de N places et possédant au moins deux accès. Une automobile a le comportement suivant :
- entrer ; stationner ; sortir.
- p.217 - vue 235/387
-
-
-
- 218 Systèmes informatiques répartis
- Le contrôle de l’accès consiste à répertorier le nombre E des véhicules entrés, le nombre S des véhicules sortis, et à vérifier avant l’entrée d’un nouveau véhicule que le nombre X de places libres est bien positif. C’est-à-dire :
- X = N- E + S> 0.
- Dans un « système réparti », un contrôleur intervient à chaque accès du parking pour régler les entrées. Chaque contrôleur C£ connaît exactement le nombre d’entrées Et ainsi que le nombre de sorties St qu’il a enregistrées. Soit M le nombre de contrôleurs. On veut munir chaque contrôleur Q d’une variable Xt, « estimation du nombre X de places libres dans le parking », afin qu’il puisse utiliser la condition locale
- X, > 0
- pour autoriser l’entrée d’un véhicule.
- 1) Montrer que X-x doit être un minorant de X ; remarquer que X n’est pas un compteur monotone.
- 2) On s’intéresse au mode de gestion des variables Xt.
- a) A l’initialisation du système, on effectue :
- N si i = 0
- 0 si i A 0 .
- X-
- b) Quand C, enregistre une entrée, on fait :
- X := X — 1 .
- c) Quand C£ enregistre une sortie, on fait :
- Xt := Xt + 1 .
- d) Tout contrôleur C, a la latitude d’effectuer la séquence d’actions, où A est une quantité arbitrairement choisie, inférieure àl£ :
- envoi de X; à C,
- i + 1 modulo M'
- e) A la réception d’un message Xt_lm X{ := Xi + Xi
- — 1 moduloM’
- i — 1 moduloM •
- C, effectue :
- Montrer que, à tout instant :
- p.218 - vue 236/387
-
-
-
- Ordonnancement et synchronisation des processus 219
- Montrer que, lorsque aucun message n’est en cours d’acheminement, on a :
- i
- Remarque
- Imaginons que les contrôleurs attribuent un badge à chaque véhicule qui entre et récupèrent un badge sur chaque véhicule qui sort. Chaque contrôleur C; garde un certain nombre de badges pour sa gestion locale et passe ceux qu’il a en trop à son collègue Ci+1. On réalise ainsi la méthode du contrôle isarithmique, présentée au chapitre 9.
- Exercice 2.
- Prouver que l’on a bien, dans l’exemple du 8.22. les relations de précédence : i-ième production -> i-ième consommation (i + iV)ième production.
- Dans ce but, on établira que
- i-ième opération avancer(E) —> attendre(E, i).
- Exercice 3.
- 1) Imaginer la mise en oeuvre d’un compteur d’événements réparti sur N sites. On suppose, dans un premier temps, les sites parfaitement fiables, et on installe sur chaque site un compteur des événements locaux. Décrire comment un site peut obtenir une valeur « image » du compteur d’événements sur chaque site. Discuter des problèmes posés par la panne d’un site.
- 2) On installe maintenant sur les N sites une image du compteur réparti d’événements, incrémentée par diffusion à chaque arrivée d’événement. Quels sont les problèmes posés par cette solution ?
- Exercice 4 : méthode de l’alignement des horloges logiques.
- Dans cette méthode [Kaneko 79], chaque site St est muni d’une horloge logique Ht qui sert à estampiller les messages. L’incrémentation de cette horloge se fait en deux étapes :
- El : chaque site St diffuse à tous les autres un message d’incrémentation, ZK,, quand Ht progresse de K — 1 à K,
- E2 : chaque site St fait progresser son horloge Ht de K à K + 1 quand il a reçu les messages ZK de tous les autres sites et quand il a fini les traitements réservés au temps K.
- a) Montrer que cette datation possède la propriété intéressante suivante :
- si un site St envoie un message M à l’heure logique Hi = K, alors ce message
- est reçu par son destinataire Sj au plus tard à l’heure Hj = K + 1.
- b) Comme corollaire, à l’heure K + 2 tout site St connaît l’ensemble des messages qui lui ont été adressés à l’heure K par les divers sites du système. Il n’y a plus de messages en circulation avec l’estampille K.
- p.219 - vue 237/387
-
-
-
- 220 Systèmes informatiques répartis
- Cela permet de mettre en œuvre des algorithmes répartis qui, à l’heure logique K + 2, traitent la situation déterminée par l’ensemble des requêtes de l’heure K. Comme les allocateurs ont toutes les requêtes de l’heure K, il suffit qu’ils exécutent tous le même algorithme et qu’ils effectuent de la même manière l’ordonnancement des requêtes de l’heure K. S’il y a conflit, on peut utiliser un ordre total prédéfini entre les sites et une règle de priorité locale à chaque site, la plus simple étant l’ordre d’émission des requêtes du même site.
- Dans cette méthode, plusieurs requêtes émises par un site peuvent porter la même estampille. On peut régler la cadence d’incrémentation des horloges logiques, en agissant sur le délai d’émission des messages d’incrémentation ZK, et ainsi intervenir sur le nombre des requêtes datées par la même estampille.
- Montrer comment traiter l’exclusion mutuelle et comparer le nombre de messages avec celui de la méthode de Lamport. Montrer aussi comment gérer des copies multiples.
- c) L’alignement des horloges logiques permet aussi de dater les pannes d’un site. En effet si le site St tombe en panne à l’heure Ht = K, ce site n’envoie pas le message d’incrémentation ZK+1. Or, tous les autres sites ont besoin de ce message pour avancer leur horloge à K + 2. Donc si un site Sb ou la voie de communication entre S{ et Sh tombe en panne à l’heure Ht = K, les horloges logiques ne progressent plus tant que la panne n'est pas détectée. En conséquence tout site Sj détecte la panne avant l’heure Hj = K + 2, ce qui permet de faire des retours en arrière. Chaque site détecte la panne à l’aide d’un délai de garde qui permet de ne pas attendre indéfiniment le message ZK. L’entretien des horloges de garde est assuré par le réseau de transport.
- Montrer comment traiter les pannes dans l’algorithme de l’exclusion mutuelle et dans l’algorithme de gestion des copies multiples.
- Exercice 5.
- Lorsqu’un séquenceur circule sur un anneau virtuel, il peut se poser de nombreux problèmes en cas de panne d’un site.
- a) Le site en panne peut ne pas s’être servi des numéros qu’il a tirés, ce qui peut mettre en défaut un algorithme d’ordonnancement.
- b) Lorsqu’un site tombe en panne alors qu’il détient le jeton, son voisin de droite va recréer le jeton. Si le site en panne a tiré un numéro, cette opération sera ignorée du voisin de droite. Or, le site avant la panne a pu se servir du numéro tiré.
- c) Un site qui se réinsère doit retrouver une valeur convenable du jeton. Analyser ces différents cas et proposer des remèdes (même imparfaits).
- Exercice 6.
- Dans [Le Lann 79], on associe à chaque ressource critique un séquenceur : SA, SB, Sc par exemple. On groupe les séquenceurs sur un même jeton unique, dit multivalué.
- p.220 - vue 238/387
-
-
-
- Ordonnancement et synchronisation des processus 221
- Montrer que, pour mettre en oeuvre une politique d’allocation sans risque d’interblocage, il suffit de tirer, au passage du jeton, un numéro pour chacune des ressources que l’on veut acquérir.
- RENVOIS
- Références citées dans le chapitre 8
- André F. 80b, Banino 79, Bochmann 79b, Crocus 75, Dijkstra 74, Kaneko 79, Lamport 78, Le Lann 78b, Le Lann 79, Mossière 77, Reed 79.
- Principaux termes définis dans le chapitre 8
- Compétition entre processus, coopération et synchronisation de processus, compteur d’événements, estampille, séquenceur, anneau virtuel, privilège, jeton.
- p.221 - vue 239/387
-
-
-
- p.222 - vue 240/387
-
-
-
- CHAPITRE 9
- ALLOCATION DE RESSOURCES
- 9.1 INTRODUCTION
- L’allocation de ressources est habituellement présentée comme l’une des principales fonctions des systèmes d’exploitation. On trouvera dans les ouvrages consacrés à ces systèmes (notamment [Crocus 75]) une présentation des problèmes de l’allocation de ressources et des solutions proposées pour les systèmes à mémoire commune. Ce chapitre traite plus particulièrement des problèmes et des solutions propres aux systèmes répartis, et suppose une certaine connaissance de l’allocation de ressources centralisée. Nous commençons par un rappel de la terminologie.
- L’exécution des processus d’une application répartie nécessite des objets divers tels que processeurs, unités périphériques, mémoires, fichiers, mais aussi droit d’accès exclusif à une information, droit d'utilisation d’un programme. Nous définissons une ressource comme un objet auquel sont associées des règles d’utilisation et de partage : accès exclusif, accès partagé, avec ou sans limitation du nombre d’utilisateurs. Dans un système réparti, il est souvent commode d’utiliser la notion de transaction (voir chapitre 10) comme entité utilisatrice des ressources. Une transaction est une opération constituant un tout logique, dont la mise en oeuvre peut impliquer l’exécution d’un processus unique ou de plusieurs processus localisés sur des sites distincts. C’est surtout dans ce dernier cas que nous utiliserons les transactions.
- Un processus qui a besoin d’une ressource pour son exécution doit la demander au préalable à un allocateur en émettant une requête ; il reste bloqué tant que la ressource n’est pas disponible. L’allocateur peut être réalisé de manières diverses : processus unique, ensemble de processus, ensemble de procédures. Les requêtes peuvent également prendre des formes diverses : appel de procédure, message, exécution d’instructions spéciales. Le terme de charge désigne l’ensemble des requêtes soumises à un allocateur; la charge est caractérisée par le nombre, la nature, la répartition dans le temps des requêtes qui la constituent. Une requête est satisfaite par l’allocation de la ressource demandée au processus demandeur, qui peut alors en disposer selon les règles d’utilisation fixées. Il y a deux manières pour un processus de
- p.223 - vue 241/387
-
-
-
- 224 Systèmes informatiques répartis
- perdre l’usage d’une ressource qui lui est allouée : par libération (le processus déclare qu’il cesse d’utiliser la ressource) ou par réquisition (la ressource est autoritairement retirée au processus par l’allocateur).
- Le bon fonctionnement d’un ensemble de processus utilisant un ensemble de ressources nécessite que soient évités interblocage et privation. L’interblocage ou blocage mutuel, est un blocage définitif de plusieurs processus qui peut se produire lorsque des processus déjà détenteurs de ressources émettent de nouvelles requêtes : ainsi deux processus sont en interblocage si chacun attend une ressource déjà allouée à l’autre. La privation est l'attente indéfinie d’un processus dont une requête est indéfiniment retardée, par exemple à cause de l’application d’une règle de priorité pour l’allocation de ressources.
- Une mauvaise politique d’allocation de ressources peut également être à l’origine de la dégradation des performances d’un système, par des phénomènes de congestion dus à l’accumulation de requêtes non satisfaites pour certaines ressources. Un exemple en est fourni par l’écroulement d’un système multiprogrammé. Pour éviter ces phénomènes, l’allocateur de ressources doit assurer une fonction de régulation, dont on peut distinguer deux aspects :
- — Répartition des requêtes entre un ensemble de ressources équivalentes (ou « banalisées ») susceptibles de les satisfaire. Cette fonction est appelée distribution de charge. Dans un système réparti, elle doit notamment permettre d’éviter des situations où des requêtes attendent d’être satisfaites sur un site encombré, alors que des ressources équivalentes sont inoccupées sur un autre site.
- — Limitation du nombre de requêtes autorisées pour certaines ressources. Cette limitation peut notamment être obtenue par la limitation (statique ou dynamique) du nombre de processus ou de transactions admis à utiliser tout ou partie des ressources. On parle alors de régulation de charge globale.
- En résumé, l’allocateur doit attribuer les ressources en respectant leurs règles d’utilisation, en évitant interblocage et privation, en distribuant la charge entre les ressources pouvant la satisfaire, et en la limitant au besoin pour maintenir des performances acceptables.
- Le but de ce chapitre est d’analyser les problèmes nouveaux posés par la répartition, et de présenter des algorithmes fonctionnant de manière répartie. Après avoir examiné en 9.2 le cas d’une ressource unique, nous présentons en 9.3 les problèmes soulevés par l’allocation de plusieurs ressources, et plus particulièrement le traitement de l’interblocage. Ce problème a déjà été étudié dans le cas où les décisions d’allocation sont confiées à un allocateur unique possédant à tout instant une connaissance complète de l’état du système. Lorsque la fonction d’allocation doit être réalisée sur plusieurs sites, plusieurs classes de solutions sont envisageables : se ramener au cas de l’allocateur unique, ou répartir entre les sites la représentation de l’état et la fonction d’allocation. Ces solutions sont illustrées par des exemples d’algorithmes.
- Nous étudions en 9.4 la régulation de charge globale réalisée de manière répartie ainsi que la distribution de charge entre les sites d’un système réparti.
- p.224 - vue 242/387
-
-
-
- Allocation de ressources 225
- Remarque. Les réalisations mettant en oeuvre une allocation de ressources répartie sont encore rares et on dispose de peu d’expérience sur leur fonctionnement. De nombreux algorithmes sont restés à l’état de propositions, parfois appuyées par des simulations ou des démonstrations. Il nous a néanmoins semblé utile de présenter les algorithmes les plus représentatifs à ce jour, car ils mettent en évidence des problèmes réels.
- 9.2 ALLOCATION D’UNE RESSOURCE UNIQUE
- Le problème de rallocation d’une ressource unique, localisée sur un site dans un système réparti, consiste à attribuer cette ressource à un ensemble de processus, en respectant des règles imposées : accès exclusif ou partagé, priorité, absence de privation, etc. Les processus demandeurs peuvent s’exécuter sur le site de la ressource ou sur des sites distants.
- La gestion des accès à une ressource unique peut être réalisée de deux manières : accès par un processus unique ou accès par des processus concurrents.
- 9.21 ACCÈS PAR SERVEUR UNIQUE
- Un processus unique, ou serveur (voir 7.241), est chargé de la gestion de la ressource. Il traite toutes les requêtes d’accès provenant des autres processus, ou clients. L’exclusion d’accès est assurée par l’unicité du serveur qui assure en même temps la fonction de veilleur. Son programme se présente schématiquement sous la forme :
- cycle
- m — attendrertiessage(nil) ; { bloquant}
- < programme traitant la requête avec envoi éventuel de réponse )
- fcycle
- Ce schéma exclut donc tout parallélisme pour l’accès à la ressource, tout au moins au niveau spécifié par les requêtes. Le processus serveur peut être
- C : client S : serveur R : ressource
- file de requêtes
- Figure 1. Accès à une ressource par un serveur unique.
- p.225 - vue 243/387
-
-
-
- 226 Systèmes informatiques répartis
- programmé pour mettre en oeuvre toute politique concernant l’exécution des requêtes (priorité, contrôle de droits d’accès). Une réalisation d’un serveur de fichiers fonctionnant sur ce principe dans un environnement réparti est décrite dans [Swinehart 79].
- 9.22 ACCÈS CONCURRENT CONTRÔLÉ
- La ressource est accessible à plusieurs serveurs, éventuellement en nombre variable. Chacun d’eux exécute, sous forme d’appel procédural, les accès correspondant aux requêtes. L’exécution de ces procédures est contrôlée par un mécanisme ad hoc qui garantit le respect des règles d’accès. Ces accès peuvent être initialisés de deux façons par les processus clients (fig. 2) :
- a) un processus veilleur unique, connu a priori des clients, distribue leurs requêtes aux différents serveurs locaux (schéma a) ;
- b) l’identité des serveurs est elle-même connue a priori des clients (schéma b).
- a) accès par un veilleur unique
- C : client Si : serveurs R : ressource V : veilleur
- Figure 2. Accès à une ressource par des serveurs concurrents.
- J me de i contrôle I d’accès
- b) accès direct aux serveurs
- Une réalisation particulière des serveurs consiste à les associer aux points d’entrée d’un module de gestion de la ressource tel qu’un moniteur.
- 9.3 ALLOCATION D’UN ENSEMBLE DE RESSOURCES. INTERBLOCAGE
- Précisons d’abord les notations utilisées dans cette partie. Un processus p soumet une requête pour l’allocation d’une ressource e en exécutant une opération de verrouillage exclusif v-excl{e). Sauf indication contraire, nous
- p.226 - vue 244/387
-
-
-
- Allocation de ressources 227
- supposons que toutes les ressources sont à accès exclusif. Si l’allocation est possible, la ressource est allouée à p ; nous dirons aussi qu’elle est verrouillée par p. Sinon, le processus p est bloqué, et la ressource n’est pas verrouillée par p.
- Dans un système réparti, nous considérons des transactions T; pouvant utiliser des ressources localisées sur plusieurs sites. Chaque transaction est mise en oeuvre par un ensemble de processus qui sont ses représentants sur les divers sites ; deux processus d’une même transaction localisés sur des sites distincts peuvent s’exécuter en parallèle. Pour acquérir une ressource e sur un site sp une transaction Tt fait exécuter l’opération v-excl(e) par son représentant p£j- sur le site.
- Nous supposons, sauf indication contraire, que l’allocation a lieu sans réquisition : une ressource verrouillée par un processus ne peut lui être retirée ; elle doit donc être explicitement libérée par ce processus, au moyen d’une opération de déverrouillage dev{é). Il y a risque d’interblocage lorsque des ressources à accès exclusif sont allouées sans possibilité de réquisition et que des processus nécessitent l’usage simultané de plusieurs ressources.
- Exemple. Soit deux processus p et q utilisant deux ressources ex et e2 selon le programme suivant :
- processus p processus q
- Px : v-excl(ex) qx : v-excl{e2)
- p2 : v-excl(e2) q2 : v-excl(ex)
- Si les requêtes sont satisfaites dans l’ordre pi, qi, il y a risque de blocage définitif de p et q car les requêtes p2 et q2 ne peuvent être satisfaites si ex et e2 ne sont pas libérées.
- L’interblocage peut être traité par prévention (les ressources sont allouées de manière à éviter toute possibilité d’interblocage) ou par détection et guérison (aucune mesure préventive n’est prise; lorsqu’un interblocage se produit, il est détecté, et traité par retour du système à un état antérieur). Les algorithmes de prévention ou détection ont été étudiés dans le cas où l’ensemble des ressources est géré par un allocateur unique qui reçoit toutes les requêtes et dispose à tout instant de l’état d’allocation de toutes les ressources. Nous commencerons par rappeler les principaux résultats connus dans ce cas, avant de les étendre aux systèmes répartis.
- 9.31 RAPPELS SUR LES MÉTHODES CENTRALISÉES
- 1 ) Méthodes de prévention
- Une méthode de prévention simple et couramment utilisée est celle des classes ordonnées [Havender 68]. Les ressources sont ordonnées en classes Cl5..., C„. Un processus ne peut acquérir des ressources de la classe C;, i > 1 que s’il a auparavant acquis toutes les ressources des classes Cv ..., C£_t qui lui sont nécessaires. L’ordre unique d’acquisition des ressources ainsi défini évite tout risque d’interblocage. Cette méthode a l’inconvénient d’amener
- p.227 - vue 245/387
-
-
-
- 228 Systèmes informatiques répartis
- les processus à acquérir leurs ressources à l’avance et tend donc à réduire le degré de parallélisme de l’exécution.
- Lorsque les processus peuvent évaluer et annoncer à l’avance leurs besoins maximaux en ressources, des méthodes plus souples peuvent être utilisées. Par exemple, l’algorithme du banquier [Habermann 69] n’autorise une allocation que si elle maintient le système dans un état fiable (état à partir duquel on peut faire exécuter séquentiellement sans blocage tous les processus dans le cas le plus défavorable où chacun demande la totalité des ressources annoncées).
- 2) Méthodes de détection-guérison
- La méthode présentée dans [Holt 71] utilise un graphe d’état orienté dont les nœuds représentent des ressources ou des processus. Les arcs processus-ressource représentent les requêtes non satisfaites, les arcs ressource-processus représentent les allocations effectuées. La présence d’un cycle dans ce graphe caractérise l’interblocage. Dans le cas général, les algorithmes de guérison ont un coût prohibitif.
- 3) Conclusion
- Dans les systèmes d’exploitation, on utilise en pratique :
- — soit des méthodes de prévention simples, comme l’allocation globale de toutes les ressources ou la méthode des classes ordonnées,
- — soit des méthodes de détection, souvent grossières ; la guérison nécessite la destruction de processus et leur redémarrage, ce qui implique la sauvegarde périodique d’informations de reprise.
- Le développement des bases de données a donné une nouvelle actualité au problème de l’interblocage. Pour augmenter le parallélisme d’exécution, le verrouillage porte souvent sur les données les plus élémentaires, ce qui augmente le nombre de ressources ; d’autre part, les méthodes d’annonces ne sont pas toujours applicables car les ressources nécessaires à une transaction sont souvent déterminées en cours d’exécution. Une méthode d’« évitement continu» adaptée aux bases de données est présentée dans [Cham-berlin 74]. Chaque transaction possède un point de non-retour («check-point ») au-delà duquel les modifications qu’elle effectue sur les données sont irréversibles. Tant qu’une transaction n’a pas dépassé ce point, les ressources qu’elle a acquises peuvent être réquisitionnées au profit du dernier demandeur si un interblocage est détecté. La privation est évitée par la circulation d’un privilège qui protège contre la réquisition la transaction qui le détient. Un algorithme réparti fondé sur un principe analogue est décrit au chapitre 10.
- Les méthodes que nous venons de résumer peuvent être utilisées sur une architecture répartie, en privilégiant, pour jouer le rôle d’allocateur, un site particulier qui reçoit toutes les demandes et entretient une représentation de l’état d’allocation de toutes les ressources. Cette solution est sensible aux défaillances du site privilégié et risque de provoquer des engorgements lorsque ce site est surchargé. Cela conduit à l’idée de répartir entre plusieurs sites la fonction d’allocation.
- p.228 - vue 246/387
-
-
-
- Allocation de ressources 229
- 9.32 RÉPARTITION DE LA FONCTION D’ALLOCATION
- Nous supposons maintenant que la fonction d’allocation n’est plus confiée à un allocateur unique, mais est répartie entre un ensemble d’allocateurs situés sur des sites distincts, dont chacun gère les objets locaux au site. Deux classes de solutions sont envisageables.
- 1) Maintien d'une représentation unique de l'état des ressources
- Une représentation unique de l’état des ressources est partagée par l’ensemble des allocateurs. Elle circule sous forme d’un message entre les différents sites, qui jouent tour à tour le rôle d’allocateur, chacun allouant les ressources dont il est responsable. Cette solution exclut tout parallélisme; elle est sensible à la perte du message contenant l’état des ressources. De plus, elle n’exclut pas le risque de privation, un allocateur pouvant ne jamais trouver, lorsque son tour arrive, l’état des ressources dans une situation qui lui est favorable.
- 2) Répartition de la représentation de l'état et de la fonction d'allocation
- Plusieurs solutions sont encore possibles.
- a) On entretient sur chaque site une copie de l’état global d’allocation. On doit alors assurer la cohérence mutuelle de ces copies (ce problème est abordé au chapitre 10).
- b) On répartit entre les sites la représentation de l’état, chaque site ne disposant que de l’état de ses ressources locales. Les décisions prises sur les différents sites doivent alors être coordonnées de manière à garantir la cohérence des allocations. Une méthode inspirée de celle des classes ordonnées consiste à assurer que toutes les demandes de ressources émises par les processus parviennent aux différents allocateurs dans un ordre unique fixé à l’avance. D’autres méthodes plus dynamiques permettent de prendre des décisions d’allocation à partir de vues partielles de l’état des ressources.
- Dans ce qui suit, nous présentons successivement :
- — le principe d’un algorithme de prévention de l’interblocage, de type 2a, utilisant des copies d’un état global d’allocation (9.33),
- — deux algorithmes de type 2b (un algorithme de prévention et un algorithme de détection de l’interblocage), utilisant des vues partielles de l’état global d’allocation (9.34).
- 9.33 MÉTHODES D’ALLOCATION UTILISANT UN ÉTAT GLOBAL
- Nous montrons ici comment un algorithme de prévention de l’interblocage conçu pour un système centralisé peut être transposé à un environnement réparti, en entretenant sur tous les sites une copie de l’état d’allocation de toutes les ressources, c’est-à-dire :
- p.229 - vue 247/387
-
-
-
- 230 Systèmes informatiques répartis
- — l’ensemble des ressources libres,
- — l’ensemble des ressources allouées, avec l’indication du détenteur et du mode d’utilisation,
- — l’ensemble des requêtes non satisfaites,
- — l’ensemble des annonces (dans le cas où elles sont utilisées).
- L’allocation d’une ressource n’est permise que si l’état résultant de cette allocation est considéré comme acceptable selon l’algorithme utilisé. Chaque site, exécutant le même algorithme et disposant des mêmes informations, prend la décision d’allocation au vu de sa copie locale de l’état ; l’allocation effective, qui débloque le processus demandeur, est faite sur le site où se trouve la ressource.
- Pour tenir les copies à jour, chaque processus diffuse à l’ensemble des sites ses annonces, ses requêtes, et ses messages de libération. Il est nécessaire que les différentes copies de l’état global subissent les mêmes transitions d’état, ce qui est réalisé en prenant en compte les requêtes dans le même ordre sur chaque site. Cet ordre de prise en compte peut être distinct de l’ordre d’arrivée; il peut être réalisé au moyen d’une 'des techniques examinées au chapitre 8 (estampilles, séquenceur circulant).
- Nous présentons, à titre d’exemple, le principe de la mise en oeuvre, sur un ensemble de sites, d’un algorithme décrit dans [Lomet 77] et utilisant une technique d’annonces préalables ; une version de cet algorithme utilisant des copies partielles de l’état est développée en 9.341.
- Au début de son exécution, chaque transaction Tt fait l’annonce préalable de l’ensemble des ressources qu’elle compte utiliser; une ressource ne peut être acquise que si elle fait partie de l’annonce. On définit entre deux transactions Tj et Tk une relation dite de dépendance potentielle, notée Tj > Tk (« Tj retarde Tk »)
- Tj> Tk <=> il existe au moins une ressource verrouillée par Tj et faisant partie de.l’annonce de Tk .
- Cette relation peut être représentée par un graphe G, variable dans le temps, appelé graphe des conflits potentiels. L’existence d’un cycle dans ce graphe traduit un risque d’interblocage à l’instant considéré.
- Exemple 1. Considérons trois transactions T u T2, T3 qui utilisent trois ressources ex, e2, e3. Notons a-excl( ) l’opération d’annonce.
- Tx T2 T3
- tu : a-excl(ex, e2) t2l : a-excl(e2, e3) t31 : a-excl(e3, et)
- t12 : v-exclieè) t22 : v-excl(e2) t32 : v-excl(e3)
- t13 : v-excl(e2)
- t23 : v-excl{e3)
- t33 : v-excl{e1)
- p.230 - vue 248/387
-
-
-
- Allocation de ressources 231
- Supposons que les instructions s’exécutent dans l’ordre £1X; t21 ; £31 ; tl2 ; t22 ; t32. A un instant t postérieur à l’exécution de ces instructions, le graphe G des conflits potentiels est représenté ci-dessous. L’interblocage est inévitable.
- Pour éviter l’interblocage, on entretient sur chaque site une copie du graphe G, et on n’alloue une ressource que si cette allocation ne crée pas de cycle dans ce graphe. Chaque annonce, requête ou libération, reçoit une estampille, puis elle est diffusée à tous les sites. Pour mettre à jour sa copie de G, chaque site traite les messages qu’il reçoit dans l’ordre strict défini par les estampilles, selon la méthode indiquée en 8.42.
- 9.34 MÉTHODES D’ALLOCATION UTILISANT DES ÉTATS PARTIELS
- Les deux algorithmes que nous présentons ici sont bien adaptés à un environnement distribué : chaque site ne gère que ses ressources locales et les décisions d’allocation sont prises en fonction d’informations locales. Nous restreignons l’exposé, dans un but de simplification, au cas où toutes les ressources sont à accès exclusif. La prise en compte de ressources à accès partagé fait l’objet de l’exercice 2.
- 9.341 Un algorithme de prévention de l’interblocage
- L’algorithme que nous présentons [Lomet 78] est une version de celui que nous venons de présenter en 9.33, modifiée pour utiliser des états partiels.
- 1) Position du problème
- Un exemple illustre les difficultés introduites par la répartition.
- Exemple 2. Reprenons l’exemple 1 en modifiant les hypothèses de la façon suivante : on suppose que les ressources ex, e2 et e3 sont respectivement localisées sur les sites su s2 et s3. Si un site st ne reçoit que les annonces relatives aux ressources qu’il gère, il ne peut entretenir qu’un graphe G; qui est une restriction de G aux transactions qui ont fait ces annonces. Ainsi,
- après l’exécution de £32 on a : sur s1 : Gx Tr~~ K ^t3
- sur s2 g2 h 1
- sur s3 g3 Tf h "12
- Aucun de ces graphes ne permet de détecter le risque de création d’un cycle dans le graphe G. Il n’est donc pas possible, sur un site donné, de prévenir l’interblocage.
- p.231 - vue 249/387
-
-
-
- 232 Systèmes informatiques répartis
- 2) Principe et justification de la méthode
- Nous allons substituer à la condition d’allocation : G acyclique, une condition plus forte, mais vérifiable à partir des informations locales à chacun des sites.
- Pour cela, nous complétons chaque graphe Gt par la restriction à st du graphe d’une relation d’ordre total strict définie sur l’ensemble des transactions ; cette relation d’ordre peut être obtenue au moyen d’estampilles (voir 8.4). La condition d’allocation consiste à maintenir acycliques les graphes G/ ainsi obtenus. Par construction, cette condition peut être vérifiée localement sur chaque site. Nous allons montrer qu’elle entraîne que G est acyclique. Pour cela, nous montrons que l’existence d’un cycle dans G implique celle d’un cycle dans au moins un G/.
- Notons Tj > Tk la relation d’ordre total strict sur les transactions. Alors G/ est la restriction au site st du graphe de la relation définie par :
- Tj ^ Tko Tj > Tk ou Tj > Tk
- Supposons que G possède un cycle, comprenant un ensemble de n transactions, que nous numérotons de 0 à n — 1 dans l’ordre du cycle, donc dans l’ordre défini par la relation >. Soit Tp l’élément de cet ensemble qui précède tous les autres au sens de la relation et soit q = p — l modulo n. On a :
- Tp Tq (puisque Tp précède tous les autres)
- Tq > Tp (dans le cycle du graphe G).
- Si s est le numéro du site qui contient la ressource verrouillée par Tq et appartenant à l’annonce de Tp, alors Gs' comporte un cycle, ce qui démontre la propriété.
- 3) Algorithme
- En conséquence, l’algorithme de prévention est mis en oeuvre comme suit :
- a) L’allocation d’une ressource à une transaction Tt est autorisée, sur le site s qui contient cette ressource, si cette allocation ne crée pas de cycle dans le graphe G's.
- b) En cas de refus, le processus qui exécute la transaction sur le site s est placé dans une file d’attente locale à s.
- c) Lorsque la ressource est libérée, tous les processus de la file sont examinés pour déterminer si leur requête peut être satisfaite.
- Le fonctionnement de l’algorithme est illustré par l’exemple suivant :
- Exemple 3. Reprenons l’exemple 1. Lorsque exécute t12 ' v-excl(ef cette requête entre en conflit avec l’annonce a-excl(e1) faite par T3 : l’arc TjT3 est créé dans G. Néanmoins, la requête est acceptée car T1 P T3.
- p.232 - vue 250/387
-
-
-
- Allocation de ressources 233
- Après cette allocation, les graphes G/ sont, sur les trois sites :
- Site Sj : Site s2 : Site s3 :
- La requête t22 ' v-excl(e2), qui entraînerait sur s2 la création de l’arc T2 T1 est refusée, car elle introduirait un cycle sur s2. De même, la requête t32 : v-excl(e3) est refusée car elle introduirait un cycle sur s3. Il faut remarquer que si l’ordre imposé avait été Tv T3, T2, cette dernière requête aurait été acceptée.
- Cet algorithme repose sur un principe analogue à celui des classes ordonnées. A la différence de ce dernier, il évite la privation, car l’ordre total est défini sur les transactions et non sur les ressources. Une transaction donnée devient nécessairement au bout d’un temps fini la plus ancienne, donc la plus prioritaire, sur tous les sites où elle a envoyé une annonce.
- 9.342 Un algorithme de détection de l’interblocage
- Lorsque les ressources utilisées par une transaction sont déterminées dynamiquement au cours de la transaction, les méthodes de prévention de l’interblocage fondées sur les annonces ne sont plus utilisables. On doit alors utiliser des méthodes de détection et guérison.
- Nous présentons ici la méthode décrite dans [Menasce 78]. Cette méthode repose sur l’utilisation d’un graphe des conflits dont l’examen permet de détecter l’interblocage. Comme dans l’algorithme précédent, chaque site gère ses propres objets et la détection de l’interblocage se fait au moyen d’informations locales. Les sites initiateurs des transactions bloquées sont prévenus de l’existence de l’interblocage, qui a pu être détecté sur un site quelconque, et doivent prendre les mesures nécessaires à sa guérison.
- 1) Définitions
- On définit à tout instant entre deux transactions T- et Tk la relation de blocage direct :
- Tj -» Tk o {il existe au moins une ressource verrouillée par Tj et demandée, mais non obtenue, par Tk} .
- Cette relation est représentée par un graphe appelé graphe des conflits effectifs. L’existence d’un cycle dans ce graphe indique un interblocage. Une transaction «non bloquée» est représentée dans ce graphe par un noeud auquel n’aboutit aucun arc. Soit Tk une transaction bloquée ; l’ensemble de toutes les transactions qui peuvent être atteintes en parcourant les arcs à partir de Tk, dans le sens contraire à leur orientation, est appelé l’ensemble
- p.233 - vue 251/387
-
-
-
- 234 Systèmes informatiques répartis
- bloquant de Tk et est noté E(Tk). Les transactions qui appartiennent à E(Tk) sont les transactions qui sont à l’origine du blocage de Tk.
- Le graphe des conflits effectifs traduit à un instant donné les relations de blôcage existant entre toutes les transactions du système. Notons B(Tk) l’ensemble des transactions bloquées du fait de Tk, c’est-à-dire celles qui peuvent être atteintes en parcourant les arcs issus de Tk.
- Exemple 1. Soit le graphe des conflits effectifs suivant :
- T,
- T4
- Les transactions non bloquées sont les transactions : T3, T4, T5. On a :
- EiT,) = { T2, t3, r4, r5}
- B(T5) = {TuT2}.
- Le graphe des conflits effectifs contient un cycle si et seulement s’il existe une transaction Tk dont l’ensemble bloquant contient une transaction bloquée par Tk :
- 3k : B(Tk) n E(Tk) * 0 .
- Si on ne veut pas entretenir sur chaque site une copie du graphe global il faut construire une image locale qui permette d’évaluer la condition ci-dessus. C’est ce que réalise l’algorithme que nous présentons.
- 2) Algorithme de détection de Vinterblocage
- Notons s(Tk) le site origine de la transaction Tk. Pour chaque transaction Tk, le site s(Tk) entretient les ensembles B(Tk) et E(Tk). Toute modification de E(Tk) doit être représentée sur tous les sites originaires des transactions appartenant à B(Tk). En effet toute transaction bloquant Tk est élément de chacun des ensembles bloquants des transactions appartenant à B(Tk).
- Supposons que Tk ait demandé une ressource e du site st. Sur ce site, on effectue les opérations suivantes :
- — si e est disponible, la requête est satisfaite et on note que Tk possède la ressource ;
- — si e est déjà allouée à une transaction Tj alors on transmet le message « Tj bloque Tk» aux sites s(Tj) et s(Tk). Dans ce qui suit (j, k) désigne un tel message.
- A la réception d’un message ( j, k) sur un site s, on effectue les actions suivantes :
- p.234 - vue 252/387
-
-
-
- Allocation de ressources 235
- a) Sur le site s(Tj) origine de la transaction qui bloque Tk, on ajoute Tk à l’ensemble B(Tj) et on vérifie qu’on ne crée pas d’interblocage, c’est-à-dire que :
- B(Tj) n E(Tj) = 0 .
- On envoie ensuite vers chacun des sites origines des transactions T, qui bloquent Tj un message (/, k) afin de permettre aux sites s{Tt) de mettre à jour les ensembles B(Tt) des transactions bloquées par Tt. Parallèlement ces messages (/, k) sont envoyés vers le site origine de la transaction Tk afin de mettre à jour l’ensemble E(Tk) des transactions qui bloquent Tk.
- b) Sur le site s(Tk) origine de la transaction bloquée Tk, on ajoute Tj à l’ensemble E(Tk) et on vérifie qu’on ne crée pas d’interblocage, c’est-à-dire que :
- B(Tk) n E(Tk) = 0 .
- On envoie ensuite vers chacun des sites origines des transactions Tm qui sont bloquées par Tk un message (j, m) afin de permettre aux sites s{Tm) de mettre à jour les ensembles E(Tm) des transactions qui bloquent Tm.
- Les requêtes de libération conduisent à un algorithme symétrique que nous ne décrivons pas.
- Exemple 2. Considérons trois sites sl5 s2, s3. Chaque site s; contient un objet e{ et est origine d’une transaction Tt :
- T,
- v-excl(ej)
- v-excl(e2) v-excl(e3) v-excl(ex)
- Plaçons-nous à un instant où toutes les transactions ont effectué leur première opération (réussie) de verrouillage. Lors de la seconde opération, chacune des transactions se bloque, ce qui entraîne les événements suivants :
- — Tj demande sur s2 l’allocation de e2, possédée par T2; s2 envoie (2, 1) à Sj et s2 et il en résulte :
- EiTJ = {T2} B(T,) = 0 B(T2) = { Tj } E(T2) = 0
- T2 demande sur s3 l’allocation de e3, possédée par T3 ; s3 envoie (3,2) à s2 et s3 et il en résulte :
- B(T3) = { r2 } E(T3) = 0
- E(T2) = {T3} B(T2) = { Ti }
- s2 envoie (3, 1) à Si et il en résulte :
- £(Ti) = { T2, T3 } , . B(Td = 0
- p.235 - vue 253/387
-
-
-
- 236 Systèmes informatiques répartis
- — T3 demande sur Si l’allocation de ex, possédée par Tx ; Sj introduit T3 dans £(7^) et constate que :
- E{T j) n B(T J — { T3 } .
- L’interblocage est donc détecté sur Sj.
- 9.343 Conclusion
- Les deux algorithmes présentés reposent sur un principe analogue : l’incertitude sur l’état des sites distants impose de conserver une «marge de sécurité ». Cela amène à interdire, dans certains cas, des opérations qui n’entraîneraient pas d’interblocage (voir 9.341, exemple 3).
- En revanche, la mise en oeuvre des deux algorithmes utilise des techniques différentes. Dans l’algorithme de prévention, on vérifie sur un état partiel une condition plus forte que la condition minimale ; dans l’algorithme de détection, on enrichit progressivement la connaissance que chaque site a de l’état des autres ; chaque site reçoit en général des informations redondantes.
- 9.4 RÉGULATION DE CHARGE
- Le rôle de la régulation de charge est de maintenir les demandes de ressources adressées au système dans des limites jugées acceptables, compte tenu du nombre de ces ressources et des performances requises. Cette fonction s’exerce sous deux formes : régulation de charge globale et répartition de charge.
- 1) Régulation de charge globale
- Les requêtes sont adressées au système par l’intermédiaire d’un processus régulateur. Une requête se traduit par une demande de service à l’un quelconque des serveurs susceptible de le fournir. L’objectif du régulateur est de connaître, en permanence, une valeur aussi exacte que possible de la charge de chacun des serveurs, en fonction de laquelle il accepte ou non la requête.
- En fait, le régulateur ne connaît qu’une valeur approchée de cette charge, ce qui peut entraîner deux difficultés.
- a) Si la charge est sur-évaluée, le régulateur risque de rejeter à tort une demande, ce qui conduit à une sous-utilisation des ressources gérées par les serveurs.
- b) Si la charge est sous-évaluée, le régulateur risque d’accepter à tort une demande ; si les serveurs ne disposent pas de leur propre régulation de charge, les ressources qu’ils gèrent seront à terme congestionnées, ce qui peut entraîner une dégradation des performances.
- L’acceptation d’une nouvelle demande par un système doit constituer une garantie de bonne fin ; cet engagement est pris au nom de tous les serveurs qui seront impliqués dans l’exécution de cette commande.
- p.236 - vue 254/387
-
-
-
- Allocation de ressources 237
- 2) Répartition de charge
- Supposons que les requêtes acceptées par le système puissent être interprétées par un ensemble de serveurs. La distribution de charge consiste à équilibrer la charge des serveurs, c’est-à-dire à distribuer les demandes entre eux proportionnellement à leur capacité de traitement. Elle ne s’applique qu’à des ressources banalisées, telles que processeurs, périphériques, voies de communication et non aux ressources individualisées telles que les fichiers.
- On peut distinguer les politiques statiques, où la répartition des requêtes entre les serveurs est définie de façon fixe, et les politiques adaptatives, où cette répartition est fonction de la charge du système.
- 3) Mise en oeuvre de la régulation
- Dans les systèmes répartis, la régulation a surtout été appliquée aux réseaux de transport, qui comportent de nombreuses ressources banalisées telles que les lignes de communication ou les tampons dans les noeuds. Dans d’autres applications, les sites sont souvent spécialisés et on dispose donc de peu de liberté pour l’affectation des tâches.
- La suite du chapitre est consacrée à la présentation d’exemples de mise en oeuvre de la régulation, essentiellement tirés des réseaux de transport : régulation de charge globale en 9.41, distribution adaptative de charge en 9.42. L’exemple présenté en 9.43 illustre enfin l’interaction entre ces deux fonctions.
- 9.41 EXEMPLE DE RÉGULATION DE CHARGE GLOBALE
- La méthode dite du contrôle isarithmique a été proposée pour contrôler l’entrée des paquets dans un réseau de communication (voir 3.6). Elle a été simulée pour le réseau du National Physical Laboratory [Davies 72] mais on ne dispose pas d’expérience effective de sa mise en oeuvre. Elle consiste à limiter le nombre global de paquets en circulation dans le réseau. En effet, l’augmentation du nombre de paquets entraîne une diminution, puis un arrêt total du trafic, comme le montre la figure 3 [Price 77].
- La méthode de régulation consiste à maintenir le nombre total de paquets en circulation inférieur ou égal à une valeur optimale N. A cette fin, N « laissez-passer» sont disponibles pour tout le réseau. Tout paquet en circulation doit être porteur d’un laissez-passer qu’il rend à sa sortie du réseau. Chaque noeud terminal est autorisé à stocker quelques-uns des laissez-passer disponibles pour admettre de nouveaux paquets. Il diffuse vers d’autres noeuds les laissez-passer en surnombre. Si un noeud ne dispose pas de laissez-passer, il n’accepte pas de nouveaux paquets.
- On peut comparer l’utilisation de ces laissez-passer au fonctionnement d’un ensemble de taxis. Les taxis libres restent en attente aux stations, à concurrence d’un nombre fixé. Les autres circulent en quête de places libres dans une autre station, pour y attendre les clients.
- p.237 - vue 255/387
-
-
-
- 238 Systèmes informatiques répartis
- A Débit (paquet/s)
- Nombre de nœuds : 19 Capacité du réseau : 400 paquets
- Nombre de paquets
- Figure 3. Surcharge d’un réseau de transport (simulation).
- Les résultats de simulation [Price 74] exprimés par la figure 4 montrent que le gain principal de la méthode porte sur la réduction des délais de transmission, au prix d’un léger accroissement du délai d’admission.
- Délai d’admission (ms)
- avec contrôle
- t sans contrôle
- 3 000
- 5 000 •
- Charge
- Délai de transmission (ms)
- sans contrôle
- avec contrôle
- 3 000 5 000 7 000 9 000 Charge
- (paquets/s) (paquets/s)
- Nombre de nœuds du réseau : 10 Nombre maximum de paquets par nœud : 5
- Figure 4. Effet du contrôle isarithmique sur le comportement en charge d’un réseau de transport.
- Le contrôle isarithmique offre la particularité intéressante de diminuer la circulation des laissez-passer disponibles quand le trafic augmente. Par contre, il présente quelques inconvénients.
- a) Si le trafic n’est pas également réparti dans le réseau, les laissez-passer risquent de se concentrer dans une région, ralentissant le débit d’entrée dans le reste du réseau.
- p.238 - vue 256/387
-
-
-
- Allocation de ressources 239
- b) Les performances du réseau dépendent fortement d’un certain nombre de paramètres qu’il est difficile de choisir de façon optimale : nombre total de laissez-passer dans le réseau, nombre maximal de laissez-passer par noeud, mode de redistribution des laissez-passer en surnombre dans un noeud.
- c) Les laissez-passer circulant dans le réseau peuvent se perdre ou se multiplier, ce qui modifie leur nombre.
- 9.42 EXEMPLES DE DISTRIBUTION DE CHARGE ADAPTATIVE
- 1) Routage adaptatif des paquets dans le réseau Arpanet [Kleinrock 71]
- Dans un réseau à commutation par paquets, les méthodes de routage adaptatif déterminent dynamiquement le chemin de chaque paquet selon un critère d’optimisation qui peut prendre en compte divers paramètres (durée du trajet, distance à parcourir, etc.). Les défaillances des lignes et des noeuds peuvent également être prises en compte.
- Dans le réseau Arpanet, tout noeud entretient une table des délais TD, qui, pour chaque noeud destinataire D et chaque ligne de sortie L indique le délai estimé pour atteindre le noeud D en empruntant comme première étape la ligne L. A partir de la table des délais, on construit pour chaque noeud une table de routage TR et un vecteur-délai VD donnant respectivement la ligne à emprunter pour atteindre un noeud destinataire dans le plus court délai et la valeur de ce délai.
- Notons { Dj} l’ensemble des destinataires du réseau (j = 1,..., m) et { Lt} l’ensemble des lignes partant du noeud (i = 1,..., n).
- Les tables entretenues dans chaque noeud sont les suivantes :
- TD{j, i) : délai estimé pour atteindre Dj en partant par Lt
- TR{j) : numéro de ligne optimal estimé pour atteindre Dj (d’après VD( jj)
- VD(j) = min TD(j, i).
- i= l,n
- La figure 5 donne un exemple de ces tables pour un nœud qui est doté de 3 lignes de sortie (n = 3) et qui peut adresser des paquets à 5 destinataires (m = 5).
- L, l2 ^3
- D, 0,2 0,1 0,4
- d2 0,1 0,3 0,5
- £3 0,6 0,4 0,2
- da 0,3 0,5 0,1
- d5 0,6 0,4 0,2
- Table des délais TD
- l2 0,1
- L, 0,1
- ^3 0,2
- 0,1
- ^3 0,2
- Table de Vecteur-délai
- routage TR VD
- Figure 5. Exemple de tables utilisées dans un nœud pour le routage adaptatif.
- p.239 - vue 257/387
-
-
-
- 240 Systèmes informatiques répartis
- La table des délais d’un nœud est mise à jour en deux occasions.
- a) Modification d’une file d’attente associée à une ligne de sortie. Lorsqu’un paquet est retiré de (ou placé dans) la file de sortie associée à une ligne L, les délais dans la table, correspondant à la colonne TD(j,L), doivent être modifiés pour tenir compte de la nouvelle charge de la ligne.
- b) Réception d’un vecteur-délai envoyé par un voisin du nœud. Considérons la configuration représentée ci-dessous :
- | | nœud
- --- voie directe
- 7Wf- voie indirecte
- A un instant donné, les nœuds A, B, C possèdent respectivement les vecteurs-délais VA, VB, Vc. Le vecteur VA fournit le délai estimé pour les chemins AB, AC, ..., AX. Périodiquement (tous les 2/3 de seconde dans Arpanet), chaque nœud recalcule son vecteur-délai et le diffuse à ses voisins, qui modifient en conséquence leurs tables des délais. Par exemple, lorsque A reçoit de ses deux voisins B et C leurs vecteurs VB et Vc, il recalcule les délais pour les destinations accessibles via B et C : le nouveau délai pour la destination X est le minimum de AB + BX et AC + CX.
- On note que les délais calculés correspondent à une situation antérieure de quelques secondes à l’instant présent, en raison de la durée des mises à jour et de la fréquence avec laquelle elles sont effectuées. Ce décalage risque de provoquer des oscillations dans la charge des nœuds. Pour régulariser les flots de paquets, le délai du chemin le plus court est biaisé, c’est-à-dire qu’on y ajoute un incrément.
- 2) Mécanisme d'enchères du système DCS [Farber 72b]
- Ce mécanisme est utilisé dans le système DCS pour allouer des ressources telles que des processeurs fonctionnels ou des fichiers. Toute ressource de DCS est gérée par un serveur. Les serveurs qui gèrent des ressources de même type sont désignés par un nom global (7.322). Une demande de ressource se traduit par l’envoi d’un message qui, grâce au nom global, est reconnu par tous les serveurs concernés.
- L’allocation fonctionne selon un système d’enchères. Lorsqu’il reçoit une demande, un serveur répond en donnant un prix pour son service, qui dépend de la charge de la ressource gérée. Le demandeur reçoit ainsi plusieurs offres de la part des divers serveurs, en choisit une, et prévient le serveur choisi. Celui-ci vérifie que le prix indiqué est toujours valable car il a pu, entre-temps, prendre un autre engagement. Si le prix n’a pas été modifié, le
- p.240 - vue 258/387
-
-
-
- Allocation de ressources 241
- contrat est conclu et la ressource réservée ; dans le cas contraire, on recommence tout le dialogue.
- Plusieurs arguments sont donnés en faveur de ce mécanisme par les concepteurs de DCS :
- — le contrôle est réparti : il n’y a pas de site privilégié, ce qui améliore la fiabilité,
- — la charge est équilibrée : un serveur peu chargé offre des prix bas,
- — il est facile d’ajouter ou de supprimer des ressources.
- Par contre, on peut remarquer que le nombre de transactions peut devenir important et que le mécanisme n’exclut pas la possibilité de privation pour certains demandeurs. Par suite de modifications constantes de la charge, des contrats peuvent ne jamais être conclus.
- 3) Allocation de processeur dans MCS [Mazaré 78]
- Dans le système MCS, les processeurs sont divisés en groupes, appelés molécules et ont tous accès à une mémoire commune. L’exécution d’un processus s’effectue sur l’un quelconque des processeurs appartenant à une molécule donnée ; une molécule peut traiter simultanément plusieurs processus. Le mécanisme que nous présentons réalise l’allocation d’une molécule pour l’exécution d’un processus, de façon à équilibrer la charge des molécules. La mesure de la charge est donnée par le nombre de processeurs occupés dans la molécule. A chaque création de processus, une demande est inscrite dans la mémoire commune. Toutes les molécules sont averties de l’arrivée d’une demande. Dans chaque molécule, un processeur libre attend un temps proportionnel au nombre de processeurs occupés dans la molécule avant de tenter de retirer la demande. Le retrait des demandes se fait en exclusion mutuelle. Le processeur qui prend la demande est celui qui a attendu le moins longtemps ; il appartient donc à la molécule dont la charge est la plus faible. Les autres processeurs trouvent que la demande a été annulée et peuvent tenter de satisfaire une nouvelle demande. Le temps d’attente d’un processeur est choisi assez faible pour ne pas augmenter de façon significative la durée de prise en compte d’un nouveau processus.
- 4) Conclusion
- Pour choisir un algorithme de distribution de charge, il est nécessaire d’évaluer le gain qu’on peut espérer en obtenir par rapport aux coûts de sa mise en oeuvre. En effet, les algorithmes agissent la plupart du temps de façon approximative. L’évolution permanente du système ne permet pas d’assurer que le choix qu’ils font est le meilleur. Ainsi, dans le cas du routage adaptatif, les tables ne sont pas constamment à jour et, pour les enchères de DCS, le prix annoncé par un serveur peut ne plus refléter sa charge exacte quelques instants plus tard. Les algorithmes peuvent également consommer des ressources du système : temps de calcul du meilleur chemin pour le routage, temps d’attente des réponses des serveurs de DCS, temps d’attente des processeurs de MCS avant de se charger d’un travail. Dans le cas d’un réseau, un trafic supplémentaire est également créé, qui peut ralentir le débit utile.
- CORNAFION. — Systèmes informatiques répartis
- 9
- p.241 - vue 259/387
-
-
-
- 242 Systèmes informatiques répartis
- Cependant, les algorithmes de distribution de charge permettent en général de prendre en compte de façon normale les défaillances des serveurs. La panne d’un serveur conduit à lui attribuer une caractéristique qui l’exclut de la compétition pour l’exécution des demandes. Ainsi, pour le routage adaptatif, une voie inutilisable a un délai infini, un serveur de DCS ou un processeur de MCS en panne n’exécute plus l’algorithme de prise en charge d’une demande. Le traitement des défaillances est donc invisible pour les demandeurs.
- 9.43 EXEMPLE D’INTERACTION ENTRE LA DISTRIBUTION DE CHARGE ET LA RÉGULATION DE CHARGE GLOBALE
- Nous présentons une méthode de contrôle global de la charge des lignes d’un réseau étudiée lors de la conception du réseau Cigale [Pouzin 76]. La distribution de charge est assurée par un algorithme de routage adaptatif (9.42). La régulation globale permet de maintenir la charge sur les différentes lignes au-dessous d’un certain seuil et également de réduire, si nécessaire, l’émission de paquets par les hôtes du réseau. Le choix de la méthode a été guidé par les observations suivantes : lorsque la charge d’une ligne dépasse environ 70 % de sa capacité, le nombre de paquets en attente de transfert augmente brutalement. En conséquence, le nombre de tampons requis s’accroît, ainsi que leur temps d’occupation. Les problèmes posés par l’allocation des tampons dans les noeuds du réseau ne sont donc qu’une conséquence de la charge des lignes. Or, il est plus simple et moins coûteux d’augmenter le nombre de tampons plutôt que la capacité des lignes. Aussi le contrôle de charge proposé porte-t-il sur les lignes. Son mécanisme est brièvement décrit ci-après :
- Une ligne peut être dans l’un des 3 états de charge suivant :
- — « normal », pour une charge inférieure à 70 %,
- — « critique », pour une charge comprise entre 70 % et 80 %,
- — « dangereux », pour une charge de plus de 80 %.
- Les informations sur l’état des lignes sont propagées sur l’ensemble du réseau, de la même façon que les délais pour le routage adaptatif présenté en 9.42. La régulation de charge évite l’envoi de paquets sur des lignes en état critique et dangereux. Pour cela, un paquet qui devrait être aiguillé vers une ligne en état dangereux est abandonné, et un paquet qui devrait emprunter une ligne en état critique est effectivement envoyé sur cette ligne. Dans ce dernier cas, on envoie en même temps à l’hôte émetteur, sous forme d’un paquet de service, un signal de ralentissement.
- Lorsqu’un hôte reçoit un paquet de ralentissement, il doit réduire son trafic pour la destination indiquée. On influe donc sur le nombre total de paquets en circulation dans le réseau à partir d’observations locales sur l’état des lignes. Or l’état des lignes empruntées par un paquet dépend de la répartition de la charge entre elles. Si l’algorithme de routage est bon, un paquet n’empruntera pas une ligne dans l’état critique ou dangereux s’il existe des lignes équi-
- p.242 - vue 260/387
-
-
-
- Allocation de ressources 243
- valentes dans l’état normal ; s’il emprunte une ligne chargée, c’est qu’il n’y a pas de meilleure solution : le réseau est donc saturé et il est judicieux de limiter les admissions.
- Cependant, les inconvénients suivants sont à craindre :
- — on introduit dans le réseau des paquets supplémentaires, les paquets de ralentissement, alors qu’il est déjà en état critique,
- — pendant le temps de transmission du paquet de ralentissement à l’hôte, l’état du réseau peut changer et l’action de l’hôte ne sera pas efficace.
- Des simulations ont été réalisées [Majithia 78] pour évaluer ces inconvénients, en choisissant divers types de réaction d’un hôte à la réception d’un paquet de ralentissement.
- EXERCICES
- Exercice 1 : ordonnancement des transactions dans la méthode de Lomet.
- On rappelle que dans la méthode de Lomet (9.341), les transactions sont ordonnées suivant l’estampille qui leur est affectée sur leur site d’origine au moment où l’annonce est déterminée. On rappelle aussi que chaque site entretient un graphe local qui traduit cet ordre pour les transactions ayant des annonces relatives à ce site.
- Définir, pour un site z, l’algorithme de mise à jour de son graphe local à la réception d’une nouvelle annonce estampillée H{ANj) en provenance du site j. On doit assurer qu’une annonce ANk telle que : H{AN}) > H(ANk) est classée avant AN p même si elle ne parvient au site z qu’après AN p On suppose en outre que chaque site j peut envoyer à un même site z, plusieurs annonces ANp AN-, AN",... relatives à des transactions différentes.
- Exercice 2.
- On considère deux classes de ressources : les ressources à accès exclusif, qui ne peuvent être allouées qu’à une transaction à la fois, et les ressources à accès partagé, qui peuvent être allouées à un nombre quelconque de transactions.
- 1) Etendre l’algorithme de Lomet (9.341) pour traiter l’allocation de ces deux classes de ressources.
- 2) Etendre l’algorithme de Menasce (9.342) pour traiter l’allocation de ces deux classes de ressources.
- Indications de solution
- 1) Introduire deux instructions distinctes pour l’annonce et deux instructions distinctes pour les requêtes et séparer, selon leur classe, les deux ensembles de ressources allouées et annoncées. Etablir les conditions de conflit et redéfinir en conséquence la relation de blocage potentiel.
- 2) Redéfinir, comme en 1), la relation de blocage effectif.
- p.243 - vue 261/387
-
-
-
- 244 Systèmes informatiques répartis
- RENVOIS
- Références citées dans le chapitre 9
- Chamberlin 74, Crocus 75, Davies 72, Farber 72b, Habermann 69, Haven-der 68, Holt 71, Kleinrock 71, Lomet 77, Lomet 78, Majithia 78, Mazaré 78, Menasce 78, Pouzin 76, Price 74, Price 77, Swinehart 79.
- Principaux termes définis dans le chapitre 9
- Allocateur, allocation et libération (d’une ressource), charge, régulation de charge, réquisition (d’une ressource), interblocage, privation, distribution de charge, verrouillage (d’une ressource).
- p.244 - vue 262/387
-
-
-
- CHAPITRE 10
- ACCÈS A L’INFORMATION RÉPARTIE
- Les exemples étudiés aux chapitres 8 et 9 ont montré que les accès d’un ensemble de processus à des informations communes ne peuvent s’effectuer dans un ordre quelconque, en raison notamment des risques d’interblocage des processus ou d’incohérence des données. Ce chapitre est consacré aux problèmes généraux posés par l’accès d’un ensemble de processus à des informations centralisées sur un site ou réparties sur plusieurs sites. Cette étude sera faite en deux étapes :
- — spécification des propriétés qui caractérisent un comportement « acceptable» du système,
- — étude des moyens à mettre en oeuvre pour assurer un tel comportement.
- Nous prendrons en compte différentes hypothèses :
- — sur les propriétés du système de communication utilisé,
- — sur la fiabilité du système de communication et des processeurs.
- Un exemple introductif (10.1) nous permet d’abord de présenter les principales classes de problèmes et d’introduire intuitivement la notion de cohérence d’un ensemble d’informations, qui est ensuite développée en 10.2. Des méthodes de gestion des accès qui permettent de garantir la cohérence sont présentées en 10.3. Enfin, le problème du maintien de la cohérence de copies multiples d’une information fait l’objet d’un développement particulier en 10.4.
- 10.1 EXEMPLE INTRODUCTIF
- Considérons une base de données utilisée pour conserver l’état d’un ensemble de comptes bancaires. Admettons les règles de fonctionnement suivantes : la seule opération possible (ou transaction) est le virement d’un compte à un autre ; le nombre de comptes est fixe ; aucun échange n’a lieu avec l’extérieur de la banque; la banque n’autorise pas les découverts.
- p.245 - vue 263/387
-
-
-
- 246 Systèmes informatiques répartis
- Compte tenu de ces hypothèses, le système de gestion des transactions doit garantir les propriétés suivantes, après l’exécution de toute transaction :
- PI : La somme de tous les comptes est constante.
- P2 : Pour tout compte, le solde est positif ou nul.
- Ces deux propriétés sont des propriétés globales de l’état de la base, que nous appelons les contraintes d’intégrité du système. Nous dirons que l’état du système est cohérent s’il vérifie ces deux propriétés.
- L’opération de virement consiste à retrancher, si c’est possible, une somme P d’un compte et à ajouter cette même somme à un autre compte. Si l’on note A le compte débité et B le compte crédité, le programme de cette transaction s’écrit :
- si A > P alors
- A := A — P ; (a)
- B == B + P (b)
- sinon
- traitement de chèque sans provision { ne modifie pas les comptes }
- fsi
- On peut faire deux remarques à propos de ce schéma de programme :
- 1) Supposons qu’on effectue en parallèle le traitement de deux chèques tirés sur A, ou versés sur B. Les mises à jour de chaque compte ne doivent pas être effectuées n’importe comment : il faut au préalable assurer un accès exclusif aux différents comptes. Cet accès exclusif peut être assuré à différents niveaux de finesse : de la façon la plus brutale, une transaction peut s’assurer un accès exclusif à toute la base, aucun parallélisme n’étant alors possible; à l’autre extrême, elle peut demander l’accès exclusif à chaque compte séparément.
- 2) Supposons que le processeur exécutant la transaction tombe en panne entre l’exécution des instructions marquées (a) et (b). Le compte A a été débité mais le compte B non encore crédité. Autrement dit, la propriété PI n’est plus garantie si la transaction s’arrête là. Si on désire disposer d’un système résistant aux pannes, il importe d’assurer la propriété suivante :
- Après exécution d’une transaction, ou bien toutes les mises à jour sont effectuées, ou bien l’état des comptes est inchangé.
- Cette propriété assure que l’exécution des transactions, même en cas de défaillance, maintient le système dans un état cohérent ; c’est une exigence généralement formulée dans tous les systèmes.
- Introduisons maintenant un nouveau type de transaction, consistant à ajouter à chaque compte un intérêt proportionnel à ce compte, avec un taux t. Désignant par U les transactions de ce type, par T les transactions de virement, les contraintes d’intégrité du système deviennent :
- Pj : L’exécution d’un nombre quelconque de transactions T laisse invariante la somme de tous les comptes.
- p.246 - vue 264/387
-
-
-
- Accès à l’information répartie 247
- P2 : Pour tout compte, le solde est positif ou nul.
- P3 : L’exécution de n transactions U multiplie la somme des comptes par (1 + t)'\
- Si l’on autorise l’exécution en parallèle de transactions T et U, il peut arriver que la propriété P'3 ne soit pas respectée.
- Exemple. Considérons un système à deux comptes A et B, dans lequel s’exécutent concurremment les deux transactions :
- Transaction T Transaction U A — A — P A := (1 + t) * A
- B := B + P B (1 + t) * B
- Nous supposons initialement vérifiée la condition A ^ P. Si l’ordre d’exécution des actions élémentaires des deux transactions est le suivant :
- A — A — P A := (1 + t) * A B := (1 + t) * B B := B + P
- alors la condition P'3 n’est pas vérifiée.
- En effet, si avant l’exécution des deux transactions A = 1 000, B = 2 000 et si t = 0,10 et P = 500, après l’exécution des transactions on devrait avoir A + B — 3 300, alors qu’on Obtient A + B — 3 250.
- Cet exemple illustre le fait que l’exécution en parallèle de plusieurs transactions peut amener le système dans un état incohérent si aucune précaution n’est prise. Nous allons maintenant préciser les notions relatives à la cohérence.
- 10.2 COHÉRENCE DE L’INFORMATION
- La présentation qui suit est inspirée d’[Eswaran 76].
- 10.21 HYPOTHESES DE TRAVAIL
- Considérons un ensemble d’informations auxquelles peuvent accéder un ensemble de processus. Nous supposons dans un premier temps que l’information comporte un nombre fixe d’objets et qu’il y a un nombre fixe de processus. Ce système évolue dans le temps de manière discrète, entre des points observables où il est possible de définir entièrement son état, c’est-à-dire les valeurs des objets et le contexte d’exécution des processus. Le système est supposé parfaitement fiable.
- p.247 - vue 265/387
-
-
-
- 248 Systèmes informatiques répartis
- Par rapport à ce modèle, un système réel présente les différences suivantes :
- a) Les objets et processus peuvent être créés et détruits dynamiquement, au cours de la vie du système.
- b) Les objets et processus peuvent être répartis sur des sites distincts reliés par un système de communication ; il n’est pas possible de définir un état instantané pour l’ensemble du système en raison des délais de transmission entre sites et de la non-coïncidence des points observables sur chaque site (voir 1.33).
- c) Le système de communication et les processus peuvent être sujets à des défaillances.
- Nous examinons en 10.32 et 10.33 comment les notions et algorithmes définis sur ce modèle peuvent être étendus pour tenir compte de ces caractéristiques.
- 10.22 ACTIONS ET TRANSACTIONS
- Les différents objets d’un système ne sont pas indépendants, mais leurs valeurs sont liées par un ensemble de relations appelées contraintes d’intégrité, qui expriment les spécifications du système. Un état du système qui satisfait l’ensemble des contraintes d’intégrité est appelé état cohérent.
- On souhaite que l’exécution des processus maintienne le système dans un état cohérent. Pour préciser cette propriété, remarquons que l’état du système n’est défini qu’à un niveau donné d’observation. Deux niveaux d’observation sont intéressants :
- — Au niveau de l’utilisateur, un processus est une suite d’exécutions de transactions. Par définition, une transaction est un programme qui, exécuté seul à partir d’un état cohérent, amène le système dans un état cohérent.
- — A un niveau plus fin, chaque transaction est constituée d’une suite d’actions caractérisées par la propriété suivante : si deux actions A et B appartenant à deux transactions différentes sont exécutées concurremment par deux processus, leur effet global est soit celui de la suite {A ; B), soit celui de la suite (B ; A) ; on dit que les actions sont indivisibles (ou atomiques, ou sérialisables ou encore séquentialisables).
- Exemple. Dans un système de gestion de comptes bancaires, où chaque compte est représenté par un enregistrement :
- — l’opération de transfert d’une somme d’un compte à un autre est une transaction ;
- — la lecture et l’écriture d’un enregistrement sont des actions, si le système de gestion de fichiers garantit leur indivisibilité.
- Soit un ensemble de transactions t = { Tl5 T2,..., Tn}, respectivement exécutées par les processus indépendants pu p2,..., p„- Une exécution séquentielle de t consiste à exécuter toutes les transactions de t l’une après l’autre,
- p.248 - vue 266/387
-
-
-
- Accès à l’information répartie 249
- dans un ordre quelconque. La cohérence du système est conservée, par définition, par l’exécution isolée de chaque transaction ; elle est donc aussi conservée par une exécution séquentielle de z.
- Si, pour des raisons d’efficacité, plusieurs transactions sont exécutées en parallèle, la cohérence n’est plus assurée, comme le montre l’exemple de 10.1. Seule est garantie l’exécution indivisible des actions. Dans ce qui suit, nous examinons dans quelles conditions il est possible d’exécuter des transactions en parallèle tout en assurant le respect des contraintes d’intégrité.
- 10.23 ORDONNANCEMENT D’ACTIONS
- Reprenons l’ensemble z = { T\,..., Tn} défini en 10.22. Chaque transaction est constituée d’une suite d’actions. Les actions étant indivisibles, toute exécution de l’ensemble z de transactions par un ensemble de processus concurrents est équivalente à l’exécution d’une suite S d’actions appartenant à ces transactions, soit S = (a1 ; a2 ;... ; ap). Cette suite comprend, dans un ordre respectant l’ordre interne à chaque transaction, toutes les actions qui constituent les transactions de z, chaque action apparaissant une fois et une seule. Une telle suite est appelée un ordonnancement de l’ensemble de transactions z.
- Exemple. Soit Tx = (a11 ; al2 ; a13 ; a14) et T2 = (a21 ; a22 ; a23). Un ordonnancement de (Tu T2) est par exemple
- S — a2l ; û1( ; a12 ; a22 ; a13 ; a23 ; u14
- Parmi tous les ordonnancements d’un ensemble de transactions, il est utile de pouvoir caractériser ceux qui préservent la cohérence du système, et qui sont appelés ordonnancements cohérents. On ne connaît pas de caractérisation générale de tels ordonnancements, mais on en connaît une classe particulière : ceux qui correspondent à une exécution séquentielle de l’ensemble de transactions, ou ordonnancements séquentiels. Si l’on sait caractériser les ordonnancements équivalents à un ordonnancement séquentiel, c’est-à-dire ayant le même effet qu’un ordonnancement séquentiel, on obtient une condition suffisante de cohérence. C’est un tel critère d’équivalence que nous allons maintenant établir.
- Exemple 1. Reprenons l’exemple du 10.1 et considérons les trois ordonnancements suivants :
- (Si)
- T
- - A := A - P rA <= (1 + t) * A Lfi .= (1 + t)*B
- L B := B + P
- T
- U
- (S2)
- -A := A - P
- - A •= (1 + t) * A LB--= B + P
- - B = (l + t)* B
- (S3)
- rA — A — P T
- == B + P
- jjrA := (l + t)*A L B := (1 + t)* B
- On peut se convaincre aisément que S2 a le même effet que l’ordonnancement séquentiel S3, alors que S1 a un effet différent : dans S2 et S3, les mises à jour respectives de T et B se font dans le même ordre; dans-Sl5 l’ordre des mises à jour de B est l’ordre inverse.
- p.249 - vue 267/387
-
-
-
- 250 Systèmes informatiques répartis
- Cet exemple met en évidence l’importance de l’ordre de mise à jour des objets. En outre, l’effet d’une mise à jour dépend, en général, des consultations précédentes d’objets ; si l’on désire que deux mises à jour affectent la même valeur finale à un objet, les ensembles de consultations qui les précèdent doivent être identiques, à des permutations près.
- Exemple 2. Considérons les deux transactions
- Tx : C == 3 et T2 : A •= C * B
- et les deux ordonnancements suivants de 7\ et Tz (où T2 est décomposée en actions élémentaires, et R désigne un objet local à T2). Les objets partagés B et C sont supposés initialisés :
- (Si)
- T,[C:= 3 r R ~ C
- T2
- R R * B
- La := R
- (s2)
- r[R : = C
- C i= 3 ] Ti
- rR — R * B A := R
- Si est séquentiel. S2 respecte l’ordre des actions dans chaque transaction, mais n’est pas équivalent à S[. La valeur de A n’est pas en général égale a 3 * B après l’exécution de S2.
- La conservation de l’ordre des mises à jour (illustrée dans l’exemple 1) et la conservation de l’ensemble des consultations qui précèdent une modification (illustrée dans l’exemple 2) expriment les conditions d’équivalence entre ordonnancements. Nous pouvons les énoncer ainsi : soit Sscq un ordonnancement séquentiel de l’ensemble de transactions r et S un ordonnancement quelconque de t. L’effet de S est identique à celui de Sseq si les deux conditions suivantes sont réalisées :
- Condition 1. Pour chaque objet e, les modifications figurent dans le même ordre dans S et Sseq.
- Condition 2. Considérons deux mises à jour consécutives d’un objet e dans l’un des ordonnancements, et les mises à jour correspondantes de e dans l’autre ordonnancement. Entre ces deux mises à jour, on consulte les mêmes objets dans les deux ordonnancements, dans le même ordre ou non.
- Remarque 1. Les conditions ci-dessus sont des conditions suffisantes d’équivalence.
- Remarque 2. On ne peut permuter, sans changer l’effet d’un ordonnancement, que des lectures consécutives d’objets ou que des affectations consécutives d’objets différents.
- Les deux conditions précédentes, qui portent sur les actions élémentaires, sont trop fortes pour la suite de notre étude, puisque, par construction, les actions d’une même transaction sont toujours exécutées dans le mêrpe ordre. Pour les traduire en termes de transactions, on définit pour un ordonnancement S une relation de dépendance entre transactions.
- p.250 - vue 268/387
-
-
-
- Accès à l’information répartie 251
- Soit T1 et T2 deux transactions de x, e un objet du système. On dit que T2 dépend de Tx par l’intermédiaire de e, ce que l’on note (Tu e, T2), si l’une des trois conditions suivantes est vérifiée :
- a) une action de Tx consulte e et une action ultérieure
- de T2 modifie e, > conséquence de
- b) une action de T1 modifie e et une action ultérieure la condition 2 de T2 consulte e,
- c) une action de T x modifie e et une action ultérieure 1 conséquence de
- de T2 modifie e j la condition 1
- sans que e soit modifié par une autre transaction entre Faction de Tx et Faction de T2- Le terme « ultérieure » signifie « qui la suit dans l’ordonnancement S ».
- Cette relation est représentée par un graphe de dépendance dont les noeuds sont étiquetés par des noms de transactions et les arcs par des noms d’objets. Pour un ordonnancement séquentiel, ce graphe est acyclique (en effet, si (Tx,e, T2), alors Tx précède T2 dans l’ordonnancement séquentiel).
- Pour que deux ordonnancements aient le même effet, il suffît qu’ils aient la même relation de dépendance. Une condition suffisante de cohérence d’un ordonnancement peut donc s’énoncer ainsi : un ordonnancement est cohérent s’il a même relation de dépendance qu’un ordonnancement séquentiel.
- Remarque. Cette condition suffisante devient aussi nécessaire dans un cas particulier fréquent en pratique, celui où tout objet modifié est auparavant consulté par la même transaction [Stearns 76].
- Exemple. Les graphes de dépendance correspondant aux ordonnancements Sx, S2 et S3 de l’exemple 1 sont :
- Ceux correspondant aux ordonnancements S[ et S'2 de l’exemple 2 sont :
- (SD (SD
- c c
- Nous allons maintenant examiner les moyens d’assurer qu’un ensemble de transactions s’exécute selon un ordonnancement cohérent.
- p.251 - vue 269/387
-
-
-
- 252
- Systèmes informatiques répartis
- 10.3 MISE EN OEUVRE DE TRANSACTIONS RESPECTANT LA COHÉRENCE
- Soit un ensemble de transactions % — { Tx, ..., Tn}. A toute exécution de ces transactions correspond un ordonnancement de l’ensemble des actions qui les composent. L’obtention d’un ordonnancement cohérent ne peut être imposée que par des contraintes sur l’ordre d’exécution des actions : le principe de la méthode que nous présentons consiste à retarder une action, par blocage du processus qui l’exécute, jusqu’au moment où son exécution ne risque plus de détruire la cohérence de l’ordonnancement. Cet effet retardateur est réalisé par le mécanisme du verrouillage, introduit en 9.2, et dont nous rappelons maintenant la définition.
- 10.31 MÉCANISMES DE VERROUILLAGE
- Une transaction qui exécute une opération de verrouillage sur un objet tente d’obtenir le droit d’utiliser cet objet selon un certain mode d’accès. Le mécanisme de verrouillage attribue ou non ce droit d’accès selon des règles de compatibilité fixées (exclusion mutuelle, règle des lecteurs-rédacteurs, etc.). Si le droit d’accès est accordé, l’objet est verrouillé par la transaction ; sinon, le processus qui exécute la transaction est bloqué et l’objet n’est pas verrouillé par la transaction. Le déverrouillage permet à une transaction de libérer un objet qu’elle a verrouillé.
- Nous allons décrire l’utilisation du verrouillage pour l’exécution cohérente de transactions. Le verrouillage introduit un risque d’interblocage et de privation, comme cela a été indiqué au chapitre 9. Nous reportons en 10.34 le traitement de ces problèmes.
- 10.311 Exclusion mutuelle
- La solution la plus simple pour obtenir un ordonnancement cohérent consiste à imposer un ordonnancement séquentiel. A cet effet, toute transaction est encadrée par deux primitives ouvrir-transaction et fermer-transaction, qui assurent l’exclusion mutuelle entre transactions. Ces primitives peuvent être réalisées par l’une des méthodes examinées au chapitre 8.
- Si l’ensemble des objets manipulés par une transaction est connu à l’avance, on peut se contenter de verrouiller l’accès à ces objets. Cela permet d’exécuter en parallèle seulement les transactions qui accèdent à des ensembles disjoints d’objets. Si l’on souhaite obtenir un plus grand degré de parallélisme, il faut réaliser le verrouillage à un niveau plus fin que celui de la transaction ; c’est ce que nous allons maintenant étudier.
- p.252 - vue 270/387
-
-
-
- Accès à l’information répartie 253
- 10.312 Verrouillage sélectif des objets
- Nous imposons pour l’accès à un objet les règles habituelles d’exclusion (modèle des lecteurs-rédacteurs, voir [Crocus 75]) qui assurent la validité de l’accès : une action modifiant la valeur de l’objet doit être exclusive de tout autre accès à l’objet ; en revanche, un nombre quelconque de lectures peuvent être exécutées concurremment. Pour assurer le respect de ces règles, on impose aux transactions de verrouiller un objet avant de l’utiliser effectivement. Une transaction peut exécuter trois primitives sur un objet e :
- v-part(e) pour acquérir le droit d’utiliser e en lecture seule (mode partagé).
- v-excl(e) pour acquérir le droit d’utiliser e en lecture et écriture (mode exclusif).
- dev(e) pour libérer l’objet e, supposé précédemment verrouillé par la
- transaction.
- Les deux dernières primitives ont déjà été introduites au chapitre 9.
- Plus précisément, une transaction est dite bien formée si :
- — une opération n’est effectuée sur un objet qu’après que celui-ci a été verrouillé par la transaction dans un mode compatible avec cette opération ;
- — aucun verrouillage n’est effectué par la transaction sur un objet déjà verrouillé par elle, sauf pour verrouiller en mode exclusif un objet qu’elle a verrouillé en mode partagé;
- — aucun objet ne reste verrouillé par la transaction après la fin de celle-ci.
- Les verrous sont utilisés pour restreindre la classe des ordonnancements susceptibles d’être effectués. Un ordonnancement est dit légal si :
- — un objet verrouillé en mode partagé par une transaction n’est pas verrouillé en mode exclusif par une autre transaction,
- — un objet verrouillé en mode exclusif par une transaction ne subit aucun nouveau verrouillage.
- Les tentatives de verrouillage qui sont incompatibles avec ces règles d’exclusion sont donc retardées jusqu’au déverrouillage de l’objet qu’elles concernent.
- Remarque. Une transaction est bien formée si elle utilise les verrous conformément à leurs spécifications; un ordonnancement est légal si les verrous fonctionnent conformément à ces spécifications.
- Dans ce qui suit, nous ne considérerons que des ordonnancements légaux de transactions bien formées. Nous allons maintenant donner une condition pour qu’un tel ordonnancement soit cohérent.
- 10.313 Transactions à deux phases
- Considérons une transaction bien formée vérifiant la condition :
- (1) Tout objet verrouillé reste verrouillé jusqu’à la fin de la transaction.
- On peut montrer (exercice 1) que tout ordonnancement légal de telles transactions est cohérent.
- p.253 - vue 271/387
-
-
-
- 254 Systèmes informatiques répartis
- Plus généralement, supposons que toute transaction soit bien formée et vérifie en outre, à la place de la condition (1) ci-dessus, la condition plus générale :
- (2) Aucun verrouillage ne peut suivre un déverrouillage dans la transaction.
- Cette condition exprime que la suite des opérations sur les verrous se décompose en deux phases successives : une phase où les objets sont verrouillés, puis une phase où ils sont déverrouillés. Cette propriété définit les transactions à deux phases.
- En utilisant la condition d’équivalence donnée en 10.23, on peut alors établir (exercice 1) le résultat suivant :
- Tout ordonnancement légal d’un ensemble de transactions bien formées à deux phases est cohérent, c’est-à-dire a le même effet qu’un ordonnancement séquentiel.
- Réciproquement, si les transactions d’un ensemble t ne sont pas toutes bien formées et à deux phases, il est possible de construire des ordonnancements légaux de x qui ne sont pas cohérents.
- Exemple 1. Consultation d’un ensemble d’objets.
- Supposons que l’on veuille lire les valeurs d’un ensemble d’objets en imposant que les valeurs lues vérifient les contraintes d’intégrité. On doit alors verrouiller en mode partagé chaque objet avant de le lire, les déverrouillages étant effectués à la fin de la transaction. Une telle opération est appelée lecture cohérente de l’ensemble d’objets.
- Ainsi la transaction :
- v-part(a) v-part(b) lire(a) lire(b) v-part(c) lire(c) dev{à) dev(b) dev(c)
- est une lecture cohérente de l’ensemble { a, b, c}.
- Exemple 2. Reprenons le système décrit dans l’exemple de 10.1. Voici deux manières possibles d’écrire la transaction T et une manière possible d’écrire la transaction U :
- Transaction Tl
- v-excl(A)
- A ~ A — Pl
- dev(A)
- v-excl(B)
- B •= B + dev{B)
- Transaction T2
- v-excl(A)
- A := A - p2
- v-excl(B)
- dev(A)
- B ~ B + P2 dev(B)
- Transaction U
- v-excl{A)
- A — + t) * A
- v-excl(B)
- B := (1 + t) * B
- dev(B)
- dev(A)
- On vérifiera que toutes ces transactions sont bien formées, que T2 et U sont à deux phases, et que Tx n’est pas à deux phases. Voici deux ordonnan-
- p.254 - vue 272/387
-
-
-
- Accès à l’information répartie 255
- cements légaux S1 et S2 résultant respectivement de l’exécution en parallèle de T y et U et de T2 et U :
- S\{TU U)
- s2(t2, U)
- Tu : v-excl(A)
- T12 :A-.= A - P, T13 : dev(A)
- Ul : v-excl(A)
- U2 \ A + t) * A U3 : v-excl(B)
- U4 : B — (1 + t) * B U5 : dev(B)
- T14 : v-excl(B)
- T15 : B = B + P!
- U6 : dev(A) r16 : dev(B)
- 7\, : v-excl(A)
- T22 A = A — P2 T23 : v-excl(B)
- T24 : deu(yl )
- Lq : v-excl(A)
- U2 ’ A == (1 + t) * A T25 ' B — B + P2 T26 : dev{B)
- U3 : v-excl(B)
- U.x : B = (1 + t) * B U5 : dev(B)
- U6 : dev(A)
- On vérifiera que conduit à un état incohérent, U s’exécutant sur des valeurs incohérentes de B, et que S2 est équivalent à l’ordonnancement séquentiel (T2 ; U).
- 10.32 CONSÉQUENCES DE L’INCERTITUDE SUR L’ÉTAT DU SYSTÈME
- Nous supposons maintenant que les objets sont répartis sur plusieurs sites reliés par un système de communication et que les processus se déroulent sur ces différents sites. Le système de communication permet à des processus situés sur des sites différents d’échanger des messages. Nous supposons pour le moment que les processus et le système de communication sont exempts de défaillances.
- Les objets consultés et modifiés au cours d’une même transaction peuvent se trouver sur des sites distincts. Si l’on reprend l’exemple de 10.1, le compte A et le compte B peuvent être gérés dans deux agences distinctes. Une opération de transfert T comporte dans ce cas des actions exécutées sur deux sites différents. Un tel traitement, qui se traduit dans un système centralisé par une transaction séquentielle, nécessite dans le cas réparti au moins deux séquences locales d’actions. Il en est de même pour les transactions U de calcul d’intérêt.
- La notion d’ordonnancement, qui découlait de l’indivisibilité des actions élémentaires exécutées sur un site unique (10.23), ne peut donc plus être définie de la même façon. Néanmoins, on peut toujours ordonner l’ensemble des actions par une des méthodes décrites au chapitre 8, ce qui permet d’appliquer les résultats de 10.31.
- Par ailleurs, du fait que les points d’observation sur chaque site sont différents, il est difficile d’observer l’état global du système. Une telle observation d’un état « instantané » ne pourrait être réalisée que par la reconstitution artificielle d’un état global au moyen d’une lecture cohérente des objets du
- p.255 - vue 273/387
-
-
-
- 256 Systèmes informatiques répartis
- système. En fait, on n’a généralement pas besoin de connaître un tel état global.
- Un système de gestion d’un ensemble d’informations réparties comporte :
- — des mécanismes permettant d’ordonner globalement les actions d’une même transaction, même si ces actions s’exécutent sur des sites distincts,
- — des mécanismes réglant les conflits d’accès locaux aux objets et assurant le respect de l’intégrité de ces objets locaux,
- — des mécanismes capables de traiter les interblocages et d’éviter les privations, au prix éventuellement de l’annulation de transactions,
- — des mécanismes de reprise pour traiter ces cas d’annulation, ainsi que les défaillances de certains éléments.
- 10.33 TRAITEMENT DES DÉFAILLANCES
- Nous supposons maintenant que les processeurs et mémoires qui constituent les sites sont sujets à des défaillances qui peuvent donc interrompre l’exécution d’un processus. De même, le système de communication peut subir des défaillances (perte ou altération de messages). Nous allons étendre la notion de cohérence compte tenu de ces nouvelles hypothèses et examiner les moyens d’assurer cette cohérence.
- Si un processus p subit une défaillance au cours de l’exécution d’une transaction T, l’état du système résultant de cette exécution partielle n’est généralement pas cohérent. Le dernier instant où l’état était certainement cohérent est l’instant du début de T. Un moyen de garantir le maintien de la cohérence en présence de défaillances est d’assurer que l’état du système après exécution d’une transaction T est :
- — ou bien celui qui résulte de l’exécution complète de T,
- — ou bien identique à l’état avant exécution de T.
- Cela revient à étendre aux transactions la propriété d’indivisibilité qui caractérise les actions.
- Cette notion d’indivisibilité peut être affinée. En effet :
- — si un processus défaille avant la fin d’une transaction T, mais après avoir effectué toutes les modifications requises par T, l’état du système est cohérent (néanmoins, il y a risque ultérieur de blocage si des objets sont restés verrouillés),
- — si un processus défaille sans avoir exécuté aucune modification, l’état du système est cohérent (avec la même restriction sur les risques ultérieurs de blocage),
- — si un processus défaille après avoir partiellement exécuté les modifications prévues par la transaction, l’état du système peut être incohérent. Dans ce cas, deux solutions sont possibles pour arriver à un état cohérent :
- a) restaurer l’état du système tel qu’il existait avant le début de la transaction,
- b) tenter de terminer la transaction en cours, en répétant au besoin les tentatives.
- p.256 - vue 274/387
-
-
-
- Accès à l’information répartie 257
- Il n’est pas toujours possible d’appliquer la solution a) car certaines actions peuvent être irréversibles. On est ainsi conduit à l’idée de définir dans une transaction un point de non-retour. En deçà de ce point, aucune action irréversible n’a été effectuée et l’état antérieur à la transaction peut être restauré par une opération de reprise (« rollback »). Au-delà, la transaction doit nécessairement être menée à son terme, et les modifications corrélatives de l’état du système doivent être effectuées (un exemple de point de non-retour est le déverrouillage d’un objet). L’action consistant à signaler le passage de ce point de non-retour s’appelle engagement ou confirmation (« commitment ») de la transaction.
- Dans un système centralisé, la mise en oeuvre d’une technique de confirmation s’applique sans difficulté : on effectue la modification définitive d’état par une opération unique d’écriture.
- Dans un système distribué, sa mise en oeuvre est plus délicate car, lorsqu’un site prend l’initiative d’une confirmation, il doit diffuser un message à tous les autres, et des pannes peuvent survenir au cours de cette diffusion. Des techniques de confirmation en deux étapes [Lampson 79] ou en trois étapes [Bernstein 79] ont donc été développées.
- Exemple. DFS est un système de gestion de fichiers conçu pour être utilisé à distance sur le réseau Ethernet. Les fonctions d’accès aux fichiers sont réalisées par des processus serveurs qui échangent des messages avec les processus utilisateurs. On trouve utilisés à plusieurs niveaux les principes d’indivisibilité et de confirmation.
- — Au niveau de l’écriture sur un fichier, l’opération s’effectue sur une « mémoire solide », c’est-à-dire que toute écriture s’exécute soit complètement, soit pas du tout. La mémoire solide est réalisée en écrivant successivement deux copies de l’information, chacune servant à l’autre d’exemplaire de secours.
- — Au niveau de la transaction, les modifications de l’information ne sont pas exécutées immédiatement mais enregistrées dans une liste d’intentions. Une opération atomique permet de reporter sur les objets l’ensemble des modifications, confirmant ainsi la transaction. Une liste d’intentions est donc toujours prise en compte soit complètement, soit pas du tout.
- — Enfin, lorsqu’une transaction met en jeu plusieurs serveurs, chacun prépare sa liste d’intentions. L’un des serveurs, qui joue le rôle de coordinateur pour cette transaction, est prévenu par les autres que leurs listes sont prêtes. Quand sa propre liste est prête, il confirme au processus utilisateur que la transaction est terminée. Les listes d’intentions sont alors reportées de façon sûre, grâce au mécanisme de mémoire solide.
- On trouvera une description détaillée de cette réalisation dans l’illustration 6.
- 10.34 GESTION COHÉRENTE DE TRANSACTIONS
- Nous considérons maintenant un système où les objets sont répartis sur plusieurs sites, sans duplication : chaque objet existe en exemplaire unique. Une transaction 7} peut faire référence à des objets situés sur des sites dis-
- p.257 - vue 275/387
-
-
-
- 258 Systèmes informatiques répartis
- tincts et comporte donc des actions exécutées sur plusieurs sites. On définit donc sur chacun de ces sites st un processus p7 chargé d’exécuter les actions de Tj qui se déroulent sur st. Des actions exécutées sur des sites distincts peuvent se dérouler en parallèle.
- Considérons maintenant un ensemble de transactions. Comme il a été indiqué en 10.2, on essaie de faire exécuter ces transactions avec un maximum de parallélisme entre actions, tout en maintenant le système dans un état cohérent. L’emploi des mécanismes de verrouillage (10.31) introduit des risques d’interblocage et de privation dont il faut tenir compte. Il faut toutefois noter que la probabilité d’occurrence d’un interblocage est relativement minime dans les applications pratiques où chaque transaction manipule une faible fraction de l’ensemble des objets. C’est une différence avec les systèmes d’exploitation centralisés où la compétition porte sur un nombre réduit de ressources très utilisées.
- Nous indiquons deux méthodes de mise en oeuvre des principes introduits en 10.31. Dans la première, l’interblocage est traité par prévention, ce qui nécessite la connaissance préalable des objets manipulés. La seconde élimine cette restriction par l’emploi d’une détection dynamique de l’interblocage ; cela conduit à annuler des transactions, ce qui reste admissible en pratique étant donné la faible probabilité des conflits.
- 10.341 Utilisation des transactions à deux phases
- Nous avons vu en 10.31 que la cohérence peut être garantie en imposant à toutes les transactions la forme « à deux phases ». Pour étendre les raisonnements de 10.313 à un ensemble d’objets répartis sur plusieurs sites, il faut pouvoir définir un ordre entre deux actions exécutées sur deux sites distincts. Les techniques étudiées au chapitre 8, en particulier l’emploi d’estampilles, permettent d’y parvenir.
- Il reste à résoudre le problème de l’interblocage. Il est possible d’utiliser une méthode de prévention fondée sur les annonces (voir 9.3). Une telle méthode nécessite de connaître à l’avance les objets manipulés par une transaction et interdit donc la détermination dynamique de ces objets ; cependant, cette restriction peut parfois être admise.
- Dans des cas plus généraux, la prévention de l’interblocage est impossible. Il faut donc laisser les conflits d’accès se produire et les traiter après détection. Ce traitement peut nécessiter d’annuler des transactions. Le maintien de la cohérence des objets manipulés est obtenu dans ce cas par l’emploi systématique des techniques de validation. C’est une telle méthode de détection dynamique que nous allons maintenant présenter.
- 10.342 Un algorithme de maintien de la cohérence évitant interblocage et privation
- L’algorithme que nous présentons est décrit dans [Rozenkrantz 78]. Les opérations de verrouillage et de déverrouillage n’ont pas à être spécifiées
- p.258 - vue 276/387
-
-
-
- Accès à l’information répartie 259
- dans la transaction : un contrôleur local à chaque site analyse tous les accès aux objets et effectue automatiquement ces opérations lorsque c’est nécessaire, selon le principe du verrouillage à deux phases. Les objets manipulés par les transactions n’ont pas à être connus à l’avance.
- 1) Maintien de la cohérence
- La méthode repose sur les principes suivants :
- a) Verrouillage implicite : le contrôleur local à chaque site st impose aux différentes actions exécutées sur le site de se dérouler selon un ordonnancement légal. Pour cela, il peut bloquer une transaction Tp ou plus précisément le processus qui l’exécute sur st. Tout se passe en fait comme si chaque objet était verrouillé par chaque transaction qui l’utilise, en mode partagé avant sa première lecture, en mode exclusif avant sa première modification, tous les déverrouillages n’ayant lieu qu’en fin de transaction. La cohérence de l’ensemble des objets est ainsi garantie par le résultat de 10.313 (ordonnancement légal de transactions bien formées à deux phases).
- b) Détection dynamique des conflits : il y a conflit d’accès à un objet lorsque deux transactions tentent d’effectuer sur cet objet des actions incompatibles (les règles de compatibilité sont celles du modèle « lecteurs-rédacteurs », voir 10.312). Un conflit est détecté lors d’une tentative d’accès par une transaction T2 à un objet déjà implicitement verrouillé par une transaction dans un mode incompatible. En raison des risques d’interblocage (voir 2 plus loin), il ne suffit pas toujours de retarder T2 jusqu’à ce que T1 libère l’objet occupé, mais, dans certains cas, il faut annuler l’une des deux transactions.
- c) Confirmation : toute transaction risquant ainsi a priori d’être annulée, il faut utiliser systématiquement une technique de confirmation. Lorsqu’une transaction est annulée, tous les objets qu’elle a verrouillés sont déverrouillés et tous les objets qu’elle a modifiés retrouvent leur valeur antérieure. Pour cela, les écritures sont seulement effectuées sur des copies des objets. Si la transaction est annulée, un message d’annulation est envoyé à tous les sites qui contiennent des objets modifiés et les copies sont alors détruites; si au contraire la transaction se termine normalement, un message de confirmation est envoyé à ces mêmes sites et les copies des objets modifiés remplacent les originaux, rendant définitif l’effet de la transaction.
- 2) Suppression de l’interblocage et de la privation
- Dès que l’on bloque des transactions opérant sur des objets communs, soit par verrouillage, soit implicitement, on introduit un risque d’interblocage. Un interblocage est supprimé par l’annulation de l’une des transactions en conflit ; mais si on choisit au hasard la transaction à annuler, on risque de retarder indéfiniment une transaction.
- Pour éviter ce phénomène de privation, l’ensemble des transactions est totalement ordonné par l’une des méthodes introduites au chapitre 8 (par exemple les estampilles). Quand un conflit est détecté, on choisit systémati-
- p.259 - vue 277/387
-
-
-
- 260 Systèmes informatiques répartis
- quement, selon un algorithme fondé sur cet ordre, la transaction à favoriser. Deux stratégies sont proposées pour ce choix. Nous décrivons l’une d’elles (dite «wait-die System»). Soit Tx et T2 deux transactions en conflit pour l’accès à un objet e. On suppose que T x a fait la première action sur e. On appelle N(TX) et N(T2) les estampilles associées respectivement au début de chaque transaction.
- En cas de conflit, le choix effectué par le contrôleur du site de e est le suivant :
- si N (T 2) < N (T i) alors < T2 se bloque >
- sinon < T2 est annulée puis redémarrée ) fsi.
- Autrement dit, si la transaction T2 est la plus vieille, alors elle reste bloquée jusqu’à ce que Tx se termine normalement ou soit annulée à son tour. Si T2 est la plus jeune, elle est annulée puis redémarrée à partir de son site d’origine.
- La seconde stratégie, appelée «wound-wait System», utilise également l’ordre des transactions, mais procède par réquisition (voir [Rozenkrantz 78]).
- 3) Exemple
- Illustrons le fonctionnement de l’algorithme par l’exécution des deux transactions :
- Transaction Tx Transaction T2 A := A + 10 A := A + 5
- Ces transactions peuvent être décomposées pour faire apparaître les accès élémentaires à l’objet partagé A. Soit ax et a2 deux variables locales respectivement aux processus exécutant Tx et T2. Pour mettre en évidence les conflits d’accès, nous faisons également apparaître, en commentaire, les opérations de verrouillage implicite :
- 1
- 3
- Transaction T x ’ { v-part(A ) } ax •= A ax = ax + 10
- "{v-excl{A)}
- A ~ ax _ { dev(A )}
- 2
- 4
- Transaction T2
- ’{ v-part{A ) } a2 — A a2 a2 + 5
- ~{ v-excl(A)}
- A = a2 _{dev(A)}
- Considérons une tentative d’exécution de T x et T2 selon l’ordonnancement (illégal) 1 ; 2 ; 3 ; 4 (les chiffres repèrent les séquences d’actions dans le schéma ci-dessus). Supposons que la transaction Tx soit la plus ancienne et appliquons la stratégie décrite ci-dessus. L’exécution se déroule comme suit :
- a) T x exécute la séquence 1.
- b) T2 exécute la séquence 2 (il n’y a pas de conflit).
- c) Tx tente d’exécuter la séquence 3 et entre en conflit avec T2. L’application de l’algorithme entraîne le blocage de Tx.
- p.260 - vue 278/387
-
-
-
- Accès à l’information répartie 261
- d) T2 tente d’exécuter la séquence 4 et entre en conflit avec Tv L’application de l’algorithme entraîne l’annulation de T2.
- e) T1 est débloqué et exécute la séquence 3 (il n’y a pas de conflit car l’annulation de T2 a supprimé le verrouillage de A par T2).
- /) T2 reprend son exécution au début et exécute successivement 2 et 4.
- L’effet global de cette exécution est finalement celui de l’ordonnancement (séquentiel, donc légal) 1 ; 3 ; 2 ; 4.
- 10.35 CONCLUSION
- Dans un système réparti, la connaissance incomplète ou retardée des informations non locales conduit à contrôler plus strictement l’accès aux objets, parfois au détriment de l’efficacité. Ainsi, si l’on utilise les transactions à deux phases, la prévention de l’interblocage par la méthode des annonces peut amener à retarder des verrouillages inoffensifs, ce qui restreint le parallélisme. Dans la méthode de détection dynamique des conflits, une transaction peut être annulée et redémarrée alors qu’une connaissance exacte de l’ensemble des informations aurait évité cette perte de temps.
- Remarquons également que toutes les méthodes utilisées reposent sur la mise en oeuvre d’un ordre total strict sur les transactions, qui sert de moyen unique pour régler les situations de conflit.
- 10.4 GESTION DE COPIES MULTIPLES D’UN MÊME OBJET
- 10.41 CHAMP D’APPLICATION
- Nous avons vu au chapitre 6 que le temps d’accès moyen à une information dans un système réparti pouvait être réduit, dans certaines conditions, par l’existence de plusieurs exemplaires, appelés copies multiples, de cette information. La figure 1 schématise trois cas d’utilisation de copies multiples.
- On a en fait deux situations distinctes :
- 1) Dans le cas (a) de la figure 1, chaque processeur dispose d’une mémoire locale, ou cache, dans laquelle sont recopiées les zones de mémoire commune couramment utilisées : un algorithme de remplacement [Crocus 75] assure le renouvellement des mémoires locales. Dans le cas où plusieurs processeurs accèdent au même objet, on utilise comme référence la version de l’objet qui se trouve en mémoire commune.
- Dans le cas (b) de la figure 1, un objet est implanté sur un site donné et géré par un serveur local à ce site. Lorsqu’un processus distant doit utiliser un objet, il commence par en demander une copie au serveur par l’intermédiaire du système de communication. Après utilisation, le processus renvoie éventuellement au serveur une version modifiée de l’objet.
- p.261 - vue 279/387
-
-
-
- 262 Systèmes informatiques répartis
- O Processeurs
- Mémoires
- locales
- Mémoire
- commune
- (a) Multiprocesseur à mémoire commune
- Sites
- clients
- * Système de ' communication
- (i) —(3 s^e
- ----' serveur
- Système de communication
- (b) Serveur unique (c) Utilisateurs
- symétriques
- (e) : copie de l’objet e
- Figure 1. Utilisation de copies multiples.
- Les cas (a) et (b) sont donc fonctionnellement identiques : un exemplaire unique de chaque objet est privilégié.
- 2) Dans le cas (c) de la figure 1, tous les exemplaires jouent un rôle symétrique. La multiplicité des copies se justifie par des raisons de temps d’accès si le taux de consultation est largement supérieur au taux de mise à jour, ou par des raisons de disponibilité.
- Dans ces deux situations, on se pose le problème de la répercussion des mises à jour sur les différentes copies.
- a) Lorsqu’il existe un exemplaire central privilégié, on peut imposer que toute modification de l’objet effectuée sur une des copies soit immédiatement reportée sur cet exemplaire central : c’est l’écriture immédiate, qui garantit à tout instant que l’exemplaire de référence est à jour (ce qui n’implique pas que toutes les mises à jour soient cohérentes). Avec les méthodes d’écriture différée, en revanche, les modifications éventuelles d’une copie locale de l’objet ne sont reportées sur l’exemplaire central que lorsque l’algorithme de remplacement est amené à réallouer les emplacements occupés par la copie locale.
- Ces deux méthodes sont illustrées par les exercices 2 et 3.
- b) Lorsqu’il n’existe pas d’exemplaire privilégié, on peut également formuler des exigences plus ou moins sévères :
- — toute transaction qui modifie une copie d’un objet doit reporter immédiatement cette modification sur toutes les autres. Pendant la durée de la transaction, aucune copie n’est accessible ; en dehors de l’exécution des transactions modifiant un objet, toutes ses copies sont identiques ;
- p.262 - vue 280/387
-
-
-
- Accès à l’information répartie 263
- — la mise à jour immédiate de toutes les copies n’est pas requise ; on impose toutefois, en l’absence de nouvelle modification, que toutes les copies de l’objet modifié deviennent identiques au bout d’un temps fini.
- Ces deux méthodes sont développées en 10.42.
- Dans tous les cas, une transaction de consultation de l’état d’un objet effectuée à partir d’un site sur l’exemplaire local doit fournir, ou bien une valeur à jour de toutes les modifications entreprises avant la consultation, ou bien une valeur périmée, mais qui était à jour à un instant antérieur. La consultation ne doit jamais fournir une valeur résultant de l’exécution partielle d’une transaction.
- Quelle que soit la méthode utilisée, l’accès à une copie d’une information met en jeu directement ou indirectement les autres copies. En considérant ainsi l’accès aux copies d’un même objet comme un cas particulier d’accès à des informations réparties, toutes les méthodes développées dans ce chapitre sont applicables. La forme particulière de la contrainte d’intégrité permet en outre quelques simplifications.
- 10.42 ALGORITHMES DE GESTION DE COPIES MULTIPLES 10.421 Généralités
- Nous allons étudier différents algorithmes permettant de reporter les modifications d’un objet sur ses différentes copies. Une première façon d’aborder le problème consiste à utiliser le verrouillage, selon les principes de 10.3. Si on dispose de n copies eu e2,..., en d’un objet e, l’une des contraintes d’intégrité du système est ex = e2 = ••• = en. Pour effectuer une consultation de eh il faut exécuter la transaction
- v-par^ej
- lecture
- dev(ej
- Pour effectuer une mise à jour des copies, on doit au préalable les verrouiller toutes en mode exclusif
- pour i — 1 jusqua n faire v-excl{e;
- effectuer les mises à jour et les reporter sur tous les exemplaires ;
- pour i := 1 jusqua n faire dev(ej
- Pour éviter l’interblocage, le verrouillage des copies doit toujours être exécuté dans le même ordre.
- Autrement dit, en négligeant les phases transitoires, ou bien l’objet est en cours de mise à jour et toutes ses copies sont réservées au processus qui effectue la mise à jour, ou bien toutes les copies sont accessibles en lecture seule et sont identiques. Ce mode de fonctionnement réalise, par définition, la cohérence forte entre les copies de l’objet. On trouvera en exercice 4 un exemple d’algorithme permettant d’assurer une telle cohérence.
- p.263 - vue 281/387
-
-
-
- 264 Systèmes informatiques répartis
- L’inconvénient fondamental de cette solution est l’absence de parallélisme entre les opérations de mise à jour, ce qui est gênant dès qu’elles sont relativement fréquentes. On est alors amené à se contenter de contraintes d’intégrité plus faibles que l’identité des copies. On exige toujours que l’accès à une copie ne puisse être autorisé que lorsque son état interne est cohérent, mais on ne demande plus aux copies d’être identiques à tout instant observable : on se contente en général d’exiger que, si l’on cesse d’exécuter des transactions de mise à jour, toutes les copies deviennent (ou puissent devenir) identiques au bout d’un temps fini. On dit alors qu’on assure une cohérence faible entre les copies.
- Une condition suffisante de cohérence faible est que les mises à jour soient effectuées dans le même ordre pour toutes les copies. Nous utiliserons cette condition dans la suite.
- Remarque 1. La différence essentielle entre cohérence forte et faible s’observe à propos de transactions de lecture; en cohérence faible, deux classes de lecture sont envisageables : la lecture immédiate de l’état courant de la copie locale et la lecture de la copie locale après réception de toutes les modifications émises avant l’ordre de lecture (au sens de l’ordre total considéré).
- Remarque 2. Lorsqu’on parle de copies identiques, on veut dire qu’elles fournissent les mêmes informations quand elles sont consultées, ou encore qu’elles ont intégré la même suite de mises à jour. Mais la représentation interne des données peut varier d’un site à l’autre.
- Les trois algorithmes que nous décrivons maintenant ont été choisis essentiellement pour leur simplicité. Nous nous contentons de présenter pour chacun d’eux :
- 1) Le principe sur lequel repose l’algorithme.
- 2) Sa mise en oeuvre pratique en régime normal, c’est-à-dire dans l’hypothèse où :
- — les sites et les objets sont en nombre fixe,
- — les processus des sites et le système de communication sont exempts de défaillances.
- 3) Des indications sur les extensions nécessaires pour traiter les situations en dehors du régime normal.
- On trouvera une étude exhaustive détaillée des algorithmes de maintien de la cohérence dans [Wilms 79].
- 10.422 Un algorithme assurant la cohérence faible à l’aide d’estampilles
- L’algorithme est décrit dans [Herman 79].
- 1) Principe
- L’ensemble des requêtes de mise à jour est ordonné de la même façon sur tous les sites par un mécanisme d’estampilles (voir chapitre 8). Chaque requête est diffusée à l’ensemble des sites. Sur chaque site, un processus serveur prend en
- p.264 - vue 282/387
-
-
-
- Accès à l’information répartie 265
- compte les requêtes dans l’ordre des estampilles, ce qui assure une cohérence faible entre les différentes copies.
- 2) Mise en œuvre en système fiable
- Les transactions à prendre en compte sont les écritures, les lectures, les mises à jour (suite complexe de lectures et d’écritures), et les estimations (lecture immédiate de l’état actuel d’une copie). Nous supposons ici qu’on ne traite que des écritures ; les autres opérations font l’objet de l’exercice 5.
- Chaque serveur reçoit les demandes d’écriture provenant aussi bien du site local que des autres sites ; à un instant donné, il prend en compte la demande d’écriture dont l’estampille est la plus ancienne. La détermination de cette demande n’est pas immédiate car on ne peut garantir, en général, qu’une demande plus ancienne que toutes celles déjà arrivées sur le site n’est pas en transit sur le réseau.
- Cette incertitude disparaît moyennant une hypothèse sur le système de communication : quand un site i émet des messages à l’intention du site j, l’ordre de réception des messages en j est identique à l’ordre d’émission. Cette hypothèse est vérifiée dans les réseaux usuels ; la détermination de la requête à traiter sur un site est alors possible. Deux cas sont à envisager :
- a) L’ensemble des demandes d’écriture en attente contient des demandes provenant de tous les autres sites. Dans ce cas les demandes en transit, si elles existent, sont moins anciennes que celles qui sont déjà arrivées. Autrement dit, la requête à traiter est la plus ancienne de celles en attente.
- b) Il existe des sites pour lesquels aucune demande n’est parvenue. On se ramène au cas précédent en émettant à l’intention de ces sites un message d’enquête qui doit obligatoirement être acquitté. Au bout d’un temps fini, d’après l’hypothèse de fiabilité, on aura donc reçu soit les requêtes en transit, soit les réponses aux messages d’enquête; on disposera alors de messages provenant de tous les sites.
- Remarque. Pour accélérer l’exécution de l’algorithme, on peut implanter sur chaque site une file d’attente pour chacun des sites du réseau (y compris le site local). Les consultations ne portent que sur les têtes de file, si celles-ci sont gérées en premier arrivé, premier servi.
- 3) Comportement en dehors du régime normal
- Des extensions à l’algorithme permettent le retrait ou la réinsertion volontaire d’un site (exercice 6). En revanche, l’algorithme ne survit en cas de panne que si les conditions suivantes sont remplies :
- — la disparition d’un site est détectée par tous les autres sites,
- — la diffusion d’un message est une opération indivisible : un message diffusé est reçu par tous ses destinataires, ou par aucun.
- Si la première condition est en général vérifiée, la seconde est beaucoup plus difficile à assurer.
- p.265 - vue 283/387
-
-
-
- 266 Systèmes informatiques répartis
- 10.423 Un algorithme assurant la cohérence faible à l’aide d’un séquenceur circulant
- Plusieurs variantes de cet algorithme ont été publiées ; nous décrivons ici la plus simple [Le Lann 78].
- 1) Principe
- Avant d’émettre une requête, un site doit lui associer un numéro d’ordre délivré par un séquenceur circulant (voir 8.5). Les requêtes sont prises en compte sur chaque site dans le même ordre, ce qui assure la cohérence faible (10.421). Rappelons que le mécanisme d’attribution des numéros repose sur une organisation de sites en anneau virtuel.
- 2) Mise en oeuvre en système fiable
- Un séquenceur délivre à chaque demande le prochain numéro disponible, soit T. Quand un site reçoit le séquenceur, il demande un nombre n de numéros égal au nombre de requêtes de mise à jour en attente sur le site ; ces numéros sont donc T, T + 1,..., T + n — 1. Il transmet alors le séquenceur à son successeur, le prochain numéro disponible étant T + n.
- Quand un site dispose d’un numéro, il diffuse une requête de mise à jour accompagnée de ce numéro. Sur chaque site, les mises à jour sont effectuées en prenant en compte, dans l’ordre, les requêtes accompagnées de numéros consécutifs. Pour déterminer la prochaine requête à traiter, chaque site entretient donc une variable contenant le numéro V associé à la dernière requête traitée. Les requêtes portant des numéros supérieurs à V + 1 sont mémorisées en attendant le traitement de la requête V + 1.
- Remarque 1. La diffusion des requêtes peut utiliser l’anneau, mais ce n’est pas obligatoire.
- Remarque 2. Un site qui a tiré un certain nombre de numéros doit les avoir tous utilisés lorsqu’il reçoit le séquenceur au tour suivant; sinon, les autres sites sont retardés.
- 3) Comportement en dehors du régime normal
- Rappelons d’abord qu’il existe des protocoles pour la régénération du séquenceur en cas de perte et la reconfiguration dynamique de l’anneau virtuel.
- Ces protocoles, qui supposent que le réseau de communication permet de détecter la panne d’un site, doivent être complétés pour maintenir l’ordre total nécessaire à la cohérence ;
- — La régénération du séquenceur doit s’accompagner du calcul du prochain numéro disponible.
- — Quand on détecte l’absence d’un site, on doit déterminer les numéros qu’il a tirés et qu’il n’a pas encore utilisés, puis envoyer des requêtes portant ces numéros.
- p.266 - vue 284/387
-
-
-
- Accès à l’information répartie 267
- — La réinsertion d’un site sur l’anneau doit s’accompagner d’une remise à jour de sa copie.
- L’utilisation de numéros consécutifs permet d’éviter que certaines mises à jour soient perdues et leur perte non détectée. La mise en oeuvre d’un séquen-ceur circulant présente d’autres difficultés (voir 8.5).
- 10.424 Un algorithme assurant la cohérence forte
- L’algorithme est décrit dans [Ellis 77],
- 1) Principe
- L’ensemble des sites est organisé selon un anneau virtuel. Les mises à jour sont effectuées en deux temps : obtention d’un accord de l’ensemble des sites, puis diffusion de la mise à jour. L’algorithme assure donc la cohérence forte. Si plusieurs mises à jour sont demandées en parallèle, on a besoin d’une règle pour décider de celle à prendre en compte. Pour cela, on utilise des estampilles associées à chaque mise à jour et on traite la requête la plus ancienne.
- 2) Mise en oeuvre en système fiable
- Chaque site se trouve dans l’un des quatre états suivants :
- repos : le site n’est au courant d’aucune requête de mise à jour.
- actif : le site a reçu une demande de mise à jour locale qui a été
- transmise aux autres sites pour examen.
- passif : le site a donné son accord à une mise à jour et attend l’ordre correspondant.
- modification : le site est dans un état transitoire de mise à jour, pendant lequel tous les messages qui arrivent sont mémorisés ; ils seront traités lors du retour dans un des autres états.
- Initialement, tous les sites sont dans l’état repos.
- Le site initiateur d’une mise à jour envoie d’abord une demande d’autorisation de mise à jour ; il ne peut faire cette demande que dans l’état repos. Elle est alors estampillée, envoyée sur l’anneau, et le site initiateur devient actif.
- Si une seule demande est présente sur l’anneau, elle traverse tous les sites, qui passent alors de repos à passif. Quand elle revient à l’initiateur, l’accord de tous les sites est acquis. La mise à jour proprement dite est alors envoyée et chaque site, après l’avoir effectuée, revient à l’état repos.
- Si plusieurs demandes sont simultanément présentes sur l’anneau, il se produit un conflit, que l’on règle en choisissant systématiquement la demande la plus ancienne. Pour cela, on fait jouer un rôle de « barrage » aux sites initiateurs : un site dans l’état repos ou passif transmet toute demande qui lui parvient ; un site dans l’état actif ne transmet que les demandes plus anciennes que celle qu’il a lui-même émise ; les autres demandes sont arrêtées et mémoriT sées. Les demandes mémorisées sont renvoyées sur l’anneau quand le site qui les conservait a achevé sa propre mise à jour.
- p.267 - vue 285/387
-
-
-
- 268 Systèmes informatiques répartis
- 3) Comportement en dehors du régime normal
- Les protocoles de reconfiguration dynamique d’anneau s’appliquent aux retraits et réinsertions volontaires des sites. Les pannes sont plus difficiles à prendre en compte dans la mesure où les requêtes ne sont pas mémorisées partout.
- 10.43 CONCLUSION
- Les conclusions du 10.35 s’appliquent aussi aux algorithmes de gestion de copies multiples. Des remarques supplémentaires peuvent être faites :
- — la notion de cohérence faible permet de s’affranchir de la contrainte d’identité stricte des copies ; en autorisant l’accès à des informations éventuellement périmées, on permet une plus grande efficacité ;
- — les principaux algorithmes connus de gestion de copies multiples sont conçus pour un système fiable; ils ne résistent qu’à des classes limitées de défaillances. En particulier, en cas de partition du système en deux ou plusieurs sous-réseaux indépendants, chacun d’eux continue à fonctionner de façon autonome. Bien que les copies constituant un sous-réseau restent cohérentes, la fusion des sous-réseaux présente des difficultés. On peut éviter ce problème en ne laissant fonctionner un sous-réseau que s’il contient un nombre de sites au moins égal à la majorité absolue du réseau initial.
- EXERCICES
- Exercice 1 [Eswaran 76].
- Soit un ensemble de transactions x = { Tx, Tn}.
- 1) On suppose que les transactions de x sont bien formées et vérifient la condition (1) de 10.313. Montrer que tout ordonnancement légal S de t est cohérent.
- 2) On suppose que les transactions de x sont bien formées et vérifient la condition (2) de 10.313 (transactions à 2 phases). Montrer que tout ordonnancement légal S de t est cohérent.
- Indications de solution
- Dans le cas 1, on peut définir un ordre total sur t par la relation « < » : Tt < Tj si la dernière action de T{ précède dans S la dernière action de T .. Soit Sseq l’ordonnancement séquentiel obtenu en faisant exécuter les transactions dans cet ordre. On montrera qué S et Sseq ont même relation de dépendance. Dans le cas 2, on devra redéfinir la relation « < » en ordonnant dans S non plus les fins de transactions, mais les premiers déverrouillages.
- p.268 - vue 286/387
-
-
-
- Accès à l’information répartie 269
- Exercice 2.
- On considère un système multiprocesseur à mémoire commune où chaque processeur est muni d’une mémoire locale fonctionnant selon le principe du cache. Trois types d’objets sont gérés par le système :
- — les variables globales, accessibles à plusieurs processus,
- — les variables locales, accessibles à un seul processus,
- — les constantes partageables.
- Chaque emplacement de mémoire, locale ou commune, comporte une marque qui identifie le type de l’objet qu’il contient. Un objet ne peut changer de type. On dispose d’un mécanisme assurant l’exclusion mutuelle pour l’accès à la mémoire commune.
- Donner le principe d’un algorithme d’accès aux différents types d’objets avec maintien de la cohérence, en utilisant une technique d’écriture immédiate.
- Exercice 3 [Censier 79].
- On considère un système multiprocesseur à mémoire commune où chaque processeur est muni d’une mémoire locale fonctionnant selon le principe du cache. On dispose d’une table d’état global de l’occupation des mémoires locales. Cette table permet d’indiquer, pour chaque bloc de la mémoire commune et pour chaque mémoire locale :
- — si une copie du bloc est présente dans la mémoire locale,
- — dans l’affirmative, si cette copie a été modifiée depuis son chargement.
- Donner le principe d’un algorithme d’accès respectant la cohérence, en
- utilisant une technique d’écriture différée. On pourra introduire des instructions de transfert entre mémoires locales et mémoire commune, avec les spécifications que l’on jugera nécessaires.
- Indication de solution
- Garantir qu’une mémoire locale au plus contient une copie modifiée d’un bloc donné de mémoire commune.
- Exercice 4 [Mullery 75].
- Dans un système réparti supposé parfaitement fiable, on souhaite maintenir une cohérence forte entre les copies d’un objet localisées sur différents sites. L’algorithme repose sur les principes suivants :
- — avant d’entreprendre une mise à jour, un site doit demander et obtenir l’accord de tous les autres,
- — lorsque cet accord est acquis, le site effectue la mise à jour; celle-ci est répercutée sur toutes les copies ; l’objet est inaccessible tant que toutes les copies ne sont pas à j our,
- — les conflits entre sites sont résolus par un ordre de priorité entre sites, fixé initialement une fois pour toutes.
- p.269 - vue 287/387
-
-
-
- 270 Systèmes informatiques répartis
- 1) Combien d’états distincts faut-il prévoir pour chaque copie ?
- 2) Donner le schéma de fonctionnement de l’algorithme (utiliser un graphe d’évaluation).
- 3) Evaluer en fonction du nombre de copies le nombre de messages nécessaires pour effectuer une mise à jour.
- 4) Comment faut-il modifier l’algorithme pour tenir compte de pannes éventuelles d’un site (en supposant toujours que le système de communication est fiable) ?
- Exercice 5 [Herman 79].
- Dans l’algorithme de 10.422 (en système fiable), nous admettons maintenant que les utilisateurs peuvent effectuer toutes les transactions mentionnées. Donner successivement le schéma de traitement
- — des estimations,
- — des lectures,
- — des mises à jour.
- Exercice 6
- Modifier les différents algorithmes de gestion de copies multiples pour permettre à un site de se retirer volontairement du réseau, puis de se réinsérer en remettant à jour la copie qu’il possède. On détaillera en particulier les messages échangés entre le site effectuant le retrait (ou la réinsertion) et les autres sites.
- Exercice 7.
- Nous admettons maintenant que des pannes peuvent survenir (coupures de ligne, défaillances de site). Le réseau de communication possède les propriétés suivantes :
- — ou bien un message émis arrive intact à son destinataire,
- — ou bien il n’arrive pas, et son émetteur est alors prévenu au bout d’un temps fini.
- Etudier les modifications à apporter aux différents algorithmes de gestion de copies multiples pour tenir compte de ces possibilités de panne
- 1) en admettant qu’une seule panne peut survenir,
- 2) en admettant qu’une nouvelle panne peut se produire au cours d’une procédure de traitement d’une première panne.
- p.270 - vue 288/387
-
-
-
- Accès à l’information répartie 271
- RENVOIS
- Références citées dans le chapitre 10
- Bernstein 79, Censier 78, Chamberlin 74, Crocus 75, Ellis 77, Eswaran 76, Herman 79, Lampson 79, Lelann 78b, Mullery 75, Rosenkrantz 78, Stearns 76, Wilms 79.
- Illustration concernant le chapitre 10 16.
- Principaux termes définis dans le chapitre 10
- Contrainte d’intégrité, état cohérent, transaction, transaction bien formée, transaction à deux phases, ordonnancement, ordonnancement cohérent, ordonnancement séquentiel, ordonnancement légal, dépendance entre transactions (relation de, graphe de), confirmation ou engagement, copies multiples d’une information, cohérence forte, faible (entre copies d’une même information).
- p.271 - vue 289/387
-
-
-
- p.272 - vue 290/387
-
-
-
- ILLUSTRATIONS
- Illustration 1. Illustration 2. Illustration 3.
- Illustration 4. Illustration 5. Illustration 6. Illustration 7.
- Un exemple d’interface normalisée : l’avis V24 du CCITT. Un exemple de protocole normalisé : HDLC.
- Un exemple de protocole de transmission sur voie fiable : l’Unibus du PDP11.
- Une méthode de validation des protocoles de communication. La station de transport du réseau Danube.
- Un système de gestion de fichiers répartis : DFS.
- Kensur : conception d’un système orienté vers la traduction de langages.
- CORNAFION. — Systèmes informatiques répartis
- 10
- p.273 - vue 291/387
-
-
-
- p.274 - vue 292/387
-
-
-
- ILLUSTRATION 1
- UN EXEMPLE D’INTERFACE NORMALISÉE : l’AVIS V24 DU CCITT
- Il.l INTRODUCTION
- Comme il a été indiqué en 3.43, la transmission de données sur des lignes à longue distance nécessite des modems qui assurent les fonctions de codage, de modulation, de synchronisation et d’adaptation à la ligne. Les modems sont des appareils très fréquemment utilisés ; ils ont fait l’objet de normes qui définissent leurs caractéristiques principales suivant leur mode de transmission, leur débit, leur type de modulation, etc. (voir 3.432). D’autres normes définissent l’interface entre les équipements de traitement de données (terminaux, contrôleur de communication d’un ordinateur, etc.) et les modems. Ces normes font l’objet de trois Avis du CCITT (voir 3.72):
- — l’Avis V24 définit l’interface logique de la jonction modem-équipement terminal de transmission de données (ou plus brièvement, modem-terminal),
- — les Avis V28 et V35 définissent les caractéristiques électriques de ces jonctions (V28 : débits inférieurs à 20 kbit/s ; V35 : débits supérieurs).
- 11.2 L’INTERFACE MODEM-TERMINAL
- Une transmission de données sur une ligne avec modem met en oeuvre plusieurs circuits. Un circuit est constitué de deux ou quatre fils munis des amplificateurs et transformateurs différentiels nécessaires. Les circuits permettent d’une part la jonction entre le modem et l’équipement terminal de transmission de données (ETTD), d’autre part la transmission proprement dite.
- La mise en oeuvre d’une transmission de données, sur une ligne avec modem, se décompose en quatre phases successives :
- p.275 - vue 293/387
-
-
-
- 276 Systèmes informatiques répartis
- 1) L’établissement du circuit de transmission est nécessaire lorsque la ligne n’est pas affectée en permanence à la liaison de données : c’est le cas d’un réseau commuté ou d’une ligne utilisée alternativement par le téléphone et le transfert de données.
- 2) L initialisation permet aux modems de s’adapter à la ligne : elle comprend entre autres l’émission en ligne de la porteuse, sa détection à l’autre extrémité et éventuellement la synchronisation des horloges.
- 3) La transmission s’effectue ensuite jusqu’à ce qu’un des deux correspondants décide de l’arrêter.
- 4) La libération de la ligne est réalisée en fin de transmission.
- Durant ces phases, des signaux sont échangés entre le modem et le terminal. Ces échanges sont nécessaires, en particulier, pour éviter de perdre les premiers et derniers bits transmis ; ils utilisent un ensemble de circuits définis fonctionnellement dans l’Avis V24 du CCITT.
- La jonction normalisée modem-terminal présente une certaine complexité due à la grande variété des cas d’exploitation : appel manuel ou automatique, modems synchrones ou asynchrones, lignes à 2 ou 4 fils, débit ajustable ou non, etc.
- La norme autorise le raccordement des terminaux à plusieurs types de modems ; elle facilite la maintenance en permettant une identification rapide du circuit défaillant, les signaux échangés sur chaque circuit étant normalisés pour chaque phase de la transmission.
- 11.3 LE CONNECTEUR DE JONCTION ET LES CIRCUITS 11.31 LE CONNECTEUR
- ETTD :
- Equipement terminal de traitement de données (terminal)
- A
- ^7
- ETD :
- Equipement de transmission de données (modem)
- Ligne
- Jonction V24
- La jonction entre le terminal et le modem se compose de deux connecteurs normalisés pourvus de 25 broches numérotées.
- A chaque broche est associé un circuit, dit de liaison. Les jonctions usuelles utilisent rarement plus de quinze circuits sur les 25 supportables par le connecteur.
- Par exemple :
- — les circuits de base de temps à l’émission ne sont pas utilisés par les modems synchrones;
- p.276 - vue 294/387
-
-
-
- Un exemple d’interface normalisée 277
- — la voie de supervision (circuits 120 à 123 et 129) transmet des signaux de contrôle. A faible débit on peut s’en passer et utiliser la voie de données pour échanger à la fois données et signaux de contrôle.
- 11.32 LES CARACTÉRISTIQUES DES SIGNAUX
- Les signaux transmis sur les circuits de liaison ont leurs caractéristiques électriques définies dans les Avis V28 ou V35 du CCITT, suivant le débit de la jonction. Pour chaque circuit sont spécifiés deux états logiques :
- — Etat de repos ou état ouvert : état binaire 1, tension : — 3 V ;
- — Etat de travail ou état fermé : état binaire 0, tension : + 3 V.
- En l’absence de signal, le circuit de transmission de données est dans l’état repos.
- On détecte la déconnexion du câble de liaison ou une coupure d’alimentation en interprétant l’état des 3 circuits suivants :
- — Circuit 105 : état fermé = le modem a des données à transmettre ou en
- cours de transmission.
- — Circuit 107 : état fermé = le modem est prêt à fonctionner en émission
- et réception.
- — Circuit 108 : état fermé = le modem est connecté.
- 11.33 LES CIRCUITS
- Les circuits se classent de la façon suivante :
- 1) les circuits d’entrée des données (émission sur la ligne) ;
- 2) les circuits de sortie des données (réception sur le terminal) ;
- 3) les circuits de base de temps à l’émission (pour les modems synchrones seulement) ;
- 4) les circuits de base de temps à la réception (fournie par les modems synchrones) ;
- 5) les circuits d’établissement de la communication.
- Le rôle de ces circuits est illustré par l’exemple donné en 11.4. On peut faire les remarques suivantes :
- a) Les circuits de commande de la voie de données (105, 106, 109, 110, 124) sont fonctionnellement équivalents aux circuits de la voie de supervision (120, 121, 122, 123, 129) ;
- b) Les circuits 111 et 112 (sélecteurs de débit binaire) s’excluent mutuellement ; pour le circuit 111, c’est le terminal qui choisit un débit pour la transmission de données; pour le circuit 112, c’est le modem; dans tous les cas, ce choix est binaire : l’état fermé correspond au débit élevé et l’état ouvert au débit faible ;
- p.277 - vue 295/387
-
-
-
- 278 Systèmes informatiques répartis
- c) Les circuits 113 et 114 s’excluent mutuellement (bases de temps). Pour le circuit 113, la base de temps est choisie par le terminal ;
- d) Les circuits 115 et 128 (signaux de base de temps en réception) s’excluent mutuellement. Pour le circuit 115, la base de temps est choisie par le modem ;
- e) Le circuit 118 est équivalent au circuit 103, à cela près que la rapidité de modulation n’est pas forcément la même (signaux de données). Les signaux de supervision transmis sur le circuit 118 peuvent être utilisés pour faire savoir au terminal (en émission) s’il doit continuer à transmettre ou bien s’il doit répéter certaines parties du message de données. Cette information peut provenir d’une analyse des données reçues sur le circuit 104 de ce même terminal ;
- /) Même remarque que la précédente en remplaçant 118, 103 et 104 respectivement par 119, 104 et 103.
- L’interface Y24 spécifie, pour certains circuits, un mode d’emploi qui indique l’ordre et les conditions dans lesquelles ces circuits peuvent être utilisés. Citons deux exemples :
- — Les convertisseurs de signaux de données du terminal doivent transmettre toutes les données sur le circuit 103 (émission des données), tant que les circuits 105 (demande pour émettre), 106 (prêt à émettre), 107 (poste de données prêt) sont dans l’état fermé.
- — Dans l’état ouvert, le circuit 108 (connectez le poste de données sur la ligne) qui indique une non-connexion du convertisseur de signaux du terminal à la voie de communication, ne doit pas empêcher le circuit 125 (indicateur d’appel fourni par le modem) de fonctionner.
- Ce mode d’emploi fait partie intégrante de l’interface (2.21) ; il est partiellement présenté en 11.5.
- 11.4 UN EXEMPLE D’UTILISATION DE L’AVIS V24
- A titre d’exemple, considérons l’utilisation en conversationnel d’un ordinateur depuis un terminal connecté par le réseau commuté (modems à réponse automatique). La séquence d’événements décrite ci-après est illustrée sur la figure 1.
- L’opérateur du terminal décroche le combiné et compose le numéro du centre de calcul. Si l’appel aboutit, le circuit de détection d’appel (125) du modem B du calculateur se ferme en réponse au courant de sonnerie.
- Le calculateur, s’il peut accepter l’appel, répond en connectant son modem par la fermeture du circuit 108. Cette fermeture fait cesser le signal de sonnerie, provoque l’émission en ligne du signal correspondant à l’état de repos sur le fil de données, et bascule la clé disponible sur le téléimprimeur en position données, ce qui a pour effet de commuter la ligne sur le modem A du terminal.
- p.278 - vue 296/387
-
-
-
- Un exemple d’interface normalisée 279
- Réseau
- commuté
- Modem
- terminal
- Opérateur
- Cadran
- Clavier
- Modem calculateur
- Calculateur
- Numé-
- rotation
- Réponse
- automatique
- Occupé
- Ordre émission porteuse
- Emission de porteuse
- Indication de connexion
- Réception
- acoustique
- porteuse
- Clé
- basculée sur données
- Emission
- porteuse
- Détection
- porteuse
- Porteuse
- Libération
- ligne
- [Demande d’identification
- Début du protocole de l’application
- --PROTOCOLE DE L’APPLICATION-------
- Libération de la ligne
- Silence ou tonalité •d’occupation
- Libération
- Figure 1. Etablissement d’une liaison terminal-ordinateur par le réseau téléphonique commuté (d’après [Macchi 79]).
- Ce modem émet à son tour la porteuse, qui est détectée au niveau du calculateur et ferme le circuit 109. Les deux correspondants sont connectés et le dialogue peut commencer selon un protocole propre à l’application envisagée.
- A la fin de la communication, la ligne peut être libérée à l’initiative d’un correspondant quelconque. Dans le cas d’une liaison conversationnelle, on préfère souvent laisser l’initiative au terminal. Un caractère spécial de fin de
- p.279 - vue 297/387
-
-
-
- Numéro de broche Numéro de circuit Type de voie Désignation du circuit Type de circuit Indications d’emploi Sens
- 1 101 terre de protection terre
- 7 102 terre de signalisation ou retour commun terre
- 2 103 données émission de données signal de données voir 105, 106, 107 vers modem
- 3 104 — réception de données bidirectionnel alterné — voir 105 vers terminal
- 4 105 — demande pour émettre signal de commande voir 124, 106 vers modem
- 5 106 — prêt à émettre — voir 105 vers terminal
- 6 107 — poste de données prêt — vers terminal
- 20 108 — connectez le poste de données sur la ligne — vers modem
- 8 109 — détecteur de la porteuse — vers terminal
- 110 données détecteur de la qualité des signaux — vers terminal
- 111 sélecteur de débit binaire (source = terminal) — # 112 vers modem
- 112 sélecteur de débit binaire (source = modem) — # 111 vers terminal
- 113 base de temps signal à l’émission (source = terminal) signal base de temps / 114 vers modem
- 15 114 base de temps signal à l’émission (source = terminal) — # 113 vers terminal
- 17 115 base de temps signal à la réception (source = modem) — # 128 vers terminal
- 116 base de temps. Bloc à l’émission — vers modem
- 117 base de temps. Bloc à la réception — vers terminal
- 118 supervision = 103 signal de données vers modem
- 119 — = 104 — vers terminal
- 120 — = 105 signal de commande vers modem
- 121 — = 106 — vers terminal
- 122 — = 109 — vers terminal
- 123 — = 110 — vers terminal
- 124 données coupure de réception de données — voir 105 vers modem
- 22 125 indicateur d’appel — voir 108
- 11 126 sélection fréquence d’émission — vers modem
- 127 sélection fréquence réception — vers modem
- 128 base de temps signal à la réception (source = terminal) signal base de temps # 115 vers modem
- 129 supervision = 124 signal de commande vers modem
- Légende : = XXX : circuit fonctionnellement équivalent à XXX
- y XXX : circuit incompatible avec XXX
- voir XXX : circuit dont l’utilisation dépend de l’état de XXX
- Figure 2. Liste des circuits et broches de l’interface normalisée V24.
- 280 Systèmes informatiques répartis
- p.280 - vue 298/387
-
-
-
- Un exemple d’interface normalisée 281
- communication BYE, interprété par le circuit 103, déclenche une commande de libération au niveau du modem B : le circuit 108 s’ouvre, la ligne est libérée, l’opérateur distant voit s’ouvrir le circuit 109 (souvent visualisé sur les modems) et peut vérifier acoustiquement que la ligne a été libérée (silence ou tonalité d’occupation suivant le type de commutateur).
- 11.5 LISTE DES BROCHES ET CIRCUITS PRINCIPAUX
- La liste synthétique de la figure 2 tient compte de la classification des circuits et de leurs caractéristiques principales données en II. 33. Les plus importants sont attachés à des broches : par exemple, le circuit d’émission de données 103 est relié à la broche 2.
- L’Avis V24 comporte des indications d’emploi pour certains des circuits : il signale les circuits qui sont incompatibles et ceux dont l’utilisation dépend de l’état d’autres circuits.
- RENVOIS
- Références citées dans l’illustration 1
- CCITT, Macchi 79.
- p.281 - vue 299/387
-
-
-
- p.282 - vue 300/387
-
-
-
- ILLUSTRATION 2
- UN EXEMPLE
- DE PROTOCOLE NORMALISÉ : HDLC
- »
- 12.1 INTRODUCTION
- Dans les réseaux à commutation par paquets (voir 3.62), différents niveaux de protocoles et d’interfaces de communication peuvent être définis. Dans cette hiérarchie, qui va du protocole régissant la communication physique au niveau du bit, aux protocoles de plus haut niveau, un projet de norme de l’LS.O. [ISO] a mis en évidence 7 niveaux. Pour les trois niveaux inférieurs, on trouve de haut en bas (voir 3.621) :
- — le protocole de transport pour l’envoi des messages,
- — le protocole de réseau pour l’échange des paquets,
- — le protocole de ligne pour l’échange des trames.
- Au niveau des lignes, le protocole est dénommé HDLC : « High Level Data Link Control Procedure ». Ce protocole est partie intégrante, avec le protocole de communication, des normes X25 [CCITT], [Cosell 78] qui concernent l’accès normalisé aux réseaux publics à communication par paquets (tel que Transpac [Transpac 77]).
- Dans cette illustration nous présentons les principes de base du protocole HDLC sans développer tous ses aspects techniques. Le format des trames est défini en 12.2, les principes de base du protocole en 12.3, les protocoles d’ouverture et de fermeture d’une communication en 12.4, les protocoles d’échange de trames en 12.5. Pour chaque protocole élémentaire, nous présentons un exemple de mise en œuvre, le comportement en cas de panne et une représentation à l’aide des réseaux d’évaluation (12.6) qui n’est pas partie intégrante du protocole normalisé HDLC.
- 12.2 FORMAT DES TRAMES
- Dans le protocole HDLC, l’information à transmettre est considérée comme une suite de bits. On peut ainsi transférer des séquences d’information dans
- p.283 - vue 301/387
-
-
-
- 284 Systèmes informatiques répartis
- lesquelles les caractères ont des représentations quelconques et les mots des tailles quelconques. La transmission se fait à l’intérieur de trames (voir 3.6); le format d’une trame est décrit par la figure 1.
- Nom Longueur (en bits) Fonction Référence
- FANION 8 délimiteur de trame 12.22
- ADRESSE 8 adresse du destinataire 12.21
- COMMANDE 8 — pour l’émetteur : code opération — pour le destinataire : 12.32
- champ réponse
- INFORMATION 0 ^ 1 ^ 8 144 champ d’informations 12.31
- SÉQUENCE DE 16 séquence de contrôle de trame, préparée 12.51
- CONTROLE par l’émetteur; permet au destinataire de détecter les erreurs de transmission
- FANION 8 délimiteur de trame 12.22
- Figure 1. Format d’une trame HDLC
- Entre deux trames on émet des séquences de bits de remplissage constituées soit d’un ou de plusieurs fanions, soit d’une séquence d’au moins 8 bits 1.
- 12.21 EXTENSION D’ADRESSAGE
- Par accord entre les deux parties, le champ d’adresse peut être étendu à 8 bits supplémentaires avec des conventions, non développées ici, qui permettent leur reconnaissance par le destinataire.
- 12.22 DÉLIMITATION DES TRAMES
- Une trame est délimitée par deux fanions qui sont codés de façon identique : «01111110». L’émetteur est tenu, en dehors des fanions, d’insérer un bit 0 après 5 bits 1 consécutifs (y compris pour la séquence de contrôle) afin de ne pas confondre cette suite de bits avec un fanion. Le récepteur élimine le 0 rajouté.
- 12.23 CONTRÔLE ÉFFECTUÉ SUR LES TRAMES
- Une trame est considérée comme incorrecte lorsqu’elle n’est pas délimitée par deux fanions ou lorsqu’elle est trop courte (par exemple : inférieure à 32 bits entre deux fanions). Les trames incorrectes sont ignorées ; de même, une trame qui se termine par au moins 7 bits 1 est ignorée, ce qui permet à l’émetteur d’annuler une trame commencée.
- p.284 - vue 302/387
-
-
-
- Un exemple de protocole normalisé : HDLC 285
- 12.3 PRINCIPES DE BASE DU PROTOCOLE
- Le protocole HDLC s’applique à une communication point à point avec transmission bidirectionnelle simultanée synchrone. La voie est considérée comme non fiable. Les communications sont de type « longue durée » et comportent des protocoles d’ouverture de la communication, de fermeture et de transfert. A cet égard, HDLC constitue une illustration des principes de gestion des communications point à point sur voie non fiable présentés en 5.32, 5.33 et 5.34.
- Les données à transmettre sont contenues dans des trames dites d'information. Chaque trame d’information possède un champ N(S) qui sert à l’identifier au moyen d’un numéro e [0, 7] attribué cycliquement par l’émetteur. Par abus de langage nous utilisons N(S) pour désigner aussi bien le champ N(S) que sa valeur numérique.
- 12.31 FONCTIONS DE LA COMMUNICATION
- Nous décrivons la mise en oeuvre des fonctions de détection d’erreur et de régulation de flux.
- 12.311 Acquittement
- Pour acquitter une trame d’information de numéro N(S), le récepteur a deux possibilités :
- — s’il a une trame à émettre il l’utilise pour l’acquittement. A cet effet chaque trame d’information possède un champ N (R). Le récepteur doit affecter à ce champ la valeur N(S) + 1 ;
- — sinon, il envoie une trame dite de supervision qui possède également un champ N(R). Il doit lui affecter la valeur N(S) + 1.
- 12.312 Régulation de flux
- Chaque correspondant entretient trois variables d’état :
- — une variable F(S) qui donne le numéro N(S) de la prochaine trame à émettre ; F(A) est incrémentée de 1 à chaque nouvelle émission qui n’est pas une réémission ;
- — une variable DN{R) qui donne le numéro N{R) du dernier acquittement reçu (trame d’information ou de supervision) ;
- — une variable F(R) qui donne le N(S) de la prochaine trame attendue. Cette variable est incrémentée de 1 à chaque réception d’information reçue sans erreur et dont le N{S) est égal à V(R).
- La régulation de flux est assurée par le mécanisme de la fenêtre (voir 5.321). En émission on maintient :
- DN{R) < V{S) ^ DN{R) + K .
- p.285 - vue 303/387
-
-
-
- 286 Systèmes informatiques répartis
- En réception, la fenêtre est de largeur 1 : toute trame portant un numéro N(S) différent de V(R) est rejetée. On applique le principe du protocole PAR (voir 5.321), une trame n’est acquittée que si N(S) ^ V(R), ce qui permet de détecter les pertes et les duplications. Le paramètre K (largeur de la fenêtre d’émission) est constant; c’est un paramètre fixé à l’ouverture d’une voie.
- 12.32 DESCRIPTION DES TRAMES
- Les différentes trames utilisées dans HDLC sont décrites dans la figure 2. Pour chaque trame, il est précisé son type (information, commande, supervision), si elle est ou non numérotée, si elle constitue ou non une trame envoyée sans préalable (envoi) ou une trame de réponse à une trame préalablement reçue (réponse).
- Nom de la trame Type Numérotation Sens de l’échange
- / = information information oui [N(R), N(S)] envoi
- RR = prêt à recevoir une supervision oui [N(R )j réponse
- trame I
- R EJ = rejet de trame / supervision oui f/V(-K)l réponse
- RNR — non prêt à recevoir supervision oui [N(R)] réponse
- une trame I
- SARM = commande d’ou- commande non envoi
- verture
- DISC = commande de ferme- commande non envoi
- ture
- U A = accusé de réception , commande non réponse
- CMDR — trame de rejet de commande non réponse
- commande
- Figure 2. Trames utilisées par HDLC.
- Les fonctions des trames de supervision et de commande sont décrites ci-après.
- 1) Commande RR(N(R))
- La commande RR est une trame de supervision utilisée par le récepteur pour signaler qu’il est prêt à recevoir une trame d’information. Cette commande acquitte toutes les trames déjà reçues et numérotées jusqu’à N(R ) — 1.
- 2) Commande RE J {N {R))
- La commande RE J est une trame de supervision utilisée par le récepteur pour acquitter toutes les trames déjà reçues et numérotées jusqu’à N{R) — 1 et pour demander la retransmission de la trame numérotée N(R).
- p.286 - vue 304/387
-
-
-
- Un exemple de protocole normalisé : HDLC 287
- 3) Commande RNR(N(R))
- La commande RNR est une trame de supervision utilisée par le récepteur pour acquitter toutes les trames déjà reçues et numérotées jusqu’à N(R) — 1 ; elle signale également que les trames numérotées N{R), N(R) + 1... ne sont pas acquittées et que, temporairement, le correspondant n’est plus en mesure de recevoir de nouvelles trames d’information.
- 4) Commande S ARM
- La commande S ARM est une trame de commande non numérotée qui permet de demander l’établissement d’une communication bidirectionnelle de longue durée. Après l’ouverture (voir T. 24). les deux correspondants doivent réémettre toute trame non acquittée à l’issue d'un délai de garde.
- 5) Commande DISC
- La commande DISC est une trame de commande non numérotée qui permet de rompre la communication de longue durée.
- 6) Commande d'accusé de réception U A
- La commande U A est une trame de réponse non numérotée, utilisée pour répondre à une commande SARM ou DISC.
- 7) Commande de rejet de commande CMDR
- La commande CMDR est une trame de réponse non numérotée, utilisée pour refuser une commande correctement reçue. Cette réponse comporte dans son champ d’information des indications sur la commande rejetée et la cause du rejet.
- 12.33 LISTE DES PARAMÈTRES DU PROTOCOLE
- Nous énumérons les quatre paramètres les plus importants :
- a) Délai de garde. Quand une trame est émise, une horloge de garde est armée avec un délai Tl. Dans le cas normal, la trame est acquittée avant l’écoulement du délai et l’horloge de garde est alors désarmée. Dans le cas contraire, lorsque Tl s’est écoulé, une retransmission est effectuée.
- Le délai Tl doit être choisi supérieur au temps d’émission d’une trame de longueur maximale, incrémenté du temps de réception de deux trames de longueur maximale (trame émise plus trame d’acquittement), du temps de propagation sur la voie, du temps de traitement d’une trame reçue, et, enfin, du temps nécessaire pour désarmer l’horloge de garde.
- Dans le réseau Transpac, Tl est un paramètre d’abonnement à choisir entre 100 et 2 500 ms.
- b) Nombre maximal de réémissions. Quand une trame est émise, elle doit être réémise si elle n’est pas acquittée au bout du temps Tl. On définit un paramètre N2 égal au nombre maximal de réémissions d’une même trame par
- p.287 - vue 305/387
-
-
-
- 288 Systèmes informatiques répartis
- l’émetteur en l’absence d’acquittement. Si ce nombre est atteint, la voie est considérée comme défaillante. Dans Transpac, N2 est pris égal à 10.
- c) Taille d'une trame. Une trame peut contenir un nombre de bits inférieur ou égal à une taille maximale IV1, elle-même inférieure ou égale à 8 160.
- d) Valeur du crédit. Rappelons qu’il s’agit du nombre maximal K de trames pouvant être envoyées par l’émetteur sans attendre les accusés de réception correspondants. Dans Transpac, K est un paramètre d’abonnement qui est inférieur ou égal à 7.
- 12.4 PROTOCOLES D’OUVERTURE ET DE FERMETURE
- Les protocoles d’ouverture et de fermeture de la communication sont respectivement initialisés par des commandes S ARM et DISC. Ces protocoles sont conformes aux principes développés au chapitre 5. Toutefois, les commandes S ARM ou DISC non acquittées à l’issue du délai de garde Tl sont réémises. Après envoi de la commande DISC, on force la fermeture si le correspondant n’a pas renvoyé DISC après un délai de garde T'. Sur la figure 4 (12.6) on propose une représentation de ces protocoles par des réseaux d’évaluation.
- 12.5 PROTOCOLE D’ÉCHANGE DE TRAMES D’INFORMATION
- Conformément au protocole d’ouverture, la communication est possible lorsque les deux correspondants sont dans l’état « communication établie » (fig- 4).
- Le protocole d’échange de trame est conforme aux principes développés plus haut. Un certain nombre de cas de reprise sont prévus après détection d’une erreur.
- 12.51 ERREURS ET REPRISES
- — A la réception d’une trame /, si la séquence de contrôle de trame reçue est différente de la séquence calculée, la trame est ignorée par le récepteur.
- — L’émetteur d’une trame peut être amené à la réémettre si elle n’est pas acquittée au bout d’un délai de garde 71. Il gère un compteur de réémission RT incrémenté de 1 à chaque retransmission d’une trame /, SARM ou DISC et remis à zéro à l’acquittement de la trame. Si RT dépasse la valeur N2 (voir 12.33), la retransmission dans le cadre fixé par le protocole est arrêtée et la voie considérée comme défaillante.
- — Si un correspondant n’est plus en état de recevoir des trames /, il émet une trame RNR avec un numéro N (R) indiquant la première trame non acceptée. La situation redevient normale après la retransmission d’une trame RR.
- p.288 - vue 306/387
-
-
-
- Un exemple de protocole normalisé : HDLC 289
- Site A
- Site B
- Commentaires Messages envoyés
- Messages envoyés Commentaires
- V(R)= 0; K(S)= 0
- pas de / à émettre, on acquitte avec
- RR
- reemission
- réémission
- SARM(B)
- UA(B)
- I(B, N(R)-= 0, N(S) = 0) I(B, N(R) = 0, N(S) = 1)
- RR(A, N(R) = 2)
- I(B, N(R) = 3, N(S) = 2)
- I(B, N(R) = 5, N(S) = 3) I(B, N(R) = 5, N(S) = 4)
- I(B, N(R) = 6, N(S) = 3) I(B, N(R) = 6, N(S) = 4)
- V(R)= 0; F(S)= 0
- UA(A)
- SARM(A)
- I(A, N(R) = 2, N(S) = 0) on acquitte les
- I(A, N(R) = 2, N(S) =1) 2 trames
- 1{A, N(R) = 2,7V(5) = 2)
- /(A, iV(Æ) = 3, 7V(5) = 3) I(A, N(R) = 3, N(S) = 4)
- REJ(B, N(R ) = 3) les deux dernières
- I(A, N(R) = 3, N(S) = 5) trames sont refusées
- RR(B, N(R) = 5)
- on acquitte
- temps
- Figure 3. Exemple de mise en œuvre du protocole HDLC.
- Sur la figure 5 nous proposons une représentation de ce protocole à l’aide de réseaux d’évaluation. Cette représentation ne fait pas partie de la norme
- HDLC.
- 12.6 DESCRIPTION DE HDLC PAR RÉSEAUX D’ÉVALUATION
- Le formalisme utilisé est celui présenté au chapitre 2.112, complété comme suit :
- O
- on arme le délai de garde on désarme le délai de garde le délai de garde est écoulé (événement local) demande formulée par l’extérieur (événement local).
- Pour alléger la description, nous convenons en outre que tout message non explicitement attendu est ignoré.
- p.289 - vue 307/387
-
-
-
- 290 Systèmes informatiques répartis
- ' Demande 4’émission
- S A RM
- DISC
- $>UA, SARM T\ ^
- SARM T\ ^
- SARM
- t> SARM T\^
- t> VA
- SARM
- SARM
- SARM. T\ S*
- t> VA
- Protocole d’ouverture
- /( Demande^»
- DISC
- fermeture
- {> VA
- oVA, DISC ri s*
- ^ DISC
- ri s7
- r DISC
- DISC Tl S*’
- -t> VA
- DISC ou
- DISC
- > DISC
- ri s*
- Protocole de fermeture
- Figure 4. Protocoles d’ouverture et de fermeture.
- p.290 - vue 308/387
-
-
-
- Un exemple de protocole normalisé : HDLC 291
- 12.61 PROTOCOLES D’OUVERTURE ET DE FERMETURE Liste des états :
- 0 communication impossible,
- 1 établissement en cours (phase a),
- 2 établissement en cours (phase bl),
- 3 établissement en cours (phase b2),
- 4 fermeture en cours (phase a),
- 5 fermeture en cours (phase bl),
- 6 fermeture en cours (phase b2),
- 7 communication établie.
- Deux transitions d’état sont possibles à l’ouverture (1 —> 2 — 7 ou 1 -> 3 -> 7) suivant l’ordre dans lequel les messages S ARM et U A sont reçus. Lorsque S ARM est perdu, on peut effectuer jusqu’à N 2 réessais.
- Pour la fermeture, il y a également deux transitions possibles (4 -> 5 -» 0 ou 4 — 6 —> 0) suivant l’ordre dans lequel les messages DISC et U A sont reçus. Dans l’état 6, un délai de garde T est utile (voir 12.4).
- 12.62 PROTOCOLE D’ÉCHANGE DE TRAMES D’INFORMATION
- Liste des états :
- 7 communication établie,
- 8 réveil,
- 9 bloqué.
- La communication est possible dans l’état 7. Un correspondant passe dans l’état 9 sur réception d’une trame RNR. Il passe dans l’état 8 à l’issue du délai de garde Tl. Cinq programmes importants sont déroulés lors des transitions d’état : ils sont décrits ici et désignés par leur nom dans les diagrammes présentés sur la figure 5.
- 1) Programme exécuté à la réception d’une trame I : P _ I calcul de la séquence de contrôle ;
- si séquence calculée = séquence reçue alors { détection d’erreur }
- P_NR ;
- si N(S) 7é V{R) alors
- émettre REJ(N(R) = V(R)) { message non attendu }
- sinon
- V(R)--=V(R) + 1;
- N(R)-.= V(R);
- si pas de demande d’émission en cours alors émettre RR{N(R)) { acquittement}
- p.291 - vue 309/387
-
-
-
- 292 Systèmes informatiques répartis
- sinon
- {la trame sera acquittée par la prochaine trame / émise }
- fsi
- fsi
- fsi
- 2) Programme exécuté lors d’une demande d’émission : P _ DE
- émettre I{N(S) = V{S), N(R) = V(R));
- V(S) := V(S) + 1 ; si NS = DN{R ) alors armer Tl fsi
- 'Demande ^ ^.d’émission,
- [- ]REJ [N(R )]
- RNR
- - P-I | T’T-p P-DE
- F(5) * DN(R)+K K(S)= DN(R) + K
- P-RE J
- P-NR
- © ©
- ©
- rCTl h
- P-RTR
- ©
- RR
- | REJ £[W(/Î)] RNR
- P-RE J-
- REJ
- RR
- RNR - P-NR
- © © ®
- Figure 5. Protocole d’échange de trame.
- p.292 - vue 310/387
-
-
-
- Un exemple de protocole normalisé : HDLC 293
- 3) Programme exécuté à la réception de RE J : P_REJ
- V(S) N(R) ; si N(R) > DN(R) alors RT == 0
- fsi ;
- si N(R) + F(S) alors
- { réémettre les trames à partir du numéro 7(5)
- avec N(R) — V(R); armer Tl à la réception de la première trame }
- fsi
- P_NR
- 4) Programme exécuté à la réception d’un acquittement : P _NR
- Ce programme est exécuté à la réception d’un acquitement proprement dit ou d’une trame d’information jouant le rôle d’acquittement.
- si N(R) > DN(R) alors
- acquitter les trames entre DN(R) et N (R) — 1 ; désarmer Tl ; RT = 0 ;
- DN(R) := N (R)
- fsi
- 5) Programme exécuté lors d’une réémission de trame : P_RTR Ce programme est activé à l’écoulement du délai de garde Tl.
- émettre I(N{S) = DN(R), N (R) — F(S)) ; { réémission } armer Tl ;
- RT == RT + 1
- RENVOIS
- Références citées dans l’illustration 2
- CCITT, Cosell 78, ISO, Transpac 77.
- p.293 - vue 311/387
-
-
-
- p.294 - vue 312/387
-
-
-
- ILLUSTRATION 3
- UN EXEMPLE DE PROTOCOLE DE TRANSMISSION SUR VOIE FIABLE :
- L’UNIBUS DU PDP 11
- L’Unibus du PDP 11 [DEC 76] est un bus asynchrone utilisant comme protocole la technique de l’accord confirmé (voir 5.2). Tout signal est validé par un avis d’arrivée à bonne destination. Le transfert se fait par mot de 16 bits ou par octet et le débit maximal est de 2,5 millions de mot/s (soit 16 bits toutes les 400 ns).
- Le partage du bus est régi selon la méthode de l’élection par déclaration (voir 4.213). L’allocation du bus se fait par un arbitre central en utilisant 5 niveaux de priorité : chaque élément est branché sur un niveau par lequel il fait sa demande ; l’arbitre sert le niveau le plus prioritaire et s’il y a plusieurs demandes sur ce niveau il sert l’élément le plus proche. On appelle pilote (3.5) l’élément auquel est alloué le bus, et co-pilote son correspondant. L’initiative du transfert revient au pilote et le co-pilote doit toujours être prêt à répondre aux commandes du pilote.
- 13.1 VOIE DE COMMUNICATION
- La voie de communication comprend 56 fils répartis en 3 groupes.
- a) Transfert de messages (41 fils)
- • adresse A (18 fils) : adresse du co-pilote sur le bus,
- • donnée D (16 fils) : message transféré,
- • contrôle C ( 2 fils) : envoyé par le pilote au co-pilote pour indiquer l’un
- des modes suivants.
- — transfert d’un mot du pilote vers le co-pilote (sortie),
- — transfert d’un octet du pilote vers le co-pilote,
- p.295 - vue 313/387
-
-
-
- 296 Systèmes informatiques répartis
- — transfert du co-pilote vers le pilote (entrée),
- — idem, avec demande d’inhibition du cycle de réécriture chez le copilote suivi par la sortie immédiate d’un mot du pilote vers le co-pilote (ceci permet de réaliser une section critique élémentaire : « test and set », ou « échange entre registre et mémoire »).
- • parité P • demande de transfert (2 fils) DT (1 fil)
- • transfert accepté TA (1 fü)
- • interruption I (1 fil)
- b) Arbitrage (12 fils)
- • requête du bus R (5 fils)
- • élection E (5 fils)
- • sélection S (1 fü)
- • occupation ! (1 fil)
- c) Initialisation (3 fils)
- • top T (1 fil)
- • baisse de tension B (2 fils)
- sert à vérifier le transfert des données, 1er élément du protocole de transfert asynchrone,
- 2e élément du protocole de transfert asynchrone,
- sert à interrompre le processeur.
- demande de pilotage selon 5 niveaux de priorité,
- sur le niveau sélectionné, envoi d’un jeton,
- accusé de réception du jeton,
- le bus est encore occupé par le pilote
- actuel.
- remise à leur état initial de tous les éléments branchés sur le bus, surveillance des alimentations électriques continues et alternatives.
- L’activation d’un signal est marquée par la tension 0 Y, sa désactivation par la tension 3,4 V. Le temps de commutation doit rester inférieur à 75 ns.
- Les fils doivent avoir une impédance caractéristique de 120 Q et une résistance maximale de 0,4 Q/m. Ils peuvent être constitués de paires torsadées ou de câbles coaxiaux.
- On peut brancher au maximum 20 éléments sur le bus ; au-delà de ce nombre, il faut ajouter au bus un organe répéteur.
- 13.2 TRANSFERT DE MESSAGES
- Le transfert de messages se fait en mode asynchrone selon la technique de l’accord confirmé'. Dans le cas d’un transfert de message du co-pilote vers le pilote (voir fig. 1), celui-ci charge les fils d’adresses (A) et les fils de contrôle (C). Après un délai suffisant pour permettre la lecture et le décodage de l’adresse et des valeurs de contrôle par tous les éléments branchés sur le bus, le pilote active le fil de demande de transfert (DT). En réponse le co-pilote affiche le message à transmettre sur les fils de données (D) et active le fil « transfert accepté » (TA). Cette activation permet au pilote de prélever le message et,
- p.296 - vue 314/387
-
-
-
- Un exemple de protocole de transmission sur voie fiable 297
- une fois ce prélèvement fait, de désactiver le fil DT. Le co-pilote sait alors qu’il n’est plus nécessaire de maintenir l’affichage du message et il signale qu’il a pris note de la fin de lecture du message en désactivant à son tour le fil TA. De son côté le pilote désactive aussi les fils C et D. Si le pilote n’utilise plus le bus après ce transfert, il désactive le fil 0 d’occüpation du bus.
- Le transfért de messages du pilote vers le co-pilote est tout à fait analogue.
- Le fil d’interruption permet au pilote d’envoyer une interruption vers le processeur pour lui demander un traitement urgent (cas d’erreur d’entrée-sortie, de fin de transfert de bloc). Le mot d’état d’interruption est alors véhiculé par les fils D.
- Axe du temps (sans facteur d’échelle)
- 0
- C
- entrée
- r
- A
- adresse x
- message d l
- lecture ded
- Demande de
- transfert. effective
- de l’échange
- Modifiés par le pilote
- Modifiés par le co-pilote d’adresse x
- Légende
- activation d’un signal
- désactivation
- Figure 1. Exemple de transfert de données en entrée.
- 13.3 ARBITRAGE
- L’arbitrage est effectué par un arbitre central et peut se faire en parallèle avec le transfert des messages (voir fig. 2).
- Supposons que l’arbite ait reçu des requêtes sur les fils R ; quand le moment du choix est venu, il active le fil d’élection E correspondant à la demande de plus forte priorité. Ce fil E passe par tous les éléments de même priorité. Le demandeur le plus proche de l’arbitre reçoit l’activation en premier ; il signale
- p.297 - vue 315/387
-
-
-
- 298 Systèmes informatiques répartis
- son élection en activant le fil de sélection S et l’arbitre accuse réception en désactivant E. On notera qu’il ne connaît pas l’identité de l’élu et que l’élu n’a pas encore le droit d’être pilote.
- Quand le pilote en cours a terminé avec le bus, il désactive le fil d’occupation du bus (0) ; c’est à ce moment-là seulement que l’élu devient pilote ; il active le fil 0, puis désactive le fil de sélection S, ce qui permet à l’arbitre de faire l’élection du prochain pilote.
- Axe des temps (sans facteur d’échelle)
- 0
- i i
- S
- Rx
- Ex
- Ri
- E2
- I
- I
- I
- arbitrage
- I
- :t
- l’élément est élu
- L’élément x est pilote
- l
- nouvel
- arbitrage
- L’élément 2 est pilote
- Légende
- activation
- désactivation
- priorité R2 > priorité Ri
- Figure 2. Exemple d’arbitrage sur un bus.
- RENVOIS
- Références citées dans l’illustration 3
- DEC 76.
- p.298 - vue 316/387
-
-
-
- ILLUSTRATION 4
- UNE MÉTHODE DE VALIDATION DES PROTOCOLES DE COMMUNICATION
- La méthode de validation des protocoles que nous présentons a été élaborée et mise en œuvre au laboratoire IBM de Zurich. C’est une méthode qui repose sur les automates d’états finis. Elle a conduit à plusieurs réalisations successives ; celle que nous présentons est décrite dans [West 77].
- 14.1 REPRÉSENTATION DES PROTOCOLES
- Soit un protocole P mettant en jeu deux processus A et B qui veulent communiquer. Le processus A fait une demande d’ouverture de communication et passe dans l’état AO (attente ouverture). La demande peut être rejetée, et A revient à l’état neutre, ou acceptée, et A passe dans l’état AE (attente échange). Dans ce nouvel état, A peut envoyer un message M à B. Si ce message est bien reçu, A repasse dans l’état neutre, sinon on itère jusqu’à ce que le message soit accepté (voir fig. 1).
- Le mode de représentation choisi dans la méthode de West est une matrice de transition (analogue à celle qui représente un automate d’état fini). Dans notre exemple, l’ensemble des états du protocole P est représenté par la conjugaison des états du processus A, du processus B, de la voie simple reliant Ah B (notée V-AB) et de la voie simple reliant B h A (notée V-BA). L’utilisation de l’état des deux voies permet de représenter l’état du médium de communication.
- La table de la figure 2 énumère tous les états possibles du protocole. Pour la construire, on part d’un état initial et on explore toutes les transitions possibles à partir de cet état, puis on répète le processus à partir des états obtenus.
- La dernière colonne de la figure 2 contient le graphe des transitions entre les états du système. Les cercles représentent des états intermédiaires et les astérisques figurent l’état neutre.
- p.299 - vue 317/387
-
-
-
- 300 Systèmes informatiques répartis
- Légende
- Etats
- Evénements locaux
- Messages
- N : neutre AO : attente ouverture AE : attente échange AA \ attente acquittement AM : analyse du message
- E0 : demande d’ouverture
- E : demande d’échange
- OK : acceptation d’une demande
- 1 O K : refus d’une demande
- M
- ACK, ACKX N AC K, N AC K ouvrir
- Figure 1. Représentation du protocole P à l’aide d’un réseau d’évaluation.
- Etats du protocole Etats A Etats V-AB Etats B Etats V-BA Graphe d’exécution
- 0 N N 1 état initial
- 1 AO ouvrir N —
- 2 AO — AO —
- 3 AO — N NACK
- 0 N — N — : :
- 4 AO — AE ACK
- 5 AE — AE —
- 6 AA M AE —
- 7 AA — AM —
- 8 AA — AE NACKj <
- 5 AE — AE — < »
- 9 AA — N ACKX
- 0 N — N — 1
- Figure 2. Représentation du protocole P à l’aide d’une matrice de transition.
- p.300 - vue 318/387
-
-
-
- Une méthode de validation des protocoles de communication 301
- Il faut remarquer que, bien que ce mode de représentation tienne compte de l’état du médium de communication, il fait l’hypothèse que ce médium est fiable. Si l’on veut représenter le problème précédent en incluant un traitement d’erreurs de communication, il faut définir un nouveau protocole.
- Reprenons le protocole P, en nous limitant, pour simplifier, à la phase d’ouverture. On ajoute dans le processus A une horloge de garde qui évite l’attente infinie d’un acquittement. On admet d’autre part que B accepte toujours l’ouverture. Enfin, un processus supplémentaire, C, représente le comportement
- l> ouvrir((2) DG
- Processus A
- t> EC{B)
- -f> -1---r
- vrir(B) i
- ouvrir
- Processus C
- ouvrir
- ACK(A)
- Processus B
- Légende
- Evénements locaux
- E0 : demande d’ouverture
- OK : acceptation d’une demande
- “10 K : refus d’une demande ^ : armer un réveil £3: sonnerie d’ün réveil
- Etats
- N : neutre AO : attente ouverture AE : attente échange AM : analyse du message
- Messages
- ouvrir (adresse)
- EC {adresse)
- AC K {adresse)
- Figure 3. Représentation du protocole P' à l’aide de réseaux d’évaluation.
- p.301 - vue 319/387
-
-
-
- 302 Systèmes informatiques répartis
- du médium. Selon que le message émis par A est bien ou mal transmis, C transmet à B le message ou un signal d’erreur.
- Le protocole P' liant A, B et C est alors défini par le réseau d’évaluation donné en figure 3. Pour construire la matrice de transition, on applique aux trois processus A, B, C la méthode précédente. On considère donc V-AC, V-CB et V-BA, trois voies simplex reliant respectivement A à C, C à B et B à A. Les voies simplex reliant C à A, B à C et A à B ne sont pas créées car elles ne sont pas utilisées dans cet exemple. En appliquant au système constitué par A, B, C, V-AC, V-CB, V-BA la méthode des transitions on construit la représentation donnée en figure 4.
- Etats du protocole P'
- Graphe
- d’exécution
- Etats
- V-AC
- V-CB
- V-BA
- état initial
- ouvrir
- ouvrir
- ACK
- ACK
- ouvrir
- ACK
- (*) Transition provoquée par la fin d’un délai de garde.
- Figure 4. Représentation du protocole P ' à l’aide d’une matrice de transition.
- 14.2 PRÉSENTATION DE LA MÉTHODE GÉNÉRALE DE VALIDATION
- 14.21 NOTATIONS On note :
- P{i), i e [1, n]
- l’ensemble des processus mis en oeuvre dans le protocole et
- V(i,j) , {i,j)e[l,n] x [1, n]
- p.302 - vue 320/387
-
-
-
- Une méthode de validation des protocoles de communication 303
- le nom de la voie simplex qui accepte les messages envoyés par P(ï) et destinés au processus P(j).
- On fait les hypothèses suivantes sur les voies de communication :
- H1 : le temps mis par un message pour aller d’un processus à l’autre est inconnu.
- H2 : une voie ne perd pas de message et les délivre dans l’ordre où ils sont émis.
- H3 : à chaque voie est associé un nombre maximal de messages qu’elle est susceptible de transporter à un instant donné; on note CAP(i,j) ce nombre.
- Si état-P(i) et état-V(i,j) désignent respectivement les états du processus P{i) et de la voie V(i, j), la matrice E définie par
- E(i, i) = état-P(i) i e (1, n)
- E{iJ) = état-V(i,j) i # j
- est une représentation possible de l’état instantané du système.
- 14.22 ERREURS DÉTECTÉES PAR LA MÉTHODE
- On cherche à détecter des erreurs appartenant à l’une des trois classes suivantes :
- 1) Erreur de réception. Le système est dans un état tel que la voie V(i,j) aboutissant au processus P(j) contient en tête un message M dont la réception n’est pas prévue (P{j) est dans un état où aucune transition n’est conditionnée par M).
- 2) Blocage. Toutes les voies sont vides alors que, pour tous les processus, les seules transitions possibles nécessitent l’arrivée d’un message.
- 3) Débordement. Pour un processus donné P(i) le système est dans un état tel qu’une transition qui conduit à dépasser la capacité de la voie V(i,j) est possible.
- 14.23 PRINCIPE DE LA MÉTHODE
- Considérons le système à un instant où il est dans un état E. Si un des processus P(i) effectue une transition, le système passe alors dans un état E'. Etant donné un état E et un ensemble d’états { E } nous conviendrons de noter :
- — X{E) l’ensemble des transitions qu’il est possible d’appliquer à E.
- — SUCC({ E }) l’ensemble des états obtenus en appliquant à chaque E e { E } toutes les transitions de X(E).
- Remarque. X(E) contient au moins toutes les transitions qui correspondent à un changement d’état décidé sur une condition locale.
- p.303 - vue 321/387
-
-
-
- 304 Systèmes informatiques répartis
- La méthode de validation de protocoles que nous présentons ici consiste à effectuer l’énumération de tous les états que le système est susceptible de prendre en appliquant, à partir de l’état initial E0 qui est connu, une suite quelconque de transitions.
- Cette énumération revient à calculer
- E0, { E,} = SUCC(E0), { E2 } = SUCC{{ Ex }), etc.
- Nous ne précisons pas l’algorithme utilisé, mais nous donnons le principe de détection des erreurs.
- Quand on vient de déterminer un nouvel état possible E, on calcule X(E). Trois cas d’erreur peuvent alors se produire :
- 1) X(E) est vide, ce qui correspond à un blocage.
- 2) X(E) contient une transition qui va provoquer le débordement de la capacité d’une voie.
- 3) E est tel qu’il existe un message M en tête d’une voie et X{E) ne contient pas de transition qui provoque la consommation de ce message. Ce cas correspond donc à un état du système où la réception du message M est possible (hypothèsesH1 etH2) mais où rien n’est prévu pour le traiter.
- Si nous reprenons l’exemple 4 développé en 14.1, c’est le cas de l’état noté 8. En effet, le message AC K, envoyé de B vers A, parvient à A après la fin du délai de garde. Donc A reçoit le message AC K alors qu’il est dans l’état N. Or ce cas n’est pas prévu par la définition de A.
- 14.3 RÉALISATION
- La méthode présentée a été mise en oeuvre sur IBM 370/152 en APL. Un langage de description de protocole a été défini. Il permet de décrire les différents processus qui participent à un protocole ainsi que les voies simplex utilisées par ces processus.
- Un programme de validation de protocole donne en résultat non seulement la liste des états erronés mais également la suite des transitions qui y conduisent.
- Cette méthode a été utilisée pour valider des protocoles relativement complexes comme le protocole X21 normalisé par le CCITT [Rudin 78]. Elle a permis de trouver un certain nombre d’incohérences dans la définition de ce protocole.
- RENVOIS
- Références citées dans l’illustration 4
- Rudin 78, West 77.
- p.304 - vue 322/387
-
-
-
- ILLUSTRATION 5
- LA STATION DE TRANSPORT DU RÉSEAU DANUBE
- 15.1 PRÉSENTATION DE LA STATION DE TRANSPORT
- Le réseau local Danube [Quint 79] utilise pour ses communications une voie physique à diffusion dont l’interface d’accès est réalisée sous forme d’une unité autonome standard appelée communicateur (voir 3.422 et 4.22).
- Le réseau de transport (voir 3.622) est constitué d’yn ensemble de stations qui s’échangent des messages par le biais de leurs communicateurs et qui respectent un protocole de communication point à point (voir 5.3).
- Chaque station de transport offre aux processus abonnés qui lui sont rattachés deux sortes de service.
- — Le service circuit virtuel permet à deux processus abonnés sur deux sites distincts d’établir une voie virtuelle, avec contrôle d’erreur et régulation de flux, sur laquelle ils peuvent échanger une suite de lettres, chacune de 240 octets au plus, avec la garantie qu’elles sont toutes reçues dans l’ordre de leur émission. Les deux processus abonnés peuvent aussi, à tout moment, s’envoyer des télégrammes de 2 octets sur le circuit virtuel, mais leur transfert ne comporte ni contrôle d’erreur, ni régulation de flux.
- — Le service datagramme permet à deux processus abonnés sur deux sites distincts d’échanger des lettres isolées, chacune de 240 octets au plus, sans établissement préalable d’un circuit virtuel. Pour ce service, la station de transport transmet les datagrammes au communicateur sans mettre en place de contrôle d’erreur ou de régulation de flux. La qualité du service dépend alors de la vitesse du réseau de communication et de la disponibilité du récepteur.
- Nous présentons ici une version simplifiée de la station de transport, inspirée de la réalisation sur le système Micro-1 de Plessey [Rousset 79].
- C’est toujours le processus abonné qui prend l’initiative de demander un service à la station de transport. Ce service peut être l’envoi d’une lettre, d’un
- CORNAIION. — Systèmes iiiformciti(/tH's rè/ittrlis
- 11
- p.305 - vue 323/387
-
-
-
- 306 Systèmes informatiques répartis
- télégramme ou d’un datagramme, ou la demande d’établissement ou de rupture d’un circuit virtuel, adressé à un processus abonné d’un autre site.
- Le service peut aussi consister pour l’abonné à se faire avertir de l’arrivée d’une lettre, d’un télégramme, d’un datagramme, d’une demande d’établissement ou de rupture d’un circuit virtuel. Dans ce cas, au moment où il demande le service, le processus abonné fournit à la station de transport le nom d’une procédure qui fait partie de son propre contexte d’exécution et qui sera chargée de prendre en compte cette arrivée. En effet, lorsque cette arrivée se produit, le processus abonné est dérouté (ou s’il est bloqué, il est réveillé) pour aller exécuter cette procédure ; et c’est dans cette procédure qu’est programmée l’utilisation des services de la station de transport pour recevoir la lettre, le télégramme, le datagramme, la demande d’établissement ou de rupture d’un circuit virtuel.
- Enfin, le processus abonné peut demander à la station de transport de ne plus rien lui transmettre du tout.
- Les services ainsi accessibles aux processus abonnés forment l’interface de transport. Les stations de transport communiquent entre elles selon un protocole de transport. Ce protocole est mis en oeuvre par 3 processus de la station de transport, les processus émetteur, récepteur et chien de garde, qui utilisent l’interface de communication et qui sont en liaison avec le communicateur.
- Nous allons décrire l’interface et le protocole de transport, puis nous donnerons une présentation schématique de la station de transport et une explication succincte de son fonctionnement.
- 15.2 L’INTERFACE DE TRANSPORT
- L’interface de transport définit pour les processus abonnés la manière d’utiliser le réseau de transport. Chaque service va être décrit sous forme d’une procédure. Pour présenter ces procédures, nous faisons précéder du mot clé abonné les valeurs fournies par le processus abonné à l’appel et du mot clé st les valeurs rendues en retour par la station. Nous utiliserons aussi le mot abonné au lieu de processus abonné.
- Un premier service de la station de transport consiste à gérer l’arrivée et le départ des abonnés par les deux procédures :
- ouvrir porte (abonné : nom de porte, liste des noms de procédure ; st : statut)
- fermer porte (abonné : nom de porte ; st : statut)
- L’abonné choisit un nom de porte selon des critères qui ne dépendent pas de la station de transport ; celle-ci vérifie cependant, à l’ouverture, que le nom de porte n’est pas déjà utilisé. La liste des noms de procédure correspond aux arrivées de messages possibles et elle peut être incomplète : l’abonné est considéré comme absent pour toutes les arrivées non associées à une procédure. Le statut indique comment s’est déroulée l’exécution de la procédure d’ouverture ou de fermeture.
- p.306 - vue 324/387
-
-
-
- La station de transport du réseau Danube 307
- Les événements pris en compte sur une porte ouverte sont l’arrivée d’un datagramme et la demande d’ouverture d’un circuit virtuel. Le service datagramme est donc possible dès que les deux abonnés émetteur et récepteur ont ouvert une porte. Le transfert d’un datagramme se fait par :
- envoyer datagramme (abonné : nom de porte réceptrice, nom de porte émet-trice, identification de Vémetteur, datagramme ; st : statut)
- recevoir datagramme (abonné : nom de porte réceptrice ; st : identification de Vémetteur, datagramme)
- Un autre service de la station de transport est d’assurer l’établissement de circuits virtuels entre abonnés. On utilise pour cela les deux procédures :
- ouvrir circuit (abonné : nom de porte de Vabonné appelé, nom de porte de F abonné appelant, identificateur de l'abonné appelant, nom de procédure, avoir en réception, commentaires de l'abonné appelant ; st : statut, nom de circuit virtuel, commentaires de l'abonné appelé)
- fermer circuit (abonné : nom de circuit virtuel, télégramme ; st : statut)
- Pour que le circuit virtuel soit établi, il faut que les deux abonnés aient demandé son établissement par ouvrir circuit et que les deux stations de transport aient négocié et accepté cet établissement. Les deux abonnés ont dû se mettre d’accord au préalable sur les noms de porte du circuit, par exemple par l’envoi d’un datagramme contenant ces noms. Les événements pris en compte par la procédure nom de procédure fournie par l’abonné appelant sont la fermeture du circuit virtuel, l’arrivée d’une lettre ou d’un télégramme.
- Le statut, fourni en fin d’ouverture, indique si l’opération s’est bien déroulée ou si au contraire l’ouverture n’a pas pu se faire par mauvais passage de paramètres, absence de l’abonné appelé ou manque de ressources dans une station. Quand l’opération s’est bien terminée, la station de transport a effectué l’échange des chaînes de caractères que les abonnés ont passées en commentaires et qui leur servent à se transmettre des paramètres additionnels d’ouverture.
- Le circuit virtuel est rompu si une erreur irrécupérable est détectée par l’une des deux stations de transport ou si l’un des abonnés le demande. Dans ce dernier cas, l’abonné peut envoyer un télégramme d’explication à son correspondant. Le statut indique si l’opération de fermeture s’est bien passée, si le circuit virtuel est déjà fermé.
- L'avoir en réception indique le nombre de lettres que l’abonné appelant est prêt à recevoir sur le circuit virtuel ; chaque arrivée de lettre décrémente un compteur initialisé à cette valeur d’avoir ; le compteur peut être rajusté par l’exécution de la procédure rajouter avoir.
- rajouter avoir (abonné : nom de circuit virtuel, avoir supplémentaire)
- Un avoir nul à l’ouverture équivaut au refus d’être récepteur et signifie donc l’ouverture d’une voie unidirectionnelle.
- p.307 - vue 325/387
-
-
-
- 308 Systèmes informatiques répartis
- L’échange d’information proprement dit se fait sur le circuit virtuel par les quatre procédures suivantes.
- envoyer télégramme (abonné : nom de circuit virtuel, télégramme ; st : statut) envoyer lettre (abonné : nom de circuit virtuel, lettre ; st : statut) recevoir télégramme (st : nom de circuit virtuel, télégramme, statut) recevoir lettre (st : nom de circuit virtuel, lettre, statut)
- Les procédures recevoir lettre et recevoir télégramme ne sont pas bloquantes ; on a vu, dans la présentation des services de la station de transport (15.1), que l’arrivée d’une lettre ou d’un télégramme déroute le processus abonné et active immédiatement une procédure nom de procédure qui peut contenir l’appel de la procédure de réception de lettre ou de télégramme.
- 15.3 LE PROTOCOLE DE TRANSPORT
- Le protocole de transport se décompose en un protocole d’ouverture, un protocole de fermeture et un protocole d’échange.
- Le protocole d’ouverture (resp. fermeture) d’un circuit virtuel utilise le message de commande début de circuit virtuel (resp. fin de circuit virtuel). La station appelante envoie cette commande et attend la réponse qui est également un message de la même forme. Si cette réponse arrive avant un délai de garde Tl, le circuit virtuel est ouvert (resp. fermé), sinon le circuit virtuel est considéré comme fermé (dans les deux cas).
- Les protocoles d’ouverture et de fermeture de circuit virtuel sont représentés sur la figure 1 sous forme de réseau d’évaluation.
- Le protocole d’échange sur le circuit virtuel est le protocole PAR qui a été présenté en 5.32 et que nous rappelons ici.
- La station émettrice numérote les messages qu’elle envoie pour le circuit virtuel et arme une horloge de garde avec un délai T2, à l’émission de chaque message. La station réceptrice acquitte chaque message en renvoyant le numéro du message acquitté, à condition que le message et tous les précédents messages aient été reçus sans erreur, sinon elle ne renvoie pas d’acquittement. Si la station émettrice n’a pas reçu d’acquittement au bout du délai T2, elle réémet le message non acquitté.
- Si un message a été envoyé P fois sans succès sur un circuit virtuel, la station émettrice ferme le circuit. Les messages reçus en double ne sont pas pris en compte, mais sont acquittés.
- La station réceptrice alloue des crédits à la station émettrice (voir 5.34). Si le crédit est nul, il s’agit d’une demande d’arrêt d’émission.
- Pour ce protocole, la station de transport émet vers le communicateur des messages émission de lettre, émission de crédit, acquittement, émission de télégramme. Hors circuit virtuel, la station de transport émet aussi des messages émission de datagramme.
- p.308 - vue 326/387
-
-
-
- La station de transport du réseau Danube 309
- Station appelée (a) Protocole d’ouverture de circuit virtuel
- Î>FCV
- fermer circuit
- garde) ou
- (Délai de
- Station appelante Station appelée
- (b) Protocole de fermeture de circuit virtuel
- Légende :
- DCV : début de circuit virtuel état 1 : ouverture en cours
- FCV : fin de circuit virtuel état 2 : circuit ouvert
- état 0 : circuit fermé état 3 : fermeture en cours
- Figure 1. Protocoles d’ouverture et de fermeture de circuit virtuel.
- 15.4 SCHÉMA DE LA STATION DE TRANSPORT
- Une présentation très schématique de la station de transport est donnée sur la figure 2.
- A l’ouverture d’une porte, la station de transport crée un contexte de porte qui ne sera détruit qu’à sa fermeture.
- p.309 - vue 327/387
-
-
-
- 310 Systèmes informatiques répartis
- contexte
- code de déroutement
- Couvrir porte
- pour A.
- contexte
- contexte
- " H ouvrir circuit
- circuit virtuel pour A
- circuit virtuel pour A
- abonné A en émission
- envoyer lettre
- dépôt de
- message
- [émetteur\ ^
- tampon
- émettre!
- message
- abonné b en réception
- écepteun y
- prendre
- contexte
- pour B
- contexte
- code de déroulement
- circuit virtuel pour B
- station de transport
- Légende
- appel de procédure lecture ou écriture lien de chaînage
- processus
- segment de
- ~Z_______^ entrée-sortie procédure mémoire
- Figure 2. Schéma du fonctionnement de la station de transport.
- p.310 - vue 328/387
-
-
-
- La station de transport du réseau Danube
- 311
- A l’ouverture d’un circuit virtuel, la station de transport crée un contexte de circuit virtuel qui est rattaché au contexte de la porte utilisée et qui ne sera détruit qu’à la fermeture du circuit virtuel ou à la fermeture de la porte utilisée.
- Les contextes de porte et les contextes de circuit virtuel ont la définition suivante :
- contexte de porte : structure
- • nom de porte
- • état
- • nom du processus abonné local
- • procédure à appeler chez l'abonné en cas d'arrivée de datagramme
- • procédure à appeler chez l'abonné en cas de demande d'ouverture de circuit virtuel
- • liste des contextes de circuit virtuel rattachés à cette porte
- • nombre de circuits virtuels mettant en jeu cette porte fin contexte de porte ;
- contexte de circuit virtuel : structure
- • nom de circuit virtuel
- • état
- • nom du processus abonné local
- • nom du processus abonné distant
- • noms de la station de transport et de la porte distante
- • procédure à appeler chez l'abonné en cas d'arrivée d'une lettre, d'un télégramme ou d'une demande de fermeture du circuit virtuel
- • chaînage sur le contexte de porte
- • chaînage sur un circuit virtuel partageant la même porte { ce qui suit est le contexte utilisé pour la réception }
- • avoir en réception
- • numéro de la dernière lettre acquittée
- • file des lettres reçues non retirées par l'abonné
- { ce qui suit est le contexte utilisé pour l’émission }
- • crédit en émission { voir 5.342 }
- • numéro de la dernière lettre émise
- • numéro de la première lettre non acquittée
- • nombre de réémissions
- • file des lettres émises et non acquittées fin contexte de circuit virtuel ;
- A titre d’exemple, nous donnons un aperçu de quelques procédures et des processus de la station de transport, schématisés par ailleurs dans la figure 2. procédure ouvrir porte (abonné : nom de porte, liste de noms de procédure ; st : statut) ;
- { effet : déclare la porte utilisable pour l’ouverture de circuit virtuel ou
- le transfert de datagrammes :
- vérifie que la porte n’est pas déjà validée ;
- alloue un bloc de mémoire pour le contexte de porte (échec possible) ; remplit le contexte de porte } fin ouvrir porte ;
- p.311 - vue 329/387
-
-
-
- 312 Systèmes informatiques répartis
- procédure ouvrir circuit (abonné : nom de porte appelée, nom de porte appelante, identification de l'abonné appelant, nom de procédure, avoir en réception, commentaires de l'abonné appelant ; st : statut, nom de circuit virtuel, commentaires de l'abonné appelé) ;
- { effet : met en place les ressources pour assurer le service circuit virtuel avec contrôle d’erreur et contrôle de flux, essaie d’ouvrir le circuit virtuel}
- début
- allouer un bloc de mémoire pour le contexte de circuit virtuel { échec possible } ;
- remplir le contexte de circuit virtuel ;
- préparer un message début de circuit virtuel avec les paramètres adéquats ;
- le déposer dans le tampon du processus émetteur ;
- armer un réveil du processus chien de garde pour l'abonné appelant ;
- suspendre le processus appelant {en attente d’un message ou du réveil} ;
- si réveil par chien de garde ou message fin de circuit virtuel
- alors
- libérer la mémoire occupée par le contexte de circuit virtuel ; retour avec statut d'ouverture manquée sinon { c’est l’arrivée d’un message début de circuit virtuel} état du circuit virtuel = ouvert ; retour avec statut d'ouverture réussie fsi
- tin ouvrir circuit ;
- procédure envoyer lettre (abonné : nom de circuit virtuel, lettre ; st : statut) { effet : transmet une lettre sous couvert d’un circuit virtuel}
- début
- vérifier que le circuit virtuel est ouvert pour l'abonné { échec possible } ; si crédit en émission = 0 alors retour avec statut de refus fsi ; préparer un message émission de lettre avec les bons paramètres { dont un numéro de lettre } ;
- le déposer dans le tampon du processus émetteur ;
- armer un réveil du processus chien de garde en lui donnant Je numéro de lettre { réémission possible } ;
- mettre à jour le contexte de circuit virtuel utilisé pour l'émission et en particulier y garder une copie de la lettre à émettre fin envoyer lettre ;
- procédure recevoir lettre (st : nom de circuit virtuel, lettre, statut) ;
- { effet : recueille une lettre transmise sous couvert du circuit virtuel}
- début
- vérifier que le circuit virtuel est ouvert pour l'abonné { échec possible } ; consulter, dans le contexte du circuit virtuel, la file des lettres reçues, non retirées par l'abonné ;
- p.312 - vue 330/387
-
-
-
- La station de transport du réseau Danube 313
- si une lettre au moins y est présente
- alors
- prendre la plus ancienne et mettre à jour le contexte de circuit virtuel
- sinon
- retour avec statut d'absence de lettre fin recevoir lettre ; processus émetteur ;
- { effet : transmet vers les autres stations de transport les messages qui ont été déposés dans son tampon. Ces messages sont du type : début de circuit virtuel fin de circuit virtuel émission de lettre acquittement émission de crédit émission de télégramme émission de datagramme complétés par les paramètres adéquats } cycle
- attendre qu'il y ait au moins un message dans le tampon ; émettre le prochain message vers le communicateur { si le message est du type émission de lettre ou début de circuit virtuel alors on arme un réveil du processus chien de garde }
- fcycle
- fin émetteur ; processus récepteur ;
- { effet : reçoit les messages des autres stations de transport et les ventile dans les contextes de circuit virtuel et de porte en effectuant les actions concomitantes } cycle
- prendre le prochain message en provenance du communicateur ; choix message dans début de circuit virtuel :
- si la porte demandée existe et l'abonné a donné une procédure pour traiter cette demande
- alors
- dérouter l'abonné appelé vers cette procédure,
- sinon
- préparer un message fin de circuit virtuel destiné à l'appelant ; le déposer dans le tampon du processus émetteur
- fsi ;
- acquittement :
- début
- rechercher dans le contexte du circuit virtuel la copie de lettre à acquitter ;
- si elle s’y trouve encore
- p.313 - vue 331/387
-
-
-
- 314 Systèmes informatiques répartis
- alors
- détruire cette copie ;
- rendre la mémoire correspondante ;
- remettre à jour le crédit
- fsi
- fin;
- émission de lettre :
- début
- vérifier que le circuit virtuel est ouvert { échec possible } ;
- si la lettre a le numéro de la prochaine lettre attendue sur ce circuit et ravoir est positif
- alors
- chaîner cette lettre dans la file des lettres reçues ; préparer un message acquittement destiné à rappelant ; le déposer dans le tampon du processus émetteur ; dérouter rabonné destinataire vers la procédure qu’il a donnée pour cela
- sinon
- si le numéro de la lettre est en retard
- alors
- préparer un message acquittement destiné à l’appelant ; le déposer dans le tampon du processus émetteur
- fsi fsi fin ;
- fchoix fcycle
- fin récepteur ;
- processus chien de garde ;
- { effet : gère un échéancier avec les divers délais de garde, ce qui l’amène à réveiller des processus ou à entreprendre des actions de contrôle }
- cycle
- attendre une demande de réveil ou la prochaine échéance ; si demande de réveil
- alors
- le ranger dans l’échéancier par dates croissantes
- fsi
- si prochaine échéance
- alors
- choix réveil dans
- délai d’ouverture de circuit :
- réveiller le processus abonné suspendu dans la procédure ouvrir circuit ;
- p.314 - vue 332/387
-
-
-
- La station de transport du réseau Danube 315
- délai d'émission de lettre :
- si la copie de la lettre est toujours présente dans le contexte du circuit virtuel
- alors {la lettre n’a pas été acquittée } incrémenter le nombre de réémissions ; si ce nombre dépasse le seuil admissible alors { on ferme le circuit virtuel }
- dérouter l'abonné vers la procédure qu'il a fournie pour cela ; préparer un message fin de circuit virtuel ; le déposer dans le tampon du processus émetteur ; détruire le contexte de circuit virtuel ; libérer la mémoire correspondante sinon { réémettre la lettre }
- préparer un message émission de lettre ; le déposer dans le tampon du processus émetteur fsi
- sinon {la lettre a été acquittée }
- remettre à zéro le nombre des réémissions
- fsi ; etc... fchoix fsi
- fcycle
- fin chien de garde ;
- RENVOIS
- Liste des références citées dans l’illustration 15
- Quint 79, Rousset 79.
- p.315 - vue 333/387
-
-
-
- p.316 - vue 334/387
-
-
-
- ILLUSTRATION 6
- UN SYSTÈME DE GESTION DE FICHIERS RÉPARTIS : DFS
- 16.1 PRÉSENTATION GÉNÉRALE
- Le système DFS (Distributed File System) de Xerox [Israël 78] est un système expérimental de gestion de fichiers distribués reposant sur un réseau Ethernet. Les fichiers peuvent être répartis sur plusieurs sites mais constituent pour les usagers, ou clients, un seul ensemble logique d’informations.
- Le système se compose de serveurs implantés sur les sites où se trouvent les fichiers et pouvant coopérer. Chaque fichier, désigné par un numéro, est découpé en pages. DFS autorise l’accès direct à des chaînes d’octets ou aux pages du fichier. Un service catalogue, considéré comme client de DFS, permet d’utiliser des noms symboliques de fichier.
- En vue de construire des bases de données, le système fournit la notion de transaction, c’est-à-dire la possibilité d’encapsuler une séquence logique de lectures et d’écritures portant sur un ensemble réparti de fichiers.
- Toute transaction est atomique (indivisible) : ou bien elle est totalement exécutée, ou bien elle n’a aucun effet en cas d’incident ; en outre si deux transactions s’exécutent en parallèle, le résultat est le même que si elles s’exécutaient en séquence (voir 10.22).
- Cette illustration a pour but d’exposer brièvement une technique permettant de rendre les transactions atomiques.
- Dans DFS, une transaction se compose d’une séquence d’actions (lectures, écritures, créations et destructions de fichiers) délimitée par une commande initiale d’ouverture et une commande finale de fermeture ou annulation. Ces commandes et ces actions se traduisent par des messages échangés entre clients et serveurs. L’opération d’ouverture est exécutée par un premier serveur, appelé coordinateur de la transaction. Tous les serveurs participant à une même transaction peuvent être amenés à coopérer.
- Le système DFS est construit par niveaux. A chaque niveau, l’atomicité des actions est assurée par un dispositif de détection d’erreur et de reprise en cas d’échec. Le dispositif de reprise utilise des ressources fiables, dites ressources « solides ».
- p.317 - vue 335/387
-
-
-
- 318 Systèmes informatiques répartis
- 16.2 LES RESSOURCES SOLIDES
- Le système utilise comme ressources des disques, des processeurs et un réseau de communication, toutes ces ressources étant susceptibles de subir des défaillances, donc de compromettre les transactions.
- Comme on recherche une haute fiabilité, il est nécessaire de prendre en considération tous les types d’incidents que l’on peut prévoir et d’implanter pour chacun d’eux un mécanisme de reprise. Des incidents imprévus peuvent survenir ; ils provoquent une altération (« decay ») de la ressource.
- Une méthode utilisée pour masquer les incidents consiste à englober une ressource physique dans une ressource virtuelle, débarrassée de certains défauts de la ressource physique. Cette ressource virtuelle peut à son tour être encapsulée dans une ressource encore plus fiable.
- A titre d’exemple, nous décrivons sommairement la construction des disques virtuels [Lampson 79]. Un disque physique est un ensemble de pages dont chacune a un contenu et un état, bon ou mauvais, qualifiant le contenu. Deux opérations sont définies :
- — lire une page, qui fournit le contenu et l’état de la page,
- — écrire une page.
- Un exemple d’événement prévu est l’erreur d’écriture. Comme événements imprévus on peut citer :
- — l’altération de pages, par mauvais fonctionnement des têtes du disque,
- — l’écriture d’une page à une mauvaise adresse,
- — la lecture d’une page qui n’est pas celle demandée.
- Pour se débarrasser de l’erreur d’écriture, on introduit un disque virtuel, dit soigneux, qui effectue des lectures et des écritures dites soignées. Une écriture soignée se traduit par une écriture sur le disque physique, suivie d’une lecture donnant l’état de la page. Si l’état est mauvais, l’écriture, suivie de la lecture, est recommencée une ou plusieurs fois jusqu’à obtenir une bonne page.
- Une écriture soignée garantit une bonne page, sauf en cas de panne du système qui gère le disque. Cette panne doit être évidemment considérée comme un événement prévu, donc récupérable, et pour y remédier on construit une seconde ressource virtuelle appelée disque solide. Pour un tel disque une écriture devient une opération atomique : soit la page est correctement écrite, soit elle garde son ancien contenu (en cas de panne).
- Pour atteindre cet objectif d’atomicité, on associe à toute page solide une paire ordonnée de pages sur le disque soigneux, telle que ces deux pages ne soient jamais toutes deux mauvaises et qu’elles aient le même contenu lorsqu’elles sont bonnes.
- Une écriture solide se traduit par une écriture soignée de chacune des copies, l’une après l’autre. Si une panne survient lors de la première écriture, ou lors de la seconde, ou entre les deux, les copies sont différentes.
- Pour obtenir l’identité des copies, lors de la reprise, on fait une lecture soignée de chaque copie :
- p.318 - vue 336/387
-
-
-
- Un système de gestion de fichiers répartis : DFS 319
- — si elles sont bonnes et identiques, le nettoyage est terminé ;
- — si une seule copie est mauvaise (par altération ou écriture avec panne) alors on fait une écriture soignée de la bonne copie dans la mauvaise ;
- — si les deux copies sont bonnes mais différentes, on choisit la première et on l’écrit soigneusement dans l’autre.
- Cette opération de nettoyage s’effectue lors de chaque panne et aussi périodiquement pour lutter contre l’altération du disque. On remarquera que le cas de deux copies simultanément mauvaises est exclu : en effet, en cas de panne au cours d’une écriture solide, une seule copie est mauvaise car les deux écritures soignées ne se chevauchent pas. En outre, on suppose que les deux copies ne peuvent pas s’altérer simultanément (si elles sont suffisamment « écartées » l’une de l’autre sur le disque). Ce disque solide est ainsi rendu inaltérable.
- En pratique toutes les informations n’ont pas besoin d’être écrites solidement. La mémoire solide contient essentiellement les informations de contrôle des transactions (verrous, contextes de processus, etc.).
- La technique développée ci-dessus pour le disque s’applique à d’autres objets. En particulier le processeur solide peut sauvegarder son contexte en mémoire solide et le restaurer après une panne ; on peut définir des moniteurs solides, pour lesquels l’exécution des procédures est atomique. On trouvera les détails, concernant aussi le mécanisme d’appel de procédures à distance, dans [Lampson 79].
- 16.3 REALISATION D’ACTIONS ATOMIQUES
- 16.31 ACTIONS RECOMMENÇABLES ET ACTIONS COMPATIBLES
- Pour la fiabilité du système, une action subissant une panne doit pouvoir être réexécutée. Une action est dite recommençable si, en cas de panne, les conditions permettant sa réexécution demeurent vraies, le résultat étant équivalent à une exécution unique de l’action.
- En utilisant le formalisme des assertions et en notant P une précondition pour l’exécution d’une action S, celle-ci est dite recommençable si
- — ou bien P { S } Q, c’est-à-dire si l’assertion P est vraie avant exécution de S, alors Q est vraie après une exécution de S en l’absence de panne ;
- — ou bien P est encore vraie après toute panne de processeur survenant en cours d’exécution de S.
- Par exemple, une écriture solide est recommençable, avec P = vrai et Q = (la page contient la nouvelle donnée). Plus généralement toute action atomique avec P = vrai est recommençable et toute séquence d’actions recommençables avec P = vrai, est elle-même recommençable.
- La notion d’action recommençable est étendue à un ensemble d’actions partageant des données communes par la définition d’actions compatibles.
- p.319 - vue 337/387
-
-
-
- 320 Systèmes informatiques répartis
- Considérons des données partagées entre diverses actions recommençables et une période d’utilisation de ces données. On dit que les actions sont compatibles si, à la fin de chaque période d’utilisation, comportant éventuellement des pannes, tout se passe comme si chaque action avait été exécutée, une à la fois, leur ordre d’exécution n’étant pas significatif.
- 16.32 ENSEMBLES SOLIDES ET ACTIONS COMPOSÉES
- En utilisant la mémoire solide, les processeurs solides et les actions compatibles, nous allons définir deux types d’objets plus complexes qui permettent de construire aisément des transactions atomiques.
- 1) Ensembles solides
- Pour la gestion des transactions, on utilise des ensembles d’articles. Dans ce but, on définit un ensemble solide comme une collection d’articles contenue dans une seule page solide, manipulée par les opérations suivantes.
- Soit es le type ensemble solide :
- créer (i : ident) construit un ensemble identifié par i ;
- insérer (s, t : es; nouveau : article) insère un nouvel article à la fois dans s et t (t pouvant être nil) ;
- remplacer (s, t : es; ancien, nouveau : article) remplace à la fois dans s et t un ancien article par un nouveau ;
- effacer (s : es) supprime tous les articles de s en les enlevant également des ensembles solides qui les contiennent éventuellement.
- itérer (s : es; p : procédure) appelle p avec chaque élément de s, ce qu’on écrira : pour r dans s faire p.
- Toutes ces opérations sont réalisées de façon à être compatibles et atomiques, sauf les deux dernières qui sont non atomiques. Le type ensemble solide se généralise en introduisant le type grand ensemble solide, réparti sur plusieurs sites et donc associé à plusieurs pages solides. On fait l’hypothèse que le nom unique d’un grand ensemble détermine le site donnant la racine de l’ensemble. Cette racine est un ensemble solide mémorisant les sites contenant les feuilles du grand ensemble, chaque feuille étant un ensemble solide.
- 2) Actions composées atomiques
- Le second type d’objet proposé permet de construire des actions atomiques de longueur arbitraire.
- Soit une famille d’actions compatibles et R un élément de cette famille. Nous utiliserons un processeur solide capable, en cas de panne, de sauvegarder son état par une action atomique sauver, et de le restaurer par l’action restaurer.
- Considérons alors la procédure suivante :
- début sauver ; R ; restaurer fin
- p.320 - vue 338/387
-
-
-
- Un système de gestion de fichiers répartis : DFS 321
- Toutes les procédures de la famille, encadrées de cette façon, deviennent des actions composées compatibles et atomiques. En effet, en cas de panne avant sauver rien n’est exécuté ; lors d’une panne après sauver, la séquence R peut toujours être exécutée en entier, en la recommençant éventuellement. Le résultat de la séquence est équivalent à une seule exécution de R, par définition d’une action recommençable. Si plusieurs opérations de la famille se déroulent simultanément, le résultat est équivalent à une seule exécution de chaque opération, par définition de la compatibilité.
- 16.4 RÉALISATION DES TRANSACTIONS ATOMIQUES
- L’idée essentielle pour rendre atomique toute transaction consiste à l’exécuter en deux phases.
- Première phase : inscrire les informations nécessaires aux écritures dans des listes dites d'intentions, sans effectuer aucune de ces écritures. Cette phase se termine par la décision d’engagement de la transaction (« commitment »).
- Seconde phase : exécuter les écritures et effacer les intentions. Cette seconde phase est recommençable en cas de panne.
- Lors d’un accès, un serveur installe des verrous, en écriture ou en lecture, en respectant les règles habituelles.
- L’écriture des intentions ainsi que l’engagement doivent être atomiques. Lorsque la transaction est engagée, aucune annulation n’est plus possible et les écritures sont toujours exécutées, même s’il y a des pannes.
- Pour atteindre ces objectifs, les intentions d’une transaction sont stockées dans un grand ensemble solide, et les verrous assurant l’atomicité des transactions concurrentes sont également rangés dans des ensembles solides. L’engagement et les écritures qui le suivent forment une action atomique composée.
- Le client appelle les opérations ouvrir, lire, écrire, fermer et annuler au moyen du mécanisme solide d’appel à distance. Toutes ces opérations sont compatibles.
- Pour définir les opérations utilisées au cours de l’exécution d’une transaction, on utilise les notations suivantes :
- 1) Types prédéfinis
- nt = nom unique de transaction
- ap = adresse de page (une adresse comporte un nom de fichier et un numéro de page dans le fichier)
- page = donnée représentant le contenu d’une page
- phase = (inexistante, initiale, engagée, annulée) pour représenter les états d’une transaction
- action = (lire, écrire)
- p.321 - vue 339/387
-
-
-
- 322 Systèmes informatiques répartis
- 2) Autres types
- intention — structure t :nt;p :ap;a: action ; d : page fin
- indicateur — structure t : nt; ph : phase fin
- A chaque page p de fichier correspond un ensemble solide p-verrous, dont les éléments sont les intentions des différentes transactions accédant à p, interprétées comme des verrous. Un moniteur contrôle l’accès à la page.
- Pour chaque transaction t on trouve chez le coordinateur la racine d’un grand ensemble solide t-intentions, avec une feuille chez chaque serveur concerné.
- Enfin, chaque serveur s entretient un ensemble solide d’indicateurs (représentant les états des transactions) s-indicateurs, protégé par un moniteur.
- 1) Lecture et écriture d'une page, définies comme opérations du moniteur de la page
- fonction lire (tr \nt;p : ap) : page ; variable accèslibre : booléen ; répéter accèslibre == vrai ;
- pour i dans p-verrous faire
- si i.t f tr et i.a — écrire alors accèslibre — faux fsi jusqu’à accèslibre-,
- insérer (p-verrous, t-intentions, < lire, nil )) ; lire •= < résultat d'une lecture solide de p}
- fin lire ;
- procédure écrire (tr : nt ; p : ap ; d : page) ; variable accèslibre : booléen ; dd : page ; répéter accèslibre •= vrai ; dd ~ d; pour i dans p-verrous faire si i.t ^ tr
- alors accès libre = faux
- sinon si i.a = écrire alors dd = i.d fsi
- fsi
- jusqu’à accès libre ;
- si dd # d alors remplacer (p-verrous, t-intentions, < écrire, dd >, < écrire, d}) sinon insérer (p-verrous, t-intentions, < écrire, d )) fsi
- fin écrire ;
- On remarque que les lectures sont enregistrées dans les intentions en vue de verrouiller la page contre l’écriture jusqu’à la fin de la transaction, et que deux écritures successives dans une même page et par la même transaction sont remplacées par une seule écriture (la seconde).
- 2) Contrôle de la transaction
- a) Opérations du moniteur gérant les indicateurs d’un site serveur s, inaccessibles aux clients :
- p.322 - vue 340/387
-
-
-
- Un système de gestion de fichiers répartis : DFS 323
- fonction phasecourante {t : nt) : phase ; si < t, * ) dans s-indicateurs
- alors phasecourante — ph de Vindicateur trouvé sinon phasecourante = inexistante
- fsi
- fin phasecourante ;
- procédure changerphase (t : nt; phase demandée : phase); choix phasecourante (t) dans engagée, annulée : rien ; initiale : remplacer par < t, phase demandée ) ; inexistante : si phase demandée — initiale
- alors insérer (s-indicateurs, nil, <( t, initiale )) fsi
- fchoix
- fin changerphase
- La procédure changerphase modifie l’état d’une transaction ; c’est une action atomique et recommençable. Toute transaction passe de la phase inexistante à la phase initiale, puis demeure définitivement soit dans la phase engagée, soit dans la phase annulée.
- b) Lancement et achèvement d’une transaction. Une transaction se termine normalement par une fermeture, mais, en cas d’incident, le client ou un serveur peuvent l’annuler. Il est donc possible pour une même transaction qu’il y ait émission simultanée d’une fermeture et d’une annulation. Les opérations de fermeture et d’annulation doivent être compatibles, ce qui est obtenu par l’appel dans les deux cas, d’une fonction phasefinale. L’exécution de cette fonction est une action atomique qui décide éventuellement d’engager la transaction et exécute alors les écritures.
- procédure ouvrir (variable t :nt); t = nouveau nom unique ; changerphase (t, initiale); créer un grand ensemble solide t-intentions fin ouvrir
- procédure fermer{t : nt ; variable ph : phase) ;
- ph — phasefinale(t, engagée) fin fermer
- procédure annuler(t : nt ; variable ph : phase) ;
- ph — phasefinale(t, annulée) fin annuler
- fonction phasefinale (t :nt; phasedemandée : phase) : phase ; si phasecourante (t) = inexistante alors phasefinale — inexistante
- sinon
- sauver; { vecteur d’état} changerphase(t, phasedemandée) ;
- p.323 - vue 341/387
-
-
-
- 324 Systèmes informatiques répartis
- {la transaction est maintenant engagée ou annulée } si phasecourante(t) = engagée alors pour i dans t-intentions faire
- si i.a = écrire alors écriresolidement (i.p, i.d) fsi
- fsi
- effacer (t-intentions) ; { efface aussi les entrées dans p-verrous } restaurer ; {le vecteur d’état}
- phasefinale ~ phasecourante(t)
- fsi
- fin phasefinale
- Le lecteur peut vérifier que, une fois la transaction engagée, toutes les écritures sont exécutées, même si un ordre d’annulation survient après ; si la transaction passe dans la phase annulée, aucune écriture n’est effectuée.
- RENVOIS
- Références citées dans l’illustration 6
- Eswaran 76, Israël 78, Lampson 79.
- p.324 - vue 342/387
-
-
-
- ILLUSTRATION 7
- KENSUR : CONCEPTION D’UN SYSTÈME ORIENTÉ VERS LA TRADUCTION DE LANGAGES
- Cette illustration a pour but d’indiquer quelques raisons qui incitent à utiliser une architecture répartie pour mettre en oeuvre une application et de montrer la démarche qui guide le choix de l’architecture matérielle et logicielle.
- 17.1 PRÉSENTATION GÉNÉRALE
- Le système Kensur [André F. 78], [André F. 80a] a pour objectif de permettre la programmation de compilateurs et plus généralement celle d’applications non numériques. Dans ce but, une architecture matérielle et un système de base ont été construits et les applications sont programmées dans un langage ad hoc : Yezhken. L’intérêt du système est ainsi d’offrir une architecture et un langage conçus précisément pour résoudre une classe de problème.
- L’étude du type d’application visé (la compilation) a conduit au choix d’une architecture répartie. La construction d’une telle architecture spécialisée, comprenant plusieurs processeurs, est d’un coût relativement faible si l’on utilise des micro-processeurs comme éléments de base. Un prototype, utilisant des micro-processeurs Zilog 80, a été réalisé au laboratoire IRISA de Rennes.
- Les paragraphes suivants présentent :
- — les avantages que peut procurer une architecture distribuée,
- — la description du réseau qui a été construit,
- — la gestion des communications,
- — quelques éléments du langage de programmation Yezhken et de sa mise en œuvre.
- p.325 - vue 343/387
-
-
-
- 326 Systèmes informatiques répartis
- 17.2 CONCEPTION D’UNE ARCHITECTURE ADAPTÉE A LA COMPILATION
- Les raisons qui ont conduit à l’utilisation d’une architecture distribuée pour la mise en oeuvre d’un compilateur sont essentiellement les suivantes.
- a) Possibilité de décomposition fonctionnelle. Un compilateur est composé de plusieurs fonctions, relativement indépendantes les unes des autres, qu’il est intéressant de répartir sur différents processeurs pour conserver la modularité de la structure logique. Certaines de ces fonctions, appelées standard, se rencontrent, quel que soit le langage compilé, dans presque tous les compilateurs. Isoler ces fonctions sur des processeurs revient à construire des processeurs spécialisés, qui constituent des éléments de base pour la construction de nouveaux compilateurs.
- b) Possibilité d'exécutions parallèles. Les exécutions des fonctions correspondent à des processus parallèles coopérants, d’où l’intérêt de disposer de plusieurs processeurs pouvant communiquer entre eux. Certaines fonctions coopèrent plus précisément selon le schéma producteur-consommateur, ce qui a conduit à construire une architecture de type pipe-line.
- Les résultats de l’analyse fonctionnelle d’un compilateur et de l’étude de son comportement dynamique par simulation ont permis la définition précise de l’architecture décrite au paragraphe suivant.
- 17.3 PROTOTYPE RÉALISÉ
- L’architecture de Kensur est composée de quatre unités principales correspondant aux quatre grandes fonctions d’un compilateur : analyse lexicale, analyse syntaxique, analyse sémantique et génération de code. Ces fonctions s’exécutent suivant un schéma pipe-line : les données sont acquises par l’analyse lexicale et sont transformées successivement par chacune des fonctions.
- Trois de ces fonctions (analyse lexicale, analyse syntaxique et génération de code) sont réalisées chacune par un processeur.
- En raison de sa complexité, l’analyse sémantique a été décomposée plus finement et est réalisée par un réseau de processeurs comprenant les éléments suivants :
- — deux processeurs spécialisés dans l’exécution des fonctions standard : ce sont les processeurs Gestion des types et Gestion des identificateurs,
- — trois processeurs sur lesquels se trouve le code des fonctions sémantiques dépendant du langage à compiler, les Fonctions Diverses.
- Pour des raisons de facilité de réalisation, le réseau qui relie ces processeurs est organisé en anneau (17.41). Les délais de transmission assez importants sur ce type de structure ont conduit à construire une mémoire commune
- p.326 - vue 344/387
-
-
-
- Kensur : système orienté vers la traduction de langages 327
- comme support des communications fréquentes entre les trois processeurs associés aux Fonctions Diverses. L’ensemble processeurs-mémoire constitue la partie multiprocesseur.
- Cette architecture est représentée sur la figure 1.
- Disque
- Mémoire secondaire (disque)
- avec les notations :
- —O—
- représente un processeur p et sa mémoire locale (hachurée)
- représente l’interface d’un processeur avec l’anneau de communication
- TTY
- AL
- AS
- GT
- G1
- P» P» Pz GC
- : télétype de l’usager, servant à introduire le texte source : analyseur lexical : analyseur syntaxique : gestion des types : gestion des identificateurs : multiprocesseur avec la mémoire commune M : générateur de code
- Figure 1. Architecture générale du système Kensur.
- p.327 - vue 345/387
-
-
-
- 328
- Systèmes informatiques répartis
- 17.4 SYSTÈME DE COMMUNICATION SUR LE RÉSEAU
- 17.41 OUTIL DE COMMUNICATION
- L’outil de communication est un anneau unidirectionnel réalisé en connectant deux par deux les ports d’entrée-sortie parallèle (PIO) de chaque processeur. Cet anneau utilise la technique du plateau tournant (voir 4.343). Un segment entre deux processeurs est ici un bus de 8 bits de large. Il peut y avoir autant de transferts simultanés sur l’anneau qu’il y a de segments. La réalisation des échanges se fait de manière asynchrone : des lignes de contrôle (Signal Prêt et Signal Alerte) permettent à deux sites consécutifs de se synchroniser lorsqu’ils ont des données à échanger. La communication est mise en oeuvre de la façon suivante.
- Chaque PIO possède sa propre bascule d’interruption masquable et deux ports utilisés l’un en entrée (A), l’autre en sortie (B). L’écriture d’un octet dans le registre du port A du site St provoque la montée du signal Prêt de A. Ce signal est interprété comme signal Alerte par le port B du site Si+1 et, si les interruptions sont démasquées, provoque une interruption. La lecture des données du port B sur le site Si+1 entraîne une montée du signal Prêt de B. La réception étant ainsi acquittée, le signal Prêt de A du site Si retombe marquant la fin du transfert.
- PIO PIO
- Alerte
- Alerte
- Segment
- Interruption
- Interruption
- Site N1, SiteSj+1
- Figure 2. Connexion de 2 sites.
- 17.42 LES PROTOCOLES DE COMMUNICATION
- Les informations circulent sur l’anneau sous forme de messages de longueur fixe de 15 octets. Chaque message comporte une entête indiquant le numéro du site émetteur (sur 3 bits) et le numéro du site destinataire (sur 3 bits).
- Chaque site possède deux files pouvant contenir un maximum de 20 messages chacune, l’une pour la réception, l’autre pour l’émission. A la réception d’un
- p.328 - vue 346/387
-
-
-
- Kensur : système orienté vers la traduction de langages 329
- message un site i détermine d’après l’en-tête s’il en est le destinataire, auquel cas il le range dans sa file d’entrée. Sinon le message est rangé dans la file de sortie pour être acheminé vers le site i + 1.
- Pour éviter l’engorgement, les règles suivantes ont été adoptées :
- a) un processus d’un site ne peut déposer un message dans la file de sortie (c’est-à-dire un nouveau message de l’anneau), que s’il reste au moins deux emplacements libres dans cette file, ce qui permet toujours d’assurer le transit d’un message,
- b) lorsque sa file d’entrée est pleine, un site retourne le message à l’expéditeur qui le retire momentanément de l’anneau en le plaçant en queue de sa file de sortie.
- Ces deux règles suffisent à éviter le blocage de l’anneau car le débit maximal entre deux sites est relativement grand par rapport au nombre de messages transmis.
- 17.5 LE LANGAGE DE PROGRAMMATION ET SA MISE EN ŒUVRE
- Le langage de programmation Yezhken offert aux utilisateurs de la machine est une extension du langage PLZ, langage proche de Pascal. Cette extension permet l’expression de processus parallèles et de leur coopération dans un système réparti. Un système opératoire interprète les primitives du langage en terme des outils de communication offerts par le système réseau. Nous présentons les principaux éléments du langage et quelques indications sur leur mise en oeuvre. Un bref exemple illustre l’utilisation du langage.
- 17.51 EXPRESSION DE LA COOPÉRATION : LES ÉVÉNEMENTS
- La coopération entre processus s’exprime au moyen d’événements, objets globaux pour l’ensemble du système. Un événement représente une valeur qui, à un instant donné de l’exécution, peut être calculée ou non.
- — Si elle n’est pas encore calculée, on dit que l’événement n’est pas arrivé et les processus qui veulent lire la valeur sont bloqués en attente de l’événement,
- — Si elle est calculée et associée à l’événement, l’événement est alors arrivé et les processus peuvent lire sa valeur.
- 17.511 Primitives associées aux événements
- Il y a trois principales opérations relatives à un événement : création, associa-ciation d’une valeur et accès à cette valeur.
- p.329 - vue 347/387
-
-
-
- 330 Systèmes informatiques répartis
- 1) Création d'un événement. La création d’un événement est le résultat de l’instruction :
- idev : event type — newev
- où idev est l’identificateur de l’événement, et type est le mode (entier, caractère, ...) de la valeur associée. L’événement est créé « non arrivé ».
- 2) Association d'une valeur à un événement. On associe une valeur à un événement par l’instruction :
- idev — v
- Cette opération est analogue à une opération signal sur un événement et à une affectation unique de valeur. A partir de ce moment, l’événement est arrivé, les processus éventuellement en attente sont libérés.
- 3) Accès à la valeur d'un événement. L’emploi dans une expression, par exemple dans y x + idev, de l’identificateur d’un événement exprime la lecture de la valeur qui lui est associée. Si l’événement n’est pas arrivé, le processus qui tente cette lecture est bloqué.
- 17.512 Mise en œuvre des événements
- Les événements sont les seules variables qui sont globales au système et peuvent être partagées entre plusieurs processus. Les problèmes principaux de mise en oeuvre concernent donc essentiellement l’adressage et la représentation d’un événement.
- 1) Adressage d'un événement
- Lors de sa création un événement doit recevoir un nom unique pour l’ensemble du système, indépendant de l’identificateur local au programme où il est créé. Un événement est donc désigné par la concaténation de deux informations : le numéro du site où il est créé et le numéro local unique relatif à ce site. Cette solution permet d’être indépendant de toute adresse réelle dans la mémoire physique, et d’associer à l’événement son identification sans interroger les autres sites.
- 2) Représentation de l'événement
- L’événement pouvant être manipulé par des processus situés sur différents sites, diverses solutions sont envisageables pour implanter la valeur d’un événement. Par exemple, elle peut être localisée sur le site où l’événement est créé, sur le site où l’événement reçoit sa valeur ou encore exister en plusieurs exemplaires.
- La solution choisie consiste à associer à chaque événement une représentation unique de sa valeur. La localisation de celle-ci a été choisie pour des raisons liées à l’application : par construction, les processus qui lisent les valeurs des événements sont tous situés sur le site multiprocesseur. C’est donc sur ce site
- p.330 - vue 348/387
-
-
-
- Kensur : système orienté vers la traduction de langages 331
- qu’ont lieu les attentes éventuelles et que plusieurs accès au même événement peuvent être effectués. C’est aussi sur ce site qu’est conservée la valeur d’un événement. En conséquence, lorsqu’un événement reçoit sa valeur sur un site autre que le multiprocesseur, celle-ci est transférée par message vers le site multiprocesseur.
- 17.52 EXPRESSION DES PROCESSUS
- L’expression des processus comprend d’une part la définition des textes de processus, d’autre part l’activation d’instances de ces processus. Les processus ne partagent pas d’objets autres que les événements.
- 17.521 Primitives associées aux processus
- 1) Notation d'un texte de processus. Un modèle de processus se déclare ainsi :
- idprocess : process(paraml : typel,...) results(idevl : event type, ...) =
- < corps du processus )
- où idprocess est l’identificateur du processus, par ami est un identificateur de paramètre, et idevl est un identificateur (formel) d’événement auquel le processus peut donner une valeur. Les paramètres sont passés par valeur uniquement et les résultats ne peuvent être qu’associés à des événements.
- 2) Activation d'un processus. Une instance de processus est créée par l’instruction
- activate idprocess(pl, ...)res(evl,...)
- Un exemplaire du processus idprocess est démarré en parallèle avec le processus qui l’active. La coopération entre les processus s’effectue via les événements passés en paramètres. Le processus idprocess affecte des valeurs à ces événements : le processus qui l’a activé peut alors les consulter.
- 17.522 Mise en oeuvre des processus
- 1) Adressage et localisation d'un processus. Le texte d’un processus n’existe que sur un seul site pour l’ensemble du système. L’association entre un processus et un site est réalisée de façon statique, ce qui permet la désignation d’un processus sous forme d’un doublet : (numéro de site, numéro de fonction local au site). Un ordre d’activation de processus correspond à l’envoi d’un message vers le site où réside le texte concerné. Une traduction de l’identificateur du processus en terme du doublet (site, fonction) est effectuée localement par consultation d’une table de correspondance chargée initialement sur chacun des sites.
- p.331 - vue 349/387
-
-
-
- 332 Systèmes informatiques répartis
- 2) Gestion des instances de processus. Dans le cas le plus général, à chaque activation de processus, une nouvelle instance est créée sur le site où est placé le texte de ce processus. Celui-ci est donc unique ; chaque instance de processus adresse sa zone de données locales par indirection à travers un registre.
- Le système opératoire doit gérer un nombre variable de zones de données puisque les processus sont activés dynamiquement. Sur quelques sites la nature de l’application permet cependant de simplifier cette gestion. Certains processus ne font aucune opération d’attente sur événement et n’ont jamais à être suspendus. Il n’y a donc pas lieu de faire du multiplexage et d’avoir plusieurs processus actifs simultanément. On peut organiser ces processus selon un schéma de type serveur unique (voir 7.241), traitant séquentiellement, une par une, chaque demande d’activation. A un instant donné, une seule zone de donnée est donc nécessaire, ce qui permet un adressage et une gestion de mémoire simplifiés.
- 17.53 EXEMPLE D’UTILISATION
- A titre d’illustration nous décrivons le schéma de compilation de l’expression b + c.
- En supposant défini le type entité : event [mode : evmode,...] qui représente les informations associées à un identificateur, la séquence produite par l’analyse syntaxique est la suivante :
- evtb : entité — newev ; activate occurid{« b ») res evtb ; evtc : entité = newev ; activate occurid{« c ») res evtc ; evtplus : entité — newev ; activate add {evtb, evtc) res evtplus ;
- occurid est un processus de recherche d’identificateur. Il fournit les informations concernant l’identificateur comme valeur d’un événement, add est un processus qui vérifie, compte tenu des informations relatives aux identificateurs, que l’opération d’addition est possible. On peut le décrire schématiquement ainsi ;
- add : process(evtopgauche, evtopdroit : entité) results(r : entité) =
- (1) x ;= evtopgauche ;
- (2) y := evtopdroit ;
- (3) r < mode du résultat de /’addition de x et de y > end add ;
- Dans notre exemple, le processus peut se bloquer aux points (1) et (2) en attente des résultats des processus occurid. Au point (3), il libère l’événement evtplus (paramètre effectif lié au paramètre formel r).
- p.332 - vue 350/387
-
-
-
- Kensur : système orienté vers la traduction de langages 333
- 17.54 CONCLUSION
- L’exposé des quelques points du système opératoire montre que les problèmes principaux sont relatifs à la désignation des objets globaux à l’ensemble de l’application et à leur localisation sur les différents sites. Dans le cas de systèmes répartis généraux, ces deux points peuvent nécessiter des solutions complexes. La connaissance de l’application, de même que la conception conjointe de l’architecture et du système adapté à cette application permettent d’apporter des simplifications notables dans la mise en oeuvre.
- Ainsi, la programmation d’un compilateur et la réalisation du système sur l’architecture répartie choisie se sont révélées aisées, grâce en particulier au choix des outils linguistiques. L’étude d’un système de reconnaissance de la parole doit compléter cette expérience. Pour cette nouvelle application les problèmes de performances deviennent beaucoup plus aigus afin d’obtenir une reconnaissance de la parole en temps réel.
- RENVOIS
- Références citées dans l’illustration 17
- André F. 78, André F. 80a.
- p.333 - vue 351/387
-
-
-
- p.334 - vue 352/387
-
-
-
- GLOSSAIRE
- Le glossaire contient les principaux termes concernant les systèmes informatiques et quelques termes relatifs à la télétransmission. Pour chaque terme, on trouve une explication succincte, avec éventuellement des synonymes (syn.), le terme contraire (ant.), et le terme anglais correspondant. Suit une liste des principales références, celle en gras indiquant le paragraphe où le terme est défini.
- Le lexique rassemble les termes anglais présentant quelque difficulté de traduction. Les termes plus faciles peuvent se retrouver dans le glossaire.
- abonné (— d’un réseau). Entité (processus, programmeur) autori-
- sée à utiliser un réseau (syn. client, usager) (client, user) (3.611,1.211,3.622,6.11,15).
- accès (— aléatoire). V oir compétition.
- accord confirmé (protocole d’—). Type de protocole dans lequel tout signal
- (ou toute opération) dans un sens est suivi par un signal ou une opération dans l’autre sens (handshaking)
- (5.2, 5.422, Unibus : 13).
- accusé de réception Message de contrôle envoyé par le récepteur d’un message pour indiquer à l’émetteur que le message reçu est correct (accusé positif) ou incorrect (négatif) (syn. acquittement) (acknowledgment)
- (3.624, 5.321, 5.332, 5.34).
- Voir routage.
- Voir accusé de réception.
- Opération élémentaire considérée comme atomique (en particulier dans une transaction) (action)
- (10.22,16).
- Exécution séquentielle d’une suite d’instructions dans un contexte déterminé (7.21, 7.23,7.24).
- acheminement
- acquittement
- action
- activité
- p.335 - vue 353/387
-
-
-
- 336 Systèmes informatiques répartis
- adaptateur (— d’interface). Dispositif transformant l’interface d’un système de communication en une interface virtuelle (2.222).
- allocateur Entité chargée de la gestion d’une ressource ou d’un ensemble de ressources (syn. serveur, gérant) (server, allocator) (9.1, —unique : 8.31, —réparti : 8.32, 9.32).
- anneau (réseau en —). Réseau dont la topologie se réduit à un circuit unique parcouru en entier par chaque message (en général dans un seul sens) (syn. boucle) {ring, loop) (4.34, 3.31, 5.422, —de Newhall : 4.342, —de Pierce ou plateau tournant : 4.343, Taro : 4.342, DCS : 4.343, Kensur : 17).
- anneau (—virtuel). Ensemble de sites d’un réseau numérotés circulairement, chaque site ne pouvant communiquer qu’avec le prédécesseur et le successeur définis par la numérotation (Virtual ring) (8.521,5.432,10.424).
- arbitre Entité réglant les conflits d’accès à une ressource commune, en particulier une voie (arbiter) (4.231,3.51.4.21, Unibus : 13).
- assemblage (—d’un message). Reconstitution d’un message à partir de ses paquets constituants (syn. réassemblage) (reassembly) (3.613,2.31).
- asynchrone (transmission —). Mode de transmission sur une voie simple, sur laquelle les données sont émises à intervalles quelconques, l’émetteur et le récepteur n’ayant pas d’horloge commune (ant. synchrone) (asynchronous) (3.122, 3.432, Unibus : 13).
- ATDM Abréviation pour Asynchronous Time Division Multiplex-ing (4.232).
- atomicité (— d’une action). Propriété traduisant le fait qu’une action apparaît comme instantanée à un observateur donné ; autrement dit en tout point observable l’action est soit non exécutée en cas d’incident, soit terminée. Deux actions atomiques exécutées en parallèle a et b donnent le même résultat qu’une exécution en séquence a; b ou b; a (syn. indivisibilité) (atomicity) (10.22, 10.33, 16.3).
- p.336 - vue 354/387
-
-
-
- Glossaire 337
- avis (— CCITT). Norme du CCITT dans le domaine des télécommunications (recommendation) (3.72, 3.432, — V24 : II) (voir Vn, Xn).
- bidirectionnelle (voie —).Voie utilisable dans les deux sens, soit simultanément (b. simultanée), soit alternativement (b. alternée) ( full duplex, half duplex) (3.32).
- bipoint (voie —). Voie reliant uniquement deux entités communicantes (ant. partagée) (3.31, 2.321, 3.32).
- boîte aux lettres Type d’objet servant à mémoriser des messages et accessible à des processus coopérants (mailbox) (1.242, 1.32).
- boucle Voir anneau.
- bus Système de communication câblé reliant des organes d’un ordinateur et permettant une seule communication à la fois (bus) (3.421, 3.51, 3.52, partage : 4.23, protocole : 5.2, Uni-bus : 13).
- cache Mémoire plus rapide que la mémoire principale, dans laquelle une unité de traitement charge dynamiquement des instructions et des données pour accélérer l’exécution (syn. antémémoire) (cache) (10.41, algorithme : 10 exercice 3).
- cadence Voir débit.
- capacité (— d’une voie). Débit maximal physiquement possible sur la voie (capacity). (3.131)
- catalogue Voir répertoire.
- CCITT (Comité Consultatif International pour le Télégraphe et le Téléphone), Organisme international publiant des normes (avis) pour les télécommunications
- (3.71, 3.432) (Voir avis).
- CORNAFION. — Systèmes informatiques répartis 12
- p.337 - vue 355/387
-
-
-
- 338 Systèmes informatiques répartis
- charge (—d’un système). Ensemble des tâches demandées à un système, à un instant donné (load). (9.1, régulation : 9.1, 9.4, distribution de— : 9.1).
- chemin (— d’un message). Séquence des noeuds traversés par un message circulant dans un réseau, depuis le noeud émetteur jusqu’au noeud récepteur (path) (3.611, 4.31, 4.32) (Voir routage).
- circuit virtuel Type de voie virtuelle utilisant la régulation de flux et le contrôle d’erreur, et transmettant au récepteur les messages dans l’ordre d’émission (Virtual circuit) (3.622,1.211,4.331, 5.123, — de Danube : 15).
- client Voir abonné.
- cohérence 1) (—d’information). Propriété d’un ensemble de données traduisant le fait que ces données respectent des contraintes déterminées, dites d’intégrité (consistency) (10.2 6.12, 8.32, 10.1, 10.3). 2) (— de copies multiples). Propriété exprimant que les diverses copies d’un ensemble de données sont rendues identiques lorsqu’il n’y a pas de transaction en cours, soit immédiatement en fin de transaction (cohérence forte), soit plus tard (cohérence faible) (10.421, — faible : 10.422, 10.423, — forte : 10.424).
- collision (— de messages). Interférence destructrice entre messages émis simultanément sur une même voie à accès aléatoire (collision) (4.21, Aloha,CSMA :4.22).
- colloque Communication simultanée entre plus de deux correspondants (2.13, 2.311, protocoles de— : 5.4).
- communication Echange d’un ou plusieurs messages au moyen d’une voie, entre deux correspondants (dialogue) ou plus de deux correspondants (colloque) (communication) (2, dialogue : 5.2, 5.3, colloque : 5.4, primitives de - : 7.242).
- communication (système de —). Système permettant à des entités correspondantes de mettre en oeuvre une communication, en respectant des protocoles déterminés (2.221, 2.3) (Voir réseau).
- p.338 - vue 356/387
-
-
-
- Glossaire 339
- commutation (technique de —). Méthode particulière de gestion des messages et des voies dans un réseau de communication {switching) (3.33, 3.52, 4.311, — de circuits : 3.612, — de messages ou par paquets : 3.613).
- compétition 1) (— de processus). Conflit entre processus indépendants voulant accéder à une ressource commune (ant. coopération) (8.1). 2) (allocation par —). Méthode d’allocation d’une voie dans laquelle chaque demandeur s’empare de la voie sans consulter un arbitre, ni les autres demandeurs (syn. accès aléatoire) (ant. élection) (contention, random access) (4.21, Aloha, Ethernet : 4.22).
- compteur (— d’événements). Objet de synchronisation associé à une classe d’événements, auquel correspond une variable entière incrémentée à chaque occurrence d’un événement (event counter) (8.22).
- congestion (— d’un système). Etat indésirable d’un système sollicité pour un nombre excessif de tâches, ce qui l’empêche de fonctionner normalement (syn. saturation) (congestion) (4.312, contrôle de — : 4.312).
- confirmation Voir engagement.
- consultation Méthode d’allocation d’une voie consistant à interroger, dans un ordre donné, chaque usage pour savoir s’il veut émettre et dans ce cas la voie lui est allouée (syn. balayage) (polling) (4.231, bus, ligne multipoint : 4.232).
- contexte (— d’une activité). Ensemble des objets (données, procédures) accessibles à une activité, à un instant donné (context) (7.21, 7.311).
- continuation (— d’une activité). Lien, de contrôle associé à une activité et définissant l’activité qui la suit (7.222).
- coopération (— de processus). Interactions programmées entre processus en vue de les faire participer à une action commune (coopération) (8.1, 1.233, 16.1).
- p.339 - vue 357/387
-
-
-
- 340 Systèmes informatiques répartis
- copies multiples Ensemble de plusieurs exemplaires d’une collection de données, répartis sur plusieurs sites et devant tous être mis à jour lorsque l’un d’eux est modifié (10.41, 1.32, 6.14, algorithmes : 10.42, 10 ex. 4) (.Multiple copies).
- copilote Voir pilote.
- correspondant Entité en communication avec d’autres (2,1,2.312, 7.242).
- crédit Nombre maximal de messages que peut envoyer un émetteur sans attendre d’acquittement du récepteur (5.342, 5.321, 5.345).
- CSMA Abréviation pour Carrier Sense Multiple Access. Méthode d’accès aléatoire à une voie à diffusion, dans laquelle tout émetteur écoute s’il y a un message en cours d’émission avant d’envoyer le sien (4.22).
- datagramme Message transmis indépendamment des autres (sans les contraintes d’un circuit virtuel) (datagram) (3.622, — de Danube 15.2).
- débit (— d’une voie). Nombre d’éléments d’information transmis sur une voie donnée par unité de temps. (Dans le débit utile, on ne considère que les données propres à l’usager, en excluant donc les informations de commande et éventuellement les messages altérés) (syn. cadence) (rate) (4.12, 3.21, régulation : 5.34).
- défaillance (— d’un système). Fonctionnement ou arrêt anormal d’un système ( failure, fault) (2.324, 1.333, 10.33’ —d’un site : 8.42, 8.522, 8.6, — d’un disque : 16) (Voir point de reprise, fiabilité, atomicité, erreur).
- délai (— de garde). Délai à l’expiration duquel l’attente d’un événement donné est abandonnée (time-out) (2.324,3.624, 5.321,15).
- désignation (— d’un objet). Association d’un nom à un objet. Une désignation locale est définie par rapport à un environnement et une désignation globale est valable pour le système entier (naming) (2.12, 6.11, 7.13, types de— : 7.32, — de fichiers : 7.322, —- de portes : 2.312, 7.33, — des hôtes : 3.623).
- (2.312, 2.12, 6.11, 7.3, types de — : 7.32, — de fichiers : 7.322, — de portes : 2.312, 7.33, — des hôtes : 3.623).
- p.340 - vue 358/387
-
-
-
- Glossaire 341
- dialogue Communication entre deux correspondants {dialogue) (2.111, 2.12, 2.311, protocole 5.3).
- diffusion (— d’un message). Transmission d’un message à destination de plusieurs récepteurs (broadcast) (3.32, 2.132, 2.321, 4.341, protocole de — : 5.42).
- distribué Voir réparti.
- échange (— de message). Transmission d’un mëssage d’un émetteur à un récepteur (HDLC : 12.6, Unibus : 13.2. Danube : 15.4).
- élection (partage par —). Mode de partage d’une ressource commune impliquant un algorithme de choix parmi les demandeurs (ant. compétition) (4.21. 4.23) tVnir consultation, sélection).
- émetteur Qualifie dans une communication le correspondant qui envoie le message (sender) (2).
- engagement (— d’une transaction). Décision irréversible de mener à terme une transaction (d’exécuter les écritures demandées) sans tenir compte des demandes d’annulation ultérieures (syn. confirmation) (commitment) (10.33,16.4).
- enveloppe (— d’un message). Données ajoutées au message d’un émetteur en vue de permettre sa transmission (envelope) (2.232, trame HDLC : 12, paquet de Transpac : 3.623).
- équité (— d’une allocation). Propriété d’une politique d’allocation exprimant l’absence de discrimination indésirable entre les demandeurs (fairness). (4.22, 4.232, 4.342, 8.423, 8.522).
- erreur (— de transmission). Transmission défaillante d’un message, qui est perdu ou altéré (error) (2.324, 3.22, 3.624, Voie non fiable : 5.3).
- estampille Valeur entière inscrite dans l’enveloppe d’un message en vue de dater son heure d’émission, obtenue en consultant une horloge dite logique (timestamp) (8.4, 8.42, 9.34,. 10.422). .
- p.341 - vue 359/387
-
-
-
- 342 Systèmes informatiques répartis
- état (— d’un système). Ensemble de données associé à un système, à un instant donné, et servant à commander l’évolution de celui-ci (state) (1.331, 10.32, — global des ressources : 9.32, 9.33).
- étoile (réseau en —). Réseau avec un noeud principal relié à chacun des noeuds secondaires, et sans liaisons entre noeuds secondaires (star network) (3.31, 1.32).
- famine Voir privation.
- fenêtre Intervalle de numérotation de message, utilisé par l’un des correspondants dans une communication avec anticipation (window) (5.342).
- FDM Abréviation pour Frequency Division Multiplexing. Multiplexage sur une voie de plusieurs communications utilisant des plages de fréquence distinctes (3.133).
- fermeture (— d’une communication). Phase finale d’une communication où on arrête les échanges de messages et libère les ressources allouées à la communication (syn. déconnexion) (2.311, 5.122, protocole de — 5.333, HDLC : 12.6, Danube : 15).
- fiabilité (— d’un système). Probabilité de fonctionnement sans erreur d’un système, pour une période de temps donnée (reliability) (1.213, 2.311, voies non fiables : 5.3, mémoire fiable : 16.2).
- flux (régulation de —). Contrôle par le récepteur du débit d’un émetteur, en vue d’éviter la saturation du récepteur {flow control) (5.34, 2.323, 3.624, protocoles : 5.34).
- fragmentation (— d’un message). Découpage d’un message en paquets transmis isolément ( fragmentation) (3.613,2.231).
- p.342 - vue 360/387
-
-
-
- Glossaire 343
- gardé (énoncé —). Ensemble d’instructions, dont chaque instruction est associée à une condition ou garde et dont on exécute une seule instruction à la fois, choisie au hasard parmi celles dont la garde est vraie (guarded command) (7.42).
- HDLC Abréviation pour High level Data Iink Control. Ensemble particulier de protocoles gérant une ligne, défini par l’ISO (12).
- hiérarchie (— de protocoles). Ensemble de protocoles construits les uns sur les autres et associés à des niveaux successifs de communication (hierarchy) (2.22, Ethernet : 2.22, —dans réseau à commutation de paquets : 3.621).
- horloge (— de garde). Horloge servant à déclencher la fin d’un délai de garde (watch dog) (2.324,15.4) (Voir délai de garde).
- horloge (— logique). Variable entière et croissante, associée à un site et servant à numéroter les événements du site, en particulier les messages émis (logical clock) (8.41, —de Lamport : 8.41, —de Kanéko : 8.Ex. 4).
- hôte Ordinateur connecté à un réseau (syn. site) (host) (3.611, 3.31).
- indivisibilité Voir atomicité (indivisibility).
- inondation Méthode de routage d’un message consistant à le diffuser dans tout le réseau, en demandant à chaque noeud recevant une copie d’un noeud voisin, de la retransmettre à ses autres voisins ( flooding) (4.322).
- intégrité (contrainte d’—). Relation que doivent vérifier des données d’une base de données et qui doit être respectée par toute transaction sur la base (integrity) (10.22, 1.233).
- interblocage (— de processus). Etat anormal d’un ensemble d’au moins deux processus, caractérisé par le fait que chaque processus est bloqué et ne peut être débloqué que par un autre processus de l’ensemble (deadlock) (9.1, 2.322, 3.52, 5.332, 10.34, prévention : 9.31, 9.34, détection : 9.31, 9.342).
- p.343 - vue 361/387
-
-
-
- 344 Systèmes informatiques répartis
- interface (— d’une voie). Partie accessible d’une voie (logicielle ou câblée) qui permet à l’usager de l’exploiter pour communiquer (interface) (2.211, 2.111, 2.12, 2.22, 5.123, — V24 : II, —de réseau : 3.622, 15.2).
- isarithmique (régulation —). Technique de régulation de charge ayant pour but de maintenir le nombre total de paquets d’un réseau en dessous d’une limite déterminée (isarithmic control) (9.41).
- ISO Abréviation pour International Standards Organization. Organisation internationale de normalisation regroupant des organismes nationaux, comme l’AFNOR, et éditant des normes, en particulier pour les protocoles (3.71, 3.621).
- jeton Message distingué circulant parmi un ensemble d’entités et conférant au bénéficiaire provisoire certains privilèges (le contrôle d’une ressource commune par exemple) (syn. marque, privilège) (token) (anneau : 4.342, anneau virtuel : 8.523).
- lettre Voir message
- liaison 1) Association d’un nom à un objet (binding) (7.311, — dynamique : 7.312). 2) Action de mettre deux entités en communication (connection) (— terminal/ordinateur : 11.4). 3) Synonyme de voie (/m/c).
- libération (— d’une ressource). Restitution volontaire d’une ressource par son utilisateur (ant. allocation) (9.1).
- logique Voir virtuel.
- maillé (réseau —). Réseau dont la topologie est différente d’un arbre et d’un anneau (3.31,2.321,4.33, 5.434).
- marque Voir jeton.
- médium Voir voie.
- p.344 - vue 362/387
-
-
-
- Glossaire 345
- message Unité d’échange dans toute communication (syn. lettre) (message) (2.23 — typé 7.242, 7.421, commutation de — : 3.613, numérotation : 5.32, perte et duplication : 3.624, 5.32).
- messagerie (service de —). Service permettant à des personnes d’échanger et de mémoriser des messages (mailing service) (1.232, 1.32).
- modem Appareil réalisant la modulation d’un signal, ainsi que l’opération inverse ou démodulation (modem) (3.133,3.43, interface V24 : II).
- modulation Modification d’une onde dite porteuse par le signal à transmettre (modulation) (3.13,3.432).
- multiplexage (— de voies). Technique consistant à mélanger sur une voie unique des messages provenant de plusieurs sources (ant. démultiplexage) (multiplexing) (Voir FDM, TDM). (3.133).
- multipoint (voie —). Voie linéaire reliant un noeud principal à plusieurs noeuds secondaires et permettant uniquement les communications entre le noeud principal et les autres (multipoint) (3.32, partage : 4.232).
- multiprocesseur Ordinateur pourvu de plusieurs unités de traitement se partageant une mémoire commune (multiprocessor) (1.241, CM* : 1.24, 3.52, Pluribus : 3.51, MCS : 9.422).
- négociation Messages échangés par des correspondants pour fixer d’un commun accord certains paramètres d’une communication (negotiation) (5.122,5.332).
- nœud Elément d’un réseau relié à d’autres noeuds par des voies (node) (3.31) (Voir commutateur, sas, station de transport).
- nom (— d’objet). Donnée permettant de désigner un objet sans ambiguïté (name) (2.12, identificateur : 7.32, liaison du — : 7.31 ).
- p.345 - vue 363/387
-
-
-
- 346 Systèmes informatiques répartis
- ordonnancement
- ouverture
- paquet
- PAR
- passerelle
- pilote
- point à point
- point
- porte
- (— d’événements). Ensemble ordonné d’événements ou d’opérations suivant une relation d’ordre partielle ou totale, donnée (schedule)
- (ordre global partiel : 8.12, — de transactions : 10.23, 10.312, — par estampilles : 8.4, — par séquenceur : 8.5).
- (— d’une communication). Phase initiale d’une communication au cours de laquelle est allouée une voie et où les correspondants négocient certains paramètres de la communication (syn. connexion) (ant. fermeture, déconnexion) (connection)
- (2.311, 4.331, 5.122, protocole d— : 5.332, HDLC : 12.6, — d’un circuit virtuel : 15).
- Type de message, contenant une chaîne de bit, ordinairement de longueur fixe et transporté par les réseaux dits à commutation par paquets (packet)
- (3.613, 1.212, 1.232, 2.231, communication par —: 3.613, réseau à commutation par — : 3.62, 4.3).
- (protocole —). Abréviation pour Positive Acknowledgment Retransmission. Type de protocole dans lequel le récepteur n’émet pas d’accusé de réception négatif et le message ignoré est retransmis automatiquement (5.321,15.3).
- Voir sas.
- (— de bus). Elément possédant le contrôle du bus, pour la durée d’une communication avec un autre élément ou copilote
- (3.51, 5.2, Unibus : 13).
- (communication —). Communication entre un émetteur et un seul récepteur
- (3.32, protocole : 5.2, 5.3, diffusion par — : 5.433).
- (— de reprise). Point de contrôle dans une opération à partir duquel il est possible de reprendre l’opération en cas d’erreur, sans avoir à la recommencer, grâce à la sauvegarde de résultats intermédiaires (checkpoint)
- (2.324, 5.52).
- Point d’accès à une station de transport qui, associé à une porte sur une autre station, définit une voie virtuelle {port)
- (7.332, 2.312, 3.622, 7.242, Danube : 15).
- p.346 - vue 364/387
-
-
-
- Glossaire 347
- privation Impossibilité pour un demandeur d’obtenir la ressource sollicitée dans un délai acceptable (syn. famine) (starvation). (9.1, 2.322, 10.342).
- privilège Pouvoir attribué provisoirement à une entité unique parmi un groupe (8.51, 2.131, 8.521, 8.522) (Voir jeton).
- processus Toute activité séquentielle à laquelle est alloué un processeur (syn. tâche) (process, task) (7.21, synchronisation de — : 8, — sur architecture répartie : 7. 24,17.5, programmation de — : 7.42).
- propagation (délai de —). Temps mis par un signal pour parcourir une voie donnée (3.24).
- protocole (— d’une opération). Algorithme réparti entre plusieurs entités correspondant par une voie donnée, et décrivant l’utilisation de l’interface de la voie en vue d’accomplir une opération donnée (protocol) (2.212, 2.11, 2.22, 2.33, 3.62, 5, validation de — : 2.33, 14, — de haut niveau : 5.5) (Voir accord confirmé, PAR, ouverture, fermeture, bus, HDLC, échange).
- récepteur Désigne dans une communication un correspondant qui reçoit les messages (receiver) (2).
- régulation Fonction de contrôle maintenant une grandeur variable dans une plage de valeurs optimale (control) (— de charge : voir charge, — de flux : voir flux).
- rendez-vous Mode de communication dans lequel l’émetteur demeure bloqué tant que son message n’est pas reçu par le récepteur (rendez-vous) (7.242,7.42).
- réparti Qualifie une entité décomposée en composantes plus ou moins indépendantes et non commandées par un élé ment central (syn. distribué) (distributed) (1.3, exemples de systèmes —: 1.2, 6.1, DFS : 16. Kensur : 17, application — : 7.1, problèmes de la répartition : 6.2, caractéristiques d’un système — : 1.3).
- p.347 - vue 365/387
-
-
-
- 348 Systèmes informatiques répartis
- répertoire Table de descripteurs d’objets, indexée par l’identificateur de l’objet (syn. catalogue) (directory, catalog) (7.312, 1.32, 7.323).
- requête Demande formulée en vue d’obtenir une ressource ou un service déterminé (request) (9.1, 8.3, 9.41).
- réquisition (— d’une ressource). Récupération autoritaire d’une ressource allouée à un usager, même si ce dernier en a encore besoin (syn. préemption) (préemption) (9.1).
- réseau (— informatique). Ensemble de systèmes informatiques, appelés noeuds du réseau, communiquant entre eux grâce à des voies (network) (3.611, fonctionnement : 3.6, interconnexion : 3.625, Arpanet : 4.332, 9.42, Caducée : 3.612, Cigale et Cycla-des : 3.611, Danube : 15, DCS : 4.343, Ethernet : 1.23, 2.22, 4.22, Taro : 4.342, Transpac : 1.21, 3.623, 4.331.
- réseau (— d’évaluation de Nutt). Graphe servant à modéliser un protocole de communication (2.112, 5.2, 5.3,12,14).
- réservation Attribution anticipée d’une ressource, en vue de pouvoir l’utiliser ultérieurement sans avoir à émettre alors une requête (réservation) (— d’un satellite : 4.233).
- routage Construction d’un chemin dans un réseau pour transmettre un message jusqu’au récepteur (syn. acheminement) (routing) (4.311, algorithmes de — : 4.32, 5.434, 9.42).
- sas Noeud commun à deux réseaux et assurant le passage des messages de l’un à l’autre ( gateway) (3.625) (syn. passerelle).
- sélection (— d’une requête). Mode d’élection impliquant l’exécution d’un algorithme pour choisir une requête parmi toutes celles en attente (4.231, 4.233).
- p.348 - vue 366/387
-
-
-
- Glossaire 349
- séquenceur Objet de synchronisation qui fournit à chaque sollicitation un nouveau numéro (ou ticket) servant à l’ordonnancement (sequencer) (8.51, 8.52, 8.53, 10.423).
- serveur Entité (processus par exemple) chargée de rendre un service déterminé et sollicitée au moyen de requêtes (server) (7.241, 1.23, 6.11, distribution de charge : 9.42).
- site (— d’un réseau). Hôte d’un réseau, ou plus particulièrement ensemble d’hôtes géographiquement proches et connectés à un réseau informatique (site) (3.611, 2.312).
- station (— de transport). Noeud d’un réseau de transport, chargé de transmettre des messages (transport station) (3.621, 2.312, ST2 de Cyclades : 3.622, Danube : 15).
- STDM Abréviation pour Synchronous Time Division Multiplex-ing (4.21,4.232).
- synchrone (transmission —). Mode de transmission sur une ligne dans lequel les unités d’information sont émises et reçues à des instants définis par une base de temps commune à l’émetteur et au récepteur (ant. asynchrone) (synchronous) (3.12,3.121,3.432).
- synchronisation 1) (— de processus). Fonction ayant pour rôle de permettre à des processus d’interagir à certains moments (synchronization) (7.242,8). 2) (— de correspondants). Phase d’une communication préparant les correspondants à échanger un message (2.323).
- tâche Voir processus.
- taux (— d’utilisation d’une voie). Fraction du temps pendant laquelle une voie transfère des messages (4.13,4.22,4.233).
- TDM Abréviation pour Time Division Multiplexing. Multiplexage d’une voie par partage de temps (4.232).
- p.349 - vue 367/387
-
-
-
- 350 Systèmes informatiques répartis
- topologie (— d’un réseau). Graphe décrivant les liaisons entre nœuds d’un réseau (topology) (3.31, 1.21, 3.611).
- trame Message dans son enveloppe, en particulier dans HDLC ( framé) (3.621, 3.623, HDLC : 12).
- transaction Séquence logique de lectures et d’écritures dans une base de données respectant les contraintes d’intégrité (transaction) (10.22, 10.1, — à deux phases : 10.313, — bien formée : 10.31, — atomique : 16).
- transmission (délai de —). Temps mis pour envoyer un message correctement, sur une voie donnée (inclut le délai de propagation et le temps d’émission) (3.24, 1.211, 1.332, 4.12, 4.233, 9.41).
- transmission (— alternée). Mode de communication dans lequel le message suivant n’est transmis par l’émetteur qu’après arrivée d’un accusé de réception du message précédent. (5.343).
- transport (réseau de —). Réseau de communication acheminant les messages des abonnés et offrant un service fiable (3.621, 2.312, 5.123, 5.42, Danube : 15).
- unidirectionnelle (voie —). Voie transférant les messages dans un seul sens et toujours le même (simplex) (3.32).
- veilleur Processus cyclique chargé d’attendre des messages (des requêtes en particulier) (7.241,7.333).
- verrouillage (— d’une ressource). Opération exécutée par un processus pour se réserver l’accès à une ressource (ant. déverrouillage) (ilocking) (9.3,6.12,10.31,10.342,10.431,16.4).
- virtuel (objet —). Objet programmé, privé à un utilisateur, ei rendant les mêmes services qu’un objet réel le plus souvent commun (syn. logique) (Virtual, logical) (interface — : 2.222, appareil —: 2.222) (Voir voie virtuelle).
- p.350 - vue 368/387
-
-
-
- Glossaire 351
- Vn Avis de type V, de numéro n, émis par le CCITT, concer-
- nant les transmissions au réseau téléphonique (3.72, 3.432, V24 : II).
- voie 1 ) objet, matériel ou logiciel, véhiculant des messages (syn.
- médium, liaison) (channel, link)
- (2.2) (caractéristiques : 3.2, — simple : 3.4, Ether : 1.232, Aloha : 4.22,4.233) (Voir topologie, réseau).
- 2) (— virtuelle). Voie logicielle associée à une communication, implantée sur une ou plusieurs voies physiques (Virtual link)
- (2.2, 3.622, 7.332) (voir circuit virtuel).
- Xn Avis de type X, de numéro n, émis par le CCITT et concer-
- nant les réseaux
- p.351 - vue 369/387
-
-
-
- p.352 - vue 370/387
-
-
-
- LEXIQUE ANGLAIS-FRANÇAIS
- acknowledgment accusé de réception
- availability disponibilité
- broadcast diffusion
- channel voie, canal
- checkpoint point de reprise
- commitment engagement, confirmation
- consistency cohérence
- deadlock interblocage
- deadly-embrace interblocage
- directory répertoire
- duplex bidirectionnelle (voie)
- fairness équité
- flooding inondation
- flow control régulation de flux
- frame trame
- full duplex bidirectionnelle simultanée (voie)
- gateway passerelle, sas
- guarded command énoncé gardé
- half duplex bidirectionnelle alternée (voie)
- link voie, liaison
- loop boucle
- naming désignation
- network réseau
- node noeud
- polling consultation
- port porte
- préemption réquisition
- rate débit
- recommendation avis (du CCITT)
- request requête
- ring anneau
- roll back reprise
- routing routage
- schedule ordonnancement
- simplex unidirectionnelle (voie)
- starvation privation
- time-out délai de garde
- timestamp estampille
- watch dog horloge de garde
- p.353 - vue 371/387
-
-
-
- p.354 - vue 372/387
-
-
-
- BIBLIOGRAPHIE
- Les indications entre accolades désignent les chapitres ou illustrations où la référence est citée.
- [Abramson 73a] { Ch. 1, Ch. 3, Ch. 4 }
- Abramson N., Kuo F. F., The Aloha System, in Computer Communication Networks, Abramson and Kuo ed., Prentice Hall (1974). [Abramson 73b] { Ch. 4 }
- Abramson N., Packet switching with satellites, AFIPS NCC, vol. 42 (1973), pp. 695 à 702.
- [Altaber 78] { Ch. 5 }
- Altaber et al., Contrôle en temps réel avec architecture distribuée, Journée Bigre, Université de Rennes (1978).
- [Altaber 79] { Ch. 7 }
- Altaber J., Frammery V., Gareyte C., Van Der Stok P., Expression et réalisation du parallélisme et de la distribution au moyen de systèmes interprétatifs, First European Conférence on Parallel and Distributed Processing, Toulouse, France (Feb. 1979), pp. 27 à 31. [Anderson 75] { Ch. 1 }
- Anderson G. A., Jensen E. D., Computer interconnection structures : taxonomy, characteristics and examples, Computing Surveys, vol. 7, 4 (Déc. 1975).
- [André E. 78] { Ch. 7 }
- André E., Decitre P., On providing distributed applications pro-grammers with control over synchronization, Proc, of the Symposium on Computer Network Protocols, Danthine ed., Université de Liège (Feb. 1978).
- [André F. 78] {111. 17 }
- André F., Banâtre J. P., Leroy H., Paget G., Routeau J. P., Conception et réalisation d’un système distribué orienté vers la compilation, Proc, of the 2nd Int. Conférence on Operating Systems, IRIA (Oct. 1978). '
- [André F. 80a] { Ch. 7,111. 17 }
- André F., Banâtre J. P., Leroy H., Paget G., Ployette F., Routeau J. P., Kensur : An architecture oriented towards programming languages translation, 7e Colloque Int. sur F Architecture des Ordinateurs, ISCA7, La Baule (Mai 1980).
- p.355 - vue 373/387
-
-
-
- 356 Systèmes informatiques répartis
- [André F. 80b] { Ch. 8 }
- André F., Herman D., Verjus J. P., Contrôle du parallélisme et de la répartition, Cours de l’école AFCET, Aix-en-Provence, Université de Rennes, IRISA éd. (1980).
- [Banino 79] { Ch. 8 }
- Banino J. S., Kaiser C., Zimmermann H., Synchronization for distri-buted Systems using a single broadcast channel, First Int. Conférence on Distributed Computing Systems, Huntsville (Oct. 1979).
- [Bartlett 69] { Ch. 5 }
- Bartlett K. A., Scantlebury R. A., Wilkinson P. T., A note on reliable full-duplex transmission over half-duplex links, CACM, vol. 12, 5 (May 1969), pp. 260-261 et 265.
- [BBN 76] { Ch. 5 }
- Boit Beranek and Newman Inc., MSG : The interprocess communication facility for the national software works ; NSW protocol commit-tee, Boit Beranek and Newman Inc. report 3 483 (Dec. 1976). [Bernstein 79] { Ch. ip }
- Bernstein P. A., Concurrency control in SDD1, System for distributed data-bases, IEEE Transactions on Software Engineering (Mai
- 1979) .
- [Bochmann 77] { Ch. 2 }
- Bochmann G. V., Chung R. J., A formalized spécification of HDLC classes of procedures, Proc, of the National Télécommunications Confèrence, Los Angeles (Dec. 1977).
- [Bochmann 78] { Ch. 2 }
- Bochmann G. V., Finite State description of communication proto-cols, Proc, of the Symposium on Computer Networks Protocoïs. Danthine ed., Université de Liège (Feb. 1978).
- [Bochmann 79a] { Ch. 1 }
- Bochmann G. V., Architecture of distributed computer Systems, Lecture Notes in Computer Science, n° 77, Springer Verlag (1979). [Bochmann 79b] { Ch. 8 }
- Bochmann G. V., Towards an understanding of distributed and paral-lel Systems, Publication interne 317, Université de Montréal (1979). [Boggs 80] { Ch. 3 }
- Boggs D., Shoch J., Taft E., Metcalfe M., Pup : An internetwork architecture, IEEE Transactions on Communications, C28, 4 (April
- 1980) , pp. 612-624.
- [Brinch Hansen 70] { Ch. 7 }
- Brinch Hansen P., The nucléus of a multiprogramming System, CACM, vol. 13,4(Apr. 1970).
- [Brinch Hansen 77] { Ch. 2, Ch. 7 }
- Brinch Hansen P., The architecture of concurrent programs, Prentice Hall (1977).
- [Carr 70] { Ch. 3 }
- Carr S., Crocker S. D., Cerf V. G., Host-host communication protocol in the ARPA Network, Proc. AFIPSSJCC, vol. 36 (1970), 10 p.
- p.356 - vue 374/387
-
-
-
- Bibliographie 357
- [CCITT] { Ch. 3,111. Il, 111.12 }
- C.C.I.T.T., Avis 721, 723, 724, 726, 727, 729, 736, X25, Livre bleu du CCITT, tome 8 : Transmissions de Données.
- [Censier 78] { Ch. 10 }
- Censier L. M., Feautrier P., A new solution to cohérence problems in multicache Systems, IEEE Transactions on Computers, C27, 12 (Dec. 1978).
- [Cerf 74] { Ch. 5 }
- Cerf V. G., Kahn R. E., A protocol for packet network intercommunication, IEEE Transactions on Communication, C22, 5 (May 1974),
- 12 p.
- [Cerf 78] { Ch. 3 }
- Cerf V. G., Kirstein P., Issues in packet-network interconnection. Proc. IEEE, vol. 66, 11 (Nov. 1978).
- [Chamberlin 74] { Ch. 9, Ch. 10 }
- Chamberlin D. D., Boyce R. F., Traiger I. L., A deadlock-free scheme For resource locking in a data-base environment, Proc, of the IFIP Congress (1974).
- [Chambon 73] { Ch. 5 }
- Chambon J. F., Elie M., Le Bihan J., Le Lann G., Zimmermann H., Spécifications fonctionnelles des stations de transport du réseau Cyclades, Note IRIA-Cyclades SCH502.3 (Mai 1973), 97 p.
- [Chesson 75] { Ch. 7 }
- Chesson G., The network UNIX System, Proc, of the 5th Symposium on Operating Systems Principles, ACM (Aug. 1975).
- [Chou 79] { Ch. 4 }
- Chou W., Powell J. D., Bragg A. N., Comparative évaluation of deterministic and adaptative routing, In Flow Control in Computer Networks, North Holland (1979).
- [Chu 73] { Ch. 4 }
- Chu W. W., Asynchronous Time-division Multiplexing Systems. In Computer-Communication Networks, Abramson and Kuo ed.. Prentice Hall (1973).
- [Clavier 72] { Ch. 1, Ch. 2, Ch. 3 }
- Clavier J., Coffinet G., Niquil M., Behr J., Théorie et techniques de la transmission de données, 2 volumes, 2e éd. Masson (1977).
- [Conway 63] { Ch. 7 }
- Conway M. E., A multiprocessor System design, Proc. AFIPS FJCC (1963).
- [Cornafion 77a] { Ch. 5 }
- Groupe Cornafion, Communication par bus, Document Cornafion n° 2, IRIA (Déc. 1977).
- [Cornafion 77b] { Ch. 1 }
- Groupe Cornafion, Le système CM*, Document Cornafion n° 4, IRIA (Déc. 1977).
- p.357 - vue 375/387
-
-
-
- 358 Systèmes informatiques répartis
- [Cornafion 79] { Ch. 5 }
- Groupe Cornafion, A critical study of different flow control methods in computer networks, SIGCOMM Review, vol. 9, 3 (Jul. 1979), pp. 23 à 32.
- [Cosell 78] {111.12}
- Cosell B., Nemeth A., Walden D., X25 Datalink access procedure, BBN Report, Cambridge USA (1978), 35 p.
- [Crocus 75] { Préambule, Ch. 7, Ch. 8, Ch. 9, Ch. 10 }
- Groupe Crocus, Systèmes d'exploitation des ordinateurs, Dunod Informatique, 2e éd. (1977).
- [Cypser 78] { Ch. 7 }
- Cypser R. J., Communications architecture for distributed Systems, The Systems Programming Sériés, Addison-Wesley ed. (1978).
- [Dalal 78] { Ch. 5 }
- Dalal Y. K., Metcalfe R. M., Reverse path forwarding of broadcast packets, CACM, vol. 21, 12 (Déc. 1978).
- [Dang 77] { Ch. 7 }
- Dang Ng. X., System and portable language intended for distributed and heterogeneous network applications, 2nd Distributed Processing Workshop, Brown University, Providence, Rhode Island (Aug. 1977).
- [Danthine 78] { Ch. 2 }
- Danthine A., Bremer J., Modeling and vérification of end-to-end transport protocols, Proc, of the Symposium on Computer Network Protocols, Danthine ed., Université de Liège (Feb. 1978).
- [Davies 72] { Ch. 9 }
- Davies D. W., The control of congestion in packet-switching networks, IEEE Transactions on Communication, vol. 20, 6 (Jun. 1972), pp. 546 à 550.
- [Davies 73] { Ch. 1, Ch. 3 }
- Davies D. W., Barber D. L. A., Communication networks for computers, John Wiley (1973).
- [Davies 77] { Ch. 1, Ch. 3, Ch. 5 }
- Davies D. W., Barber D. L. A., Price W. L., Solomonides C. M., Computer networks and their protocols, John Wiley (1979).
- [DEC 76] { 111. 13 }
- Digital Equipment Corporation, PDP11 peripheral handbook, Publication du constructeur (1976).
- [Després 76a] { Ch. 1 }
- Després A., Pichon G., Danet A., Le Rest A., Ritzenthaler S., The French public packet switching service : the Transpac Network, Proc, of the Int. Computer Communications Conférence, Toronto (Aug. 1976).
- p.358 - vue 376/387
-
-
-
- Bibliographie 359
- [Després 76b] { Ch. 1 }
- Després R., Picard P., Platet F., Discussion of technical choices made for Transpac, Proc, of the Int. Switching Symposium, Kyoto (Sep. 1976).
- [Diffie 76] { Ch. 2 }
- Diffie W., Hellman M. E., New directions in cryptography, IEEE Transactions on Information Theory, vol. 22, 6 (Nov. 1976).
- [Dijkstra 68] { Ch. 7 }
- Dijkstra E. W., Co-operating sequential processes, Programming Languages, F. Genuys ed., Academie Press, New York (1968). [Dijkstra 74] { Ch. 8 }
- Dijkstra E. W., Self-stabilizing Systems in spite of distributed control, CACM, vol. 17, 11 (Nov. 1974), 2 p.
- [Dijkstra 76] { Ch. 7 }
- Dijkstra E. W., A discipline of programming, Prentice Hall (1976). [Ellis 77] { Ch. 10 }
- Ellis C. A., Consistency and correctness of duplicate database Systems, Proc, of the 6th ACM Symposium on Operating Systems Prin-ciples (Nov. 1977).
- [Eswaran 76] { Ch. 10,111. 16 }
- Eswaran K. P., Gray J. N., Lorie R. A., Traiger I. L., The notions of consistency and predicate locks in a data-base System, CACM, vol. 18, 11 (Nov. 1976), pp. 624 à 633.
- [Farber 72a] { Ch. 7 }
- Farber D., Heinrich F., The structure of a distributed computer System : The distributed file System, Proc, of the Int. Conférence on Computer Communication, Networks and Teletraffic, Brooklyn (1972). 7 p.
- [Farber 72b] { Ch. 4, Ch. 9 }
- Farber D. S., Larson K. C., The System architecture of distributed computer System : The communication System, Proc, of the Symposium on Computer Networks, Brooklyn (Apr. 1972).
- [Farmer 69] { Ch. 4 }
- Farmer W. D., Newhall E. E., An experimental distributed switching System to handle bursty computer traffïc, Proc, of the ACM Symposium on Data Communication (1969), pp. 1-33.
- [Fuchs 70] { Ch. 4 }
- Fuchs E., Jackson P. E., Estimâtes of distributions of random variables for certain computer communication traffïc models, CACM, vol. 13, 12 (Dec. 1970), pp. 752-757.
- [Gaudé 80] { Ch. 1 }
- Gaudé C., Kaiser C., Langet J., Palassin S., Distributed processing as a key to reliable and evolving software for real time applications, Proc, of the IF IP Congress, North Holland (Oct. 1980).
- p.359 - vue 377/387
-
-
-
- 360 Systèmes informatiques répartis
- [Habermann 69] { Ch. 9 }
- Habermann A. N., Prévention of System deadlocks, CACM, vol. 12, 7 (Jul. 1969), 6 p.
- [Havender 68] { Ch. 9 }
- Havender J. W., Avoiding deadlock in multitasking Systems, IBM System Journal, vol. 2 (1968), 11 p.
- [Hayes 71] { Ch. 4 }
- Hayes J. F., Sherman D. N., Traffic analysis of a ring switched data transmission System, BSTJ, vol. 50, 9 (Nov. 1971), pp. 2947 à 2978. [Heart 73] { Ch. 3, Ch. 5 }
- Heart F. E., Ornstein S. M., Crowther W. R., Barker W. B., A new minicomputer-multiprocessor for the ARPA network, AFIPS NCC, vol. 42 (1973), 9 p.
- [Herman 79] { Ch. 10 }
- Herman D., Verjus J. P., An algorithm for maintaining the consistency of multiple copies, Proc, of the First Int. Conférence on Distributed Computing Systems, Huntsville (Oct. 1979).
- [Hewitt 77] { Ch. 7 }
- Hewitt C., Baker H., Laws for communicating parallel processes, Proc, of the IFIP Congress, North Holland (1977).
- [Hewitt 79] { Ch. 7 }
- Hewitt C., Attardi G., Lieberman H., Specifying and proving pro-perties of guardians for distributed Systems, in Semantics of Concurrent Computations, Kahn ed., Lecture Notes in Computer Science, Springer Verlag (1979).
- [Hoare 78] { Ch. 7 }
- Hoare C. A. R., Communicating sequential processes, CACM, vol. 21, 8 (Aug. 1978).
- [Holt 71] { Ch. 9 }
- Holt R., On deadlocks in computer Systems, Ph. D. Thesis, Cornell University (1971).
- [Ichbiah 79] { Ch. 7 }
- Ichbiah J. D., Barnes J. G. P., Héliard J. C., Krieg-Brueckner B., Roubine O., Wichmann B. A., Rationale for the design of the ADA programming Language, SIGPLAN Notices 14, 6 (Jun. 1979).
- [ISO] { Ch. 3,111.12 }
- I.S.O, Publications ISO : IS3309, IS4335, ÜIS6159, DIS6256, Normes et projets de normes publiés par l’ISO.
- [Israël 78] {111.16 }
- Israël J. E, Mitchell J. G, Sturgis H. E, Separating data from function in a distributed file System, in Opérating Systems, Theory and Practice, Lanciaux ed., North Holland (1978).
- p.360 - vue 378/387
-
-
-
- Bibliographie 361
- [Jones 79] { Ch. 1, Ch. 3 }
- Jones A. K., Schwans K., Task forces : Distributed software for solving problems of substantial size, Proc, of the 4th Int. Conférence on Software Engineering, IEEE (1979).
- [Kaiser 78] { Ch. 1 }
- Kaiser C., Kronental M., Langet J., Natkin S., Palassin S., Un système informatique réparti utilisé pour la conduite d’un atelier mécanique, Actes du Congrès AF CET, Paris (1978).
- [Kaneko 79] { Ch. 8 }
- Kaneko A., Nishihara Y., Tsurvoka K., Hattori M., Logical clock synchronization method for duplicated data base control, Proc, of the First Int. Conférence on Distributed Computing Systems, Hunts-ville (Oct. 1979).
- [Katz 74] { Ch. 4 }
- Katz S., Konheim A. G., Priority disciplines in a loop System, J ACM, vol. 21,2 (Apr. 1974), pp. 340-349.
- [Kleinrock 71] { Ch. 9 }
- Kleinrock L., Fultz G. L., Adaptative routing techniques for store and forward computer communication networks, Infotech State of the Art, Report n° 6 : Computer Networks, Infotech Information Ltd. (1971), pp. 541-562.
- [Kleinrock 75] { Ch. 4 }
- Kleinrock L., Tobagi F. A., Packet switching in radio channels : Part I. Carrier sense multiple-access modes and their throughput-delay characteristics, IEEE Transactions on Communication, vol. 23, 12 (Dec. 1975), pp. 1400-1416.
- [Kummerlé 78] { Ch. 4 }
- Kummerlé K., Rudin H., Packet and circuit switching : cost/per-formance boundaries, Computer Networks, vol. 2, 1 (Feb. 1978), pp. 3-17.
- [Lamport 78] { Ch. 8 }
- Lamport L., Time, docks and the ordering of events in a distributed System, CACM, vol. 21, 7 (Jul. 1978).
- [Lampson 74] { Ch. 7 }
- Lampson B. W., Mitchell J. G., Satterthwaite E., Transfer of control between contexts, Lectures Notes in Computer Science, n° 21 Springer Verlag (1974), pp. 181 à 203.
- [Lampson 79] { Ch. 10,111.16 }
- Lampson B. W., Sturgis H. E., Crash recovery in a distributed data storage System, Xerox internai report, Palo Alto (1979).
- [Le Guernic 80] { Ch. 7 }
- Le Guernic P., Raynal M., L’expression de la communication dans les langages : des analyses et une proposition, Publication IRISA n° 129, Université de Rennes (Jan. 1980).
- p.361 - vue 379/387
-
-
-
- 362 Systèmes informatiques répartis
- [Le Lann 77] { Ch. 5 }
- Le Lann G., Introduction à l’analyse des systèmes multiréférentiels, Thèse de Doctorat d’état, Université de Rennes (1977).
- [Le Lann 78a] { Ch. 5 }
- Le Lann G., Le Goff H., Vérification and évaluation of communication protocols, Computer Networks, vol. 2,1 (Feb. 1978).
- [Le Lann 78b] { Ch. 8, Ch. 10 }
- Le Lann G., Algorithms for distributed data sharing Systems which use tickets, Proc, of the 3rd Workshop on Distributed Data Management and Computer Networks, Berkeley (Aug. 1978).
- [Liskov 77] { Ch. 7 }
- Liskov B., Snyder A., Atkinson R., Schaffert C., Abstraction Mecha-nisms in CLU, CACM, vol. 20, 8 (Aug. 1977).
- [Liskov 79] { Ch. 7 }
- Liskov B., Primitives for Distributed Computing, Proc, of the Ith Symposium on Operating Systems Principles, ACM (Dec. 1979). [Liu 78] { Ch. 4 }
- Liu M. T., Distributed loop computer networks, in Advances in Computers, vol. 17, Academie Press (1978).
- [Liu 79] { Ch. 4 }
- Liu M. T., A loop network for simultaneous transmission of variable length messages, Proc, of the 2nd Symposium on Computer Architecture (Jan. 1975), pp. 7 à 12.
- [Lomet 77] { Ch. 9 }
- Lomet D. B., A practical deadlock avoidance algorithm for data-base Systems, Proc, of the Int. Confèrence on Management of Data, ACM SIGMOD (Aug. 1977).
- [Lomet 78] { Ch. 9 }
- Lomet D., Coping with deadlock in distributed Systems, Report Rc 7460, IBM T. J. Watson Research Center (Sept. 1978).
- [Ludwig 77] { Ch. 4 }
- Ludwig G., Roy R., Saturation routing networks limits, Proc, of the IEEE, vol. 65, 9 (Sep. 1977).
- [Macchi 79] { Préambule, Ch.l, Ch. 2, Ch. 3,111. Il }
- Macchi C., Guilbert J. F., et 17 co-auteurs, Téléinformatique, Dunod Informatique (1979)
- [McQueen 79] { Ch. 7 }
- McQueen D. B., Models for distributed computing, Rapport IRIA Laboria, n° 351 (Avr. 1979).
- [Majithia 78] { Ch. 9 }
- Majithia J. C., Irland M., O’Donnell C., Further investigations concerning control in Cigale, Computer Communications Networks Group, Waterloo (Mar. 1978).
- p.362 - vue 380/387
-
-
-
- Bibliographie 363
- [Mazaré 78] { Ch. 9 }
- Mazaré G., Structures multi-microprocesseurs, problèmes de parallélisme ; définition et évaluation d’un système particulier, Thèse de Doctorat d’Etat, Université de Grenoble (1978).
- [McQuillan 72] { Ch. 5 }
- McQuillan J. M., Crowther W. R., Cosell B. P., Walden D. C., Heart F. E., Improvements in the design and performance of the ARPA network, Proc. AFIPS FJCC (1972).
- [McQuillan 74] { Ch. 4 }
- McQuillan J. M., Design considérations for routing algorithms in computer networks, Proc, of the Ith Hawai Int. Conférence on System Sciences, and also in Computer Networking, IEEE Press (1976). [McQuillan 77] { Ch. 4 }
- McQuillan J. M., Walden D. C., The ARPA network design decisions, Computer Networks, vol. 1, 7 (Aug. 1977).
- [Menasce 78] { Ch. 9 }
- Menasce D., Muntz R., Locking and deadlock détection in distribut-ed databases, Proc, of the 3rd Berkeley Workshop on Distributed Data Management, and also in Computer Networks, San Franscisco (Aug. 1978).
- [Metcalfe 76] { Ch. 1, Ch. 3, Ch. 4 }
- Metcalfe R. M., Boggs D. R., Ethernet : Distributed packet switching -for local computer networks, CACM, vol. 19, 7 (Jul. 1976), pp. 395-404.
- [Meyer 78] { Préambule }
- Meyer B., Baudoin C., Méthodes de programmation, Eyrolles (1978). [Midwinter 79] { Ch. 3 }
- Midwinter J. E., Optical fibers for transmission, John Wiley (1979). [Miyahara 75] { Ch. 4 }
- Miyahara H., Hasegawa T., Teshigawara Y., A comparative évaluation of switching methods in computer communication networks, Proc, of the ICCC, San Francisco (Jun. 1975), pp. 616-620.
- [Mossière 77] { Ch. 8 }
- Mossière J., Tchuente M., Verjus J. P., Sur l’exclusion mutuelle dans les réseaux informatiques, IRISA, Université de Rennes, publication interne n° 75 (1977).
- [Mullery 75] { Ch. 10 }
- Mullery A. P., The distributed control of multiple copies of data, IBM T. J. Watson Research Center, Internai report (Aug. 1975). [Naffah 78a] { Ch. 4 }
- Naffah N., TARO : Un système de transmission en boucle pour réseaux locaux, Projet Pilote Kayak, IRIA, Rel. 2.501 (1978).
- p.363 - vue 381/387
-
-
-
- 364 Systèmes informatiques répartis
- [Naffah 78b] { Ch. 5 }
- Naffah N., High level protocol for alphanumeric data entry terminais, Computer Networks, vol. 2, 2 (May 1978), pp. 84 à 94.
- [Needham 78] { Ch. 2 }
- Needham R. M., Schroeder M. D., Using encryption for authentica-tion in large networks of computers, CACM, vol. 21, 12 (Dec. 1978). [Neigus 73] { Ch. 5 }
- Neigus N., File transfer protocol, ARPA-NIC report n° 17759 (July 1973).
- [Nutt 72] { Ch. 2 }
- Nutt G. J., Evaluation nets for computer performance analysis, Proc. AF IP S FJCC (1972).
- [Organick 72] { Ch. 7 }
- Organick E. I., The Multics System : an examination of its structure, MIT Press, Cambridge, Massachusetts (1972).
- [Ousterhout 80] { Ch. 3 }
- Ousterhout J., Scelza D., Sindhu P., Médusa : an experiment in distributed operating System structure, CACM, vol. 23, 2 (1980). [Parés 75] { Ch. 3 }
- Parés J., Toscer V., Systèmes de communication par satellites, Masson (1975).
- [Pierce 71] { Ch. 4 }
- Pierce J. R., An experiment in adressed block data transmission around a loop, IEEE Int. Convention Record (March 1971), pp. 222-223).
- [Pouzin 73] { Cln 4 }
- Pouzin L., Présentation and major design aspects of the Cyclades computer network, Proc, of the 3th ACM Data Communications Symposium (Nov. 1973), pp. 80-88.
- [Pouzin 76] { Ch. 9 }
- Pouzin L., Distributed congestion control in a packet network : the channel load limiter, Proc, of the 6th annual Congress, Gesell-schaft fur Informatik, Stuttgart (Sep. 1976).
- [Price 74] { Ch. 9 }
- Price W. L., Simulation studies of an isarithmically controlled store and forward data communication network, Proc, of the IFIP Congress, North Elolland (1974), pp. 151-154.
- [Price 77] { Ch. 9 }
- Price W. L., Data network simulation, Experiments at the National Physical Laboratory, Computer Networks, vol. 1, 4 (May 1977), pp. 199-210.
- [Quint 79] { Ch. 3,111.15 }
- Quint V., Naffah N., Protocole de transport pour réseaux locaux, Protocole de transport pour réseaux locaux, IRIA Projet-Pilote Kayak, Rel. 2.504.1 (Fev. 1979), 21 p.
- p.364 - vue 382/387
-
-
-
- Bibliographie 365
- [Reed 79] { Ch. 8 }
- Reed D. P., Kanodia R. K., Synchronization with eventcounts and sequencers, CACM, vol. 22, 2 (Feb. 1979).
- [Roberts 73] { Ch. 4 }
- Roberts L. G., Dynamic allocation of satellite capacity through packet réservation, Proc, of the AFIPS NCC, vol. 42 (1973), pp. 711-716.
- [Roberts 77] { Ch. 3 }
- Roberts L. G., Packet network design : the third génération, Proc, of the IFIP Congress, Toronto, North Holland (1977).
- [Rosenkrantz 78] { Ch. 10 }
- Rosenkrantz D., Stearns R., Lewis P., Systems level concurrency control for distributed database Systems, ,4CM Transactions on Database Systems, vol. 3, 2 (Jun. 1978).
- [Rosner 76] { Ch. 4 }
- Rosner R. D., Pen Springer, Circuit and packet switching : a cost and performance trade-off study, Computer Networks, vol. 1, 1 (Jun. 1976), pp. 7-26.
- [Rousset 79] {111.15 }
- Rousset de Pina X., Vatton I., Interface de la station de transport sur Microl, Note Interne IMAG, Université de Grenoble (1979). [Rudin 78] { Ch. 2,111.14 }
- Rudin H. A., West C. H., Zafiropoulo P., Automated protocol validation : one choice of development, Proc, of the Symposium on Computer Network Protocol, Danthine ed., Université de Liège (Feb. 1978).
- [Scanlon 78] { Ch. 1 }
- Scanlon J. M., Computing and Communications : the affair of the 80’s, Colloque IRIA : Perspectives sur la Recherche en Informatique et Automatique (Juin 1978).
- [Schicker 78] { Ch. 5 }
- Schicker P., Duenki A., The Virtual terminal définition, Computer Networks, vol. 2, 6 (Dec. 1978), pp. 429-441.
- [Schwartz 59] { Ch. 3 }
- Schwartz M., Information transmission, modulation and noise, McGraw-Hill (1959).
- [Schwartz 77] { Ch. 1, Ch. 4 }
- Schwartz M., Computer communication network design and analysis, Prentice Hall (1977).
- [Shoch 76] { Ch. 5 } ' *
- Shoch J., EFTP : a Pup-based Ether File Transfert Protocol, Xerox Palo Alto Research Center, Internai Report (Jun. 1976).
- p.365 - vue 383/387
-
-
-
- 366 Systèmes informatiques répartis
- [Shoch 79] { Ch. 4 }
- Shoch J., Hupp J. A., Performance of an Ethernet local network : a preliminary report, Local Area Communications Network Symposium, Boston (May 1979).
- [Simon 79] { Ch. 4 }
- Simon J. M., Danet A., Contrôle des ressources et principes du routage dans le réseau Transpac, Flow Control in Computer Networks, Gien and Grangé ed., North Holland (1979).
- [Simpson 78] { Ch. 7 }
- Simpson R. O., Phillips G. H., Network job entry facilities for JES2, IBM System Journal, vol. 17, 3 (1978).
- [Stearns 76] { Ch. 10 }
- Stearns R. E., Lewis P. M., Rosenkrantz D. J., Concurrency Controls for database Systems, Proc, of the 17th Symposium on Foundations of Computer Science, Houston (Oct. 1976).
- [Sunshine 75] { Ch. 5 }
- Sunshine C. A., Interprocess communication protocol for computer networks, Technical Report n° 105, Stanford University, Digital Systems Laboratory (Dec. 1975).
- [Sunshine 76] { Ch. 2 }
- Sunshine C. A., Survey of communication protocol vérification techniques, Proc, of the IEEE Symposium Protocol on Computer Networks, NBS, Gaithersburg, Maryland (Nov. 1976), pp. 24 à 26. [Sunshine 77] { Ch. 3 }
- Sunshine C., Interconnection of computer networks, Computer Networks, vol. 1 (1977).
- [Swan 77] { Ch. 1, Ch. 3, Ch. 5 }
- Swan R. J., Fuller S. H., Sieworek D. P., CM* : a modular multi-microprocessor, AFIPS NCC, vol. 46 (1977).
- [Swan 78] { Ch. 3 }
- Swan R. J., The switching structure and adressing architecture of an extensible multiprocessor : CM*, Ph. D. Thesis, Carnegie-Mellon University (1978).
- [Swinehart 79] { Ch. 9 }
- Swinehart D., McDaniel G., Boggs D., WFS, a simple centralized file System for a distributed environment, Proc, of the 7th Symposium on Operating Systems Principles, ACM (Dec. 1979), pp. 9-17. [Télémécanique 76] { Ch. 5 }
- Télémécanique Informatique (SEMS), Polybus 16 : Manuel de présentation, Documentation 776 MP 88874F (1976).
- [Thacker 79] { Ch. 1 }
- Thacker C. P., McCreight E. M., Lampson B. W., Sproull R. F., Boggs D. R., Alto : a personal computer, In Computer Structures : Readings and Examples, Siewiorek, Bell and Newell eds, 2nd ed. (1979).
- p.366 - vue 384/387
-
-
-
- Bibliographie 367
- [Thomas 73] { Ch. 7 }
- Thomas R. H., A resource sharing executive for the ARPANET, Proc. AFIPS NCC, vol. 42 (Jun. 1973).
- [Thomesse 79] { Ch. 7 }
- Thomesse J. P., Derniame J. C., Flux de données et synchronisation, Workshop on Distributed Data Sharing Systems, Aix-en-Provence (May 1979).
- [Thurber 72] { Ch. 4 }
- Thurber K. J., Jensen E. D., Jack L. A., Kinney L, L., Patton P. C„ Anderson L. C., A systematic approach to the design of digital bussing structures, Proc. AFIPS FJCC (1972), pp. 719-740.
- [Tomlinson 75] { Ch. 5 }
- Tomlinson R. S., Selecting sequence numbers, ACM Operatiny Systems Review, vol. 9, 3 (July 1975).
- [Transpac 77] { Ch. 1,111.12 }
- Direction Commerciale de Transpac, Présentation générale du réseau Transpac, Spécifications techniques d’utilisation du Réseau Transpac (1977).
- [Walden 72] { Ch. 5 }
- Walden D. C., A System for interprocess communication in a resource sharing network, CACM, vol. 15, 4 (Apr. 1972), 10 p.
- [West 77] { Ch. 2,111. 14 }
- West C. H., A general technique for communication protocol validation, IBM Journal of Research and Development (1977). [Wilms 79] { Ch. 10 }
- Wilms P., Etude et comparaison d’algorithmes de maintien de la cohérence dans les bases de données réparties, Thèse de Docteur-Ingénieur, Université de Grenoble (Nov. 1979).
- [Yu 79] { Ch. 2 }
- Yu L. W., Majithia J. C., An adaptative loop-type data network, Computer Networks, vol. 3, 2 (Apr. 1979), pp. 95 à 104.
- [Zimmermann 75] { Ch. 3, Ch. 5 }
- Zimmermann El., The Cyclades end-to-end protocol, Proc, of the Ath ACM/IEEE Data Communication Symposium, Québec (Oct. 1975).
- [Zimmermann 76] { Ch. 2 }
- Zimmermann H., Proposai for a Virtual terminal protocol, Rapport interne Cyclades, TER 533.1, IRIA (Jul, 1976).
- Imprimé en France. — Imprimerie JOUVE, 17, rue du Louvre, 75001 PARIS Dépôt légal : 2e trimestre 1981
- p.367 - vue 385/387
-
-
-
- DUNOD
- informatique
- phase formation_________________________________________
- • Principes des ordinateurs, par P. de Miribel
- • Emploi des ordinateurs, par J.-C. Faure
- • La programmation en assembleur, par J. Rivière
- • Fortran IV, par M. Dreyfus
- • La pratique du fortran, par M. Dreyfus et C. Gangloff
- • Cobol. Initiation et pratique, par M. Barès et H. Ducasse
- • Le langage de la programmation PL/l, par C. Berthet
- • Basic : programmation des microordinateurs,
- par A. Checroun
- • Introduction à .A.P.L., par S. Pommier
- • La construction de programmes structurés, par J. Arsac
- • Théorie des programmes, par C. Livercy
- • Let’s talk D.P. ; lexique d’informatique,
- par J.-P. Drieux et A. Jarlaud
- phase spécialité________________________________________
- • Base de données : méthodes pratiques, par D. Martin
- • Les fichiers, par C. Jouffroy et C. Létang
- • Systèmes d’exploitation des ordinateurs, par Crocus
- • Analyse fonctionnelle, par H. Briand et C. Cochet
- • Analyse organique, tomes 1 et 2, par C. Cochet et A. Galliot
- • Introduction aux microprocesseurs et aux microordinateurs, par C. Pariot
- • Téléinformatique, par C. Macchi et J.-F. Guilbert
- • Proverbes de programmation, par H.-F. Ledgard
- phase recherche
- Programmation, Actes du 2e colloque de l’Institut de programmation, sous la direction de B. Robinet
- ^ansformations de programmes,
- ' Actes du 3e colloque de l’Institut de Programmation,
- (s- Bibiiottàqgbus]]a direction de B. Robinet
- p.368 - vue 386/387
-
-
-
- La coîiaeption, la réalisaîjrïe et la iiiise en. œuvre des systèmes répartis posent des pïaabiêines nouveaux liés à la corn iïia.iiicatioiisau traitemenr parallèie, à ia
- a gestion de ressources réparties. Ces problèmes ont progressivement été identifiés à mesure que de nouveaux systèmes étaient réalisésCIdiiitefolS; Idnfiirmatioii sur îes concepts et iechniques applicables à ces problènies est encore soiivecî dispersée dans des publicaiions peu aticessi-blés. Ibobiectif de cub ouvrage est de combler ce vide, en proposant un ensembie de principes de conception assez généraux pour s'appliquer aux principales catégories de systèmes rencontrés, ainsi cjue des études de cas fourmssaiiides
- Après une introduction où sont présentées les caractéristiques principales des systèmes Informatiques répartis. 3a première partie de lèiiivrage est consacrée
- à la fonction de communication : rappels de téléinformatique, description des
- La seconde partie est une étude, dans le cas des systèmes répartis, des prinei-
- paiix concepts qui intervieiiaent dans l'btude des systèmes inforrnaiit]ues : dés:i-gnaiion des objets et contrôle de rexécutiory synchroiiisatiom ailocalioïi cits ressmircmc accès ai iiiformatiori iépaiéim La répartition des processus etdes données met en évidence des problèrnes spécifiques, qui étaient inexistants ou simples à résoudre dans le cas de systèmes cenrraîisés : ordoriîiaiïcernxnt des événements, gestion des acrivités, cohérence de l'iiiformatiom Les résultats les
- ^
- ceurs, cormrmatioiî des transactions, évitement de îlinterbiocage) soiiipreseuîes
- ^
- plusieurs exemples emprtinies à des réalisations significatives maétiriitioc dc
- Ce livre s’adresse aux informaticiens intéressés parla conception, la réalisation
- ^
- p.n.n. - vue 387/387
-
-