Changes between Version 9 and Version 10 of page_tables


Ignore:
Timestamp:
Sep 17, 2018, 10:46:26 AM (6 years ago)
Author:
phan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • page_tables

    v9 v10  
    1 = Implémentation des tables de pages et des listes de vseg =
     1= Page tables and vsegs lists implementation =
    22
    33[[PageOutline]]
    44
    5 == __1) Descripteur de vseg__ ==
     5== __1) vseg descriptors__ ==
    66
    7 Un descripteur de vseg contient les informations suivantes :
     7A vseg descriptor contains the following fields :
    88
    9  * TYPE : définit la politique de réplication/distribution (CODE / STACK / DATA / HEAP / HEAPXY / FILE / ANON)
    10  * FLAGS : définit les droits d’accès
    11  * VBASE : adresse virtuelle  de base
    12  * LENGTH : longueur du segment
    13  * BIN : pathname to the .elf file. (seulement pour les types DATA et CODE)
    14  * X,Y : coordonnées du cluster où est mappé le vseg (seulement pour un vseg localised)
    15  * MAPPER : radix-tree contenant les pages physiques allouées à ce vseg (seulement pour les types CODE, DATA, FILE).
     9 * TYPE : Defines the replication/distribution policy (CODE / STACK / DATA / HEAP / HEAPXY / FILE / ANON)
     10 * FLAGS : Defines access rights
     11 * VBASE : Base virtual address
     12 * LENGTH : Segment length
     13 * BIN : Pathname to the .elf file. (only for DATA and CODE types)
     14 * X,Y : Coordinates of the cluster where the vseg is mapped (only for a localized vseg)
     15 * MAPPER : radix-tree containing the physical pages allocated to this vseg (only for CODE, DATA and FILE types)
    1616
    17 == __2) Tables de pages et listes de vsegs__ ==
     17== __2) Page tables and vseg lists__ ==
    1818
    19 Les différentes informations associées à un processus P sont regroupées dans le descripteur de processus (structure process_t). Ce descripteur de processus, ainsi que les structures qu'il contient, est - partiellement - répliqué dans tous les clusters contenant au moins un thread du processus P, appelés clusters actifs.
     19The various information associated to a process P can be found in the process descriptor (process_t structure). This process descriptor and the structures within are - partly - replicated in all clusters contaning at least one thread of process P, these clusters are called "active" clusters.
    2020
    21 La table des pages est utilisée par le noyau pour stocker le mapping de chaque page de chaque vseg d'un processus. cette table des pages fait partie des informations - partiellement - répliquées, et nous appelons PT(P,K) la table des pages du processus P dans le cluster K.
     21The page table is used by the kernel to store the mapping for each page of each vseg of a process. The page table belongs to these - partly - replicated information, we will call PT(P,K) the page table of process P in cluster K.
    2222
    23 La liste des vsegs définis pour un processus est utilisée par le noyau en cas de défaut de page pour vérifier que l'adresse virtuelle non mappée correspond à un segment défini, et pour déterminer le type du segment. Cette liste fait également partie des informations - partiellement - répliquées , et nous appelons VSL(P,K) la liste des vsegs du processus P dans le cluster K.
     23The vsegs list of a process is used by the kernel when a page fault occurs, it checks that the unmapped virtual address corresponds to a defined segment and determines the segment type. This list is also one of the - partly - replicated information and we will call VSL(P,K) the vsegs list of process P in cluster K.
    2424
     25=== 2.1) Evolution of PT(P,K) ===
    2526
    26 === 2.1) Evolution des PT(P,K) ===
     27For a P process, the contents of the different page tables PT(P,K) changes over time, and it evolves differently in active clusters :
     28On the one hand, the P page tables content evolves dynamically in the clusters depending on the page faults triggered by the thread of P running in each cluster.
     29Moreover, the ''private'' segments mapping (CODE and STACK types) differs from one cluster to another, since a same virtual address corresponds to different addresses depending on the cluster.
     30For ''public'' vsegs, only the reference cluster contains the complete mapping state.
    2731
    28 Pour un même processus P, le contenu des différentes tables de pages PT(P,K) évolue au cours du temps, et il évolue différemment dans les différents clusters actifs:
    29 D'une part, le contenu des tables de P évolue dynamiquement dans les clusters en fonction des défauts de pages causés par les threads de P s’exécutant dans chaque cluster.
    30 De plus  le mapping des segments ''private'' (types CODE et STACK) varie d’un cluster à un autre, puisqu'une même adresse virtuelle correspond à des adresses différentes suivant les clusters.
    31 Pour ce qui concerne les vsegs ''public'', seul le cluster de référence contient l’état complet du mapping.
     32=== 2.2) Evolution of VSL(P,K) ===
    3233
    33 === 2.2) Evolution des VSL(P,K) ===
     34For a P process, the contents of the various vsegs lists VSL(P,K) changes over time too, and is not the same in all clusters.
     35Indeed, the vsegs list must be identical for ''public'' vsegs, but each ''private'' vseg is registered only in the cluster it belongs to.
     36For ''public'' vsegs, every dynamic insertion of a new vseg or extension of an existing vseg must be echoed in all active clusters.
    3437
    35 Pour un même processus P, le contenu des différentes listes de vsegs VSL(P,K)  évolue au cours du temps, et n’est pas identique dans tous les clusters.
    36 En effet les listes de vsegs doivent être identiques pour ce qui concerne les vsegs ''public'', mais chaque vseg ''private'' n’est enregistré que dans le cluster auquel il appartient.
    37 Pour ce qui concerne les vsegs ''public'', tout ajout dynamique d’un nouveau vseg ou toute extension d'un vseg existant doit être répercuté dans tous les clusters actifs.
    38 
    39 == __3) Enregistrement et destruction des vsegs dans les VSL(P,K)__ ==
     38== __3) Registering and destruction of vsegs in VSL(P,K)__ ==
    4039 
    41 La politique d’enregistrement et de destruction des vsegs dans les VSL(P,X) dépend du type de vseg:
     40The registering and destruction policy in the VSL(P,K) depends on the vseg type :
    4241
    4342=== 3.1) DATA ===