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


Public Methods | |
| PsnMomeMemoryManager (void *startDsm, size_t sizeDsm, size_t pageSize) | |
| Constructeur : a n'appeler qu'en exclusion mutuelle sur la zone mémoire gérée par PsnMemoryElementDescriptor::myMemoryManager. | |
| virtual | ~PsnMomeMemoryManager () |
| Desctructeur. | |
| virtual void * | mmalloc (size_t size) |
| Allouer une zone de mémoire. | |
| virtual void * | allocateSizeRemembered (size_t size) |
| Allouer une zone de mémoire de taille size, en se souvenant de la taille associée au pointeur. | |
| virtual void * | mfastmalloc (size_t size) |
| allouer une zone de mémoire qu'on vient de désallouer. | |
| virtual int | mfree (void *addr, size_t size) |
| Désalouer une zone de mémoire. | |
| virtual int | mfastfree (void *addr, size_t size) |
| libération d'une zone de mémoire qu'on risque de réallouer rapidement. | |
| virtual void | mfree (void *ptr) |
| Désallouer une zone de mémoire dont on a stocké la taille. | |
| virtual void | lock () |
| Proteger le Manager pour un accès en exclusion mutuelle. | |
| virtual void | unlock () |
| Lever l'exclusion mutuelle sur le memory manager. | |
| virtual void | lockIfNeeded () |
| Vérrouiller la mémoire si nécessaire, c'est-à-dire si les descripteurs de mémoire libre sont allouée par celle-çi. | |
| virtual void | unlockIfNeeded () |
| Dévérrouiller la mémoire si nécessaire, c'est-à-dire si les descripteurs de mémoire libre sont allouée par celle-çi. | |
| unsigned int | globalAddressToLocal (void *addr) const |
| transformer une adresse de l'espace d'adressage virtuel du processus en adresse relative dans le segment de mémoire partagée. | |
| void * | localAddressToGlobal (unsigned int offset) const |
| transformer une adresse local (relative) au segment en adresse de l'espace d'adressage virtuel du processus | |
| virtual bool | invalidOffset (unsigned int offset) const |
| Verifier la validité d'un offset. | |
| virtual unsigned int | getAnInvalidOffset () const |
| obtenir un offset invalide | |
| bool | inAdressSpace (void *ptr) const |
| Permet de tester si une adresse est dans l'espace d'adresse gérée par le MomeMemoryManager. | |
| virtual PsnMemoryElementDescriptor * | getFreeMem () |
| accesseur (plus convertisseur * _freeMem | |
| virtual void | setFreeMem (PsnMemoryElementDescriptor *) |
| accesseur (plus convertisseur * _freeMem) en écriture | |
| virtual PsnMemoryElementDescriptor * | getWeakFreeMem () |
| accesseur (plus convertisseur * _freeMem) de la zone faible gérée | |
| virtual void | setWeakFreeMem (PsnMemoryElementDescriptor *) |
| accesseur (plus convertisseur * _freeMem) de la zone faible gérée en écriture | |
| virtual void | syncOfLock (void *beginningAdress, long length) |
| synchronize partially the memory as it was when the lock was last obtained | |
| virtual bool | locked () const |
| make sure access to the memory manager is locked : to be used only for debugging purposes | |
| virtual size_t | pageSize () const |
| query for the size of the pages as allocated by the memoryManager | |
| virtual void | strongSynchronizeRegion (unsigned int base, size_t size) |
| Synchronize a precise region. | |
| virtual void | handOver (void *pointer, size_t allocatedSize, size_t sizeBefore, size_t sizeAfter) |
| virtual void | showMemory (void) |
| pour cause de Debug, montrer l'état de la mémoire | |
Static Public Methods | |
| PsnMomeMemoryManager * | whichMomeMemoryManager (void *) |
| Pour des raisons de compilation de template et de #ifdef _MOME, on introduit cette méthode de classe qui ne fait que renvoyer sur la méthode de classe du même nom dans le controleurMome. | |
Public Attributes | |
| const unsigned int | uniqueCreatorDataOffset |
| L'emplacement fixé à l'avance où est stocké l'offset de la structure de donnée contenant l'information partagée. | |
Protected Methods | |
| virtual void | divideBlockFor (size_t size) |
| divide a free block between a part starting on a free page and the rest | |
| virtual size_t | alignedSize (size_t size) |
| aligner la taille de l'allocation | |
| 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 | |
Protected Attributes | |
| PsnLock * | _myLock |
| Le verrou associé à la zone de mémoire. | |
| unsigned int | _startDsm |
| Le pointeur sur le debut de la zone gérée Le type utilisé est unsigned int pour éviter trop de transtypage à l'execution. | |
| unsigned int | _sizeDsm |
| La taille de la zone gérée. | |
| bool | _locked |
| La mémoire est elle déjà vérouillé par la processus courant A protégér en exclusion mutuelle si multi-thread. | |
| pair< void *, size_t > | freed |
| la dernière zone libérée localement par fast free | |
| size_t | _pageSize |
| La taille d'une page. | |
| size_t | _alignedSize |
| Le nombre d'octets sur lesquels on aligne. | |
| int | _numberOfLocks |
| the number of locks allready locally asked for | |
Definition at line 35 of file PsnMomeMemoryManager.h.
|
||||||||||||||||
|
Constructeur : a n'appeler qu'en exclusion mutuelle sur la zone mémoire gérée par PsnMemoryElementDescriptor::myMemoryManager.
|
|
|
Desctructeur.
|
|
||||||||||||
|
la zone de mémoire dans lesquels sont stockés les PsnMemoryElementDescriptor doit être vérouillée avant l'appel à cette fonction
Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
|
aligner la taille de l'allocation
|
|
|
Allouer une zone de mémoire de taille size, en se souvenant de la taille associée au pointeur. Pas d'exclusion mutuelle à l'appel |
|
|
divide a free block between a part starting on a free page and the rest
Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
|
la zone de mémoire dans lesquels sont stockés les PsnMemoryElementDescriptor doit être vérouillée avant l'appel à cette fonction
Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
|
obtenir un offset invalide
|
|
|
accesseur (plus convertisseur * _freeMem
Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
|
accesseur (plus convertisseur * _freeMem) de la zone faible gérée
|
|
|
transformer une adresse de l'espace d'adressage virtuel du processus en adresse relative dans le segment de mémoire partagée.
Definition at line 72 of file PsnMomeMemoryManager.h. References _startDsm.
00072 {
00073 return ((unsigned int)addr)-_startDsm ;
00074 }
|
|
||||||||||||||||||||
|
|
|
|
Permet de tester si une adresse est dans l'espace d'adresse gérée par le MomeMemoryManager.
Definition at line 92 of file PsnMomeMemoryManager.h. References _sizeDsm, and _startDsm.
|
|
|
Verifier la validité d'un offset.
|
|
|
transformer une adresse local (relative) au segment en adresse de l'espace d'adressage virtuel du processus
Definition at line 76 of file PsnMomeMemoryManager.h. References _startDsm.
00076 {
00077 return (void *)(_startDsm+offset);
00078 }
|
|
|
Proteger le Manager pour un accès en exclusion mutuelle. Après le verrou, on est sur de disposer de la version de la mémoire géree au moins aussi récente que celle disponible sur n'importe quelle processeur après unlock |
|
|
make sure access to the memory manager is locked : to be used only for debugging purposes
|
|
|
Vérrouiller la mémoire si nécessaire, c'est-à-dire si les descripteurs de mémoire libre sont allouée par celle-çi.
|
|
||||||||||||
|
libération d'une zone de mémoire qu'on risque de réallouer rapidement. Pas besoin de prétéger pas un verrou |
|
|
allouer une zone de mémoire qu'on vient de désallouer. Cette méthode essaie d'allouer la taille demandée dans le dernier bloc libéré localement. Il n'y a pas besoin de vérouiller la zone de mémoire pour le faire. En cas de besoin, cette méthode vérouille la mémoire, puis libère et fait appel à mmalloc |
|
|
Désallouer une zone de mémoire dont on a stocké la taille. Pas d'exclusion mutuelle à l'appel |
|
||||||||||||
|
Désalouer une zone de mémoire. Même protection que pour l'allocation Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
|
Allouer une zone de mémoire. A protéger par exclusion mutuelle si PsnMemoryElementDescriptor::myMemoryManager = this (il y a alors récursion) (a faire avec lockIfNeeded() ( et unlockIfNeeded )) Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
|
query for the size of the pages as allocated by the memoryManager
|
|
|
accesseur (plus convertisseur * _freeMem) en écriture
Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
|
accesseur (plus convertisseur * _freeMem) de la zone faible gérée en écriture
|
|
|
pour cause de Debug, montrer l'état de la mémoire
Reimplemented in PsnMomePagedWeakMemoryManager, and PsnMomeWeakMemoryManager. |
|
||||||||||||
|
Synchronize a precise region.
|
|
||||||||||||
|
synchronize partially the memory as it was when the lock was last obtained
|
|
|
Lever l'exclusion mutuelle sur le memory manager.
|
|
|
Dévérrouiller la mémoire si nécessaire, c'est-à-dire si les descripteurs de mémoire libre sont allouée par celle-çi.
|
|
|
Pour des raisons de compilation de template et de #ifdef _MOME, on introduit cette méthode de classe qui ne fait que renvoyer sur la méthode de classe du même nom dans le controleurMome.
|
|
|
Le nombre d'octets sur lesquels on aligne.
Definition at line 164 of file PsnMomeMemoryManager.h. |
|
|
La mémoire est elle déjà vérouillé par la processus courant A protégér en exclusion mutuelle si multi-thread.
Definition at line 157 of file PsnMomeMemoryManager.h. |
|
|
Le verrou associé à la zone de mémoire.
Definition at line 147 of file PsnMomeMemoryManager.h. |
|
|
the number of locks allready locally asked for
Definition at line 166 of file PsnMomeMemoryManager.h. |
|
|
La taille d'une page.
Definition at line 162 of file PsnMomeMemoryManager.h. |
|
|
La taille de la zone gérée.
Definition at line 153 of file PsnMomeMemoryManager.h. Referenced by inAdressSpace(). |
|
|
Le pointeur sur le debut de la zone gérée Le type utilisé est unsigned int pour éviter trop de transtypage à l'execution.
Definition at line 151 of file PsnMomeMemoryManager.h. Referenced by globalAddressToLocal(), inAdressSpace(), and localAddressToGlobal(). |
|
|
la dernière zone libérée localement par fast free
Definition at line 160 of file PsnMomeMemoryManager.h. |
|
|
L'emplacement fixé à l'avance où est stocké l'offset de la structure de donnée contenant l'information partagée.
Definition at line 80 of file PsnMomeMemoryManager.h. |
| Documentation generated on Mon Nov 25 15:26:09 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |