Différence entre défaut de page et défaut dur

Chaque page s’est vu attribuer un cadre dans la mémoire principale et lorsqu’un thread tente de faire référence à une page dont le cadre ne se trouve pas dans la mémoire principale, un défaut de page se produit. Si la page n’est vraiment pas présente dans la mémoire physique et qu’elle doit être récupérée à partir d’une mémoire secondaire, telle qu’un disque dur, il se produit un défaut qui est classé comme un défaut de page dur.

Qu’est-ce qu’un défaut de page ?

Un défaut de page est un type d’exception initié par le matériel d’un ordinateur pour notifier au système d’exploitation des références à des pages sans cadre. En termes simples, un défaut de page se produit lorsqu’un programme tente d’accéder aux données résidant dans une page qui n’est pas stockée dans la mémoire principale ou la mémoire physique. Supposons qu’un programme particulier comporte cinq pages, dont deux sont chargées dans la mémoire principale dans deux cadres distincts. Ainsi, lorsqu’une nouvelle page est appelée par le processeur, plusieurs choses peuvent se produire. Si cette page n’est pas trouvée dans la mémoire principale, on parle de défaut de page. Ainsi, lorsque le processeur demande l’exécution d’une page particulière, mais que cette page n’est pas disponible dans la mémoire principale, il y a défaut de page. La page réside en fait dans la mémoire secondaire ou la mémoire virtuelle. Tout ce mécanisme est géré par le matériel de l’unité de gestion de la mémoire (MMU).

Qu’est-ce qu’un défaut de page dure ?

Si la page souhaitée n’est pas présente dans la mémoire principale et qu’elle doit être récupérée ou mise en page à partir de la mémoire virtuelle, le défaut est classé comme un défaut de page « dur ». Chaque entrée de la table des pages possède un bit de validité, qui indique si un cadre a été attribué à la page dans la mémoire principale. Ainsi, lorsqu’un programme fait référence à une page dont le bit de validité est égal à zéro, un défaut de page se produit. Le système d’exploitation intervient alors et attribue un cadre approprié à la page. L’entrée de la table des pages nous indique en fait que la page se trouve sur le disque. Ainsi, lorsqu’une page souhaitée n’est pas trouvée dans la mémoire principale et qu’elle est transférée vers le fichier de pages sur le disque, un défaut de page se produit. Le système d’exploitation doit récupérer la page dans le sous-système du disque, ce qui entraîne une attente importante pour le programme et réduit les performances. Si la page réside dans la mémoire cache, un défaut de page souple se produit.

Différence entre le défaut de page et le défaut dur

Exception

– Un défaut de page est un type d’exception qui se produit lorsqu’un programme tente d’accéder à une page qui se trouve dans son espace d’adressage, mais qui ne se trouve pas dans la mémoire principale ou la mémoire physique. Ainsi, lorsque le processeur demande l’exécution d’une page particulière, mais que cette page n’est pas disponible dans la mémoire principale, un défaut de page se produit. Si la page souhaitée n’est pas présente dans la mémoire principale et qu’elle doit être récupérée ou mise en page à partir de la mémoire virtuelle, le défaut est classé comme un défaut de page « dur ». En d’autres termes, si la page doit être extraite du disque, il s’agit d’un défaut de page dur.

Manutention

– L’unité de gestion de la mémoire (MMU) signale un défaut de page à l’unité centrale qui lève alors une exception de défaut de page, ce qui incite le système d’exploitation à localiser la page dans la mémoire principale. Le système d’exploitation attribue ensuite un cadre approprié à la page. Cette action est gérée par un module appelé « pagefault handler ». La table des pages est ensuite mise à jour et l’entrée de la page devrait maintenant pointer vers le bon cadre. Le programme est alors prêt à s’exécuter à nouveau, mais cette fois sans défaut de page. Lorsqu’un défaut de page se produit, le système d’exploitation trouve un emplacement libre pour la page et, une fois l’espace disponible, il lit les données de la page dans la mémoire principale et met à jour l’entrée dans le MMU.

Résumé

Le défaut de page est l’un des problèmes de gestion de la mémoire les plus courants lorsqu’il s’agit de mémoire virtuelle ou de mémoire secondaire. Un défaut de page, contrairement à ce que son nom suggère, n’est pas réellement un défaut ; il s’agit d’une exception qui se produit lorsqu’un programme tente d’accéder à une adresse sur une page qui n’est pas disponible dans la mémoire principale où elle est censée se trouver. Le MMU signale alors à l’unité centrale le défaut de page et l’unité centrale demande alors au système d’exploitation de localiser la page en mémoire pendant que le thread se met en attente. Le système d’exploitation localise alors la page souhaitée dans une autre partie de la mémoire physique ou, dans le pire des cas, la trouve sur le disque, auquel cas le défaut est appelé défaut de page dur. Le système d’exploitation attribue ensuite un cadre approprié à la page et met à jour la table des pages. Tout ce mécanisme est géré par un module appelé pagefault handler.