Changes between Version 17 and Version 18 of page_tables
- Timestamp:
- Dec 20, 2019, 5:21:53 PM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
page_tables
v17 v18 7 7 A vseg descriptor contains the following fields : 8 8 9 * TYPE : Defines the replication/distribution policy (CODE / STACK / DATA / HEAP / HEAPXY / FILE / ANON)9 * TYPE : Defines the replication/distribution policy 10 10 * FLAGS : Defines access rights 11 11 * VBASE : Base virtual address 12 12 * LENGTH : Segment length 13 13 * BIN : Pathname to the .elf file (only for DATA and CODE types). 14 * X,Y : Coordinates of thecluster where the vseg is mapped (only for a localized vseg).14 * CXY : cluster where the vseg is mapped (only for a localized vseg). 15 15 * MAPPER : radix-tree containing the physical pages allocated to this vseg (only for CODE, DATA and FILE types). 16 16 17 17 == __2) Page tables and vseg lists__ == 18 18 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.19 The 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. 20 20 21 21 The '''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. … … 26 26 27 27 For 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.28 On 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. 29 29 Moreover, 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. 30 30 For ''public'' vsegs, only the reference cluster contains the complete mapping state. … … 134 134 and initialized the physical page in M via a remote_memcpy(). Then it updates the PT(P,Z). 135 135 136 === 4.4) HEAP===136 === 4.4) ANON === 137 137 This vseg being ''distributed'', the physical pages are distributed among all the cluster depending on the VPN LSBs. 138 138 If 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 … … 167 167 When the kernel instance of cluster Z obtains the PPN, it updates the PT(P,Z). 168 168 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.172 169 173 170 == __5) Invalidation of an entry in the page table__ ==