Différence entre la pagination et la segmentation

La gestion de la mémoire est l’une des fonctions de base du système d’exploitation. Les systèmes d'exploitation modernes permettent à chaque processus d'obtenir plus de mémoire virtuelle que la taille totale de la mémoire (physique) réelle sur un système informatique donné. L’objectif principal de la gestion de la mémoire est de combiner une mémoire volumineuse mais lente avec une mémoire petite mais très rapide, pour obtenir l’effet d’une mémoire plus rapide.

Quelle est la pagination?

La séparation entre le partitionnement fixe et le partitionnement variable est inefficace en termes d'utilisation de la mémoire, car le partitionnement fixe entraîne une fragmentation interne, alors que la fragmentation externe est dynamique. Une solution possible au problème de la fragmentation est de permettre au processus de ne pas être écrit dans un bloc de mémoire continu. Le programme peut être dispersé arbitrairement dans la mémoire. Dans ce cas, la mémoire de travail est divisée en blocs plus petits de taille fixe, appelés cadres. L'espace d'adressage logique du programme est également divisé en blocs de même taille, appelés pages. Lorsqu'un programme est entré dans la mémoire, les pages sont écrites dans des cadres de mémoire libres. Pour faciliter le transfert de programmes d'un disque vers une mémoire de travail, le disque est également divisé en images de la même taille que les images en mémoire. Ainsi, une image du disque est écrite dans une image de la mémoire de travail. Le système de radiomessagerie fonctionne de la manière suivante: lorsque le programme est accepté pour exécution, sa taille est calculée, ce qui s’exprime avec le nombre de pages requis. Si un nombre suffisant d'images est libre, le processus est enregistré dans la page de mémoire par page. En même temps, le nombre d'images dans lesquelles chaque page est écrite est entré dans la table des images..

Qu'est-ce que la segmentation??

Le programme utilisateur et les données associées peuvent être divisés en plusieurs segments. Les segments de tous les programmes ne doivent pas nécessairement avoir la même taille, bien qu'il existe une longueur maximale de segment. Comme pour la pagination, l'adresse logique qui utilise la segmentation est composée de deux parties, dans ce cas, le nombre de segments et de dislocations dans ce segment. En raison de l'utilisation de segments de tailles différentes, la segmentation est similaire au partitionnement dynamique. En l'absence d'un schéma de superposition ou de l'utilisation de la mémoire virtuelle, il est nécessaire que tous les segments du programme soient chargés dans la mémoire pour exécution. La différence par rapport au partitionnement dynamique réside dans le fait que la segmentation peut prendre plus d'une partition et que cette partition ne doit pas nécessairement être adjacente. La segmentation résout le problème de la fragmentation interne mais, outre le partitionnement dynamique, le problème de la fragmentation externe demeure. Cependant, étant donné que le processus est divisé en plusieurs parties plus petites, la fragmentation externe est généralement plus petite. Contrairement à la pagination invisible au programmeur, la segmentation est généralement visible et convient à l'organisation des programmes et des données. Aux fins de la programmation modulaire, le programme ou les données peuvent être divisés en plusieurs segments plus petits. L'inconvénient de cette technique est que le programmeur doit connaître les limites de la taille maximale du segment. L'utilisation de segments de tailles différentes présente l'avantage suivant: il n'y a pas de connexion potentielle entre les adresses logiques et physiques. Semblable à la pagination, la technique de segmentation simple utilise une table de segments pour chaque processus et une liste des blocs disponibles dans la mémoire principale..

Différence entre la pagination et la segmentation

1. Concept de pagination et de segmentation

La pagination fournit un espace d'adressage virtuel et physique, ainsi qu'un espace de mémoire secondaire sur des blocs (pages) de longueurs égales. Cela permet d'affecter l'espace d'adressage virtuel continu au processus de dispersion (pas nécessairement distribué en permanence) dans l'espace d'adressage réel et la mémoire secondaire. Même la page, en tant que terme, fait référence à la mémoire plutôt qu'aux objets logiques visibles au niveau du programme. La segmentation fournit un espace d'adressage virtuel sur des blocs (segments) qui correspondent directement aux objets au niveau du programme. De ce fait, le segment n'a pas de longueur fixe, de sorte que même la taille du segment peut être modifiée pendant l'exécution du programme. La protection et la division sont donc possibles au niveau de l'objet et il existe des processus visibles où la segmentation est effectuée.

2. Caractéristiques de la pagination et de la segmentation

Le développeur de l'application n'est pas au courant de la pagination. Il écrit les programmes comme si la mémoire était linéaire et le système d’exploitation et le processeur s’inquiétaient de son partitionnement et de sa conversion en adresses virtuelles. Le programmeur sur les systèmes de segmentation, cependant, répertorie deux parties de l'adresse, du segment et de la page dans leurs programmes. Toutes les pages ont la même taille alors que les segments sont différents. La segmentation comporte plusieurs espaces d'adresses linéaires et la pagination en une seule. Les segments permettent le partitionnement logique et la protection des composants de l'application, et les pages ne le sont pas..

3. Avantages de la pagination et de la segmentation

La pagination, transparente pour le programmeur, élimine la fragmentation externe et garantit ainsi une utilisation efficace de la mémoire principale. Les pièces qui entrent et sortent de la mémoire principale sont fixes et ont la même taille, il est donc possible de développer des algorithmes sophistiqués de gestion de la mémoire qui exploitent le comportement du programme. La segmentation est visible pour le développeur et permet de gérer la croissance de la structure et de la modularité des données, ainsi que la prise en charge de l'échange et de la protection..

Pagination ou segmentation: tableau comparatif

Pagination

Segmentation

taille des pages fixes les segments ne sont pas de taille fixe
invisible pour le programmeur visible pour le programmeur
un espace d'adressage linéaire plusieurs espaces d'adresses linéaires
n'autorise pas le partitionnement logique et la protection des composants de l'application permet

Résumé de la pagination et de la segmentation

  • La pagination est basée sur la distribution de tout l’espace d’adresse sur des blocs de longueur fixe utilisés comme quantifications en mémoire. En outre, il est nécessaire de fournir un moyen de marquer la mémoire disponible pouvant être exécutée par la présence de «l'en-tête» de chaque page indiquant le statut de la page (liste liée globale où chaque nœud pointe vers la page libre suivante) ou par placer l'adresse de page libre dans le tableau global, ce qui est généralement la pire des solutions.
  • La segmentation consiste à diviser l'espace d'adressage en segments disposant de droits d'accès clairement définis sur le processeur MMU. Au sein du segment, les processus allouent exactement la quantité de mémoire dont ils ont besoin, mais le problème de la gestion de la mémoire est de savoir comment fournir une telle allocation dans laquelle il est possible de conserver suffisamment de mémoire de bloc en continu pouvant nécessiter un certain temps..