5. Partage des ressources, processus et mémoire virtuelle

Le fichier maps expose des régions virtuelles du processus de démonstration. Heap et stack désignent ici le tas et la pile.
- Chaque ligne décrit un intervalle d’adresses virtuelles et ses permissions.
- rw-p indique une région lisible, modifiable et privée; ce relevé ne donne pas ses adresses physiques.
Lire la capture en texte
lecture de /proc/self/maps : zones [heap] et [stack]
Extrait de /proc/self/maps (processus de démonstration)
06346000-064ed000 rw-p 00000000 00:00 0 [heap]
7ffeae882000-7ffeae8a3000 rw-p 00000000 00:00 0 [stack]
Les adresses ci-dessus sont virtuelles.Démonstration Station Minuit · Ubuntu 24.04 / WSL2 · Python 3 · 15 octobre 2026 (Toronto). Sortie réelle remise en page et capturée; exemple ajouté, distinct du matériel officiel.
5.1 Multiplexage spatial
Le multiplexage spatial partage simultanément différentes portions d'une ressource divisible. Plusieurs processus peuvent occuper des régions distinctes de la mémoire; plusieurs fichiers utilisent des blocs différents sur un disque.
Le système doit connaître les régions libres et occupées, choisir la taille et l'emplacement des allocations, protéger les régions et récupérer l'espace inutilisé.
5.2 Multiplexage temporel
Le multiplexage temporel attribue successivement une ressource à plusieurs activités. Un CPU exécute un processus pendant un intervalle, puis un autre. Une imprimante traite les travaux l'un après l'autre.
Un programme alterne typiquement entre calcul et attente d'E/S. Si un seul programme est chargé, le CPU peut rester inutilisé pendant l'attente. Avec plusieurs processus prêts, le système peut utiliser ce temps pour faire progresser une autre activité.
Le gain n'est pas gratuit. Un changement de contexte demande de sauvegarder l'état de l'activité courante et de restaurer celui de la suivante. Des changements trop fréquents peuvent consacrer une part excessive du CPU à la gestion plutôt qu'au travail utile.
5.3 Mémoire virtuelle
Chaque processus manipule des adresses virtuelles. Le matériel et le système les traduisent vers des adresses physiques. Deux processus peuvent donc employer la même valeur d'adresse virtuelle sans viser la même cellule réelle.
La mémoire virtuelle permet :
- un espace d'adressage privé et organisé indépendamment pour chaque processus;
- l'isolation entre processus;
- le déplacement de données physiques sans modifier les adresses du programme;
- un espace apparent supérieur à la RAM immédiatement disponible;
- un contrôle précis des pages présentes, absentes, lisibles ou modifiables.
Une référence à une adresse absente ou interdite provoque une exception. Le noyau décide ensuite s'il faut charger une page, signaler une erreur ou terminer le processus.