Changes between Version 13 and Version 14 of page_tables


Ignore:
Timestamp:
Sep 17, 2018, 4:26:26 PM (6 years ago)
Author:
phan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • page_tables

    v13 v14  
    114114
    115115=== 4.2) STACK ===
    116 Les vsegs STACK associées aux thread placées dans un cluster X sont mappées dans le cluster X,
    117 et sont gérés indépendamment les uns des autres dans les différents clusters.
    118 Le noyau du cluster X doit allouer une page physique, et l’enregistrer dans la PT (P,X) locale sans l’initialiser.
    119 Si l’adresse demandée tombe dans la dernière page disponible pour le vseg, la longueur du vseg STACK peut être dynamiquement
    120 localement augmentée dans la VSL(P,X) locale, si il y a de la place dans dans la zone de l’espace virtuel utilisée pour les piles.
    121 Comme suggéré par Franck, on peut imaginer une politique d’allocation par dichotomie utilisant deux arguments : MAX_STACK_SIZE
    122 définissant la longueur totale de la zone réservée aux piles, et MIN_STACK_SIZE définissant la longueur minimale d’une pile particulière.
     116The STACK vsegs associated to the threads placed in a cluster X are mapped in this cluster X and are handled independently from each other in the different clusters.
     117The kernel instance in cluster X has to allocate a physical page and register it in the local PT(P,X) without initializing it.
     118IF the requested address is in the last possible page for the vseg, the STACK vseg length can be locally dynamically increased in the local VSL(P,X),
     119if there is enough space in the virtual space zone used for the stacks.
     120As suggested by Franck, we can imagine an allocation policy by dichotomy using two arguments :
     121MAX_STACK_SIZE, defining the total length of the zone reserved for the stacks, and
     122MIN_STACK_SIZE, defining the minimal length of one stack.
    123123
    124124=== 4.3) DATA ===
    125 Ce vseg étant ''distributed'', les pages physiques sont distribuées sur tous les clusters suivant les bits de poids faible du VPN.
    126 Si le cluster K qui détecte le défaut de page est différent du cluster propriétaire Z, le noyau du cluster K envoie une PT_MISS_RPC
    127 au cluster Z, pour obtenir  le PTE stocké dans la PT(P,Z). Les arguments sont le PID et le VPN de la page manquante.
    128 Quand il reçoit la réponse, il met à jour la PT(P,K).
    129 Si le cluster qui détecte le défaut de page est le cluster propriétaire Z, il sélectionne un cluster cible M à partir des bits
    130 de poids faible du VPN, et envoie au cluster M une RPC_PMEM_GET_SPP pour obtenir le PPN d’une page physique du cluster M.
    131 En réponse à cette RPC, le noyau du cluster M alloue une page physique et renvoie le PPN de celle-ci.
    132 Le noyau du cluster Z s’adresse au système de fichier, pour récupérer le contenu de la page manquante dans le cache du fichier .elf,
    133 et initialise la page physique dans M au moyen d’un remote_memcpy(). Finalement, il met à jour la PT (P,Z).
     125This vseg being ''distributed'', the physical pages are distributed among all the cluster depending on the VPN LSBs.
     126If the K cluster, that detects the page fault, is different from the owner Z cluster, then the kernel instance of cluster K sends a PT_MISS_RPC
     127to cluster Z in order to obtain the PTE stored in PT(P,Z).
     128The arguments are the PID and the VPN of the missing page.
     129When it receives the response, it updates the PT(P,K).
     130If the cluster that detects the page fault is the owner Z cluster, it chooses a target M cluster from the VPN LSBs and sends a RPC_PMEM_GET_SPP to cluster M
     131in order to obtain the PPN of a physical page in cluster M.
     132In response to this RPC, the kernel instance of cluster M allocates a physical page and returns its PPN.
     133The kernel instance of cluster Z addresses the file system to retrieve the contents of the missing page in the .elf file cache
     134and initialized the physical page in M via a remote_memcpy(). Then it updates the PT(P,Z).
    134135
    135136=== 4.4) HEAP ===
    136 Ce vseg étant ''distributed'', les pages physiques sont distribuées sur tous les clusters suivant les bits de poids faible du VPN.
    137 Si le cluster K qui détecte le défaut de page est différent du cluster propriétaire Z, le noyau du cluster K envoie une PT_MISS_RPC
    138 au cluster Z, pour obtenir  le PTE stocké dans la PT(P,Z). Les arguments sont le PID et le VPN de la page manquante.
    139 Quand il reçoit la réponse, il met à jour la PT(P,K).
    140 Si le cluster qui détecte le défaut de page est le cluster propriétaire Z, il sélectionne un cluster cible M à partir des bits
    141 de poids faible du VPN, et envoie au cluster M RPC_PMEM_GET_SPP pour obtenir le PPN d’une page physique du cluster M.
    142 En réponse à cette RPC, le noyau du cluster M alloue une page physique et renvoie le PPN de celle-ci.
    143 Quand le noyau du cluster Z obtient le PPN, il met à jour la PT (P,Z).
     137This vseg being ''distributed'', the physical pages are distributed among all the cluster depending on the VPN LSBs.
     138If the K cluster, that detects the page fault, is different from the owner Z cluster, then the kernel instance of cluster K sends a PT_MISS_RPC
     139to cluster Z in order to obtain the PTE stored in PT(P,Z).
     140The arguments are the PID and the VPN of the missing page.
     141When it receives the response, it updates the PT(P,K).
     142If the cluster that detects the page fault is the owner Z cluster, it chooses a target M cluster from the VPN LSBs and sends a RPC_PMEM_GET_SPP to cluster M
     143in order to obtain the PPN of a physical page in cluster M.
     144In response to this RPC, the kernel instance of cluster M allocates a physical page and returns its PPN.
     145When the kernel of cluster Z obtains the PPN, it updates the PT(P,Z).
    144146
    145147=== 4.5) REMOTE ===
    146 Ce vseg étant ''localised'', les coordonnées du cluster de mapping M sont enregistrées dans le descripteur de vseg.
    147 Si le cluster K qui détecte le défaut de page est différent du cluster propriétaire Z, le noyau du cluster K envoie une PT_MISS_RPC
    148 au cluster Z, pour obtenir  le PTE stocké dans la PT(P,Z). Les arguments sont le PID et le VPN de la page manquante.
    149 Quand il reçoit la réponse, il met à jour la PT(P,X).
    150 Si le cluster qui détecte le défaut de page est le cluster propriétaire Z, il envoie au cluster M une RPC_PMEM_GET_SPP pour obtenir
    151 le PPN d’une page physique du cluster M.
    152 En réponse à cette RPC, le noyau du cluster M alloue une page physique, et renvoie le PPN de celle-ci.
    153 Quand le noyau du cluster Z obtient le PPN, il met à jour la PT (P,Z).
     148This vseg being ''localized'', the mapping M cluster's coordinates are registered in the vseg descriptor.
     149If the K cluster, that detects the page fault, is different from the owner Z cluster, then the kernel instance of cluster K sends a PT_MISS_RPC
     150to cluster Z in order to obtain the PTE stored in PT(P,Z).
     151The arguments are the PID and the VPN of the missing page.
     152When it receives the response, it updates the PT(P,K).
     153If the cluster that detects the page fault is the owner Z cluster, it sends a RPC_PMEM_GET_SPP to cluster M
     154in order to obtain the PPN of a physical page in cluster M.
     155In response to this RPC, the kernel of cluster M allocated a physical page and returns its PPN.
     156Whe the kernel of cluster Z obtains the PPN, it updates the PT(P,Z).
    154157
    155158=== 4.6) FILE ===