Mémoire vive et mémoire secondaire
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Connaître la différence entre mémoire vive et mémoire secondaire ;
Découvrir la notion de swap.
Mise en situation
La mémoire secondaire est la mémoire de stockage de l'ordinateur. Elle conserve les données même si l'ordinateur est éteint. C'est par exemple le cas d'un disque dur.
La mémoire vive est la mémoire de travail de l'ordinateur. Pour exécuter un programme l'ordinateur doit copier les données depuis une mémoire de stockage vers la mémoire vive.
Le développeur doit comprendre ce principe d'architecture. En effet, les copies entre les mémoires de stockage et la mémoire vive sont des actions très lentes, chaque fois qu'on en fait, on ralentit le programme. Pour une application web cela peut vite devenir un goulot d'étranglement. À l'inverse la mémoire vive est souvent assez limitée en volume, il n'est donc pas possible de remonter trop d'information à la fois dans la mémoire de travail.
Définition : Mémoire vive
La mémoire vive (ou RAM, pour Random Access Memory) est caractérisée par sa volatilité : les données s'effacent lors de l'extinction du système.
Elle contient les données des processus qui s'exécutent sur l'ordinateur et est constamment sollicitée par le processeur pour traiter ces données.
Définition : Mémoire secondaire
La mémoire secondaire est caractérisée par sa non-volatilité : les données sont conservées même lorsque le système est éteint.
Elle est moins sollicitée pas le CPU et contient les fichiers et données des programmes qui ne sont pas utilisés.
Types de mémoire secondaire
Il existe plusieurs types de mémoire secondaire classées selon la possibilité de les modifier, comme par exemple :
ROM (pour Read-Only Memory) : ce type de mémoire n'est pas effaçable et est utilisé, par exemple, pour stocker les instructions de démarrage d'un ordinateur. Les données stockées sont enregistrées par le constructeur et ne pourront pas être altérées.
EEPROM (pour Electrically Erasable Programmable Read Only Memory) : ce type est le plus répandu - c'est celui des clés USB, des cartes SD, etc. La suppression et la modification des données est possible.
Exemple : Stockage de la mémoire secondaire
Les disques durs sont des exemples de mémoire secondaire.
Deux grandes familles se distinguent : les disques durs utilisant des variantes d'EEPROM - les SDD - et les disques durs à disques - appelés HDD.
On utilise improprement le nom de disque dur, même si seul ce deuxième type de disque historique correspond à cette appellation.
Attention : Dépassement de pile
La mémoire vive étant limitée en taille, il peut arriver que des programmes essaient de stocker plus de données que ne le permet la mémoire vive. Lorsque cela arrive, on parle de dépassement de pile (ou stack overflow).
En tant que développeur, il faut faire attention à l'utilisation de la mémoire vive pour éviter que les programme ne dysfonctionnent. Avant le dépassement de pile, il peut également arriver que la vitesse d'exécution soit fortement ralentie.
La mémoire swap
Pour éviter le problème de dépassement de pile, certains systèmes d'exploitation placent des parties de la mémoire vive inutilisée sur la mémoire secondaire pour économiser la première.
Ce processus est appelé échange et on appelle swap la mémoire associée à ce procédé.
Si le processeur a besoin de données qui se trouvent dans le swap, un échange a de nouveau lieu. Cet échange est plus lent qu'un accès direct en RAM, mais en contrepartie de la mémoire vive aura pu être mieux utilisée.
Définition : Mémoire virtuelle
La mémoire swap
est étroitement lié au concept de mémoire virtuelle. La mémoire virtuelle est le regroupement de la mémoire vive et du swap.
Remarque : Comparaison des temps d'accès mémoire
La mémoire vive a un temps d'accès en mémoire bien plus rapide que la mémoire secondaire.
À titre informatif, voici quelques exemples dans le tableau ci dessous.
Type d'accès mémoire | Temps en nano-secondes |
Mémoire vive | 100 |
Mémoire secondaire (HDD) | 10 000 000 |
Complément : ramfs pour accélérer ses programmes
ramfs
est un système de fichiers temporaire, sur Linux, placé sur la RAM.
Cette pratique est intéressante lorsque le développeur souhaite accéder à un petit nombre de fichiers avec rapidité d'accès très haute. Il faut absolument limiter la taille des fichiers pour éviter le dépassement de pile. Une telle pratique peut accélérer significativement certaines opérations.
À retenir
La mémoire vive est dédiée à des données peu nombreuses qui nécessitent un accès rapide.
La mémoire secondaire est dédiée à des données potentiellement volumineuses qui ne nécessitent pas un accès immédiat.
La mémoire vive est limitée en taille et certains mécanismes optimisent son utilisation et évitent des dépassements de pile.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.