Next Previous Contents

3. Le SMP sous Linux

3.1 Support du SMP

Linux supporte le SMP depuis le noyau 2.0, mais, ce support est réellement efficace depuis le noyau 2.2.
Depuis le kernel 2.2, les processus et les threads du noyau sont répartis entre les processeurs.
La version 2.2 du noyau possède une gestion des signaux, des interruptions et de quelques E/S à verrouillage fin (fine grain locking).

Le prochain noyau (2.4) sera réellement architecturer avec des verrous noyaux fins. Tous les sous-systèmes majeurs du noyau 2.4 sont complètement codés avec des threads : réseau, VFS, VM, ES, block/pages de cache, ordonnancement, interruptions, signaux, etc.

Pour tirer profit du SMP, il faut néanmoins exploiter le concept de mémoire partagée. Seuls les threads POSIX fournissent des mécanismes partageant certaines ressources telles la mémoire : les Pthread.

Les LinuxTheads, intégrés dans la glibc2, mettent en œuvre des threads au niveau kernel (conforme à la définition des Pthread) permettant d'exploiter pleinement le SMP.

3.2 Benchmark

Pour se rendre compte des performance de cette architecture, sous linux, la réalisation de quelques tests est nécessaire.

Description des tests  :

Il s'agit de simples programmes écrient en C. On mesure le temps d'exécution de chaque série de tests avec la commande time (moyenne de plusieurs de lancement de chaque série de test).

Plateforme de test : kernel Linux 2.2.17 et Bi-Pentium II 350 et la glibc 2.1.3, gcc 2.95

bench.gif - 10109 Bytes

On constate grâce à ce tableau :

Le SMP apporte donc un gain de performance pour les programmes adaptés à cette architecture.


Next Previous Contents