Recommandé, 2024

Choix De L'Éditeur

Différence entre l'allocation de mémoire contiguë et non contiguë

La mémoire est un grand tableau d'octets, chaque octet ayant sa propre adresse. L'allocation de mémoire peut être classée en deux méthodes: allocation de mémoire contiguë et allocation de mémoire non contiguë. La principale différence entre les affectations de mémoire contiguës et non contiguës réside dans le fait que l' allocation de mémoire contiguë attribue les blocs de mémoire consécutifs à un processus demandant de la mémoire, tandis que l' allocation de mémoire non contiguë attribue les blocs de mémoire séparés situés à l'emplacement différent dans l'espace mémoire de manière non consécutive. un processus demandant de la mémoire. Nous discuterons de quelques autres différences entre l’allocation de mémoire contiguë et non contiguë à l’aide du tableau de comparaison présenté ci-dessous.

Tableau de comparaison

Base de la comparaisonAllocation de mémoire contiguëAllocation de mémoire non contiguë
De baseAlloue des blocs de mémoire consécutifs à un processus.Alloue des blocs de mémoire distincts à un processus.
Frais générauxL'allocation de mémoire contiguë ne génère pas la surcharge de la traduction d'adresse lors de l'exécution d'un processus.L'allocation de mémoire non contiguë entraîne une surcharge de traduction d'adresse lors de l'exécution d'un processus.
Taux d'exécutionUn processus exécute le fatser dans l'allocation de mémoire contiguëUn processus s'exécute relativement lentement comparativement à une allocation de mémoire non contiguë.
SolutionL'espace mémoire doit être divisé en une partition de taille fixe et chaque partition est affectée à un seul processus.Divisez le processus en plusieurs blocs et placez-les dans différentes parties de la mémoire en fonction de la disponibilité de l'espace mémoire disponible.
TableUne table est gérée par le système d’exploitation qui maintient la liste des partitions disponibles et occupées dans l’espace mémoire.Une table doit être maintenue pour chaque processus portant les adresses de base de chaque bloc acquis par un processus en mémoire.

Définition de l'allocation de mémoire contiguë

Le système d'exploitation et les processus de l'utilisateur doivent tous deux être hébergés dans la mémoire principale. Par conséquent, la mémoire principale est divisée en deux partitions: le système d'exploitation réside sur une partition et les processus utilisateur sur l'autre. Dans des conditions habituelles, les différents processus utilisateur doivent résider en même temps dans la mémoire. Il est donc important de prendre en compte l'affectation de mémoire aux processus.

L'allocation de mémoire contiguë est l'une des méthodes d'allocation de mémoire. Dans l'allocation de mémoire contiguë, lorsqu'un processus demande de la mémoire, une seule section contiguë de blocs de mémoire est affectée au processus en fonction de ses besoins.

L'allocation de mémoire contiguë peut être obtenue en divisant la mémoire dans la partition de taille fixe et en affectant chaque partition à un seul processus. Mais cela entraînera le degré de multiprogrammation, lié au nombre de partitions fixes effectuées dans la mémoire. L'allocation de mémoire contiguë conduit également à la fragmentation interne . De même, si un bloc de mémoire de taille fixe alloué à un processus est légèrement supérieur à ses besoins, l'espace mémoire restant dans le bloc est appelé fragmentation interne. Lorsque le processus résidant dans la partition se termine, la partition devient disponible pour un autre processus.

Dans le schéma de partitionnement variable, le système d'exploitation maintient une table qui indique quelle partition de la mémoire est libre et quelle est occupée par les processus. L'allocation de mémoire contiguë accélère l'exécution d'un processus en réduisant les frais généraux liés à la traduction d'adresse.

Définition Allocation de mémoire non contiguë

L'allocation de mémoire non contiguë permet à un processus d' acquérir les différents blocs de mémoire à l'emplacement différent dans la mémoire en fonction de ses besoins. L'allocation de mémoire non contiguë réduit également le gaspillage de mémoire dû à la fragmentation interne et externe. Comme il utilise les trous de mémoire, créés lors de la fragmentation interne et externe.

La pagination et la segmentation sont les deux manières permettant à l’espace adresse physique d’un processus de ne pas être contigu. Dans l'allocation de mémoire non contiguë, le processus est divisé en blocs (pages ou segments) qui sont placés dans les différentes zones de l'espace mémoire en fonction de la disponibilité de la mémoire.

L'allocation de mémoire non contiguë présente l'avantage de réduire le gaspillage de mémoire, mais elle augmente les frais généraux liés à la traduction d'adresse. Comme les parties du processus sont placées dans un emplacement différent en mémoire, cela ralentit l'exécution de la mémoire car le temps utilisé pour la traduction des adresses est important.

Ici, le système d’exploitation doit maintenir la table pour chaque processus qui contient l’adresse de base de chaque bloc acquise par le processus dans l’espace mémoire.

Différences clés entre l'allocation de mémoire contiguë et non contiguë

  1. La différence fondamentale entre l'allocation de mémoire contiguë et non contiguë réside dans le fait que l'allocation contiguë alloue un seul bloc de mémoire contigu au processus alors que l'allocation non contiguë divise le processus en plusieurs blocs et les place dans un espace d'adressage différent de la mémoire, c'est-à-dire de manière non contiguë. .
  2. Dans l'allocation de mémoire contiguë, le processus est stocké dans un espace mémoire contigu; il n'y a donc pas de surcharge de traduction d'adresse lors de l'exécution. Mais dans l'allocation de mémoire non contiguë, il y a une surcharge de traduction d'adresse pendant l'exécution du processus, car les blocs de processus sont répartis dans l'espace mémoire.
  3. Le processus stocké dans la mémoire contiguë s'exécute plus rapidement que le processus stocké dans un espace mémoire non contigu.
  4. La solution pour l'allocation de mémoire contiguë consiste à diviser l'espace mémoire en une partition de taille fixe et à allouer une partition à un seul processus. D'autre part, dans l'allocation de mémoire non contraignante, un processus est divisé en plusieurs blocs et chaque bloc est placé à différents endroits dans la mémoire en fonction de la disponibilité de la mémoire.
  5. Dans l'allocation de mémoire contiguë, le système d'exploitation doit conserver une table indiquant la partition disponible pour le processus et celle occupée par celui-ci. Dans l'allocation de mémoire non contiguë, une table est maintenue pour chaque processus, laquelle indique l'adresse de base de chaque bloc du processus placé dans l'espace mémoire.

Conclusion:

L'allocation de mémoire contiguë ne crée pas de surcharge et accélère la vitesse d'exécution du processus, mais augmente le gaspillage de mémoire . À son tour, l'allocation de mémoire non contiguë crée des frais généraux de traduction d'adresse, réduit la vitesse d'exécution d'un processus, mais augmente l'utilisation de la mémoire . Il existe donc des avantages et des inconvénients des deux méthodes d’allocation.

Top