Je passais en revue quelques spécifications de système d'exploitation en temps réel et j'ai lu que dans RTOS, nous ne préférons généralement pas utiliser malloc. La raison de ceci a été donnée comme: pour le problème de performance, nous ne devrions pas utiliser malloc car il prend beaucoup de temps pour allouer de la mémoire via malloc et aussi pour avoir plus de mémoire allouée.Mémoire Pool vs malloc
Maintenant Dans les systèmes en temps réel, la contrainte de temps est présente avec tous les processus, nous n'utilisons généralement pas malloc. J'ai été curieux et j'ai commencé à chercher un peu comment la mémoire est réellement allouée à l'exécution dans RTOS et j'ai trouvé des pools de mémoire. Maintenant, il a été écrit que les pools de mémoire signifie en réalité que l'allocation de blocs de taille fixe. Maintenant, les avantages des pools de mémoire est qu'il ne souffre pas de la fragmentation. Comment est-ce possible? Supposons que nous ayons 3 pools de 4 octets et que l'application nécessite 10 octets, dans ce cas, les pools de mémoire souffriront d'une fragmentation interne.
Comment fonctionnent les pools de mémoire et comment la mémoire est allouée? Est-ce que les applications obtiennent les pools au moment de la compilation, comme une application particulière aura 3 pools à partir de la taille du pool de 4 octets? Et s'ils ont besoin de mémoire qui ne peut pas tenir dans les piscines. De nombreux pools de mémoire de différentes tailles sont-ils présents dans un tel système? S'il vous plaît expliquez-moi.