Next: About this document ...
Up: Systèmes d'exploitation (Module Maîtrise
Previous: Interblocages
  Index
Subsections
Partage de ressources. Accélération du
calculs. Fiabilité. Communication.
Flynn a établi une classification qui tient compte du nombre de
processeurs (un ou plusieurs) et du nombre de mémoires (une ou
plusieures).
Cela donne les quatre classes suivantes :
- SISD
- Single Instruction, Single Data : les machines
``classiques''. Tous les chapitres précédents s'y rapportent.
- SIMD
- Les calculateurs vectoriels.
- MISD
- les bi-processeurs actuels.
- MIMD
- les réseaux : c'est l'objet de ce qui suit.
Complètement connectés. Partiellement connectés. Réseaux
hiérarchiques. Réseaux en étoile. Réseaux en anneau. Réseaux de bus à
accès multiples. Réseaux hybrides.
Réseaux locaux. Réseaux à grande distance.
Nommage. (DNS)
Routage. (fixe, circuit virtuel, dynamique)
Connexion (circuits, messages, paquets)
Conflits (CSMA/CD, jeton, emplacements (ATM))
Connexion à distance (telnet)
Transfert de fichiers (ftp)
Peu transparent à l'utilisateur, qui doit soit connaître plusieurs
S.E. (telnet), soit maîtriser des commandes supplémentaires (ftp) et
dupliquer de l'information (cohérence).
Migration de données (ftp automatisé)
Migration de calculs (RPC)
Migration de processus (extension des RPC)
- Les appels de procédures distantes
- (RPC) schéma page 514
- Les threads
- (processus légérs).
- un processus peut comporter plusieurs threads : chacun possède
son compteur, ses registres ...mais l'espace mémoire est commun.
- soit l'ordonnanceur devient un ordonnanceur de threads (
variantes), soit un programme spécial qui ordonnance les threads d'un
même processus. (deux niveaux d'ordonnancement : plus facile, mais pas
meilleur).
- Il est du ressort du programmeur du processus de gérer les
communications inter-threads : synchronisations avec sémaphores du
fait de l'espace mémoire commun.
- très pratique pour l'écriture de serveurs. Par exemple, un
serveur de fichiers possède trois threads :
- un pour analyser les requêtes.
- un pour retourner les blocs déjà en mémoire.
- un pour récupérer les blocs sur disque.
ainsi, une requête qui nécessite un accès disque (normalement
bloquante pour les autres) n'est plus bloquante.
Le réseau peut tomber en panne (liaison, site, perte d'un message). Il
faut pouvoir détecter et corriger ses défaillances.
- Détection des défaillances
- est un problème difficile. Il est
généralement impossible de connaître la cause. Les techniques :
poignée de mains à intervalles réguliers, second chemin,...
- Reconfiguration
- tables de routages, reconstruction de l'anneau,
élection ...
- Reprise après défaillance
- diffusion, mise à jour (des
défaillances dans l'intervalle, des courriers, ...), et reconfiguration.
C'est un système de fichiers dont les clients, les serveurs et les
unités de stockages sont répartis entre les machines.
Le nommage est la correspondance entre les objets physiques et
logiques.
La transparence doit cacher l'endroit où se trouve le fichier dans le
réseau. Son nom ne fait pas référence à l'emplacement physique, et ne
doit pas être changé quand son emplacement physique change.
Une solution : un service de nommage.
Utilisation des RPC.
Les mémoires caches permettent de minimiser le trafic sur le
réseau, mais posent le problème de la cohérence des différentes
mémoires caches.
Un service de fichiers avec états établit une connexion entre le
client et le fichier. Le client à une référence à l'inode.
Un serveur sans état traite les réquêtes indépendemment les unes des
autres, qu'elles proviennent d'un même client ou non.
Une solution pour diminuer les temps d'accès, mais qui d'une part,
demande plus de disques, d'autre part, demande une gestion de la
cohérence.
Network File System (SUN). schéma page 548.
Montage, auto-montage, client/serveur, RPC.
Le besoin de synchroniser et de faire communiquer des processus existe
également dans un système réparti.
Il est nécessaire, pour traiter un certain nombre de problèmes,
d'avoir un ordre global sur les événements d'un système.
Peut être construit à partir de : adresse machine, numéro de
processus, horloge locale.
Problème : pas cohérent (du fait des dérives) avec l'envoi et la
réception de messages.
UTC : Temps Universel Coordonné suffit pour beaucoup de problèmes
(dates des fichiers ...), mais insuffisant pour section critique,
interblocages...car les délais de transmission ne sont pas connu
exactement.
Une relation R telle que :
- 1.
- Pour chaque processus P, si a est antérieur à b, alors
R(aP) < R(bP)
- 2.
- Pour chaque couple de processus (P,Q), si P envoie à Q un
message m, alors
R(envoiP(m)) < R(receptionQ(m))
L'algorithme de Lamport :
- 1.
- A chaque création de processus Pi, initialiser un compteur
ci à 0.
- 2.
- A chaque événement significatif de Pi, incrémenter ci.
- 3.
- Estampiller chaque envoi de message m par Pi du compteur
ci.
- 4.
- A chaque réception de message (m,E) par un processus Pi,
celui ci effectue l'opération
ci = max(ci,E)+1.
Un coordinateur : 3 messages par entrée (éventuellement un
acquittement de la demande).
Pb : si le coordinateur tombe en panne.
Next: About this document ...
Up: Systèmes d'exploitation (Module Maîtrise
Previous: Interblocages
  Index
Alain GRIFFAULT
2000-01-04