Vous êtes sur la page 1sur 45

Chapitre 1

Introduction

1
Definition d’un System Distributed (1)

Un système distribué ou réparti est:


Un ensemble de machines indépendantes
apparaissant à ses usagers comme un système
unique et cohérent.
De cette définition ressortent deux aspects:
- Marériel: les machines sont autonomes et interconnectées
via un support de communication.
- Logiciel: les usagers ont l’impression de manipuler un
système unique (réalisé par le logiciel).

2
Caracteristiques d’un Système Distribué

• L’hétérogénéité des machines et leurs moyens de


communications ne sont pas apparents aux usagers.
• L’interaction des usagers et des applications avec un
système distribué se fait de manière uniforme et
cohérente indépendemment du temps et du lieu.
 Un système distribué serait relativement facile à
étendre ou dimensionné (conséquence directe de
l’autonomie et l’hétérogéneité).
• Un SD serait normalement disponible de manière
continue malgré la défaillance temporaire de certains
de ces composants.
3
Organisation des SD
Pour pouvoir supporter l’hétérogénéité des machines et des réseaux tout en
offrant une vue unique du système, les SD sont souvents organisés en
couches logicielles multiniveaux de la plus haute couche représentant les
usagers et les applications, à la plus basse couche occupée par les systèmes
d’exploitation.

1.1

A distributed system organized as middleware.


Note that the middleware layer extends over multiple machines. 4
Exemples de Systèmes Distribués
• Un réseau de stations de travail
– En plus des stations personnelles de travail, il peut y avoir un pool de
processeurs partagés, un système de fichiers partagés, etc. Grace à un
logiciel approprié, le système apparait aux usagers comme un système
à temps partagé classique mono processeur..
• A workflow information system
– supports the automatic processing of orders
– It can be used by people at different locations and by means of any
devices (e.g., desktop, laptop, or cellular phones)
– Users are unaware of how orders physically flow through the system;
to them it appears as if they are operating on a centralized database.
• The World Wide Web
– simple, consistent, and uniform model of distributed documents
– To see a document, a user need merely activate a reference
– without the need to know the location of the document
– appears to its users as a gigantic centralized document system.
5
Objectifs des Systèmes Distributés

• Connecter usagers et ressources


- Permettre aux usagers l’accès facile aux ressources distantes et les partager
de manière controlée.
- Permettre facilement un travail collaboratif et échange d’informations. La
connectivité de Internet permet actuellement aux membres d’un grand
nombre d’organisations virtuelles geographiquement dispersées de
travailler en collaboration au moyens de groupware (software for
collaborative editing, teleconferencing, etc.)
- A mesure que la connectivité et le partage augmentent, la securité devient
de plus en plus importante (préoccupante).
 Transparence
- Cacher le fait que les processus et les ressources sont physiquement répartis
sur plusieurs machines.

6
Transparence dans un Système Distribué
Transparence Description
Masquer les differences de representation de données
et comment une ressource est accedée: Les
D’Access
ressources locales ou distantes sont accédées à l’aide
des mêmes opérations
Masquer l’emplacement de la resource: on y accède
De Localisation
sans connaître son emplacement
Masquer la possibilité qu’une ressource se déplace
Migration
d’un endroit à un autre
Masquer le fait qu’une resource puisse changer
Relocation
d’emplacement lors de son utilisation.
Masquer le fait qu’une ressource puisse être répliquée
Replication
et chaque réplicas réside dans différents endroits.
Occulte le fait qu’une ressource puisse être patagée
Concurrence par plusieurs usagers competitifs et la cohérence est
accomplie au niveau supérieur.
Masquer les défaillances et les recouvrements
Défaillance
possibles des objets
Ignore si une ressource (logicielle) est en mémoire ou 7
Persistence
sur support de stockage externe (disk).
Degré de Transparence
• La transparence de distribution est en general
préférable, mais la souhaiter pour tous les aspects de
distribution n’est pas toujours une bonne idée:
– Il est indésirable de cacher aux usagers l’emplacement
d’une imprimante partagée.
– Il est nécessaire d’avoir un compromis entre un haut
degré de transparence et la performance du système.
– Dans les systems distribués collaboratifs, les usagers
souhaiteraient être mutuellement informés de leurs
activités concurrentes plutôt de les cacher les uns aux
autres.
– Il est impossible de rendre transparentes certaines
situations telles que la latence d’un réseau ou la
défaillance d’un médium de communication.
8
Ouverture (Openness)
• Un SD ouvert est un système qui offre des services selon des règles
standards qui décrivent la syntaxe et la semantique of ces services. E.g.,
protocoles réseaux.
• Les services distribués sont generallement specifiés par des interfaces.
– La syntaxe des interfaces est souvent décrite dans un Language de
Definition d’Interface (IDL).
– La sémantique des interfaces est souvent donnée de manière informelle
à l’aide d’un language naturel.

• Une interface correctement spécifiée permet à un processus arbitraire


désirant une certaine interface de converser avec un autre processus
fournisseur de cette interface. Cela permet aussi à deux parties
independentes de construire entièrement des implementations differentes
des mêmes interfaces.
• Une specification correcte doit être:
– complete – tout ce qui est nécessaire à une implémentation a été défini;
– neutre – les spécifications ne doivent pas indiquer comment serait une
implémentation.
9
• Complétude et neutralité sont importantes pour:

– interoperabilité qui caracterise jusqu’ou deux implémentations d’un


systeme ou de composants de différents concepteurs (fabriquants)
puissent coexister et fonctionner ensemble en s’appuyant simplement
sur les autres services tels spécifiés par un standard commun. Et
– portabilité qui caracterise dans quelle mesure une application
développée pour un SD A puisse être exécutée, sans modification, sur
un SD B différent implementant les mêmes interfaces que A.

• Un system distribué ouvert serait flexible:


- Facile à configurer au regard de differents composants provenant de
differents developpeurs; et
- Ajout et remplacement faciles de nouveaux composants sans affecter les
composants en place.

10
Scalability ou Dimensionnement
• La Scalability d’un SD peut être mesurée selon trois dimensions:
– Un SD est scalable en taille si d’avantage d’usgers et resources peuvent être
facilement ajoutés.
– Un SD est géographiquement scalable s’il permet aux usagers et ressources de
s’étendre encore plus loin.
– Un SD est administrativement scalable s’il peut être facilement géré
indépendamment des diverses organisations administratives qui le composent.
• Les services centralisés, les données et les algorithmes constituent des obstacles
pour l’accomplissement de la scalability en taille.

Concept Example

Services centralisés Un serveur unique pour tous les usgers

Données centralisées Un annuaire téléphonique unique en ligne

Algorithmes centralisés Routage basé sur des informations completes

Exemples de limitations de la scalability. 11


• Caracteristiques des algorithmes décentralisés:
– Décisions prises par les machines en fonction des seules informations
locales.
– Défaillance d’une machine n’invalide aucunement l’algorithme.
– Absence d’hypothèse implicite sur l’existence d’une horloge global.

• Scalability géographique difficile à réaliser parce que:


– Communication synchrone appropriée pour les LAN, est
inappropriée pour WAN due aux differentes latences de
communication .
– Absence de l’état global complet du système au niveau d’une machine.
– Communication dans WAN est naturellement non fiable et
virtuellement toujours point-to-point, tant dis que la communication
en LAN est générallement hautement fiable à base de broadcasting.
– Solutions centralisées résultent d’un gaspillage de ressources réseaux
et dégradent les performances du système.
• Scalability Administrative est entravée par un usage
conflictuel de resources, gestion, et des politiques de securité
dans des domaines administratifs multiples et independents.
Techniques de Dimensionnement

• Puisque les problèmes de scalability apparaissent comme des


problèmes de performance causés par des capacités limitées des
serveurs et du réseau, Il existe en fait, trois techniques de scaling:
– Occulter les latences de communication;
– Distribution ; et
– Réplication.

• Elimination des latences de communication est appropriée pour


accomplir la scalability geographique. L’idée de base consiste à
éviter autant que possible d’attendre les réponses des serveurs
distants :
– Pour les systems batch et applications parallèles, les communications
asynchrones peuvent être utilisées pour éviter la latence de
communication .
– Pour les applications interactives et collaboratives, la meilleure
solution est de reduire globalement les communications en transférant
la partie des calculs normallement exécutés au niveau du serveur vers
le processus client ayant demandé le service. 13
Scaling Techniques (1)

1.4

The difference between letting:


a) a server or
b) a client check forms as they are being filled 14
Scaling Techniques (2)
Distribution consiste à prendre un composant , le scinder en
composant plus petits, et ensuite les répandre à travers le
system.

1.5

Exemple de subdivision de l’espace de noms DNS en zones.15


Scaling techniques (3)
• Replication des composants à travers un système
distribué permet d’éviter beaucoup les problèmes de
latence de communications, et réaliser une haute
disponibilité , un équilibre des charges, et une
meilleure performance (throughput and
responsiveness).
• Caching est une forme speciale de replication.
• Replication cause des problemes de cohérence.
• Maintenance de la cohérence défi majeur des
systèmes repliqués permettant des mises à jour
concurrentes.
• Beaucoup de solutions qui réalisent la maintenance de
la cohérence sont naturellement non-scalables 16
Concepts Hardware

1.6

Différentes organisations de CPU et mémoires dans les systèmes distribués


17
Multiprocesseurs (1)

Multiprocesseur à base de bus

1.7

• Problèmes:
– Scalability limitée.
– Incoherence du cache
18
Multiprocesseurs (2)

1.8

a) Commutateur crossbar (Coûteux)


b) Réseau à commutation omega (latence
supplémentaire due aux multiples étapes) 19
Systèmes Multiordinateurs Homogènes

1-9

a) Grille (Grid)
b) Hypercube 20
Systèmes Multicomputer Hétérogènes
• La plupart des SD sont construits au dessus
– D’un multicomputer hétérogène (différents types: de
processeurs, de memoires et tailles, et de largeur de
bandes I/O); et
– Réseau d’interconnexion hétérogènes (differentes
commutations et réseaux: ATM, Myrinet, or frame
relay).

• Multicomputers hétérogènes manquent d’une vue


globale du système, d’où un logiciel sophistiqué
est nécessaire pour construire les applications qui
s’y exécutent. C’est là où les SD interviennent.

21
Concepts Software

System Description Objectif Premier

Système d’exploitation fortement couplé


Cache et gère les
DOS pour multi-processors et multicomputers
Matérielles
homogènes.
Système d’exploitation faiblement couplé Offre des services
NOS pour multicomputers hétérogènes (LAN et locaux aux clients
WAN) distants.
Fournit la
Couche Additionnelle au dessus du NOS
Middleware transparence de
implementant des services d’ordre general.
distribution.

Une vue d’ensemble de:


• DOS (Distributed Operating Systems)
• NOS (Network Operating Systems)
• Middleware 22
Systèmes d’Exploitation Uniprocesseur

1.11

Separating applications from operating system code through


a microkernel. 23
Systems d’Exploitation Multiprocesseur
• L’extension d’un SE uniprocesseur vers un SE multiprocesseur
est simple: Toutes les structures de données necessaires à un SE
pour la gestion des ressources sont placées dans la mémoire
partagée. La difference fondamentale est que maintenant ces
données sont accessibles à une multitude de CPUs.

• Comment rendre les CPUs transparents aux applications?

• deux outils important de synchronisation :


– Semaphore: un entier avec deux operations, Pet V;
– Moniteur: constructions linguistique, représentée par un module
regroupant variables partagées et procedures les manipulant, avec
exécution exclusive (par au plus un processus).

24
Multiprocessor Operating Systems (1)

monitor Counter {
private:
int count = 0;
public:
int value() { return count;}
void incr () { count = count + 1;}
void decr() { count = count – 1;}
}

A monitor to protect an integer against concurrent access.


25
Multiprocessor Operating Systems (2)

monitor Counter {
private: void decr() {
int count = 0; if (count ==0) {
int blocked_procs = 0; blocked_procs = blocked_procs + 1;
condition unblocked; wait (unblocked);
public: blocked_procs = blocked_procs – 1;
int value () { return count;} }
void incr () { else
if (blocked_procs == 0) count = count – 1;
count = count + 1; }
else }
signal (unblocked);
}

A monitor to protect an integer against concurrent access, but


blocking a process. 26
Systèmes d’Exploitation Multicomputer (1)
Les SE Multicomputer ont une structure et une complexité totallement differentes des
SE multiprocesseur à cause de l’absence d’une mémoire physique partagée pour
stocker les structures de données relatives à la gestion des ressources du système.

1.14

Structure générale d’un SE multicomputer 27


Systèmes d’Exploitation Multicomputer (2)
• Pour expliquer différentes semantiques des primitives message-passing dans
différents systèmes, on considère les cas où:
– Les messages sont bufferisés ou non; et
Les processus emetteurs ou recepteurs sont bloqués ou non; et
– Les communications sont fiables ou non.
1.15

28
Alternatives for blocking and buffering in message passing.
Multicomputer Operating Systems (3)

buffer Communication
Point de Synchronization
d’emission fiable, guarantie?
Bloquer l’emetteur jusqu’à buffer non
Oui Pas necessairement
plein
Bloquer l’emetteur jusqu’à message émis Non Pas necessairement
Bloquer l’emetteur jusqu’à message reçu Non Necessaire
Bloquer l’emetteur jusqu’à message
Non Necessaire
délivré

Relation entre bloquage, bufferisation, et communications fiables.

29
Distributed Shared Memory Systems (1)

a) Pages of address
space distributed
among four
machines

b) Situation after CPU


1 references page 10

c) Situation if page 10
is read only and
replication is used

30
Distributed Shared Memory Systems (2)

1.18

Faux partage d’une page entre deux processus independents.


31
Network Operating System (1)

1-19

Structure générale d’un système d’exploitation réseau.


Network OS services: services réseau du système 32
Système d’Exploitation Réseau (2)
Example de services NOS :
– rlogin machine
– rcp machine1:file1 machine2:file2
– File servers.
1-20

Deux clients et un server dans un système d’exploitation réseau.


33
Network Operating System (3)

1.21

Different clients may mount the servers in different places.


34
Positionnement du Middleware
L’objectif du middleware est de combiner les avantages des
deux SD:
– The scalability et l’ouverture des NOS.
– La transparence et la facilité d’utilisation du DOS.

1-22

Structure générale d’un système distribué en tant que middleware. 35


Middleware et Ouverture

1.23

Dans un SD à base de middleware ouvert, les protocoles


utilisés par chaque couche middleware et les interfaces offertes
aux applications devraient être identiques. 36
Comparison entre Systems
Distributed OS
Network Middleware-
Item
OS based OS
Multiproc. Multicomp.

Très
Degré de transparence Important Faible Important
Important
Même OS sur tous les
Oui Oui Non Non
noeuds

Numbre de copies de OS 1 N N N

Mécanisme de memoire Variable: msg,


Messages Files
communication utilisé partagée RPC, RMI …
Mode de Gestion des Global, Global, Sur chaque Sur chaque
ressources central distribué noeud noeud

Scalability aucun Moyen oui Variable

Openness Fermé Fermé Ouvert ouvert

Comparaison entre systèmes d’exploitation multiprocesseurs, systèmes


d’exploitation multiordinateur, systèmes d’exploitation réseaux, et
systèmes distribués middleware. 37
Clients and Servers
The client-server model is a way of organizing processes in distributed
systems. Thinking in terms of clients that request services from
servers helps understanding and managing the complexity of
distributed systems.

1.25
General interaction between a client and a server.
38
An Example Client and Server (1)

The header.h file used by the client and server. 39


An Example Client and Server (2)

A sample server.
40
An Example Client and Server (3)

1-27 b

A client using the server to copy a file. 41


Processing Level

1-28

The general organization of an Internet search engine


into three different layers 42
Multitiered Architectures (1)

1-29

Alternative client-server organizations (a) – (e).


43
Multitiered Architectures (2)

1-30

An example of a server acting as a client.


44
Modern Architectures

1-31

An example of horizontal distribution of a Web service.


45

Vous aimerez peut-être aussi