Différence entre la pagination et la segmentation

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 réelle (physique) sur un système informatique donné. L'objectif principal de la gestion de la mémoire est qu'en combinant une mémoire grande mais lente avec une mémoire petite mais à grande vitesse, pour obtenir l'effet d'une mémoire à grande vitesse plus grande.

Qu'est-ce que la pagination?

La séparation entre le partitionnement fixe et variable est inefficace en termes d'utilisation de la mémoire, car le partitionnement fixe se traduit par interne, tandis que dynamique dans la fragmentation externe. Une solution possible au problème de la fragmentation est de permettre au processus de ne pas être écrit sur un bloc de mémoire continue. 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 libre. Pour faciliter le transfert de programmes d'un disque à une mémoire de travail, le disque est également divisé en cadres de même taille que les cadres de mémoire. Ainsi, une trame du disque est écrite en un cadre de la mémoire de travail. Le système de pagination fonctionne de la manière suivante: lorsque le programme est accepté pour l'exécution, sa taille est calculée, ce qui s'exprime avec le nombre requis de pages. Si un nombre suffisant de trames est gratuit, le processus est enregistré dans la page de mémoire par page. En même temps, le nombre de trames dans lesquelles chaque page est écrite est entrée dans le tableau des trame.

Qu'est-ce que la segmentation?

Le programme utilisateur et les données associées peuvent être divisées en un certain nombre de segments. Les segments de tous les programmes ne doivent pas être de la même taille, bien qu'il y ait une longueur de segment maximale. Comme pour la pagination, l'adresse logique qui utilise la segmentation se compose de deux parties, dans ce cas, le nombre de segments et de dislocations dans ce segment. En raison de l'utilisation de segments de différentes tailles, la segmentation est similaire au partitionnement dynamique. En l'absence d'un schéma de superposition ou d'une utilisation de la mémoire virtuelle, il est nécessaire que tous les segments de programme soient chargés dans la mémoire pour exécuter. La différence par rapport au partitionnement dynamique est que la segmentation peut prendre plus d'une partition, et cette partition ne doit pas être adjacente. La segmentation résout le problème de la fragmentation interne, mais en plus de partitionner dynamique, le problème de la fragmentation externe reste. Cependant, parce que le processus est divisé en plusieurs parties plus petites, la fragmentation externe est généralement plus petite. Contrairement à la pagination qui est invisible pour le programmeur, la segmentation est généralement visible et adaptée à l'organisation de programmes et de données. Aux fins de la programmation modulaire, le programme ou les données peut être divisé en plusieurs plus petits segments. L'inconvénient de cette technique est que le programmeur doit connaître les limites de la taille maximale du segment. La prochaine commodité de l'utilisation de segments de différentes tailles est qu'il n'y a pas de connexion prospective 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 offre un espace d'adressage virtuel et physique, et un espace mémoire secondaire sur les blocs (pages) de longueurs égales. Cela permet à l'espace d'adressage virtuel continu d'être alloué au processus de dispersion (pas nécessairement continuellement distribué) 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 offre un espace d'adressage virtuel sur les blocs (segments) qui correspondent directement aux objets au niveau du programme. Pour cette raison, le segment n'a pas de longueur fixe, donc 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 y a 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 des programmes comme si la mémoire était linéaire, et le système d'exploitation et le processeur sont préoccupés par son partitionnement et 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 sont de la même taille tandis que les segments sont différents. La segmentation a plusieurs espaces d'adresse linéaire et ne paginait qu'une seule fois. Les segments permettent le partitionnement logique et la protection des composants d'application, et les pages ne.

3. Avantages de la pagination et de la segmentation

La pagination, qui est transparente au programmeur, élimine la fragmentation externe et assure ainsi une utilisation efficace de la mémoire principale. Les pièces qui se déplacent dans et hors de la mémoire principale sont fixes et de la même taille, il est donc possible de développer des algorithmes de gestion de la mémoire sophistiqués qui exploitent le comportement du programme. La segmentation est visible pour le développeur et a la capacité de gérer la croissance de la structure des données, de la modularité et du soutien à l'échange et à la protection.

Paging VS. Segmentation: tableau de comparaison

Pagination

Segmentation

Taille des pages fixes Les segments ne sont pas fixés en taille
invisible pour le programmeur visible pour le programmeur
Un espace d'adressage linéaire plusieurs espaces d'adresse linéaire
ne permet pas le partitionnement logique et la protection des composants d'application permet

Résumé de la pagination et de la segmentation

  • La pagination est basée sur la distribution de l'ensemble de l'espace d'adressage sur les blocs de longueur fixe qui fonctionnent comme la mémoire de la mémoire. De plus, il est nécessaire de fournir un moyen de marquer la mémoire disponible qui peut être exécutée par la présence de «l'en-tête» de chaque page indiquant l'état de la page (liste liée globale où chaque nœud pointe vers la page libre suivante) ou par Placer l'adresse de la page gratuite dans le tableau global, qui est généralement la pire solution.
  • La segmentation signifie diviser l'espace d'adressage en segments qui ont clairement marqué les droits d'accès au processeur MMU. Dans le segment, les processus allacent exactement autant de mémoire qu'ils en ont besoin, mais le problème de la gestion de la mémoire est de savoir comment fournir une telle allocation où elle peut préserver la mémoire de blocs continue suffisamment grande qui peut avoir besoin de temps.