99 | | L’ajout d’une entrée dans une PT(P,K), pour un processus P dans un cluster K est la conséquence d’un défaut de page |
100 | | causé par n’importe quel thread du processus P s’exécutant dans le cluster K, sur le principe du “on-demand paging”. |
101 | | Tous les threads d’un processus P placés dans un cluster K utilisent exclusivement la PT(P,K) locale, et reportent |
102 | | le défaut de page à l’instance locale du noyau. Le traitement du défaut de page dépend du type du segment : |
| 99 | Adding a new entry in a PT(P,K) for a process P in a cluster K is the result of a page fault, triggered by any thread of process P |
| 100 | running in cluster K, based on the "on-demand paging" principle. |
| 101 | All threads of a P process in a K cluster use exclusively the local PT(P,K), and report the page fault to the local kernel instance. |
| 102 | The handling of the page fault depends on the segment type : |
105 | | Il existe un vseg de ce type dans la VSL de tous les clusters contenant au moins un thread du processus P. |
106 | | Si le cluster K qui détecte le défaut de page est différent du cluster propriétaire du processus Z, le noyau du cluster K doit allouer |
107 | | une page physique dans le cluster K. Pour initialiser cette page, il envoie une PT_MISS_RPC au cluster Z propriétaire du processus. |
108 | | Quand il obtient le PTE stocké dans la PT(P,Z), il effectue un remote_memcpy() pour copier le contenu de la page physique |
109 | | du cluster Z vers la page physique du cluster K. Il termine en introduisant le PTE manquant dans la PT(P,K). |
110 | | Si le cluster K est le cluster propriétaire de Z, il alloue une page physique, initialise cette page en s’adressant au système de fichier, |
111 | | pour récupérer le contenu de la page manquante dans le cache du fichier .elf, et met à jour la PT(P,Z). |
| 105 | There is a CODE vseg in the VSL of all the clusters having at least one thread of process P. |
| 106 | If the K cluster that detected the page fault is different from the Z cluster owner of P, the kernel of cluster K has to allocate a physical page in cluster K. |
| 107 | To initialize this page, it sends a PT_MISS_RPC to cluster Z, owner of P. |
| 108 | When it gets the PTE stored in PT(P,Z), it does a remote_memcpy() to copy the contents of physical page in cluster Z to the physical page of cluster K. |
| 109 | It then ends with inserting the missing PTE to the PT(P,K). |
| 110 | IF cluster K is the owner cluster, it allocates a physical page, initializes this page by addressing the file system to retrieve the content of the missing page in the .elf file cache, |
| 111 | then updates the PT(P,Z). |