Système d’exploitation : la gestion de la mémoire – ch 1.4
Summary
TLDRLa vidéo explique comment le système d'exploitation gère la mémoire pour les processus. Elle décrit les différents types de mémoire d'un ordinateur, y compris les registres, la mémoire principale, les caches et la mémoire de stockage. Elle souligne l'importance de la mémoire virtuelle et la façon dont le processeur utilise la MMU pour traduire les adresses de la mémoire virtuelle en adresses physiques. La gestion dynamique de la mémoire, l'utilisation du tas, la mémoire partagée et la protection des pages mémoire sont également abordées, mettant en évidence le lien entre le matériel et le système d'exploitation.
Takeaways
- 💡 Le système d'exploitation permet le fonctionnement quasi-simultané de différents processus, chacun ayant besoin d'espace mémoire.
- 📏 Les registres SRAM à l'intérieur de la CPU sont très rapides et accessibles en un cycle d'instruction.
- 💾 La mémoire principale, généralement composée de SD RAM, est beaucoup moins chère que la SRAM et stocke jusqu'à 16 Go de données.
- 🚀 Pour accélérer l'accès aux données, des niveaux de mémoire cache ont été ajoutés, gérés directement par le processeur et invisibles pour le système d'exploitation.
- 🔄 La mémoire de stockage ou secondaire permet le stockage persistant de grandes quantités de données à faible coût, mais avec un temps d'accès plus long.
- 🔄 Le DMA (Direct Memory Access) permet aux processus de charger des programmes et des données sur le disque dur dans la mémoire RAM sans surcharger la CPU.
- 📈 Chaque processus reçoit un espace de mémoire virtuel de plusieurs gigaoctets, comprenant code, données, tas, bibliothèques et pile.
- 🔑 Le process descriptor contient des informations clés sur le processus, comme le PID, l'état, l'espace mémoire et le contexte du processeur.
- 🔄 La gestion dynamique de la mémoire par le système d'exploitation permet la création d'espaces mémoire virtuels grands pour chaque processus.
- 🔄 La MMU (Memory Management Unit) traduit les adresses de l'espace mémoire virtuel en adresses physiques, gèrent la mémoire partagée et optimise l'utilisation de la mémoire.
Q & A
Quel est le rôle principal du système d'exploitation dans la gestion de la mémoire?
-Le système d'exploitation permet la répartition de la mémoire entre les différents processus, en créant des espaces mémoire virtuels et en gérant l'allocation dynamique de la mémoire pour chaque processus.
Quels sont les quatre types de mémoire mentionnés dans le script?
-Les quatre types de mémoire sont les registres, la mémoire principale (RAM), la mémoire cache et la mémoire de stockage (mémoire secondaire).
Pourquoi les processeurs ont-ils besoin de mémoire cache?
-Les processeurs ont besoin de mémoire cache pour accélérer l'accès aux données, car les vitesses des mémoires n'ont pas suivi l'évolution des vitesses des processeurs.
Quel est le rôle du DMA (Direct Memory Access) dans la mémoire?
-Le DMA est un périphérique dédié qui copie des données directement entre la mémoire et un périphérique, sans intervention du processeur, permettant ainsi d'alléger la charge du processeur.
Comment est organisée la mémoire virtuelle d'un processus lors de sa création?
-Lors de la création d'un processus, un process descriptor est créé et un espace de mémoire virtuelle lui est alloué. Cet espace inclut les instructions du programme, la zone de données statique, le tas, la zone pour les bibliothèques et la zone réservée pour les fonctions d'optimisation.
Quel est le rôle de la pile (stack) dans la mémoire d'un processus?
-La pile stocke les contextes des appels de fonction et les variables locales de ces fonctions. Elle augmente de taille à chaque appel de fonction et diminue à chaque retour d'une fonction.
Quel est le process descriptor et où est-il stocké?
-Le process descriptor est une structure de quelques centaines d'octets descriptif d'un processus, stockée dans la zone mémoire du noyau. Elle contient des informations telles que l'identifiant du processus (PID), le statut du processus, et la sauvegarde du contexte du processeur.
Comment le gestionnaire de mémoire (MMU) contribue-t-il à la gestion de la mémoire?
-Le gestionnaire de mémoire (MMU) contrôle la correspondance entre l'espace mémoire virtuel et des zones libres de la mémoire de travail. Il gère la traduction d'adresses, la mémoire partagée entre plusieurs processus, l'allocation et la libération de pages mémoire, et il protège les pages mémoire d'un processus contre des écritures non autorisées.
Quelle est la différence entre la mémoire virtuelle et la mémoire physique?
-La mémoire virtuelle est un espace d'adresses utilisée par les processus, qui est géré par le système d'exploitation et peut être beaucoup plus grande que la mémoire physique disponible. La mémoire physique est la mémoire réelle installée dans l'ordinateur, dont la quantité est limitée.
Pourquoi les systèmes d'exploitation temps réel choisissent-ils une allocation statique de la mémoire?
-Les systèmes d'exploitation temps réel choisissent une allocation statique de la mémoire pour garantir des temps d'accès prévisibles et maîtrisés aux processus, ce qui est essentiel pour respecter les contraintes de temps de ces systèmes.
Outlines
🖥️ Introduction aux types de mémoire dans un système d'exploitation
Le paragraphe 1 explique comment le système d'exploitation gère la mémoire pour différents processus. Il introduit les quatre types de mémoire d'un ordinateur : les registres, la mémoire principale (SDRAM), la mémoire cache, et la mémoire de stockage (SSD ou disques durs magnétiques). La mémoire cache, gérée par le processeur, est invisible pour le système d'exploitation et permet de limiter l'accès à la RAM. La mémoire de stockage, quant à elle, est utilisée pour stocker des données de manière persistante, mais n'est pas directement utilisable par les processus. Les processus doivent charger leurs programmes et données dans la RAM, avec l'aide du DMA pour effectuer ces transferts. Enfin, la création d'un processus implique la réservation d'un espace mémoire spécifique qui inclut le code, les données, la pile (stack), et d'autres zones dédiées aux bibliothèques partagées et à l'optimisation.
🧠 Gestion dynamique de la mémoire virtuelle
Le paragraphe 2 aborde la gestion dynamique de la mémoire virtuelle lors de la création d'un processus. Chaque processus se voit allouer un espace mémoire virtuel, géré par le processeur via la MMU (Memory Management Unit). Cette unité traduit les adresses virtuelles en adresses physiques. Lorsque la mémoire physique est pleine, la MMU peut déplacer temporairement des pages de mémoire sur le disque dur dans une zone appelée swap. Le texte mentionne également que la mémoire virtuelle permet de partager des zones de bibliothèques entre plusieurs processus. Des outils comme la commande 'top' permettent de visualiser les informations liées aux processus, y compris leur occupation mémoire. La gestion de la mémoire implique la protection des pages contre des accès non autorisés et la prévention de la fragmentation de la mémoire physique.
Mindmap
Keywords
💡Système d'exploitation
💡Processeur
💡Mémoire SRAM
💡Mémoire principale
💡Mémoire cache
💡Mémoire de stockage
💡DMA (Direct Memory Access)
💡Process descriptor
💡Mémoire virtuelle
💡MMU (Memory Management Unit)
Highlights
Le système d'exploitation permet le fonctionnement quasiment en parallèle de différents processus.
Chaque processus a besoin d'espace mémoire pour fonctionner.
Les registres SRAM à l'intérieur de la CPU sont très rapides et accessibles en un cycle d'instruction.
La mémoire principale est constituée de SD RAM, moins chère que la SRAM.
La mémoire cache a été ajoutée pour accélérer l'accès aux données en complément de la mémoire RAM.
La mémoire cache est gérée par le processeur et est invisible pour le système d'exploitation.
La mémoire de stockage permet le stockage persistant de grandes quantités de données à bas coût.
Le DMA (Direct Memory Access) est utilisé pour optimiser les transferts de données entre le disque et la mémoire RAM.
Chaque processus reçoit un espace de mémoire virtuel de plusieurs gigaoctets lors de sa création.
La mémoire virtuelle est composée de code, données statiques, tas, bibliothèques partagées, et pile.
Le process descriptor contient des informations clés sur le processus comme le PID et l'état du processus.
Le gestionnaire de mémoire (MMU) établit une correspondance entre l'espace mémoire virtuel et la mémoire de travail.
La mémoire est allouée dynamiquement au processus en fonction de ses besoins.
La mémoire virtuelle peut être étendue en utilisant des pages de mémoire physiques situées à d'autres endroits.
La mémoire physique peut être partagée entre plusieurs processus pour optimiser l'utilisation des ressources.
Le swap est une zone sur le disque utilisée pour stocker temporairement des pages de mémoire lors de la saturation de la mémoire physique.
La commande 'top' permet d'afficher des informations en temps réel sur les processus et leur utilisation de la mémoire.
La gestion de la mémoire est un exemple de la relation étroite entre le matériel et le système d'exploitation.
Les systèmes d'exploitation temps réel proposent une allocation statique des espaces mémoires pour assurer un contrôle précis des temps d'accès.
Transcripts
dans la vidéo précédente nous avons
présenté comment le système
d'exploitation permettait le
fonctionnement quasiment en parallèle de
différents processus chacun de ces
processus a besoin d'espace mémoire nous
verrons donc dans cette partie comment
le système d'exploitation répartit la
mémoire entre les différents processus
avant de présenter comment le processeur
alloue la mémoire au processus rappelons
comme exposé dans le modular
architecture les quatre types de mémoire
que l'on trouve sur un ordinateur tout
d'abord à l'intérieur de la CPU on
trouve les registres qui sont
accessibles en un cycle d'instruction ce
sont de la mémoire SRAM très rapide on
trouve 15 registres pour la CPU et des
registres pour les périphériques de
calcul scmd FPU etc la mémoire
principale ou mémoire de travail est
constituée quant à elle de 4 à 16 Go de
SD RAM beaucoup moins cher que la SRAM
les vitesses des mémoires n'ont pas
suivi l'évolution des processeurs il
faut dynamo seconde plus d'une centaine
de cycles processeurs pour accéder à une
donnée dans la mémoire
c'est pourquoi pour accélérer les
processeurs a été rajouté la mémoire
cache
les mémoires devraient-on dire puisque
il y a plusieurs niveaux de mémoire
cache
à l'intérieur du circuit intégré du
processeur la mémoire Cash est
complètement gérée par le processeur
pour limiter les accès à la mémoire RAM
et est invisible pour le système
d'exploitation la suite de cette
présentation ne parlera donc pas de
mémoire 4
enfin la mémoire de stockage ou mémoire
secondaire permet le stockage persistant
de très grandes quantités de données à
bas coût mais au prix d'un temps d'accès
aux données importants sans
microsecondes pour accéder à une
information sur un disque SSD 2010
secondes pour un disque magnétique la
mémoire de stockage n'est pas
directement utilisable par les processus
il faut donc charger en mémoire RAM les
programmes et données stockés sur le
disque le disque étant lent la CPU
délègue la copie un périphérique dédié
le DMA pour direct memory access une
fois configuré et lancé par la CPU le
DMA recopie une zone mémoire du disque
dur en mémoire RAM ou vice-versa et
indique à la CPU quand l'opération est
terminée
le processus ayant fait la demande est
bloqué pendant l'attente du travail du
DMA et libère ainsi la CP chaque
processus lors de sa création se voit
recevoir un large espace de mémoire de
plusieurs gigaoctets dans lequel on
trouve les instructions du programme
une zone de données statique du
programme un tas pour les allocations de
mémoire dynamique une zone pour les
bibliothèques cette zone peut être
partagée avec d'autres processus
utilisant les mêmes bibliothèques
de l'autre côté de l'espace mémoire une
zone est réservée à des fonctions
d'optimisation et on trouve la pile
stack en anglais dans laquelle sont
stockés les contextes des appels de
fonction et les variables de cette
fonction cette pile augmente de taille à
chaque appel de fonction et diminue à
chaque retour d'une fonction
en plus de cela dans la zone mémoire du
noyau et créer une structure de quelques
centaines d'octets de description du
processus on y trouve l'identifiant du
processus PID le statut du processus
prêt exécuter bloquer etc un pointeur
indiquant l'adresse de l'espace mémoire
décrit juste avant
l'identifiant de l'utilisateur
propriétaire de ce processus et enfin la
sauvegarde du contexte
en effet au moment où un processus va
passer du mode exécuté au mode bloqué ou
prêt le noyau sauvegarde le contexte du
processeur le contexte comprend
notamment l'état des registres de la CPU
du pointeur vers l'instruction en cours
du pointeur de pile le résultat de la
dernière opération ou du dernier test
juste avant le passage du processus à
nouveau en mode exécuté le noyau recopie
son contexte dans le processeur pour que
le processus retrouve celui-ci dans
l'état exact où il avait quitté cette
structure nommée process descriptor est
un élément de la table des processus
liste doublement Chênée présente dans la
zone mémoire du noyau et permettant donc
à celui-ci d'y accéder rapidement pour
l'ordonnancement et pour les changements
de contexte sous Linux le plan mémoire
d'un processus est disponible dans le
fichier map du dossier associé au
processus
ici est affiché une partie du plan
mémoire du processus d'un simple
programme python on peut voir la taille
de plus de 100 Go de cet espace mémoire
avec les zones de code le tas les
bibliothèques la pile et l'espace
réservé aux noyaux
on peut noter également que la plus
petite division dans l'espace mémoire
virtuel est 0 x 1000 ce qui correspond à
4 kg
évidemment le système ne possède pas
suffisamment de mémoire pour affecter
plusieurs gigaoctets à chaque processus
voyons donc maintenant comment elle est
allouée dynamiquement la mémoire pour
permettre la création de ces grands
espaces mémoires pour chaque processus
lors de la création d'un processus le
process descriptor est créé
l'espace mémoire vu par un processus est
un espace mémoire virtuel lors de la
création d'un processus le process
descriptor est créé et un espace de
mémoire virtuelle est allé au processus
la CPU demande alors la copie des
instructions des données et des
bibliothèques depuis le disque dur dans
l'espace virtuel du processus
sont créés alors le tas pour la mémoire
à louer dynamiquement
et le la zone pour les ressources du
noyau et la pile
le gestionnaire de mémoire du processeur
MMU pour mémorer management unique
contrôlé par le noyau du système
d'exploitation pelle a correspondance
entre cet espace mémoire virtuel et des
zones libres de la mémoire de travail
la translation d'adresse par la MMU vers
la mémoire physique se fait par page de
4 kg un processus peut demander un
supplément de mémoire pour le TAP par
exemple il obtient alors un supplément
de mémoire contigu dans son espace
virtuel alors que physiquement cette
extension du TAS est située à un autre
endroit de la mémoire
lors de la création d'un second
processus un second espace de mémoire
virtuelle est créé un second process
descriptor aussi cet espace mémoire va
pouvoir partager l'espace la zone de
mémoire partagée des bibliothèques avec
le premier processus si la mémoire
physique est pleine pour libérer de la
place pour de nouveaux processus la MMU
peut libérer de la mémoire en stockant
provisoirement sur le disque dans une
zone nommée swap les pages correspondant
à l'espace adressable d'un processus
prêt ou bloqué
la fonction top dont le résultat est
affiché dessous permet d'afficher des
informations du process descriptor
sur le processus python décrit à la
diapo précédente on voit ici le numéro
du PIB l'utilisateur propriétaire du
processus et en koffichés l'occupation
de la mémoire virtuelle sans mégaoctets
de la mémoire physique 23 méga de la
mémoire partagée 8 méga
le statut du process est-ce comme
suspendu ou bloqué en attente de
l'écoutement en attente de l'écoulement
d'un délai à travers cette courte
animation on voit le rôle du
gestionnaire de mémoire configuré par le
système d'exploitation
maintenir à jour une table indiquant la
localisation physique des pages des
espaces adressables des processus gérer
les pages mémoires partagées entre
plusieurs processus
allouer des pages libres lors des
créations de processus ou des demandes
d'extension du tas ou de la pile et les
libérer lors des destructions de
processus ou des libération de mémoire
gérer le soir parfois nommé va-et-vient
en français entre mémoires de travail et
mémoire de stockage protéger les pages
mémoire d'un processus contre une
écriture par un autre processus mal
programmé ou malveillant
par ailleurs la palination de l'espace
mémoire facilite l'existence de la
mémoire virtuelle en traduisant les
zones de mémoire par page de 4 kg
la palestination évite aussi après la
création destruction de nombreux
processus d'avoir une mémoire physique
trop fragmentée avec de multiples
petites zones libres
la gestion de la mémoire est un exemple
supplémentaire du lien étroit entre le
matériel et le système d'exploitation
notons enfin que les systèmes
d'exploitation temps réel toujours dans
l'objectif de maîtriser les temps
d'accès au processus propose de choisir
une allocation statique des espaces
mémoires alloués aux tâches
تصفح المزيد من مقاطع الفيديو ذات الصلة
5.0 / 5 (0 votes)