Next Previous Contents

2. Architecture des systèmes SMP

Le SMP se caractérise par une architecture « en couplage serré » : tous les processeurs peuvent accéder à toutes les ressources du systèmes,

Un seul système d'exploitation gère l'ensemble des ressources du système.

Le matériel nécessite donc de prendre en compte des problèmes de parallélisme : accès mémoire, cohérence du cache, i/o…

2.1 Architecture matériel

archi_smp.gif - 13196 Bytes

L'ensemble des processeurs sont réliés entre eux grâce à un bus, et les interactions avec le reste du système (accès mémoire et entrées - sorties) sont gérées par le contrôleur mémoire et le contrôleur d'entrées - sorties. L'intégrité et les performances du système repose donc sur les ces deux contrôleurs.

Les limitations d'un système SMP sont imposées par les caractèristiques de ces deux contrôleurs, mais surtout par le nombre de processeur :
Plus il y a de processeur plus les conflits d'accès au niveau matériel (bus) et logiciel (système d'exploitation) sont difficilement gérable :

Les systèmes possédant un nombre de processeurs supérieur ne correspondent pas à une architecture SMP (couplage sérré), il s'agit soit d'assemblage de systèmes SMP, soit d'architecture répartie (cluster, architecture massivement parallèle).

2.2 Impact sur le logiciel

2.2.1 Ordonnancement sur un système non SMP 

sched1.gif - 7483 Bytes

Sur un système non SMP, l'ordonnanceur traite les processus les uns après les autres.

Le débit de l'ordonnanceur est donc fonction du seul processeur.

2.2.2 Ordonnancement sur un système SMP

sched2.gif - 9762 Bytes

Sur un système SMP, l'ordonnanceur fonctionne de la même manière, mais son débit est augmenté : chaque processeur peut traiter un processus, l'ordonnanceur peut donc affecter plus de processus aux processeurs dans un temps donné.
Bien sur, le traitement d'un processus donné ne se fera pas plus rapidement; mais la parallèlisation de l'exécution des taches donne l'illusion d'une accélération du traitement.

En contre parti, la parallèlisation entraine un "overhead" de temps d'exécution pour gérer les conflits d'accès aux ressources du système : 

Le traitement simultané de plusieurs processus induit des conflits d'accès aux ressources. Un processus monothread s'exécutera donc, au mieux, aussi rapidement que sur un système monoprocesseur. Si un processus est multithread, son traitement peut fortement s'accélérer (parallèlisation du traitement).

Pour tirer profit des capacités du SMP, le système d'exploitation doit être fondé sur le concept de thread. Ainsi on augmente l'efficacité de la commutation thread à thread. Il est nécessaire d'utiliser des mécanismes de verrous pour gérer les conflits d'accès aux ressources. Il est nécessaire d'utiliser des verrous adaptés aux besoins du système (taille du verrouillage, verrou à grain fin ou à gros grain).


Next Previous Contents