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 ?

  1. AIl suffit de vider le TLB de son propre cœur ; les autres cœurs utilisent automatiquement la bonne traduction
  2. BEffectuer un traitement qui efface de façon sûre l’ancienne traduction des TLB des autres cœurs également
  3. 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.

S'entraîner sur ce thème Retour au thème

Autres questions sur Système d'exploitation et matériel

  1. Que se passe-t-il en général lorsqu’un programme accède à une adresse que l’OS ne lui a pas allouée ?
  2. Avec un mécanisme qui associe un fichier à la mémoire (comme mmap), que se passe-t-il lors de la lecture du contenu du fichier ?
  3. Pour écrire de petites données octet par octet, pourquoi est-il plus rapide de les accumuler dans un tampon en espace utilisateur et de les écrire en bloc plutôt que d’invoquer un appel système à chaque fois ?
  4. Quel est le but principal de la distinction, dans le CPU, entre mode privilégié (mode noyau) et mode utilisateur ?
  5. Comment s’appelle le mécanisme par lequel une application demande à l’OS d’effectuer par exemple une lecture ou une écriture de fichier ?

Comparatifs sur ce thème