2016-02-10 4 views
0

J'ai eu un souci sur le traitement des erreurs de page dans les systèmes d'exploitation. Disons que nous avons deux processus A et B en cours d'exécution. À un certain point, un accès mémoire de A provoque une erreur de page. Ainsi, le système d'exploitation gère le piège et récupère la page demandée dans la mémoire et la stocke dans un cadre de page Y et met à jour la table de page du processus A. Mais à condition que la table de page du processus B ait déjà un mappage vers le cadre de page Y , comment le processus B identifie-t-il que l'entrée de table de page particulière est invalide?Comment les invalidations d'entrée de table de pages ont-elles été communiquées entre les processus?

Répondre

0

Le système d'exploitation doit garder une trace des cadres de page mappés. En règle générale, il existe une liste de cadres de page non mappés qui seront utilisés pour traiter la demande. Le système d'exploitation ne va pas simplement saisir un cadre de page mappé à un processus, puis le remapper sur un autre processus sans d'abord invalider le mappage de première page (sauf si le cadre de page doit être partagé par les deux processus).

+0

Voulez-vous dire que le système d'exploitation met à jour chaque table de pages qui a utilisé le cadre de page particulier? Si oui, pouvez-vous s'il vous plaît fournir un lien ou un livre ref pour cela? –

+0

Merci pour la réponse. Mais j'ai trouvé une explication détaillée ici http://stackoverflow.com/questions/31320289/how-does-the-os-update-the-appropriate-page-table-when-it-evicts-a-victim-page –