Système d'exploitation et matériel

Dans un système où le matériel ne maintient pas la cohérence des caches (non cohérent), quel traitement le logiciel doit-il effectuer avant que le CPU lise des données écrites en mémoire principale par un périphérique via DMA ?

  1. AAbaisser temporairement la fréquence d’horloge du CPU
  2. BInvalider le contenu du cache pour la zone concernée afin de forcer une relecture depuis la mémoire principale
  3. CRéécrire tout le contenu du cache en mémoire principale, puis abandonner les résultats reçus par DMA
Afficher la réponse et l'explication

Réponse : B. Invalider le contenu du cache pour la zone concernée afin de forcer une relecture depuis la mémoire principale

Le DMA transférant les données entre périphérique et mémoire principale sans passer par le CPU, dans un système où le matériel ne maintient pas la cohérence, le cache du CPU peut contenir d’anciennes données de cette zone. Une lecture directe renverrait l’ancienne valeur plutôt que les nouvelles données reçues par DMA. Le pilote invalide donc le cache de cette zone avant la lecture pour faire lire les nouvelles valeurs en mémoire principale. À l’inverse, les données à envoyer au périphérique sont réécrites depuis le cache avant le lancement du DMA.

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

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

  1. Quel est le rôle principal d’une IOMMU ?
  2. Quel est le rôle d’un pilote de périphérique ?
  3. Pour quelle raison principale un OS courant empêche-t-il les applications de lire et écrire directement les registres des périphériques ?
  4. Comment s’appelle le logiciel qui permet d’exécuter simultanément sur un même ordinateur plusieurs OS, chacun dans une machine virtuelle indépendante ?
  5. Quelle description des types d’hyperviseurs est correcte ?

Comparatifs sur ce thème