Qu'est-ce que Défaut de page (page fault) ?

Exception levée par le CPU lorsque la page accédée n'est pas affectée en mémoire physique, ou lors d'un type d'accès non autorisé. Le système d'exploitation prépare la page et réexécute l'instruction, ou traite l'accès comme illégal.

Nom japonais: ページフォルト

« Défaut de page (page fault) » apparaît dans 12 questions d'entraînement réparties sur 4 thèmes, dont Système d'exploitation et matériel, Éditeurs de liens, chargeurs et exécutables, Multicœur et synchronisation.

Domaine: Système d'exploitation et matériel

S'entraîner : questions sur Défaut de page (page fault)

Dans quel cas un défaut de page survient-il ?

  1. ALorsque la donnée est absente du cache et lue depuis la mémoire principale
  2. BLorsque la page accédée n’est pas allouée en mémoire physique
  3. CLorsque la traduction est présente dans le TLB et que l’adresse physique est immédiatement connue
Afficher la réponse et l'explication

Réponse : B. Lorsque la page accédée n’est pas allouée en mémoire physique

Le défaut de page est une exception qui survient lorsque l’entrée de la table des pages de la page accédée est invalide, c’est-à-dire que la page n’est pas allouée en mémoire physique (évincée sur disque, pas encore chargée, etc.), ou lors d’un accès non autorisé comme l’écriture dans une page en lecture seule. L’OS prépare la page et réexécute l’instruction. Un défaut de cache est traité uniquement par le matériel et ne provoque pas d’exception. Si la traduction est dans le TLB, elle est immédiate et aucun défaut ne survient.

Lorsqu’un défaut de page survient à l’accès à une page évincée sur disque, quel est le déroulement du traitement par l’OS ?

  1. AIl termine immédiatement le programme en erreur sans charger la page
  2. BAprès avoir chargé la page, il saute l’instruction fautive et reprend à l’instruction suivante
  3. CIl prépare une page, la charge depuis le disque, met à jour la table et réexécute l’instruction
Afficher la réponse et l'explication

Réponse : C. Il prépare une page, la charge depuis le disque, met à jour la table et réexécute l’instruction

Pour un défaut de page dû à un accès légitime, l’OS cherche une page physique libre (en évinçant une autre page s’il n’y en a pas), y charge le contenu depuis le disque et valide l’entrée de la table des pages. Il réexécute ensuite depuis le début l’instruction fautive, et le programme continue comme si de rien n’était. Sauter l’instruction empêcherait cet accès d’avoir lieu et fausserait le résultat. La terminaison en erreur est réservée aux accès illégaux à des adresses non allouées.

« Défaut de page (page fault) » dans les explications

Questions mentionnant « Défaut de page (page fault) » (12)

  1. Dans quel cas un défaut de page survient-il ?
  2. Lorsqu’un défaut de page survient à l’accès à une page évincée sur disque, quel est le déroulement du traitement par l’OS ?
  3. Avec un temps d’accès mémoire de 100 ns et un traitement de défaut de page de 8 ms, quel est approximativement le temps d’accès moyen si un défaut de page survient une fois sur un million d’accès ?
  4. Lorsqu'une récursion trop profonde dépasse la limite de la pile, que se passe-t-il généralement sous Linux notamment ?
  5. Quelle est l’explication générale de la différence entre interruption et exception ?
  6. Parmi les événements suivants, lequel est asynchrone, sans rapport avec l’exécution des instructions et survenant à un moment imprévisible ?
  7. Quel est l’avantage de la copie sur écriture (copy-on-write) lors de la duplication d’un processus ?
  8. Quelle description de la pagination à la demande est correcte ?
  9. 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 ?
  10. 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 ?
  11. Avec la politique de premier contact (first touch) couramment utilisée sur les systèmes NUMA sous Linux (la page est placée dans la mémoire du nœud où s’exécute le thread qui y écrit en premier), à quoi faut-il prendre garde ?
  12. Quelle est la définition de la mémoire unifiée (unified memory) de CUDA ?

Termes associés

Table des pages Interruption Appel système Pagination à la demande TLB (tampon de traduction d'adresses) Tas (heap) Copie sur écriture (copy-on-write) Contact NUMA Mémoire unifiée

Retour au glossaire