#include <PsnMomeWeakMemoryManager.h>
Inheritance diagram for PsnMomeWeakMemoryManager:


Public Methods | |
| PsnMomeWeakMemoryManager (void *startDsm, size_t sizeDsm, size_t pageSize, PsnUniqueCreator *creator) | |
| A n'appeler qu'en exclusion mutuelle sur la zone mémoire gérée par PsnMemoryElementDescriptor::myMemoryManager. | |
| virtual | ~PsnMomeWeakMemoryManager () |
| destructeur | |
| virtual void * | mmalloc (size_t size) |
| allocation d'une zone de mémoire dans la zone de mémoire à cohérance relachée. | |
| virtual int | mfree (void *addr, size_t size) |
| free the memory at addr. | |
| virtual PsnMemoryElementDescriptor * | getFreeMem () |
| redefine getFreeMem so as to get the address of the list of the free elements of this memory manager | |
| virtual void | setFreeMem (PsnMemoryElementDescriptor *ptr) |
| redefine setFreeMem to change the fisrt element of the list of free elements for this memory manager | |
| virtual void | sync () |
| Synchronize the memory managed by the memory manager, in a relaxed fashion : any memory page marked as relaxed is synchronized only to an older version (the one available at the last barrier). | |
| virtual void | strongSync () |
| Strong synchronisation of all memory pages where memory has been allocated. | |
| virtual void * | get_from_free (size_t size) |
| la zone de mémoire dans lesquels sont stockés les PsnMemoryElementDescriptor doit être vérouillée avant l'appel à cette fonction. | |
| virtual void | add_in_free (void *addr, size_t size) |
| la zone de mémoire dans lesquels sont stockés les PsnMemoryElementDescriptor doit être vérouillée avant l'appel à cette fonction | |
| virtual void | showMemory (void) |
| pour cause de Debug, montrer l'état de la mémoire | |
Protected Types | |
| enum | coheranceType { None, Strong, Relaxed } |
| le type enuméré gérant la cohérance de la page More... | |
Protected Methods | |
| virtual void | divideBlockFor (size_t size) |
| divide a free block between a part starting on a free page and the rest | |
| bool | hasCorrectAccessRights (unsigned int addr) |
| Make sure a memory zone spawns pages with correct access rights. | |
Protected Attributes | |
| coheranceType * | tabCoherance |
| La table, a allouer dans la mémoire partagée, de la cohérance à avoir pour chaque page. | |
| const PsName ** | tabOwner |
| le tableau des propriétaires de pages (on ne connait sa taille qu'à la création | |
| CurrentAllocator::accessRights * | tabDroits |
| le tableau de l'état de la page vu par le processus local | |
| size_t | numberOfPages |
| le nombre de pages gérée | |
| list< unsigned int > | toBeRelaxed [2] |
| double buffer of the list of pages whose coherance needs to be relaxed after the next sync | |
| list< unsigned int > | toBeFreed [2] |
| double buffer of the list of pages who have to be freed after the next sync | |
| int | currentRelaxedToken |
| index of the list to be used at the next sync to know the page numbers to be relaxed after the next sync | |
| int | currentFreableToken |
| index of the list to be used at the next sync to know the page numbers to be freed | |
| unsigned int | maxAllocatedPage |
| max of page numbers where memory is allocated (unused because unshared) | |
Friends | |
| class | PsnUniqueCreator |
| pour que le createur {PsnUniqueCreator} connaisse le type enumeré | |
Definition at line 33 of file PsnMomeWeakMemoryManager.h.
|
|
le type enuméré gérant la cohérance de la page
Definition at line 69 of file PsnMomeWeakMemoryManager.h.
|
|
||||||||||||||||||||
|
A n'appeler qu'en exclusion mutuelle sur la zone mémoire gérée par PsnMemoryElementDescriptor::myMemoryManager.
|
|
|
destructeur
|
|
||||||||||||
|
la zone de mémoire dans lesquels sont stockés les PsnMemoryElementDescriptor doit être vérouillée avant l'appel à cette fonction
Reimplemented from PsnMomeMemoryManager. |
|
|
divide a free block between a part starting on a free page and the rest
Reimplemented from PsnMomeMemoryManager. |
|
|
la zone de mémoire dans lesquels sont stockés les PsnMemoryElementDescriptor doit être vérouillée avant l'appel à cette fonction.
Reimplemented from PsnMomeMemoryManager. |
|
|
redefine getFreeMem so as to get the address of the list of the free elements of this memory manager
Reimplemented from PsnMomeMemoryManager. |
|
|
Make sure a memory zone spawns pages with correct access rights. You can only allocated memory if the page is marked non allocated or strong allocated but with access rights not to be relaxed after the next sync. If memory in the page has allready been partially allocated (it isn't free in tabDroits), the current allocator must be the same one as the previous one. |
|
||||||||||||
|
free the memory at addr. Does all the bookkeeping so as to free any page which becomes totally free.
Reimplemented from PsnMomeMemoryManager. |
|
|
allocation d'une zone de mémoire dans la zone de mémoire à cohérance relachée. En plus de l'appel à mmalloc de l'ancêtre, this method marks the pages allocated in the different page tables. In particular, any pages allocated for the first time by this method, is marked so as at the next sync on any process, the last version of the page is asked for. Reimplemented from PsnMomeMemoryManager. |
|
|
redefine setFreeMem to change the fisrt element of the list of free elements for this memory manager
Reimplemented from PsnMomeMemoryManager. |
|
|
pour cause de Debug, montrer l'état de la mémoire
Reimplemented from PsnMomeMemoryManager. |
|
|
Strong synchronisation of all memory pages where memory has been allocated. This calls a synchronization barrier, ans then asks for the last version of the pages available at the time of the barrier. |
|
|
Synchronize the memory managed by the memory manager, in a relaxed fashion : any memory page marked as relaxed is synchronized only to an older version (the one available at the last barrier). A synchronisation barrier is then made between all processes and all the memory pages mark as strong are synchronized to the version available at the time of the synchronization barrier, and prefetched. |
|
|
pour que le createur {PsnUniqueCreator} connaisse le type enumeré
Definition at line 67 of file PsnMomeWeakMemoryManager.h. |
|
|
index of the list to be used at the next sync to know the page numbers to be freed
Definition at line 89 of file PsnMomeWeakMemoryManager.h. |
|
|
index of the list to be used at the next sync to know the page numbers to be relaxed after the next sync
Definition at line 87 of file PsnMomeWeakMemoryManager.h. |
|
|
max of page numbers where memory is allocated (unused because unshared)
Definition at line 91 of file PsnMomeWeakMemoryManager.h. |
|
|
le nombre de pages gérée
Definition at line 79 of file PsnMomeWeakMemoryManager.h. |
|
|
La table, a allouer dans la mémoire partagée, de la cohérance à avoir pour chaque page.
Definition at line 71 of file PsnMomeWeakMemoryManager.h. |
|
|
le tableau de l'état de la page vu par le processus local
Definition at line 77 of file PsnMomeWeakMemoryManager.h. |
|
|
le tableau des propriétaires de pages (on ne connait sa taille qu'à la création
Definition at line 75 of file PsnMomeWeakMemoryManager.h. |
|
|
double buffer of the list of pages who have to be freed after the next sync
Definition at line 85 of file PsnMomeWeakMemoryManager.h. |
|
|
double buffer of the list of pages whose coherance needs to be relaxed after the next sync
Definition at line 83 of file PsnMomeWeakMemoryManager.h. |
| Documentation generated on Mon Nov 25 15:26:10 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |