logo

Gestion de la mémoire dans le système d'exploitation (OS)

Dans cet article, nous comprendrons la gestion de la mémoire en détail.

Qu'entends-tu par gestion de la mémoire ?

La mémoire est la partie importante de l’ordinateur utilisée pour stocker les données. Sa gestion est critique pour le système informatique car la quantité de mémoire principale disponible dans un système informatique est très limitée. À tout moment, de nombreux processus sont en compétition pour l’obtenir. De plus, pour augmenter les performances, plusieurs processus sont exécutés simultanément. Pour cela, nous devons conserver plusieurs processus dans la mémoire principale, il est donc encore plus important de les gérer efficacement.

Gestion de la mémoire

Rôle de la gestion de la mémoire

Voici les rôles importants de la gestion de la mémoire dans un système informatique :

  • Le gestionnaire de mémoire est utilisé pour suivre l'état des emplacements de mémoire, qu'ils soient libres ou alloués. Il aborde la mémoire primaire en fournissant des abstractions afin que le logiciel perçoive qu'une grande mémoire lui est allouée.
  • Le gestionnaire de mémoire permet aux ordinateurs dotés d'une petite quantité de mémoire principale d'exécuter des programmes supérieurs à la taille ou à la quantité de mémoire disponible. Pour ce faire, il déplace les informations entre la mémoire primaire et la mémoire secondaire en utilisant le concept d'échange.
  • Le gestionnaire de mémoire est chargé de protéger la mémoire allouée à chaque processus contre la corruption par un autre processus. Si cela n’est pas garanti, le système peut alors présenter un comportement imprévisible.
  • Les gestionnaires de mémoire doivent permettre le partage de l'espace mémoire entre les processus. Ainsi, deux programmes peuvent résider au même emplacement mémoire bien qu’à des moments différents.

Techniques de gestion de la mémoire :

Les techniques de gestion de la mémoire peuvent être classées dans les catégories principales suivantes :

  • Schémas de gestion de mémoire contiguë
  • Schémas de gestion de mémoire non contigus
Gestion de la mémoire

Schémas de gestion de mémoire contiguë :

Dans un schéma de gestion de mémoire contiguë, chaque programme occupe un seul bloc contigu d'emplacements de stockage, c'est-à-dire un ensemble d'emplacements mémoire avec des adresses consécutives.

Schémas de gestion de mémoire contigus uniques :

Le schéma de gestion de mémoire contiguë unique est le schéma de gestion de mémoire le plus simple utilisé dans la première génération de systèmes informatiques. Dans ce schéma, la mémoire principale est divisée en deux zones ou partitions contiguës. Les systèmes d'exploitation résident en permanence dans une partition, généralement dans la mémoire inférieure, et le processus utilisateur est chargé dans l'autre partition.

en ordre

Avantages des schémas de gestion de mémoire contiguë unique :

  • Simple à mettre en œuvre.
  • Facile à gérer et à concevoir.
  • Dans un schéma de gestion de mémoire contiguë unique, une fois qu'un processus est chargé, il dispose de tout le temps du processeur et aucun autre processeur ne l'interrompra.

Inconvénients des schémas de gestion de mémoire contiguë unique :

  • Gaspillage d'espace mémoire dû à une mémoire inutilisée, car il est peu probable que le processus utilise tout l'espace mémoire disponible.
  • Le processeur reste inactif, attendant que le disque charge l'image binaire dans la mémoire principale.
  • Il ne peut pas être exécuté si le programme est trop volumineux pour contenir tout l'espace mémoire principal disponible.
  • Il ne prend pas en charge la multiprogrammation, c'est-à-dire qu'il ne peut pas gérer plusieurs programmes simultanément.

Partitionnement multiple :

Le système unique de gestion de la mémoire contiguë est inefficace car il limite les ordinateurs à exécuter un seul programme à la fois, ce qui entraîne un gaspillage d'espace mémoire et de temps CPU. Le problème de l’utilisation inefficace du processeur peut être surmonté grâce à la multiprogrammation qui permet à plusieurs programmes de s’exécuter simultanément. Pour basculer entre deux processus, les systèmes d'exploitation doivent charger les deux processus dans la mémoire principale. Le système d'exploitation doit diviser la mémoire principale disponible en plusieurs parties pour charger plusieurs processus dans la mémoire principale. Ainsi, plusieurs processus peuvent résider simultanément dans la mémoire principale.

Les schémas de partitionnement multiples peuvent être de deux types :

  • Partitionnement fixe
  • Partitionnement dynamique

Partitionnement fixe

La mémoire principale est divisée en plusieurs partitions de taille fixe selon un schéma de gestion de mémoire à partition fixe ou un partitionnement statique. Ces partitions peuvent être de même taille ou de tailles différentes. Chaque partition peut contenir un seul processus. Le nombre de partitions détermine le degré de multiprogrammation, c'est-à-dire le nombre maximum de processus en mémoire. Ces partitions sont créées au moment de la génération du système et restent fixes par la suite.

Avantages des schémas de gestion de mémoire à partitionnement fixe :

  • Simple à mettre en œuvre.
  • Facile à gérer et à concevoir.

Inconvénients des schémas de gestion de la mémoire à partitionnement fixe :

  • Ce système souffre d'une fragmentation interne.
  • Le nombre de partitions est spécifié au moment de la génération du système.

Partitionnement dynamique

Le partitionnement dynamique a été conçu pour surmonter les problèmes d'un schéma de partitionnement fixe. Dans un schéma de partitionnement dynamique, chaque processus occupe uniquement la quantité de mémoire dont il a besoin lors de son chargement pour le traitement. Les processus demandés se voient allouer de la mémoire jusqu'à ce que toute la mémoire physique soit épuisée ou que l'espace restant soit insuffisant pour contenir le processus demandeur. Dans ce schéma, les partitions utilisées sont de taille variable et le nombre de partitions n'est pas défini au moment de la génération du système.

Avantages des schémas de gestion de la mémoire avec partitionnement dynamique :

css changer la taille de l'image
  • Simple à mettre en œuvre.
  • Facile à gérer et à concevoir.

Inconvénients des schémas de gestion de la mémoire par partitionnement dynamique :

  • Ce système souffre également d’une fragmentation interne.
  • Le nombre de partitions est spécifié au moment de la segmentation du système.

Schémas de gestion de mémoire non contiguë :

Dans un schéma de gestion de mémoire non contiguë, le programme est divisé en différents blocs et chargé dans différentes parties de la mémoire qui ne doivent pas nécessairement être adjacentes les unes aux autres. Ce schéma peut être classé en fonction de la taille des blocs et du fait que les blocs résident ou non dans la mémoire principale.

Qu'est-ce que la pagination ?

La pagination est une technique qui élimine les exigences d'allocation contiguë de mémoire principale. En cela, la mémoire principale est divisée en blocs de mémoire physique de taille fixe appelés trames. La taille d'un cadre doit rester la même que celle d'une page pour maximiser la mémoire principale et éviter la fragmentation externe.

Avantages de la pagination :

  • Les pages réduisent la fragmentation externe.
  • Simple à mettre en œuvre.
  • Mémoire efficace.
  • En raison de la taille égale des cadres, l'échange devient très facile.
  • Il est utilisé pour un accès plus rapide aux données.

Qu’est-ce que la segmentation ?

La segmentation est une technique qui élimine les exigences d'allocation contiguë de mémoire principale. En cela, la mémoire principale est divisée en blocs de mémoire physique de taille variable appelés segments. Il est basé sur la manière dont le programmeur suit pour structurer ses programmes. Avec l'allocation de mémoire segmentée, chaque tâche est divisée en plusieurs segments de tailles différentes, un pour chaque module. Les fonctions, sous-programmes, pile, tableau, etc. sont des exemples de tels modules.