Introduction Nouveaux appareils Programmation avancée des architectures multicœurs ! Informatique embarquée PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce… Ressources contraintes Besoins spécifiques : sécurité, économie d’énergie… ! Architectures multi-cœurs Augmentation de la vitesse en augmentant le parallélisme Gestion du placement, des caches Gaël Thomas [email protected] Nouveaux comportements ! Informatique ubiquitaire Environnement matériel changeant et hétérogène ! Informatique nomade Université Paris-Saclay Master Calcul Haute Performance et Simulation Master 2 Bureau portable, masquage de la localisation 12/09/16 Architectures à Composants Introduction Introduction Nouveaux appareils Nouveaux appareils ! Informatique embarquée ! Informatique embarquée PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce… Ressources contraintes Besoins spécifiques : sécurité, économie d’énergie… ! Architectures multi-cœurs PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce… Ressources contraintes Besoins spécifiques : sécurité, économie d’énergie… Besoin d’extensibilité ! Architectures multi-cœurs Augmentation de la vitesse en augmentant le parallélisme Gestion du placement, des caches Augmentation de la vitesse en augmentant le parallélisme Gestion du placement, des caches Nouveaux comportements Nouveaux comportements ! Informatique ubiquitaire ! Informatique ubiquitaire Environnement matériel changeant et hétérogène Environnement matériel changeant et hétérogène ! Informatique nomade ! Informatique nomade Bureau portable, masquage de la localisation 12/09/16 2 Architectures à Composants Bureau portable, masquage de la localisation 3 12/09/16 Architectures à Composants Besoin de virtualisation 4 Introduction Plan du cours Nouveaux appareils Étude de la virtualisation (2 semaines) ! Informatique embarquée ! Les moniteurs de machines virtuelles ! Les machines virtuelles applicatives ! Les ramasse-miettes PDAs, téléphone, voiture, satellites, avions, trains, cartes à puce… Ressources contraintes Besoins spécifiques : sécurité, économie d’énergie… ! Architectures multi-cœurs Étude de l’extensibilité dans le noyau Linux (2,5 semaines) Besoin de concurrence Augmentation de la vitesse en augmentant le parallélisme Gestion du placement, des caches ! Architecture du noyau Linux ! Construction de modules Nouveaux comportements Étude des multi-cœurs (2,5 semaines) ! Informatique ubiquitaire ! Architectures et contraintes des multi-cœurs ! Concurrence en mémoire partagée ! Algorithmes classiques sans verrous ! Mémoires transactionnelles logicielles Environnement matériel changeant et hétérogène ! Informatique nomade Bureau portable, masquage de la localisation 12/09/16 Architectures à Composants 5 Vue d’ensemble de l’évolution des systèmes 12/09/16 Architectures à Composants 6 Vue d’ensemble de l’évolution des systèmes Noyau monolithiques (Unix– voir M1) Moniteurs de MV (VM/370, Xen, VMWare...) Emulateurs (de vrai processeurs…) Monolithiques extensibles (Linux/Windows/Macos…) Machines virtuelles applicatives (Java, .Net, Python…) Ramasse-miettes Noyau monolithiques (Unix– voir M1) Moniteurs de MV (VM/370, Xen, VMWare...) Emulateurs (de vrai processeurs…) Monolithiques extensibles (Linux/Windows/Macos…) Machines virtuelles applicatives (Java, .Net, Python…) Ramasse-miettes Compilateurs Exo-noyaux (Aegis) Micro-noyaux (Mach, L4) OS pour Multicoeurs (Barrelfish, Corey, TXLinux…) Algorithmes sans verrou (java.util.concurrent.*) 12/09/16 Compilateurs OS à base de MV (Singularity, KaffeOS, Spin…) OS Exo-noyaux (Aegis) Compilation Micro-noyaux (Mach, L4) OS pour Multicoeurs (Barrelfish, Corey, TXLinux…) Algorithmique répartie Mémoires transactionnelles (TinySTM, STM de Haskell…) Architectures à Composants OS à base de MV (Singularity, KaffeOS, Spin…) Algorithmes sans verrou (java.util.concurrent.*) 7 12/09/16 OS Compilation Algorithmique répartie Mémoires transactionnelles (TinySTM, STM de Haskell…) Architectures à Composants 8 Modalité d’examens Bibliographie Machines virtuelles et ramasse-miettes ! Garbage Collection: algorithms for automatic dynamic memory management. R. Jones, R. Lins. Wiley (1996). Noyau Linux ! Le noyau linux. D. P. Bovet, M. Casata, J. Cornavi Oreilly (2001) Un examen final sur 100% Programmation multi-coeurs ! The Art Of Multiprocessor Programming. M. Herlihy, N. Shavit. Elsevier (2008) Divers ! Bibliographie du module Noyau (M1) ! Conférences et revues en système : SOSP, OSDI, ASPLOS, USENIX, EUROSYS, HOTOS, VEE, CACM, JACM, Computing Surveys, TOPLAS, SP&E, JPDC 12/09/16 Architectures à Composants 9 12/09/16 Architectures à Composants 10