WEBVTT

00:07.880 --> 00:13.850
Avant de nous lancer directement dans les discussions sur les mappages de mémoire, revoyons notre concept de pagination

00:13.850 --> 00:15.660
de la mémoire virtuelle.

00:15.680 --> 00:17.070
Qu'est-ce que la mémoire physique ?

00:17.090 --> 00:20.150
Qu'est-ce que la mémoire secondaire, etc. etc.

00:20.870 --> 00:23.210
Vous pouvez donc voir un diagramme sur la diapositive.

00:23.420 --> 00:24.950
C'est un très beau diagramme.

00:25.010 --> 00:27.500
Vous pouvez le voir sur le côté gauche.

00:27.500 --> 00:30.800
Je vous ai montré une mémoire virtuelle de processus typique.

00:31.040 --> 00:34.160
Disons que vous avez un processus, un PE et un processus.

00:35.000 --> 00:38.840
Il s'agit d'un instantané de la mémoire virtuelle du processus.

00:38.870 --> 00:39.380
PE.

00:40.510 --> 00:47.500
Si vous comprenez le fonctionnement de la mémoire virtuelle, vous savez qu'elle est divisée logiquement

00:47.590 --> 00:51.430
en petits morceaux de mémoire appelés pages virtuelles.

00:55.160 --> 00:55.730
D'accord.

00:55.730 --> 00:58.310
Il s'agit donc de pages virtuelles.

00:59.000 --> 01:02.690
La taille de la page virtuelle est fixe sur un système.

01:02.720 --> 01:05.870
Sur la plupart des systèmes, elle est de 4096 octets.

01:07.070 --> 01:08.780
Mais il est configurable.

01:08.780 --> 01:15.200
Vous pouvez modifier la taille de la page virtuelle de 4096 en deux, soit 8192 octets.

01:15.200 --> 01:23.120
De toute façon, il s'agit d'une valeur très courante de la taille d'une page virtuelle typique d'une mémoire virtuelle.

01:26.050 --> 01:26.740
Dans le système.

01:26.740 --> 01:30.650
Nous disposons d'une unité appelée MMU (Memory Management Unit).

01:30.670 --> 01:36.190
L'objectif de cette AMU est de traduire l'adresse virtuelle en adresse physique.

01:36.400 --> 01:43.210
Ainsi, lorsque votre programme s'exécute, il ne génère que les adresses virtuelles.

01:43.450 --> 01:48.370
Votre programme ne sait pas du tout qu'il existe des adresses physiques.

01:49.580 --> 01:50.150
D'accord.

01:50.920 --> 01:51.970
L'adresse virtuelle.

01:51.970 --> 01:54.220
Supposons que votre programme génère une adresse virtuelle.

01:54.220 --> 01:58.660
E Cette adresse pourrait être l'adresse de l'instruction dans votre programme.

01:59.720 --> 02:03.770
Cette adresse peut également être l'adresse d'un emplacement de mémoire dans votre programme.

02:03.770 --> 02:05.840
Il pourrait donc s'agir de l'adresse des données.

02:06.350 --> 02:08.130
Qu'en est-il ?

02:08.150 --> 02:10.490
Le système d'exploitation s'alimenterait.

02:11.500 --> 02:17.020
L'adresse A Il s'agit de l'adresse virtuelle A de l'unité de gestion de la mémoire du système.

02:17.020 --> 02:23.740
Pour traduire l'adresse virtuelle en adresse physique, disons que l'adresse physique de la

02:23.860 --> 02:31.090
conversion est B. L'adresse physique B correspond donc à l'emplacement dans la mémoire physique.

02:31.090 --> 02:32.200
C'est la mémoire vive.

02:32.740 --> 02:33.340
D'accord.

02:33.340 --> 02:37.900
A signifie donc l'emplacement dans la mémoire virtuelle, disons ici.

02:37.960 --> 02:40.840
Il s'agit de l'adresse dans la mémoire virtuelle du programme.

02:40.840 --> 02:44.080
Et B désigne l'emplacement dans la mémoire physique.

02:44.080 --> 02:45.430
Disons que B est ici.

02:46.520 --> 02:47.090
D'accord.

02:50.000 --> 02:56.450
Les régions colorées en jaune dans ce bélier représentent les pages physiques.

02:57.820 --> 03:00.280
qui fait partie de ce processus.

03:00.310 --> 03:00.850
P.

03:01.910 --> 03:05.600
La mémoire vive est partagée par de nombreuses applications qui tournent sur le système.

03:06.290 --> 03:14.060
Tout comme la mémoire virtuelle est divisée en pages virtuelles, la mémoire vive est également

03:14.060 --> 03:16.400
divisée en cadres.

03:17.290 --> 03:23.740
Nous sommes donc en train de récapituler le fonctionnement de la mémoire virtuelle, de la mémoire physique et de la pagination.

03:23.770 --> 03:25.270
Nous n'entrerons pas dans les détails.

03:25.300 --> 03:31.900
Nous allons juste faire un petit récapitulatif afin de pouvoir passer à la discussion sur nos mappings de mémoire.

03:32.380 --> 03:37.390
Ces compartiments que vous pouvez voir dans la mémoire physique s'appellent des cadres.

03:38.080 --> 03:44.710
En règle générale, la taille de la trame est identique à la taille de la page de mémoire virtuelle, qui est de 4096 octets.

03:45.190 --> 03:45.790
D'accord.

03:46.300 --> 03:48.550
Voici le cadre.

03:49.000 --> 03:52.300
La trame stocke les données binaires.

03:53.910 --> 04:02.190
Les données binaires enregistrées dans ce cadre particulier de la mémoire vive sont appelées page physique.

04:05.030 --> 04:05.630
D'accord.

04:05.750 --> 04:10.700
Chaque trame contient donc une page physique, dont la taille est égale à celle

04:10.700 --> 04:13.070
de la trame, soit 4096 octets.

04:14.180 --> 04:14.750
D'accord.

04:18.750 --> 04:22.950
Vous pouvez donc voir ici le processus.

04:22.950 --> 04:28.320
PE Seuls trois cadres de la mémoire vive ont été alloués au processus.

04:28.360 --> 04:29.970
P Très bien.

04:29.970 --> 04:36.750
Ces trois cadres dans la mémoire vive stockent les pages physiques du processus.

04:38.390 --> 04:45.710
Ainsi, dans la mémoire virtuelle, vous pouvez voir qu'il s'agit des pages virtuelles du processus.

04:45.740 --> 04:51.890
P Supposons que la mémoire virtuelle du processus P soit divisée en huit pages

04:51.890 --> 04:52.970
virtuelles.

04:53.060 --> 05:00.200
Ainsi, sur ces huit pages virtuelles, trois pages virtuelles sont chargées dans la mémoire vive, disons

05:00.200 --> 05:01.880
trois, quatre et sept.

05:02.600 --> 05:03.230
D'accord.

05:04.180 --> 05:07.450
La totalité de la mémoire vive n'est pas allouée à votre processus.

05:08.210 --> 05:10.510
Une mémoire vive est partagée par plusieurs applications.

05:11.360 --> 05:13.760
Voici donc comment fonctionne Pékin.

05:14.150 --> 05:20.870
Un sous-ensemble de pages virtuelles du processus est traduit en pages physiques, qui sont ensuite chargées dans

05:20.870 --> 05:25.430
la mémoire physique dans un certain nombre de cadres de la mémoire physique.

05:26.170 --> 05:26.800
D'accord.

05:27.040 --> 05:31.600
Le dernier composant que vous pouvez voir dans ce diagramme est le stockage secondaire.

05:31.600 --> 05:32.830
C'est le disque.

05:34.110 --> 05:39.390
Le contenu de la mémoire physique est lu ou écrit dans cette mémoire secondaire.

05:40.320 --> 05:40.920
D'accord.

05:41.730 --> 05:47.730
Tous les programmes n'ont pas besoin de stockage secondaire, mais la plupart des applications non triviales en ont besoin.

05:47.970 --> 05:54.450
Vous avez donc dû écrire des programmes de structure de données sur des tableaux, des QS, des piles, et vous avez dû remarquer que

05:54.450 --> 05:57.090
ces programmes n'ont rien à voir avec le disque.

05:57.870 --> 05:58.460
D'accord.

05:58.470 --> 06:01.740
L'intégralité du contenu de ces programmes se trouve dans la mémoire vive.

06:01.740 --> 06:07.590
Et dès que vous mettez fin à votre programme, toutes les données de la mémoire vive sont également perdues.

06:08.340 --> 06:15.360
Vous ne lisez ni n'écrivez rien dans le bureau, mais de nombreuses applications ont besoin de bureaux pour

06:15.360 --> 06:16.320
fonctionner.

06:16.620 --> 06:23.190
Par exemple, une application telle que le Bloc-notes, qui est une application très simple, dès que vous appuyez sur la touche

06:23.190 --> 06:27.180
de contrôle, le contenu du bloc-notes est enregistré sur le disque.

06:27.780 --> 06:28.350
D'accord.

06:28.350 --> 06:34.770
En d'autres termes, je peux dire que les pages physiques qui appartiennent au bloc-notes seront copiées et écrites

06:34.770 --> 06:36.120
sur le disque.

06:36.600 --> 06:41.670
C'est ainsi que le contenu du bloc-notes est préservé lors des redémarrages de la machine.

06:42.570 --> 06:46.170
Tant que vous enregistrez le contenu de l'application sur le disque.

06:46.380 --> 06:50.190
Ce contenu perdure même après un redémarrage de la machine.

06:51.190 --> 06:53.230
Passons maintenant à la cartographie mammaire.

06:54.700 --> 06:58.270
La cartographie mammaire est utilisée pour modifier le stockage secondaire du programme.

06:58.270 --> 07:03.520
Dans ce cas, le stockage secondaire le plus courant du programme n'est rien d'autre qu'un disque, car

07:03.520 --> 07:06.400
le disque est un matériel fourni avec votre machine.

07:06.910 --> 07:13.240
Le mappage de la mémoire est donc utilisé pour remplacer le stockage secondaire du programme par une autre source, par exemple la

07:13.240 --> 07:17.140
mémoire d'un périphérique matériel ou un fichier particulier sur le disque.

07:18.400 --> 07:22.300
Supposons que vous utilisiez un bloc-notes sur votre ordinateur.

07:22.630 --> 07:30.460
Et si je disais qu'au lieu de sauvegarder les pages physiques du bloc-notes sur le disque, je retire

07:30.460 --> 07:34.180
le disque et le remplace par une autre mémoire.

07:34.180 --> 07:35.680
Disons la carte SD.

07:37.110 --> 07:46.460
Ou disons une clé USB ou un autre périphérique de stockage connecté via le port USB à votre machine.

07:46.470 --> 07:49.500
Mais en fin de compte, cet appareil est aussi un souvenir.

07:52.890 --> 07:57.660
Le remappage de mammifères est donc utilisé pour remplacer le stockage secondaire du programme par une autre source, par exemple

07:57.660 --> 08:00.900
la mémoire d'un périphérique matériel ou un fichier particulier sur le disque.

08:01.260 --> 08:06.480
Votre application n'est même pas consciente de l'existence d'une mémoire physique, et encore moins d'une mémoire secondaire.

08:06.480 --> 08:13.080
Rappelez-vous donc que votre application sait seulement qu'il existe quelque chose appelé mémoire virtuelle, et qu'à

08:13.080 --> 08:19.440
part cela, elle n'est jamais au courant de l'existence d'une mémoire physique ou d'un stockage secondaire.

08:20.760 --> 08:28.020
Ainsi, la même application de bloc-notes fonctionnera sans problème, même si vous remplacez le stockage secondaire par une imprimante, un appareil

08:28.020 --> 08:31.560
photo, une mémoire, etc. etc.

08:32.160 --> 08:32.760
D'accord.

08:33.480 --> 08:39.960
Jusqu'à présent, dans ce cours vidéo, nous avons abordé les concepts de base de la pagination de la mémoire virtuelle,

08:39.960 --> 08:43.800
de la mémoire physique, de l'unité de traduction (MCU).

08:44.430 --> 08:49.500
Nous avons discuté à un niveau très élevé de ce qu'est la cartographie de la mémoire et de son objectif.

08:49.770 --> 08:56.520
Dans la prochaine conférence vidéo, nous irons plus loin et, à l'aide d'une illustration, je vous montrerai comment fonctionne

08:56.520 --> 08:59.580
exactement la cartographie de la mémoire.
