Changes between Version 17 and Version 18 of page_tables


Ignore:
Timestamp:
Dec 20, 2019, 5:21:53 PM (2 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • page_tables

    v17 v18  
    77A vseg descriptor contains the following fields :
    88
    9  * TYPE : Defines the replication/distribution policy (CODE / STACK / DATA / HEAP / HEAPXY / FILE / ANON)
     9 * TYPE : Defines the replication/distribution policy
    1010 * FLAGS : Defines access rights
    1111 * VBASE : Base virtual address
    1212 * LENGTH : Segment length
    1313 * 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).
     14 * CXY : cluster where the vseg is mapped (only for a localized vseg).
    1515 * MAPPER : radix-tree containing the physical pages allocated to this vseg (only for CODE, DATA and FILE types).
    1616
    1717== __2) Page tables and vseg lists__ ==
    1818
    19 The 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 containing at least one thread of process P, these clusters are called "active" clusters.
     19The various information associated to a process P can be found in the process descriptor (process_t structure). This process descriptor  is - partly - replicated in all clusters containing at least one thread of process P, these clusters are called "active" clusters.
    2020
    2121The '''VSL(P,K) ''' (virtual Segment List of process P in cluster K)  is replicated in all active clusters. It is used by the kernel when a page fault occurs, it checks that the unmapped virtual address corresponds to a registered segment and determines the segment type.
     
    2626
    2727For a P process, the contents of the different page tables GPT(P,K) can changes over time, and it evolves differently in active clusters :
    28 On 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.
     28On the one hand, the P page tables content evolves dynamically in the clusters depending on the page faults triggered by the threads of P running in each cluster.
    2929Moreover, 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.
    3030For ''public'' vsegs, only the reference cluster contains the complete mapping state.
     
    134134and initialized the physical page in M via a remote_memcpy(). Then it updates the PT(P,Z).
    135135
    136 === 4.4) HEAP ===
     136=== 4.4) ANON ===
    137137This vseg being ''distributed'', the physical pages are distributed among all the cluster depending on the VPN LSBs.
    138138If 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
     
    167167When the kernel instance of cluster Z obtains the PPN, it updates the PT(P,Z).
    168168
    169 === 4.7) ANON ===
    170 This vseg being distributed, the physical pages are distributed among all cluster depending the VPN LSBs.
    171 The handling of a page fault is the same as for a HEAP vseg.
    172169
    173170== __5) Invalidation of an entry in the page table__ ==