Gestion de la mémoire (Systèmes d'exploitation)
La gestion de la mémoire par le système d'exploitation alloue la mémoire physique aux processus, met en œuvre la pagination et la segmentation, choisit les pages à maintenir résidentes et récupère la mémoire, servant d'intermédiaire entre les exigences des programmes et la RAM physique limitée.
Definition
La gestion de la mémoire par le système d'exploitation est l'ensemble des politiques et des mécanismes par lesquels le système d'exploitation attribue la mémoire physique aux processus, organise leurs espaces d'adressage par pagination ou segmentation, et décide quelles données restent en mémoire par opposition à celles stockées sur un support de stockage secondaire.
Scope
Ce sujet couvre le rôle du système d'exploitation dans la gestion de la mémoire principale : l'organisation de l'espace d'adressage, l'allocation contiguë et la fragmentation, la pagination et la segmentation, les algorithmes de remplacement de pages (FIFO, LRU, clock, optimal), l'allocation de cadres, et les politiques qui préviennent le 'thrashing' (engorgement). Il complète la perspective matérielle de la mémoire virtuelle, en se concentrant sur la politique du système d'exploitation. Il exclut les structures de traduction matérielles (mémoire virtuelle et pagination) et le stockage de fichiers sur disque (systèmes de fichiers).
Core questions
- Comment le système d'exploitation alloue-t-il la mémoire physique aux processus et limite-t-il la fragmentation ?
- Comment la pagination et la segmentation organisent-elles un espace d'adressage ?
- Quel algorithme de remplacement de page se rapproche le mieux de l'expulsion de la page la moins susceptible d'être utilisée prochainement ?
- Comment les cadres sont-ils alloués entre les processus pour maintenir les ensembles de travail résidents et éviter le 'thrashing' ?
Key concepts
- organisation de l'espace d'adressage
- allocation contiguë et fragmentation
- pagination et segmentation
- algorithmes de remplacement de pages (FIFO, LRU, clock, optimal)
- allocation de cadres
- pagination à la demande
- 'thrashing' et ensemble de travail
- récupération de mémoire
Key theories
- Remplacement de pages et localité
- Parce que la politique idéale consistant à expulser la page utilisée le plus loin dans le futur est irréalisable, les algorithmes pratiques (LRU, clock) l'approximent en utilisant des informations d'utilisation récente ; leur efficacité dépend de la localité capturée par le modèle d'ensemble de travail.
Mechanisms
Le système d'exploitation suit la mémoire libre et allouée et mappe l'espace d'adressage de chaque processus, généralement par pagination qui divise la mémoire en cadres de taille fixe. Lors d'un défaut de page, il charge la page nécessaire, expulsant une page résidente choisie par un algorithme de remplacement tel que 'clock' ou LRU. Il alloue des cadres entre les processus pour maintenir leurs ensembles de travail résidents ; lorsque la demande dépasse la capacité, les politiques basées sur l'ensemble de travail et la fréquence des défauts de page réduisent la multiprogrammation pour prévenir le 'thrashing'.
Clinical relevance
Une gestion efficace de la mémoire permet à de nombreux programmes de partager harmonieusement une RAM limitée et est essentielle au débit et à la réactivité du système. Un remplacement inadéquat ou un sur-engagement de la mémoire provoque le 'thrashing' et de graves ralentissements, tandis que des fonctionnalités telles que le sur-engagement de la mémoire ('memory overcommit'), la compression et le 'copy-on-write' (copie sur écriture) sont à la base de l'efficacité des serveurs modernes, des conteneurs et des machines virtuelles.
History
La gestion de la mémoire a évolué, passant d'une simple allocation contiguë et de superpositions à la pagination et à la segmentation à mesure que la mémoire virtuelle mûrissait dans les années 1960 et 1970. La théorie de l'ensemble de travail de Denning a clarifié la manière d'allouer les cadres et d'éviter le 'thrashing', et les algorithmes de remplacement tels que l'approximation 'clock' sont devenus la norme dans les systèmes d'exploitation en production.
Key figures
- Peter J. Denning
- Abraham Silberschatz
- Andrew S. Tanenbaum
Related topics
Seminal works
- silberschatz2018
- denning1968
- tanenbaum2014os
Frequently asked questions
- Quelle est la différence entre la pagination et la segmentation ?
- La pagination divise la mémoire en pages et cadres de taille fixe, simplifiant l'allocation et éliminant la fragmentation externe. La segmentation divise un espace d'adressage en segments de taille variable et logiquement significatifs (tels que le code, la pile, le tas). Certains systèmes les combinent, en paginant à l'intérieur des segments.
- Pourquoi le système d'exploitation ne peut-il pas toujours utiliser la politique optimale de remplacement de pages ?
- La politique optimale expulse la page qui ne sera pas utilisée pendant le plus longtemps, ce qui nécessite de connaître le futur. Étant donné que le système d'exploitation ne peut pas connaître les références futures, il utilise des approximations comme le 'least-recently-used' (moins récemment utilisé) ou l'algorithme 'clock' qui déduisent l'utilisation future probable de l'utilisation passée récente.