Gestion de la mémoire dans le système d'exploitation: contigu, permutation, fragmentation

Table des matières:

Anonim

Qu'est-ce que la gestion de la mémoire?

La gestion de la mémoire est le processus de contrôle et de coordination de la mémoire de l'ordinateur, attribuant des parties appelées blocs à divers programmes en cours d'exécution pour optimiser les performances globales du système.

C'est la fonction la plus importante d'un système d'exploitation qui gère la mémoire principale. Il aide les processus à aller et venir entre la mémoire principale et le disque d'exécution. Il aide le système d'exploitation à garder une trace de chaque emplacement mémoire, qu'il soit alloué à un processus ou qu'il reste libre.

Dans ce didacticiel sur le système d'exploitation, vous apprendrez:

  • Qu'est-ce que la gestion de la mémoire?
  • Pourquoi utiliser la gestion de la mémoire?
  • Techniques de gestion de la mémoire
  • Qu'est-ce que le swapping?
  • Qu'est-ce que l'allocation de mémoire?
  • Qu'est-ce que la pagination?
  • Qu'est-ce que la méthode de fragmentation?
  • Qu'est-ce que la segmentation?
  • Qu'est-ce que le chargement dynamique?
  • Qu'est-ce que le lien dynamique?
  • Différence entre le chargement statique et dynamique
  • Différence entre la liaison statique et dynamique

Pourquoi utiliser la gestion de la mémoire?

Voici les raisons d'utiliser la gestion de la mémoire:

  • Il vous permet de vérifier la quantité de mémoire à allouer aux processus qui décident quel processeur doit obtenir de la mémoire à quel moment.
  • Suit chaque fois que l'inventaire est libéré ou non alloué. Selon cela, le statut sera mis à jour.
  • Il alloue l'espace aux routines d'application.
  • Il s'assure également que ces applications n'interfèrent pas les unes avec les autres.
  • Aide à protéger les différents processus les uns des autres
  • Il place les programmes en mémoire afin que la mémoire soit pleinement utilisée.

Techniques de gestion de la mémoire

Voici quelques techniques de gestion de mémoire les plus cruciales:

Allocation contiguë unique

C'est la technique de gestion de la mémoire la plus simple. Dans cette méthode, tous les types de mémoire de l'ordinateur, à l'exception d'une petite partie réservée au système d'exploitation, sont disponibles pour une seule application. Par exemple, le système d'exploitation MS-DOS alloue de la mémoire de cette manière. Un système embarqué fonctionne également sur une seule application.

Allocation partitionnée

Il divise la mémoire primaire en diverses partitions de mémoire, qui sont principalement des zones de mémoire contiguës. Chaque partition stocke toutes les informations pour une tâche ou un travail spécifique. Cette méthode consiste à attribuer une partition à un travail lors de son démarrage et à la désallouer à la fin.

Gestion de la mémoire paginée

Cette méthode divise la mémoire principale de l'ordinateur en unités de taille fixe appelées cadres de page. Cette unité de gestion de la mémoire matérielle mappe les pages en cadres qui doivent être alloués sur une base de page.

Gestion de la mémoire segmentée

La mémoire segmentée est la seule méthode de gestion de la mémoire qui ne fournit pas au programme de l'utilisateur un espace d'adressage linéaire et contigu.

Les segments nécessitent une prise en charge matérielle sous la forme d'une table de segments. Il contient l'adresse physique de la section en mémoire, la taille et d'autres données telles que les bits de protection d'accès et l'état.

Qu'est-ce que le swapping?

L'échange est une méthode dans laquelle le processus doit être transféré temporairement de la mémoire principale vers le magasin de sauvegarde. Il sera plus tard ramené dans la mémoire pour continuer l'exécution.

Le magasin de sauvegarde est un disque dur ou un autre périphérique de stockage secondaire qui doit être suffisamment grand pour accueillir des copies de toutes les images mémoire pour tous les utilisateurs. Il est également capable d'offrir un accès direct à ces images mémoire.

Avantages de l'échange

Voici les principaux avantages / avantages de l'échange:

  • Il offre un degré plus élevé de multiprogrammation.
  • Permet une relocalisation dynamique. Par exemple, si la liaison d'adresse au moment de l'exécution est utilisée, les processus peuvent être échangés à différents emplacements. Sinon, dans le cas de liaisons de compilation et de chargement, les processus doivent être déplacés vers le même emplacement.
  • Cela aide à obtenir une meilleure utilisation de la mémoire.
  • Perte minimale de temps CPU à la fin afin qu'il puisse être facilement appliqué à une méthode de planification basée sur les priorités pour améliorer ses performances.

Qu'est-ce que l'allocation de mémoire?

L'allocation de mémoire est un processus par lequel des programmes informatiques se voient attribuer de la mémoire ou de l'espace.

Ici, la mémoire principale est divisée en deux types de partitions

  1. Mémoire faible - Le système d'exploitation réside dans ce type de mémoire.
  2. Mémoire élevée - Les processus utilisateur sont conservés dans une mémoire élevée.

Allocation de partition

La mémoire est divisée en différents blocs ou partitions. Chaque processus est attribué en fonction de l'exigence. L'allocation de partition est une méthode idéale pour éviter la fragmentation interne.

Voici les différents schémas d'allocation de partition:

  • Premier ajustement : dans ce type d'ajustement, la partition est allouée, qui est le premier bloc suffisant depuis le début de la mémoire principale.
  • Meilleur ajustement: il alloue le processus à la partition qui est la première plus petite partition parmi les partitions libres.
  • Pire ajustement: il alloue le processus à la partition, qui est la plus grande partition disponible gratuitement dans la mémoire principale.
  • Next Fit: Il est principalement similaire au premier Fit, mais cet Fit recherche la première partition suffisante à partir du dernier point d'allocation.

Qu'est-ce que la pagination?

La pagination est un mécanisme de stockage qui permet au système d'exploitation de récupérer les processus du stockage secondaire dans la mémoire principale sous la forme de pages. Dans la méthode de pagination, la mémoire principale est divisée en petits blocs de mémoire physique de taille fixe, appelés trames. La taille d'un cadre doit être la même que celle d'une page pour avoir une utilisation maximale de la mémoire principale et pour éviter la fragmentation externe. La pagination est utilisée pour un accès plus rapide aux données, et c'est un concept logique.

Qu'est-ce que la fragmentation?

Les processus sont stockés et supprimés de la mémoire, ce qui crée de l'espace mémoire libre, qui est trop petit pour être utilisé par d'autres processus.

Après parfois, ce processus qui ne peut pas allouer à des blocs de mémoire parce que sa petite taille et les blocs de mémoire restent toujours inutilisés est appelé fragmentation. Ce type de problème se produit lors d'un système d'allocation de mémoire dynamique lorsque les blocs libres sont assez petits, il n'est donc pas en mesure de répondre à une demande.

Deux types de méthodes de fragmentation sont:

  1. Fragmentation externe
  2. Fragmentation interne
  • La fragmentation externe peut être réduite en réorganisant le contenu de la mémoire pour placer toute la mémoire libre dans un seul bloc.
  • La fragmentation interne peut être réduite en attribuant la plus petite partition, qui est encore assez bonne pour transporter l'ensemble du processus.

Qu'est-ce que la segmentation?

La méthode de segmentation fonctionne presque de la même manière que la pagination. La seule différence entre les deux est que les segments sont de longueur variable, alors que, dans la méthode de pagination, les pages sont toujours de taille fixe.

Un segment de programme comprend la fonction principale du programme, les structures de données, les fonctions utilitaires, etc. Le système d'exploitation maintient une table de mappage de segments pour tous les processus. Il comprend également une liste des blocs de mémoire libres ainsi que sa taille, les numéros de segment et ses emplacements de mémoire dans la mémoire principale ou la mémoire virtuelle.

Qu'est-ce que le chargement dynamique?

Le chargement dynamique est une routine d'un programme qui n'est pas chargée jusqu'à ce que le programme l'appelle. Toutes les routines doivent être contenues sur le disque dans un format de chargement relocalisable. Le programme principal sera chargé en mémoire et sera exécuté. Le chargement dynamique offre également une meilleure utilisation de l'espace mémoire.

Qu'est-ce que le lien dynamique?

La liaison est une méthode qui aide le système d'exploitation à collecter et fusionner divers modules de code et de données en un seul fichier exécutable. Le fichier peut être chargé en mémoire et exécuté. Le système d'exploitation peut lier des bibliothèques au niveau du système dans un programme qui combine les bibliothèques au moment du chargement. Dans la méthode de liaison dynamique, les bibliothèques sont liées au moment de l'exécution, de sorte que la taille du code du programme peut rester petite.

Différence entre le chargement statique et dynamique

Chargement statique Chargement dynamique
Le chargement statique est utilisé lorsque vous souhaitez charger votre programme de manière statique. Ensuite, au moment de la compilation, le programme entier sera lié et compilé sans avoir besoin d'un module externe ou d'une dépendance de programme. Dans un programme chargé dynamiquement, des références seront fournies et le chargement sera effectué au moment de l'exécution.
Au moment du chargement, l'ensemble du programme est chargé en mémoire et commence son exécution. Les routines de la bibliothèque ne sont chargées en mémoire que lorsqu'elles sont requises dans le programme.

Différence entre la liaison statique et dynamique

Voici la principale différence entre la liaison statique et la liaison dynamique:

Liaison statique Lien dynamique
La liaison statique est utilisée pour combiner tous les autres modules requis par un programme en un seul code exécutable. Cela permet au système d'exploitation d'éviter toute dépendance d'exécution. Lorsque la liaison dynamique est utilisée, il n'est pas nécessaire de lier le module ou la bibliothèque réelle avec le programme. Au lieu de cela, utilisez une référence au module dynamique fourni au moment de la compilation et de la liaison.

Résumé:

  • La gestion de la mémoire est le processus de contrôle et de coordination de la mémoire de l'ordinateur, attribuant des parties appelées blocs à divers programmes en cours d'exécution pour optimiser les performances globales du système.
  • Il vous permet de vérifier la quantité de mémoire à allouer aux processus qui décident quel processeur doit obtenir de la mémoire à quel moment.
  • Dans l'allocation contiguë unique, tous les types de mémoire de l'ordinateur, à l'exception d'une petite partie réservée au système d'exploitation, sont disponibles pour une application
  • La méthode d'allocation partitionnée divise la mémoire principale en diverses partitions de mémoire, qui sont principalement des zones de mémoire contiguës
  • La méthode de gestion de la mémoire paginée divise la mémoire principale de l'ordinateur en unités de taille fixe appelées cadres de page
  • La mémoire segmentée est la seule méthode de gestion de la mémoire qui ne fournit pas au programme de l'utilisateur un espace d'adressage linéaire et contigu.
  • L'échange est une méthode dans laquelle le processus doit être transféré temporairement de la mémoire principale vers le magasin de sauvegarde. Il sera plus tard ramené dans la mémoire pour continuer l'exécution.
  • L'allocation de mémoire est un processus par lequel des programmes informatiques se voient attribuer de la mémoire ou de l'espace.
  • La pagination est un mécanisme de stockage qui permet au système d'exploitation de récupérer les processus du stockage secondaire dans la mémoire principale sous la forme de pages.
  • La fragmentation fait référence à l'état d'un disque dans lequel les fichiers sont divisés en morceaux dispersés sur le disque.
  • La méthode de segmentation fonctionne presque de la même manière que la pagination. La seule différence entre les deux est que les segments sont de longueur variable, alors que, dans la méthode de pagination, les pages sont toujours de taille fixe.
  • Le chargement dynamique est une routine d'un programme qui n'est pas chargée jusqu'à ce que le programme l'appelle.
  • La liaison est une méthode qui aide le système d'exploitation à collecter et fusionner divers modules de code et de données en un seul fichier exécutable.