![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() |
Mots-clés
MotivationDes aspects logiciels (HIGHMEM) autant que matériels (PCI32/ISA) rendent nécessaire l'allocation efficace de la mémoire uniquement dans des portions bien définies de la mémoire physique. De fait, le gestionnaire de mémoire doit gérer ces zones. Le noyau Linux posède de nombreux caches : dcache, buffer_cache, inode_cache, page_cache, swap_cache. La performance des caches est déterminante pour la performance globale du système. De plus, les algorithmes de remplacement sont critiques lorsque l'ensemble de travail ne rentre pas dans tout ou partie de ces caches. Les algorithmes d'ordonnancement sont essentiels pour la performance des machines multi-processeurs symétriques (SMP) effectuant du calcul intensif. Chaque Entrée/Sortie (E/S, ou I/O en anglais) doit passer par l'ascenseur. L'ascenseur est le principal goulot d'étranglement quand de nombreuses tâches lisent et écrivent en même temps, mais la latence et les problèmes de famine sont tout aussi importants. Développer et maintenir du code système peut être très fastidieux et sujet à erreurs, du fait de la quantité de code et du type d'algorithmes considérés. De fait, toutes les parties non critiques du système pourraient être écrites en langages de haut niveau, afin de rendre la sémantique des algorithmes plus évidente aux programmeurs, et d'obtenir la même amélioration en qualité que les applications utilisateur peuvent gagner grâce à ces langages. L'objet de ce thème est de discuter de ces questions majeures, à la fois en termes de conception et de performance. Sous-thèmes
ProgrammeVendredi 7 juillet
|