Plan Contexte Demande croissante de cycle processeur/ seconde Modélisation Aeronautique Médecine (génôme humain) Météorologie Finance. Sécurité Contexte Solutions : Augmenter la fréquence de fonctionnement des processeurs Augmenter le nombre de processeurs fonctionnant en parallèle 1
Plan Organisations multiprocesseurs possibles Critères : temps d accès aux entités (relié à la distance et la technologie) Organisation logique Mémoire partagée accessibles à l ensemble des processeurs (multi-cœur): 10 à 50 ns Couple Mémoire/processeur + interconnexion rapide (Clusters/Grappes) : 10 à 50µs Machines complètes + interconnexion internet (Applications réparties) : 10 à 50 ms Systèmes multiprocesseurs Ce qui change par rapport au système mono-processeur Synchronisation des processus Gestion des ressources Ordonnancement 2
Plan Architecture matérielle Multiprocesseur 1 Bus commun : Arbitre Architecture : Cache Saturation du bus : Mémoire Cache (L1 et L2) : Cohérence de cache 3
Exemple DUAL-CORE AMD Ref : http://www.materiel-informatique.be/dual-core.php Autre architecture possibles Ajout possible de mémoire spécifique à chaque processeur: Choix d une stratégie : contenu de la mémoire Avec mémoire commune Sans mémoire commune (mais vu comme tel : accès non uniforme à la mémoire) Multiprocesseur à matrice de commutation Plan 4
Système d exploitation sur architecture multiprocesseurs Solution 1 : Chaque processeur a son propre système Table des processus/processeur : Mauvais équilibre de charge Supprimer cache périphérique Allocateur mémoire fixe. Solution 2 : 1 processeur gère le système (maître) et distribue les processus aux autres processeurs Problème de montée en charge (nb de µp) Multiprocesseurs symétriques Principe : Chaque processeur peut exécuter le système d exploitation: - Attention 2 processeurs pourraient l exécuter en même temps : - - Exécuter le même processus sur 2 processeurs en simultané - Réserver la même page libre Exécuter le système en exclusion mutuelle Définir des sections critiques par «thème» : Ordonnancement Réservation mémoire Gestion fichier Ajout de verrous : attention aux interblocages Plan 5
Synchronisation Monoprocesseur : appel système = IT masquée : garantie l atomicité Multiprocesseur : appel système = IT masquée que du processeur concerné Solution TSL (Test and Set Lock ) BUS : capacité de bloquer le bus!!! Entre lecture et écriture Synchronisation : TSL Entrée Section critique E_sc : MOVE LOCK,%R0 CMP %R0,#0 JNE E_sc TSL %R0,LOCK CMP %R0, #0 JNE E_sc RET Sortie Section critique S_sc: MOVE #0,%R0 Ret Solution (LOCK -> %R0 et 1 -> LOCK) Ecriture Invalide le cache : Saturation du bus Synchronisation : optimisation TSL Attente exponentielle en cas d echec TSL : 1 er Echec attente durée 1 instruction 2 ème Echec attente durée 2 instructions n ème échec- attende durée 2 n instructions 1 verrou/processeur (mis en cache dans le processeur). Quand un processeur libère la sc : libère le verrou du processeur suivant (liste des processus en attente) 6
Synchronisation processeur bloqué sur mutex : Solution 1 : Attente Avantage : Etre prêt quand la libération arrive /Simple Inconvénient : Le processeur est bloqué à ne rien faire Solution 2 : Changement de processus Avantage : Occupe au mieux le processeur Inconvénient : Coût du changement de contexte Solution 3 : Attendre un certain temps (variable) puis faire un changement de contexte. Plan Ordonnanceur : principe Monoprocesseur : Temps partagé, à un instant donné déterminer le processus élu. Multi-processeur : Temps partagé, à un instant donné déterminer le processus élu + processeur sur lequel l exécuter 7
Ordonnanceur : critère «temps» Processeur se libère : Prend le premier processus libre. -> Equilibre la charge des processeurs -> 1 même processus peut s exécuter sur plusieurs processeurs Préférer exécuter le processus si possible toujours sur le même processeur (Cache et TLB) Ordonnanceur : critère «espace» 1 processus lance n threads Attendre que n processeurs soient libres et 1 processeur=1 thread : Mono programmation par processeur (pas de contexte switch) Quand un thread se termine, remettre le processeur libéré dans la liste des processeurs disponibles Ordonnanceur par bande Plusieurs processus (P i ) lancent n i threads (n i <nb de processeurs du système) Pendant intervalle de temps 1 : n processeurs sont utilisés pour n 1 thread processus 1 Pendant intervalle de temps 2 : n processeurs sont utilisés pour n 2 thread processus 2 Mélange temps (Intervalle de temps) et espace (processeur). Thread sont liés (attente d une thread sur l autre, ) 8