Dans ce cours, nous allons donc discuter de la manière dont le mappage de la mémoire est effectué dans le système d'exploitation
de type Linux.
Le mappage de la mémoire se fait donc à l'aide d'un système appelé map.
MAP est donc un appel système bien connu qui est fourni par le système d'exploitation Linux et, en utilisant un appel système MAP, nous effectuons
tous les mappages de mémoire.
Tout d'abord, la cartographie mammaire est un concept analogue à l'insertion d'une clé USB dans votre ordinateur
portable.
Lorsque vous insérez une clé USB de 32 Go dans votre ordinateur portable, la mémoire physique
de votre ordinateur portable, le stockage secondaire, qui était de 512 gigaoctets, devient
512 plus 32 gigaoctets.
C'est vrai.
D'une certaine manière, en insérant un lecteur de stylo de 32 Go dans votre ordinateur portable, vous avez en fait augmenté
la capacité de stockage secondaire de votre ordinateur portable de 512 à 512 plus 32, soit 544 gigaoctets.
La cartographie de la mémoire est donc un concept quelque peu similaire.
Dans cet exemple, nous avons un fichier texte dont la taille est déjà de 8192 octets, et ce fichier texte se trouve sur
votre bureau.
D'accord.
En utilisant le mappage de la mémoire, nous allions faire en sorte que ce fichier texte de 8192 octets
soit visible en tant que mémoire virtuelle de 8192 octets pour votre processus.
D'accord.
Ainsi, en utilisant un appel au système de cartes, nous allons écrire un programme, et je vais vous montrer une démo sur la façon dont un système de
cartes est utilisé en utilisant un système de cartes appelé n'importe quel stockage secondaire ou n'importe quelle mémoire secondaire.
Dans ce cas, ce fichier texte peut être importé.
Notez le mot "importé".
En tant que mémoire virtuelle dans le processus, l'espace d'adressage virtuel.
Ainsi, dès que vous appliquez le système de cartes, faites appel au processus.
Disons que c'est le processus.
P une mémoire virtuelle.
Le processus P one créera de nouvelles pages de mémoire virtuelle dans son espace d'adressage virtuel.
Ces pages de mémoire virtuelle doivent être consécutives.
D'accord.
Et puisque nous partons de ce principe, disons que la taille d'une page de mémoire virtuelle est de .
4096 octets.
Ainsi, pour accueillir un fichier de stockage secondaire d'une taille de 8192 octets, un appel système "map" créera deux
pages de mémoire virtuelle afin que la taille totale soit de 8192 octets, ce qui est suffisant pour accueillir l'ensemble du
fichier texte secondaire.
D'accord.
Il s'agit donc des pages de mémoire virtuelle qui sont créées à l'aide d'un appel système map dans un espace atlas virtuel du
processus.
P one lorsque le processus p one utilise l'appel système map pour importer le texte de stockage secondaire dans sa mémoire
virtuelle.
D'accord.
C'était donc la première étape.
Vous pouvez maintenant voir que dans l'espace d'adressage de la mémoire virtuelle du processus, il y a des pages de mémoire
virtuelle de couleur jaune et des pages de mémoire virtuelle de couleur verte.
La seule différence entre ces deux pages de mémoire virtuelle à ce stade,
du point de vue du processus, est que les pages de mémoire virtuelle de couleur verte sont créées à
l'aide d'un système de mappage appelé via memory mapping, tandis que les autres pages de mémoire virtuelle sont créées par des appels catalog
ou malloc.
D'accord.
Pour le reste, du point de vue du processus, il n'y a pas de différence.
Quelles que soient les opérations que votre processus peut effectuer sur les adresses appartenant aux pages de mémoire virtuelle
de couleur jaune, les mêmes opérations peuvent être effectuées sur les adresses de mémoire virtuelle appartenant
aux pages de mémoire virtuelle de couleur verte.
Votre processus ne fait aucune distinction en ce qui concerne l'opération.
Il peut agir sur les adresses qui appartiennent aux pages de mémoire virtuelle de couleur jaune ou verte.
Ainsi, toutes les fonctions de manipulation de la mémoire telles que Mxgp VI.
Ou Madame, triste, etc. , etc. sont également applicables aux adresses qui appartiennent à ces pages
virtuelles mammaires.
D'accord.
Tout comme votre processus, créez des structures de données dynamiques telles que des arbres de listes de liens, des files d'attente fiscales
dans sa mémoire virtuelle normale.
Votre processus peut créer ces mêmes structures de données en utilisant la mémoire virtuelle qu'il a importée.
Utilisation d'un appel système de carte.
Maintenant que votre processus a créé de nouvelles pages de mémoire virtuelle à l'aide de l'appel système map.
Dès que votre système d'exploitation crée une nouvelle mémoire virtuelle pour un processus, il configure
également la table des pages du processus et de nouvelles pages physiques sont créées dans la mémoire vive.
D'accord.
Ces nouvelles pages physiques correspondent aux nouvelles pages de mémoire virtuelle créées dans l'espace d'adressage
virtuel du processus.
Supposons qu'à l'aide de l'appel système map, votre processus ait créé les pages de mémoire virtuelle numéro
cinq et numéro six.
Votre système d'exploitation créera donc également de nouvelles pages physiques, disons la page physique numéro
huit et la page physique numéro neuf, qui se verront attribuer une trame dans votre mémoire vive.
C'est vrai.
Il existe une table de collage du processus P qui serait mise en place et cette table d'espace
serait mise à jour de manière à refléter le fait que la page virtuelle numéro cinq du processus est associée à la page physique
numéro huit, qui est présente dans ce domaine.
De même, la page virtuelle numéro six est mappée sur la page physique numéro neuf, présente dans la mémoire
vive.
Il s'agit donc de la table des pages du processus qui est mise à jour par notre système d'exploitation.
Notez donc que lorsque l'appel système map est invoqué par le processus, étape numéro un, de nouvelles pages de mémoire
virtuelle sont créées.
Il s'agit du rythme numéro cinq et du rythme numéro six dans cet exemple.
Deuxième étape, la table des pages du processus est créée ou mise à jour.
Il est donc mis à jour.
Le tableau de base du processus est mis à jour.
Troisième étape, nouvelle.
Pages physiques.
Le processus est créé et.
Chargé dans la mémoire vive.
Qu'elles soient chargées dans la mémoire vive, c'est différent, car les pages sont chargées dans la mémoire
vive, une seule page bien sûr.
Mais il s'agit plutôt d'un concept de pagination.
Pour l'instant, il suffit de comprendre que de nouvelles pages physiques sont également créées et qu'un cadre leur est attribué dans une mémoire
vive.
D'accord.
Ainsi, lorsque l'appel système AMP est invoqué, ces trois étapes sont exécutées.
Ainsi, lorsque votre processus exécute son fonctionnement normal.
Supposons que l'adresse a.
Est émis par l'unité centrale.
Cette adresse a peut contenir des données ou des instructions.
Cela n'a pas d'importance.
L'adresse A est une adresse logique, qui se trouve quelque part dans la mémoire virtuelle de votre processus.
D'accord.
Y compris ces pages de mémoire virtuelle, qui sont créées par un appel système "map".
Cette adresse logique sera donc traduite par l'AMU en adresse physique.
Disons que l'adresse physique est P et que cette adresse physique P se trouve quelque part dans les pages physiques
chargées dans la mémoire vive.
Et ces pages physiques appartiennent à ce processus.
Disons que l'adresse P se trouve ici dans la mémoire vive.
Ainsi, si votre programme écrit à l'adresse E, la valeur de cette adresse signifie que la valeur de sera écrite dans
la RAM.
D'accord.
La mémoire virtuelle, comme son nom l'indique, est une signification virtuelle.
Les données réelles n'existent pas dans la mémoire virtuelle.
Les données existent dans la mémoire physique.
D'accord.
La mémoire virtuelle n'est qu'une collection d'adresses et rien d'autre.
La mémoire virtuelle n'est qu'une collection d'adresses logiques qui sont converties en adresses physiques.
L'adresse physique est l'emplacement réel où les données sont lues ou écrites dans cette mémoire physique.
D'accord.
Il s'agit donc plutôt d'un concept de pagination.
Je ne vais pas me plonger dans le concept de la pagination.
L'objectif ici est de savoir comment un système de cartes appelé étend la mémoire virtuelle d'un processus et y
inclut de nouvelles pages de mémoire virtuelle.
Une fois que ces nouvelles pages de mémoire virtuelle font partie de l'espace d'adressage virtuel du processus.
P Le concept et les opérations normales de pagination s'appliquent donc également à ces nouvelles pages de mémoire virtuelle
qui sont créées.
D'accord.
Comme je l'ai dit au début, lorsque vous.
Insérez le stylo dans votre ordinateur portable.
Sa mémoire secondaire globale est étendue et la mémoire qui appartient au lecteur de bande fonctionne exactement de la même
manière que la mémoire qui appartient à votre disque dur.
D'accord.
Dans ce cas, les nouvelles pages de mémoire virtuelle créées par l'appel système map sont également prises en compte.
Une fois qu'elles font partie de l'espace d'adressage virtuel du processus, tous les concepts
que nous appliquons à une adresse de mémoire virtuelle typique, tels que la pagination ou les opérations de manipulation de la mémoire comme Mxgp,
VI, map set, etc. , etc. sont également applicables.
Pour en venir à la dernière partie, vous pouvez voir que la page de mémoire virtuelle numéro cinq et six correspond à
la page physique numéro huit et neuf.
Comme je l'ai dit, les pages cinq et six de la mémoire virtuelle sont créées par la carte.
D'accord.
Cela signifie donc que la mémoire virtuelle, les pages cinq et six.
Ah, c'est en fait le reflet de la mémoire qui est représenté par ce fichier texte de 8192 octets.
Le système d'exploitation Linux propose donc un système supplémentaire appelé AM et map.
Dès que l'appel système est exécuté.
Tout d'abord, cet appel système est exécuté sur les pages de mémoire virtuelle qui ont été créées par notre appel
système map.
Ainsi, dès que cet appel système à la carte est exécuté sur la page virtuelle numéro cinq et la page virtuelle numéro six, quel qu'en soit
le contenu, les données réelles, qui étaient présentes dans les pages physiques numéro huit et neuf,
seront téléchargées dans ce fichier texte.
Donc si je dis que je ne suis pas cartographié.
La page virtuelle numéro cinq.
D'accord.
Nous allons donc écrire un programme de démonstration et je vous montrerai comment l'appel système non mappé est appelé.
Maintenant, il faut comprendre que lorsque je suis sur la carte, l'appel système est appelé et si je passe le pointeur à la mémoire
virtuelle, c'est le numéro cinq.
Ainsi, le correspondant.
Page physique numéro huit.
Quel que soit le contenu ou les données écrites dans cette partie de la mémoire physique ou RAM, il sera téléchargé dans
le fichier texte actuel.
D'accord.
De même, si j'invoque et mappe six, le contenu de la page physique numéro neuf, parce qu'elle est mappée à la page
de mémoire virtuelle numéro six, sera téléchargé dans le fichier texte.
D'accord.
Cela signifie que dès que je suis sur la carte, l'appel système est invoqué.
Quel que soit le contenu.
Processus créé dans la mémoire virtuelle.
Ce qui est représenté par la page numéro cinq et la page numéro six.
Ce contenu sera réécrit dans le fichier texte.
Rappelez-vous que c'est ce fichier texte qui a été simulé comme mémoire virtuelle pour votre processus.
P Utilisation de l'appel système de la carte.
Passons maintenant en revue ces points à l'aide de la cartographie de la mémoire.
Un fichier texte sur le disque peut être rendu visible à l'application comme s'il s'agissait d'une mémoire virtuelle normale.
La table de collage du processus est configurée de manière à faire correspondre des pages de mémoire virtuelle de couleur verte à des pages de mémoire
physique de couleur verte dans la mémoire vive que nous avons déjà expliquée, toute modification apportée par le programme dans ses pages de
mémoire virtuelle de couleur verte sera reflétée dans le fichier texte sur le disque.
C'est ce que fait la carte d'Amazon.
Les fonctions habituelles que nous utilisons pour manipuler la mémoire, telles que ma'am CPP, via des cartes, s'appliquent également aux pages de
mémoire virtuelle qui sont créées à l'aide de cartes et de systèmes de cartes.
Appelez 8192 octets pour que le fichier texte soit visible par votre programme sous la forme d'un tableau de 8192 octets.
D'accord.
Cela signifie donc qu'il s'agit d'un tableau de 8192 octets.
Vous pouvez donc également écrire trois structures de données de type liste de liens qui sont en fait liées dans une structure
au fichier texte mappé.
Nous allions donc discuter de ce point un peu plus tard.
Pour l'instant.
Il suffit de comprendre que si 8192 octets sont importés comme 8192 octets de mémoire virtuelle pour votre processus, nous savons déjà que la mémoire
virtuelle du processus est adressable par octets.
Cela signifie que chaque bouchée a une adresse.
Et lorsque vous disposez d'une mémoire adressable par octet, vous pouvez créer des structures de données
telles que des listes de liens, des arbres, etc. , etc. Ces structures de données ont besoin d'adresses pour fonctionner,
car il s'agit de structures de données basées sur des liens.
Ainsi, un fichier texte de 8192 octets n'a pas d'adresse.
Les octets individuels de ce fichier texte n'ont pas d'adresse.
Il s'agit d'une simple mémoire de 8192 octets.
Mais une fois que ce fichier texte est importé en tant que mémoire virtuelle dans le processus, l'espace d'adressage virtuel
de 8192 octets devient adressable par octets.
C'est-à-dire que chaque octet a une adresse.
Cela signifie donc que votre programme peut créer des structures de données de type liste de liens dans cette carte de mémoire
virtuelle, la mémoire virtuelle peut invoquer arm et cartographier l'appel système en utilisant et cartographier l'appel système quoi qu'il en soit.
La page physique.
Notez-le maintenant.
Non pas que depuis le .
Une fois que le processus a créé des listes liées dans ces pages de mémoire virtuelle, comme je l'ai dit, cette mémoire virtuelle
n'est rien, mais c'est une collection d'adresses.
La liste des liens est donc créée dans la page physique.
D'accord.
Et lorsque le processus invoque le système non mappé appelé n'importe quel instantané des données que nous avons dans les pages physiques
correspondantes, celles-ci seront téléchargées dans la mémoire matérielle actuelle.
Dans le cas présent, cette mémoire matérielle est un fichier texte.
Cela signifie donc que vous avez écrit.
Une liste chaînée et un fichier texte.
Avez-vous déjà pensé à la manière d'écrire une liste de liens dans un fichier texte ?
D'accord.
Nous en reparlerons plus tard.
J'essayais simplement d'expliquer quel est l'avantage des fichiers de mappage de la mémoire ?
Vous pouvez enregistrer vos structures de données liées telles que les listes de liens, les arbres, les files d'attente ou toute autre structure de
données compliquée dans une mémoire plate.
Parce que cette mémoire plate a été rendue adressable, en important cette mémoire dans l'espace d'adressage
virtuel du processus.
D'accord.
Nous reviendrons donc sur ce point ultérieurement.
Arrêtons la discussion ici.
Dans ce cours vidéo, nous avons donc abordé l'ensemble du concept de mappage de la mémoire.