Pool mémoire

Page 2 sur 2 Précédent  1, 2

Voir le sujet précédent Voir le sujet suivant Aller en bas

Pool mémoire

Message par Timon le Jeu 20 Mar - 2:04

Rappel du premier message :

Bonjour,
Je vous propose un sujet sur lequel je me suis penché récemment et qui s'avère intéressant bien que simple.
Il s'agit de créer un pool mémoire. Qu'est-ce donc ?
C'est une large zone de mémoire qu'on alloue dans laquelle on va procéder nous-même aux allocations pour un type de donnée précis.
Il faut donc d'abord avoir un type de donnée que l'on va avoir à allouer plusieurs fois. Exemple :
Code:
typedef
struct
{
  int valeur;
}
Donnee;
Que faire précisément ?
- Allouer un gros bloc de mémoire
- Le préparer pour qu'il soit prêt à accueillir plusieurs objets de type 'Donnee'
- Construire une fonction qui y "alloue" un objet de type 'Donnee' et qui renvoie son adresse ou NULL s'il n'y a plus de place dans le pool
- Construire une fonction qui "libère" un objet
- Enfin, construire une fonction qui libère le bloc de mémoire
Bien entendu, on peut produire quelques variantes mais c'est l'idée générale.

Maintenant, à votre avis, en quoi est-ce utile ?

Timon
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 61
Localisation : France
Réputation : 0
Points : 3573
Date d'inscription : 14/01/2008

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

http://tm.timon.free.fr

Revenir en haut Aller en bas


Re: Pool mémoire

Message par Timon le Jeu 27 Mar - 19:56

Prenons une forme simple du pool.
C'est un simple tableau d'objets Donnee. Il est déjà désigné en tant que tel.
On va "distribuer" ses éléments au fur et à mesure sans jamais en donner plus d'un à la fois.
C'est pour quoi il n'y a pas de risque de fragmentation : le nombre d'éléments qu'on peut allouer en tout dans le pool à tout instant reste le même et les "allocations" ne peuvent pas se faire n'importe où.

Timon
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 61
Localisation : France
Réputation : 0
Points : 3573
Date d'inscription : 14/01/2008

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

http://tm.timon.free.fr

Revenir en haut Aller en bas

Re: Pool mémoire

Message par Timon le Dim 30 Mar - 14:06

A vrai dire, je ne vois pas ce qui ne vous paraît pas clair. Neutral

Timon
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 61
Localisation : France
Réputation : 0
Points : 3573
Date d'inscription : 14/01/2008

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

http://tm.timon.free.fr

Revenir en haut Aller en bas

Re: Pool mémoire

Message par Napoléon le Dim 30 Mar - 22:07

Je pense qu'il faut présenter l'information autrement... hélas j'ai pas le temps. Sinon, j'aurais fait plus d'effort pour reformuler l'énoncé sans paraphraser le texte biensûr.

_________________
Nabil - tunis
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5283
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Pool mémoire

Message par manianis le Lun 31 Mar - 0:32

Wikipedia a écrit:Memory pools allow dynamic memory allocation comparable to malloc or C++'s operator new. As those implementations suffer from fragmentation because of variable block sizes, it can be impossible to use them in a real time system due to performance. A more efficient solution is preallocating a number of memory blocks with the same size called the memory pool.

Pourtant c'est clair.

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 3666
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Re: Pool mémoire

Message par Napoléon le Lun 31 Mar - 10:20

C'est du texte concentré qui présente des idées très importante. Ca ne peut pas être décrit en quelques mots. Si j'aurais l'occasion de présenter ça un ensemble de personnes (des étudiants par exemple) j'aurai procédé autrement.

_________________
Nabil - tunis
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5283
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Pool mémoire

Message par manianis le Mar 1 Avr - 13:42

nabiL a écrit:C'est du texte concentré qui présente des idées très importante. Ca ne peut pas être décrit en quelques mots. Si j'aurais l'occasion de présenter ça un ensemble de personnes (des étudiants par exemple) j'aurai procédé autrement.

Vous avez raison c'est un texte encyclopédique mais çà indique du moins l'utilité des pools tout en expliquant les inconvénients de leurs soeurs malloc et new.

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 3666
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Re: Pool mémoire

Message par Timon le Mar 1 Avr - 13:47

nabiL a écrit:Si j'aurais l'occasion de présenter ça un ensemble de personnes (des étudiants par exemple) j'aurai procédé autrement.
C'est un fait, si j'avais voulu écrire un article sur ce sujet, je n'aurais pas non plus pris cette approche mais, à l'origine, je voulais en faire un exercice... Smile

Timon
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 61
Localisation : France
Réputation : 0
Points : 3573
Date d'inscription : 14/01/2008

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

http://tm.timon.free.fr

Revenir en haut Aller en bas

Re: Pool mémoire

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum