Système d'exploitation et matériel
Dans un système multicœur, lorsque l’OS modifie l’entrée de table des pages d’une page pour supprimer sa correspondance, quel traitement est nécessaire ?
- AIl suffit de vider le TLB de son propre cœur ; les autres cœurs utilisent automatiquement la bonne traduction
- BEffectuer un traitement qui efface de façon sûre l’ancienne traduction des TLB des autres cœurs également
- CAucun traitement n’est nécessaire ; tous les TLB sont mis à jour en même temps que la table des pages
Afficher la réponse et l'explication
Réponse : B. Effectuer un traitement qui efface de façon sûre l’ancienne traduction des TLB des autres cœurs également
Sur de nombreux CPU, contrairement aux caches, la cohérence des TLB n’est pas maintenue par le matériel, et les TLB des autres cœurs peuvent contenir l’ancienne traduction antérieure à la modification de la table des pages. En l’état, d’autres cœurs pourraient accéder à la page dont la correspondance a été supprimée. L’OS envoie donc des interruptions interprocesseurs aux autres cœurs ou utilise des instructions qui propagent l’invalidation à tous les cœurs pour faire effacer les anciennes entrées, et attend la fin. C’est le TLB shootdown, d’autant plus long que les cœurs sont nombreux.
Continuer : 9 autres questions sur Système d'exploitation et matériel