La pagination et la segmentation sont des processus par lesquels les données sont stockées sur le disque de stockage d’un ordinateur, puis récupérées. La pagination est une fonction de gestion de la mémoire qui présente les emplacements de stockage à l’unité centrale de traitement (CPU) de l’ordinateur comme une mémoire supplémentaire, appelée mémoire virtuelle. La segmentation est un processus virtuel qui crée des espaces d’adressage de taille variable dans le stockage informatique pour les données associées, appelés segments.<br>
La pagination fournit une adresse de stockage pour chaque donnée, tandis que le processus de segmentation accélère la récupération des données. Aucun système ne peut dépendre efficacement de la seule RAM, qui est limitée. L’unité de gestion de la mémoire (MMU) de l’ordinateur utilise donc les disques de stockage, un disque dur (HDD) ou un disque SSD (SSD), comme mémoire virtuelle pour compléter la RAM. La gestion de la mémoire informatique est une fonction fondamentale, mais critique, du système d’exploitation. Ce guide consacré à la pagination et à la segmentation détaille les différences entre ces deux technologies, notamment leurs avantages et leurs inconvénients.
Principales différences entre pagination et segmentation
Bien que la pagination et la segmentation soient toutes deux des composants essentiels de la mémoire informatique, elles allouent la mémoire différemment et sont sujettes à des problèmes de fragmentation distincts.
| Pagination | Segmentation | |
|---|---|---|
| Taille | Le système utilise une taille de bloc fixe pour les pages et les cadres. Le matériel informatique détermine la taille des pages et des cadres. | La taille des segments peut varier, et c’est l’utilisateur du système qui la définit. |
| Fragmentation | Les anciens systèmes étaient sujets à la fragmentation interne, car ils n’allouaient pas des pages entières à la mémoire. Les systèmes d’exploitation modernes ne rencontrent plus ce problème. | La segmentation entraîne une fragmentation externe. |
| Tables | Les tables de pages indiquent à la MMU l’emplacement et l’état des pages. Ce processus est plus lent que celui des tables de segmentation, mais le cache mémoire TLB l’accélère. | Les tables de segmentation contiennent l’identifiant et les informations des segments, et sont plus rapides que les recherches directes dans les tables de pages. |
| Disponibilité | Largement disponible sur les CPU et sous forme de puces MMU. | Les serveurs Windows peuvent assurer la compatibilité descendante, tandis que Linux n’offre qu’une prise en charge très limitée. |
Qu’est-ce que la pagination ?
Lorsqu’une pagination est effectuée, les emplacements de stockage sont présentés au CPU comme de la mémoire virtuelle. Dans le processus de pagination, une table de pages stocke la définition de chaque page. Lorsqu’un processus actif demande des données, la MMU récupère les pages correspondantes dans des cadres situés dans la mémoire physique afin d’accélérer le traitement. Le processus de pagination comporte plusieurs éléments :
- Page : Un bloc contigu de mémoire virtuelle de longueur fixe résidant sur le disque.
- Cadre : Un bloc contigu de longueur fixe situé dans la RAM, dont la taille est identique à celle des pages.
- Mémoire physique : La mémoire vive (RAM), généralement contenue dans des barrettes DIMM fixées à la carte mère de l’ordinateur.
- Mémoire virtuelle : La mémoire virtuelle est une partie d’un HDD ou d’un SSD réservée pour émuler la RAM. La MMU fournit au CPU de la mémoire virtuelle depuis le disque afin de réduire la charge de la mémoire physique.
- Adresse virtuelle : Le CPU génère une adresse virtuelle pour chaque processus actif. La MMU fait correspondre l’adresse virtuelle à un emplacement physique dans la RAM et transmet l’adresse au bus. Un espace d’adressage virtuel est l’intervalle des adresses virtuelles contrôlées par le CPU.
- Adresse physique : L’adresse physique est un emplacement dans la RAM. L’espace d’adressage physique est l’ensemble de toutes les adresses physiques correspondant aux adresses virtuelles du CPU. Un espace d’adressage physique est l’intervalle des adresses physiques contrôlées par la MMU.

En attribuant une adresse à une donnée au moyen d’une table de pages située entre le CPU et la mémoire physique de l’ordinateur, la MMU permet au système de récupérer cette donnée chaque fois que nécessaire.
Comment fonctionne la pagination ?
La MMU utilise des tables de pages pour traduire les adresses virtuelles en adresses physiques. Chaque entrée de table indique où se trouve une page : dans la RAM ou sur le disque, en tant que mémoire virtuelle. Les tables peuvent comporter un ou plusieurs niveaux, par exemple des tables différentes pour les applications et les segments.
Cependant, les recherches constantes dans les tables peuvent ralentir la MMU. Pour y remédier, un cache mémoire appelé Translation Lookaside Buffer (TLB) stocke les traductions récentes des adresses virtuelles en adresses physiques afin de les récupérer rapidement. De nombreux systèmes disposent de plusieurs TLB, qui peuvent se trouver à différents emplacements, notamment entre le CPU et la RAM ou entre plusieurs niveaux de tables de pages.
Différentes tailles de cadres sont disponibles pour les jeux de données comportant des pages plus grandes ou plus petites et des cadres de taille correspondante ; les tailles de 4 Ko à 2 Mo sont courantes, et des cadres de taille exprimée en Go sont disponibles dans les serveurs hautes performances.
En savoir plus sur la gestion de la mémoire dans les systèmes d’exploitation.
Avantages de la pagination
Voici quelques avantages de la pagination :
- Pour les programmeurs, la pagination est une fonction transparente qui ne nécessite aucune intervention.
- La pagination ne provoque pas de fragmentation externe et, sur les systèmes d’exploitation correctement mis à jour, elle ne présente pas non plus de problèmes de fragmentation interne.
- Les cadres utilisés par la pagination n’ont pas besoin d’être contigus.
Inconvénients de la pagination
La pagination provoque une fragmentation interne sur les anciens systèmes. Un problème appelé fragmentation cachée était autrefois présent dans les anciennes versions de Windows. Il s’agissait d’une fragmentation interne, ou cachée. Contrairement à la grave fragmentation externe causée par la segmentation, la fragmentation interne se produisait lorsque chaque cadre n’avait pas exactement la taille de la page. Ce problème n’existe plus dans les systèmes d’exploitation Windows modernes, mais il touche les organisations qui utilisent encore d’anciens systèmes.
La pagination entraîne des temps de recherche en mémoire plus longs que la segmentation, même si les caches mémoire TLB peuvent aider, en particulier sur les systèmes qui disposent de nombreux TLB.
En savoir plus sur la fragmentation des disques et les problèmes qu’elle pose aux systèmes de stockage.
Qu’est-ce que la segmentation ?
La segmentation est un processus virtuel qui crée des espaces d’adressage de différentes tailles dans un système informatique, appelés segments. Chaque segment est un espace d’adressage virtuel différent qui correspond directement aux objets d’un processus. Le processus de segmentation comporte plusieurs éléments, notamment le CPU, la table de segments, qui contient les détails du segment, et la mémoire physique, c’est-à-dire la RAM de l’ordinateur située sur la carte mère :

La segmentation accélère la récupération des informations par l’ordinateur en attribuant les données associées à une table de segments située entre le CPU et la mémoire physique.
Comment fonctionne la segmentation ?
Lorsqu’un processus s’exécute, la segmentation attribue les données associées à des segments afin d’accélérer le traitement. La fonction de segmentation gère une table de segments qui contient les adresses physiques du segment, sa taille et d’autres données.
Chaque segment stocke la fonction principale, les structures de données et les utilitaires des processus. Le CPU conserve une table de mappage des segments pour chaque processus et bloc mémoire, ainsi que l’identification des segments et les emplacements mémoire.
Le CPU génère des adresses virtuelles pour les processus en cours d’exécution. La segmentation traduit les adresses virtuelles générées par le CPU en adresses physiques qui font référence à un emplacement unique de la mémoire physique. La traduction n’est pas strictement bijective : différentes adresses virtuelles peuvent correspondre à la même adresse physique.
En savoir plus sur les adresses physiques et virtuelles.
Avantages de la segmentation
Voici quelques avantages de la segmentation :
- La segmentation ne provoque aucune fragmentation interne
- Les tables de segments occupent moins d’espace que les tables de pages
- La segmentation nécessite moins de ressources de traitement que la pagination.
- La segmentation simplifie la relocalisation des segments par rapport à celle d’espaces d’adressage contigus sur un disque
- Les tables de segments utilisent moins de mémoire
Inconvénients de la segmentation
Bien que la segmentation soit une fonction de gestion de la mémoire rapide et hautement sécurisée, la fragmentation externe s’est révélée être un problème insurmontable. La segmentation provoque une fragmentation externe si importante que les serveurs x86-64 modernes la traitent comme une fonctionnalité héritée et ne la prennent en charge que pour assurer la compatibilité descendante.
La fragmentation externe se produit lorsque de la mémoire inutilisable se trouve à l’extérieur des blocs de mémoire alloués. Le problème est que le système peut disposer de suffisamment de mémoire pour répondre aux demandes des processus, mais que la mémoire disponible n’est pas contiguë. Avec le temps, la fragmentation s’aggrave et ralentit considérablement le processus de segmentation.
Linux ne prend en charge la segmentation que sur les microprocesseurs 80×86, affirmant que la pagination simplifie la gestion de la mémoire en utilisant le même ensemble d’adresses linéaires. Le portage de Linux vers différentes architectures est problématique en raison de la prise en charge limitée de la segmentation.
En résumé : pagination ou segmentation
La pagination et la segmentation sont deux technologies fondamentales qui permettent aux systèmes d’exploitation de mettre de la mémoire de stockage à la disposition des ordinateurs. Toutes deux sont sujettes à la fragmentation, mais la pagination provoque une fragmentation interne sur les ordinateurs obsolètes, tandis que la segmentation entraîne une fragmentation externe importante. Ces technologies de stockage ne sont que deux exemples des moyens par lesquels les besoins actuels en vitesse et en capacité de stockage dépassent les possibilités de nombreux systèmes informatiques.