Système d’exploitation : la gestion de la mémoire – ch 1.4

MOOC NSI : Numérique et Sciences Informatiques
5 Dec 202209:30

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

00:00

🖥️ 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.

05:02

🧠 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

Le système d'exploitation est un programme informatique qui gère les ressources d'un ordinateur, notamment la mémoire, le processeur et les périphériques. Dans le script, il est mentionné que le système d'exploitation permet le fonctionnement quasiment en parallèle de différents processus et gère la répartition de la mémoire entre ces processus. Il joue un rôle crucial dans l'optimisation des performances de l'ordinateur.

💡Processeur

Le processeur, également appelé CPU (Central Processing Unit), est l'unité centrale de traitement d'un ordinateur. Il est responsable de l'exécution des instructions des programmes. Le script explique comment le processeur alloue la mémoire au processus et comment il interagit avec le système d'exploitation pour optimiser les performances.

💡Mémoire SRAM

La mémoire SRAM (Static Random-Access Memory) est un type de mémoire vive très rapide, accessible en un cycle d'instruction. Elle est située à l'intérieur de la CPU et est utilisée pour stocker les données et les instructions qui sont actuellement en cours d'utilisation. Le script mentionne que les registres, qui sont des composants de la SRAM, sont très rapides mais coûteux.

💡Mémoire principale

La mémoire principale, ou RAM (Random Access Memory), est la mémoire de travail d'un ordinateur. Elle est constituée de SD RAM, qui est moins chère que la SRAM mais moins rapide. Le script indique que la mémoire principale stocke des quantités importantes de données temporairement pour leur utilisation par le processeur.

💡Mémoire cache

La mémoire cache est un niveau intermédiaire de stockage qui permet d'accélérer l'accès aux données fréquemment utilisées. Elle est intégrée au processeur et est invisible pour le système d'exploitation. Le script explique que la mémoire cache est gérée par le processeur pour réduire les accès à la mémoire RAM.

💡Mémoire de stockage

La mémoire de stockage, ou mémoire secondaire, est utilisée pour le stockage persistant de données à long terme. Elle inclut les disques durs et les SSD (Solid State Drives). Le script mentionne que cette mémoire est moins rapide que la RAM et que les données doivent être chargées en mémoire principale pour être utilisées par les processus.

💡DMA (Direct Memory Access)

Le DMA (Direct Memory Access) est un mécanisme qui permet aux périphériques de transférer des données directement dans la mémoire principale sans intervention du processeur. Cela permet d'alléger le travail du processeur et d'accélérer les opérations d'E/S (entrée/sortie). Le script décrit comment le DMA est utilisé pour copier des données entre le disque dur et la mémoire RAM.

💡Process descriptor

Un process descriptor est une structure de données qui décrit un processus en cours d'exécution. Elle contient des informations telles que l'identifiant du processus (PID), l'état du processus, et les adresses de la mémoire associée. Dans le script, il est mentionné que le process descriptor est utilisé par le noyau du système d'exploitation pour gérer les processus et leur mémoire.

💡Mémoire virtuelle

La mémoire virtuelle est une technique qui permet aux systèmes d'exploitation de faire croire aux programmes qu'ils ont accès à une quantité de mémoire continue et privée, bien que cette mémoire soit en réalité gérée de manière dynamique et peut être stockée sur le disque. Le script explique comment le système d'exploitation alloue dynamiquement la mémoire virtuelle aux processus.

💡MMU (Memory Management Unit)

L'unité de gestion de la mémoire (MMU) est un composant du processeur qui gère la traduction des adresses de la mémoire virtuelle en adresses physiques. Elle est essentielle pour la gestion de la mémoire virtuelle et la protection des processus. Le script décrit comment l'MMU permet de mapper l'espace mémoire virtuel des processus sur la mémoire physique.

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

play00:01

dans la vidéo précédente nous avons

play00:03

présenté comment le système

play00:05

d'exploitation permettait le

play00:07

fonctionnement quasiment en parallèle de

play00:10

différents processus chacun de ces

play00:12

processus a besoin d'espace mémoire nous

play00:14

verrons donc dans cette partie comment

play00:17

le système d'exploitation répartit la

play00:19

mémoire entre les différents processus

play00:21

avant de présenter comment le processeur

play00:24

alloue la mémoire au processus rappelons

play00:27

comme exposé dans le modular

play00:28

architecture les quatre types de mémoire

play00:30

que l'on trouve sur un ordinateur tout

play00:32

d'abord à l'intérieur de la CPU on

play00:34

trouve les registres qui sont

play00:36

accessibles en un cycle d'instruction ce

play00:39

sont de la mémoire SRAM très rapide on

play00:42

trouve 15 registres pour la CPU et des

play00:44

registres pour les périphériques de

play00:46

calcul scmd FPU etc la mémoire

play00:50

principale ou mémoire de travail est

play00:52

constituée quant à elle de 4 à 16 Go de

play00:55

SD RAM beaucoup moins cher que la SRAM

play00:58

les vitesses des mémoires n'ont pas

play01:00

suivi l'évolution des processeurs il

play01:02

faut dynamo seconde plus d'une centaine

play01:04

de cycles processeurs pour accéder à une

play01:07

donnée dans la mémoire

play01:09

c'est pourquoi pour accélérer les

play01:11

processeurs a été rajouté la mémoire

play01:14

cache

play01:16

les mémoires devraient-on dire puisque

play01:18

il y a plusieurs niveaux de mémoire

play01:20

cache

play01:22

à l'intérieur du circuit intégré du

play01:24

processeur la mémoire Cash est

play01:26

complètement gérée par le processeur

play01:28

pour limiter les accès à la mémoire RAM

play01:30

et est invisible pour le système

play01:32

d'exploitation la suite de cette

play01:34

présentation ne parlera donc pas de

play01:36

mémoire 4

play01:38

enfin la mémoire de stockage ou mémoire

play01:42

secondaire permet le stockage persistant

play01:44

de très grandes quantités de données à

play01:46

bas coût mais au prix d'un temps d'accès

play01:48

aux données importants sans

play01:50

microsecondes pour accéder à une

play01:51

information sur un disque SSD 2010

play01:54

secondes pour un disque magnétique la

play01:57

mémoire de stockage n'est pas

play01:58

directement utilisable par les processus

play02:00

il faut donc charger en mémoire RAM les

play02:02

programmes et données stockés sur le

play02:04

disque le disque étant lent la CPU

play02:07

délègue la copie un périphérique dédié

play02:09

le DMA pour direct memory access une

play02:13

fois configuré et lancé par la CPU le

play02:16

DMA recopie une zone mémoire du disque

play02:18

dur en mémoire RAM ou vice-versa et

play02:21

indique à la CPU quand l'opération est

play02:23

terminée

play02:24

le processus ayant fait la demande est

play02:26

bloqué pendant l'attente du travail du

play02:28

DMA et libère ainsi la CP chaque

play02:31

processus lors de sa création se voit

play02:34

recevoir un large espace de mémoire de

play02:36

plusieurs gigaoctets dans lequel on

play02:38

trouve les instructions du programme

play02:42

une zone de données statique du

play02:44

programme un tas pour les allocations de

play02:46

mémoire dynamique une zone pour les

play02:49

bibliothèques cette zone peut être

play02:52

partagée avec d'autres processus

play02:54

utilisant les mêmes bibliothèques

play02:56

de l'autre côté de l'espace mémoire une

play02:59

zone est réservée à des fonctions

play03:00

d'optimisation et on trouve la pile

play03:04

stack en anglais dans laquelle sont

play03:07

stockés les contextes des appels de

play03:08

fonction et les variables de cette

play03:10

fonction cette pile augmente de taille à

play03:14

chaque appel de fonction et diminue à

play03:15

chaque retour d'une fonction

play03:17

en plus de cela dans la zone mémoire du

play03:20

noyau et créer une structure de quelques

play03:22

centaines d'octets de description du

play03:24

processus on y trouve l'identifiant du

play03:27

processus PID le statut du processus

play03:32

prêt exécuter bloquer etc un pointeur

play03:36

indiquant l'adresse de l'espace mémoire

play03:39

décrit juste avant

play03:41

l'identifiant de l'utilisateur

play03:43

propriétaire de ce processus et enfin la

play03:46

sauvegarde du contexte

play03:49

en effet au moment où un processus va

play03:52

passer du mode exécuté au mode bloqué ou

play03:54

prêt le noyau sauvegarde le contexte du

play03:57

processeur le contexte comprend

play04:00

notamment l'état des registres de la CPU

play04:02

du pointeur vers l'instruction en cours

play04:04

du pointeur de pile le résultat de la

play04:07

dernière opération ou du dernier test

play04:10

juste avant le passage du processus à

play04:13

nouveau en mode exécuté le noyau recopie

play04:16

son contexte dans le processeur pour que

play04:18

le processus retrouve celui-ci dans

play04:20

l'état exact où il avait quitté cette

play04:22

structure nommée process descriptor est

play04:25

un élément de la table des processus

play04:27

liste doublement Chênée présente dans la

play04:30

zone mémoire du noyau et permettant donc

play04:33

à celui-ci d'y accéder rapidement pour

play04:35

l'ordonnancement et pour les changements

play04:36

de contexte sous Linux le plan mémoire

play04:39

d'un processus est disponible dans le

play04:42

fichier map du dossier associé au

play04:44

processus

play04:45

ici est affiché une partie du plan

play04:47

mémoire du processus d'un simple

play04:49

programme python on peut voir la taille

play04:52

de plus de 100 Go de cet espace mémoire

play04:54

avec les zones de code le tas les

play04:57

bibliothèques la pile et l'espace

play04:59

réservé aux noyaux

play05:02

on peut noter également que la plus

play05:04

petite division dans l'espace mémoire

play05:06

virtuel est 0 x 1000 ce qui correspond à

play05:09

4 kg

play05:11

évidemment le système ne possède pas

play05:13

suffisamment de mémoire pour affecter

play05:15

plusieurs gigaoctets à chaque processus

play05:17

voyons donc maintenant comment elle est

play05:19

allouée dynamiquement la mémoire pour

play05:21

permettre la création de ces grands

play05:24

espaces mémoires pour chaque processus

play05:27

lors de la création d'un processus le

play05:29

process descriptor est créé

play05:31

l'espace mémoire vu par un processus est

play05:34

un espace mémoire virtuel lors de la

play05:37

création d'un processus le process

play05:39

descriptor est créé et un espace de

play05:41

mémoire virtuelle est allé au processus

play05:44

la CPU demande alors la copie des

play05:48

instructions des données et des

play05:50

bibliothèques depuis le disque dur dans

play05:52

l'espace virtuel du processus

play05:57

sont créés alors le tas pour la mémoire

play06:00

à louer dynamiquement

play06:03

et le la zone pour les ressources du

play06:07

noyau et la pile

play06:11

le gestionnaire de mémoire du processeur

play06:13

MMU pour mémorer management unique

play06:16

contrôlé par le noyau du système

play06:18

d'exploitation pelle a correspondance

play06:20

entre cet espace mémoire virtuel et des

play06:23

zones libres de la mémoire de travail

play06:26

la translation d'adresse par la MMU vers

play06:29

la mémoire physique se fait par page de

play06:31

4 kg un processus peut demander un

play06:34

supplément de mémoire pour le TAP par

play06:37

exemple il obtient alors un supplément

play06:39

de mémoire contigu dans son espace

play06:40

virtuel alors que physiquement cette

play06:44

extension du TAS est située à un autre

play06:46

endroit de la mémoire

play06:48

lors de la création d'un second

play06:49

processus un second espace de mémoire

play06:52

virtuelle est créé un second process

play06:55

descriptor aussi cet espace mémoire va

play06:59

pouvoir partager l'espace la zone de

play07:02

mémoire partagée des bibliothèques avec

play07:04

le premier processus si la mémoire

play07:07

physique est pleine pour libérer de la

play07:09

place pour de nouveaux processus la MMU

play07:13

peut libérer de la mémoire en stockant

play07:15

provisoirement sur le disque dans une

play07:18

zone nommée swap les pages correspondant

play07:21

à l'espace adressable d'un processus

play07:23

prêt ou bloqué

play07:25

la fonction top dont le résultat est

play07:27

affiché dessous permet d'afficher des

play07:30

informations du process descriptor

play07:33

sur le processus python décrit à la

play07:37

diapo précédente on voit ici le numéro

play07:39

du PIB l'utilisateur propriétaire du

play07:42

processus et en koffichés l'occupation

play07:45

de la mémoire virtuelle sans mégaoctets

play07:48

de la mémoire physique 23 méga de la

play07:51

mémoire partagée 8 méga

play07:54

le statut du process est-ce comme

play07:56

suspendu ou bloqué en attente de

play07:57

l'écoutement en attente de l'écoulement

play08:00

d'un délai à travers cette courte

play08:02

animation on voit le rôle du

play08:04

gestionnaire de mémoire configuré par le

play08:06

système d'exploitation

play08:08

maintenir à jour une table indiquant la

play08:10

localisation physique des pages des

play08:12

espaces adressables des processus gérer

play08:15

les pages mémoires partagées entre

play08:17

plusieurs processus

play08:18

allouer des pages libres lors des

play08:21

créations de processus ou des demandes

play08:22

d'extension du tas ou de la pile et les

play08:25

libérer lors des destructions de

play08:27

processus ou des libération de mémoire

play08:29

gérer le soir parfois nommé va-et-vient

play08:32

en français entre mémoires de travail et

play08:34

mémoire de stockage protéger les pages

play08:37

mémoire d'un processus contre une

play08:39

écriture par un autre processus mal

play08:41

programmé ou malveillant

play08:44

par ailleurs la palination de l'espace

play08:46

mémoire facilite l'existence de la

play08:48

mémoire virtuelle en traduisant les

play08:50

zones de mémoire par page de 4 kg

play08:54

la palestination évite aussi après la

play08:57

création destruction de nombreux

play08:58

processus d'avoir une mémoire physique

play09:01

trop fragmentée avec de multiples

play09:03

petites zones libres

play09:06

la gestion de la mémoire est un exemple

play09:09

supplémentaire du lien étroit entre le

play09:11

matériel et le système d'exploitation

play09:14

notons enfin que les systèmes

play09:16

d'exploitation temps réel toujours dans

play09:18

l'objectif de maîtriser les temps

play09:20

d'accès au processus propose de choisir

play09:22

une allocation statique des espaces

play09:24

mémoires alloués aux tâches

Rate This

5.0 / 5 (0 votes)

Связанные теги
Systèmes d'exploitationGestion de la mémoireProcesseursMémoire virtuelleMémoire physiqueProcessusRAMStockageDMAOptimisation
Вам нужно краткое изложение на английском?