L’allocation de mémoire statique et dynamique est les deux façons dont l’allocation de mémoire est classée. La différence significative entre l’allocation de mémoire statique et dynamique est que l’allocation de mémoire statique est la technique d’attribution de la mémoire en permanence. Ainsi, c’est une allocation de mémoire fixe. Contre, l’allocation de mémoire dynamique est le moyen d’allocation de la mémoire en fonction de l’exigence et est donc une allocation de mémoire variable.
Il y a certains paramètres sur lesquels les deux sont différenciés mais avant cela, nous devons savoir –
Qu’est-ce que l’allocation de mémoire?
L’allocation de mémoire est définie comme la façon d’attribuer l’espace mémoire à un ou plusieurs processus. Grâce à une allocation de mémoire, l’espace mémoire physique ou virtuel est attribué à des programmes ou des processus.
Par allocation de mémoire, la mémoire d’ordinateur complète ou partielle est réservée aux programmes et aux processus. L’allocation de mémoire est principalement classée comme allocation de mémoire statique et dynamique. L’allocation de mémoire est une opération matérielle, mais les applications du système d’exploitation et logicielles sont responsables de la gestion.
Il convient de noter ici qu’avant l’exécution du programme, la détermination de la mémoire de programme précise requise pour exécuter le programme est assez difficile. Ainsi, la plupart du temps, les décisions d’allocation de mémoire sont prises au moment de l’exécution.
Contenu: allocation de mémoire statique vs dynamique
- Graphique de comparaison
- Définition
- Différences clés
- Conclusion
Graphique de comparaison
Base de comparaison | Allocation de mémoire statique | Allocation de mémoire dynamique |
---|---|---|
Abrégé comme | Sma | DMA |
Basique | Correction du type d’allocation de mémoire. | Type variable d’allocation de mémoire. |
Se produit | Avant l’exécution du programme | Pendant l’exécution du programme |
Espace requis | Plus | Comparativement moins |
Réutilisabilité de la mémoire | Ne pas exister | Exister |
Vitesse d’exécution | Rapide | Relativement lent |
Mise en œuvre | Simple | Complexe |
Efficacité | Moins | Plus |
Problème de fragmentation | Ne pas exister | Exister |
Taille de la mémoire | Inchangeable | Changeable |
Utilisé dans | Tableau | Liste liée |
Costumes | Lorsqu’il y a une idée avancée de la taille de la mémoire. | Lorsqu’il n’y a aucune idée de la taille exacte de la mémoire. |
Mis en œuvre | À travers la pile | À travers le tas |
Définition de l’allocation de mémoire statique
SMA, un acronyme pour l’allocation de mémoire statique est un moyen par lequel l’espace mémoire fixe est attribué à un programme avant l’exécution du programme. Il est également connu sous le nom d’allocation de mémoire fixe comme dans cette approche une fois qu’un espace mémoire est attribué, aucune autre modification ne peut avoir lieu concernant les ajustements de l’espace ou la réaffectation.
SMA propose un pré-resservation de l’espace mémoire et la pile de structure de données est utilisée pour son implémentation.
Dans l’allocation de mémoire statique, une fois qu’un espace mémoire est affecté à un processus, peu importe que le programme utilise cette mémoire à cet instant particulier ou non. Parce que cette mémoire allouée ne peut pas être utilisée à d’autres fins. Cela signifie que même si la mémoire est sans usage, alors sous la technique d’allocation de mémoire statique, la mémoire attribuée ne peut pas être réutilisée.
L’allocation de mémoire statique affiche principalement la compatibilité à la gestion de la mémoire des espaces de mémoire courts où la taille de mémoire requise est déjà connue avant d’attribuer.
Définition de l’allocation de mémoire dynamique
DMA, un acronyme pour l’allocation de mémoire dynamique est un moyen d’attribuer un espace mémoire à un processus ou à un programme au moment où l’exécution du programme a lieu. Il est parfois appelé allocation de mémoire variable ou manuelle car il permet de réaffecter ou de régler dans l’espace mémoire attribué lorsque la mémoire n’est pas utilisée par le processus respectif.
Cette technique ne permet pas la pré-resservation de l’espace mémoire avant que l’exécution du programme et la structure des données du tas ne soient utilisées pour sa mise en œuvre. Grâce à DMA, l’attribution et la libération de la mémoire peuvent se produire à tout moment.
Contrairement à la SMA, ici la réallocation et même la libération de l’espace mémoire utilisé sont autorisées. Ici, des fonctions comme calloc (), realloc () et free () sont utilisées pour attribuer, réaffecter et libérer un espace mémoire dans un système. L’allocation de mémoire dynamique gère efficacement l’espace de mémoire disponible. Cependant, l’un des principaux inconvénients de cela est fuite de mémoire. La fuite de mémoire survient lorsque certains programmes utilisent en continu l’espace mémoire mais ne libèrent pas les espaces qui ne sont pas utilisés puis après un point de temps, le système manque de mémoire.
Différences clés entre l’allocation de mémoire statique et dynamique
- Le facteur clé de la différenciation entre l’allocation de mémoire statique et dynamique est que l’allocation de mémoire statique est un type fixe de l’allocation de mémoire où l’espace mémoire attribué est fixé. Au contraire, l’allocation de mémoire dynamique est un type variable de l’allocation de mémoire où l’espace mémoire attribué varie en fonction de l’exigence.
- Comme l’allocation de mémoire statique pré-affiche un espace de mémoire fixe ainsi les chances de gaspillage d’espace mémoire lorsque non utilisés sont élevés. Contre, par l’allocation de mémoire dynamique, l’espace mémoire requis peut être augmenté ou diminué en fonction de l’exigence, donc les chances de gaspillage d’espace mémoire sont assez faibles.
- SMA n’offre pas réutilisabilité de la mémoire En raison de sa nature fixe, mais la mémoire peut être réutilisée lorsqu’elle est attribuée sous DMA.
- SMA convient à toutes ces conditions où il y a une idée préalable concernant la taille de la taille de la mémoire requise. Mais le DMA convient aux conditions où la taille exacte de la mémoire requise n’est pas connue à l’avance.
- L’allocation de mémoire statique est un moyen relativement plus rapide d’attribuer l’espace mémoire que l’allocation de mémoire dynamique. La raison en est que l’attribution d’une quantité fixe de mémoire est moindre prend du temps que d’attribuer de manière variable.
- SMA est relativement moins efficace que le DMA en tant que premier offre des inconvénients tels que le gaspillage de mémoire et la non-réparation. Tandis que le DMA surmonte ces inconvénients est donc plus efficace.
- Lorsque l’espace mémoire est affecté en permanence à un programme alors problème de fragmentation ne se produit pas. Mais lorsqu’il y a une variabilité dans l’attribution de l’espace, même l’espace mémoire disponible s’il est présent dans les fragments n’est d’aucune utilité.
- L’allocation de mémoire statique nécessite Plus d’espace mémoire que l’allocation de mémoire dynamique.
Conclusion
Ainsi, il est dit que l’implémentation de l’allocation de mémoire statique est assez simple par rapport à l’allocation de mémoire dynamique.