IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algo Malloc en C


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 40
    Par défaut Algo Malloc en C
    Bonjour a tous,

    Dans le cadre d'un projet, je dois recoder le malloc en langage C
    Je cherche un algo rapide et simple a implementer, avez vous une idee ?

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bonjour, j'ai une solution simple :
    Chaque allocation sera, en interne, représentée par un bloc en-tête et un bloc données, tous deux adjacents.

    L'en-tête, de taille fixe, contient la taille du bloc de données, l'état du bloc (libre ou réservé), l'adresse (relative) du bloc en-tête précédent et celle du bloc suivant.

    Ainsi, le gestionnaire de mémoire n'a que peu d'opérations à faire :
    1. Initialisation
      • Créer un segment mémoire (partagée / dans un fichier / managée / ...) ;
      • Créer le bloc en-tête maître {size=taille_segment - taille_d_un_en_tete; free=true; previous=NULL; next=NULL}
    2. Allocation
      • Recherche d'un bloc libre de taille suffisante : depuis le bloc maître, tant que bloc_courant.free=false && size<taille_a_allouer+taille_d_un_en_tete, passer au bloc suivant.
      • Réservation du bloc : LAL
    3. Désalocation : LAL aussi, mais attention au piège, il faut fusionner les blocs libres contigüs .



    N'hésite pas à partager ton gestionnaire de mémoire une fois cela fait. Si tu as accès à un compilateur C++, tu peux aussi l'encapsuler dans la classe std::Alocator qui permet de gérer la mémoire interne des std::vector, std::map, etc.

    Cdlt,

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Des algos il y en a plein.

    Je conseille de lire le document "Dynamic memory allocation" de 'Alan L. Cox' pour se faire une idée sur l'implémentation d'un allocateur utilisant les free-list.

    Sinon, pour la beauté de l'algorithme, je conseille la technique de "Buddy memory allocation".
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 40
    Par défaut
    Merci !

    je n'ai le droit que d'utiliser brk et sbrk, pensez vous que le first fit est une bonne solution ?

Discussions similaires

  1. cherche algos Delphi pour : Huffman, R.S.A, D.E.S.
    Par X-Delphi dans le forum Débuter
    Réponses: 3
    Dernier message: 24/08/2002, 18h51
  2. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27
  3. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 17h45
  4. Algo de Hough et ou de Radon
    Par victorracine dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 29/07/2002, 11h09
  5. Recherche algo tree
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/05/2002, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo