Méthode de gestion de la distribution discontinue

// Uniquement pour les enregistrements d'apprentissage, pas d'explication détaillée

introduction

Par rapport à la méthode de gestion d'allocation continue, discontinu permet à un programme d'être dispersé et chargé dans des zones de mémoire non adjacentes, ce qui revient à démembrer le corps humain. Bien sûr, ce n'est pas la fin: si les programmes dispersés doivent former un programme organique , il faut les relier à nouveau par indexation.

classification

Ce qui suit est une classification de plusieurs méthodes de gestion non continue
Insérez la description de l'image ici

1. Méthode de gestion du stockage de pagination de base

1.1 Le concept de stockage de pagination

  1. Blocs dans le processus: pages, pages (nécessite que la taille de la page soit une puissance entière de 2)
  2. Blocs en mémoire: cadres de page
  3. Blocs dans le stockage externe: blocs

Remarque: toutes les pages de la pagination sont de la même taille

  1. Structure de l'adresse La
    première partie est le numéro de page, la dernière partie est l'adresse de décalage dans la page, la longueur de l'adresse est de 32 bits et l'adresse autorise jusqu'à 2 ^ 20 pages
    Insérez la description de l'image ici
  2. Table des pages Le
    système établit une table des pages pour chaque processus, qui sert de mappage entre l'adresse mémoire et l'adresse physique dans la mémoire externe, dont la composition est le numéro de page et le numéro de bloc . La table des pages réside en mémoire.
    En particulier, la deuxième partie de l'entrée de la table de pages et la deuxième partie de la structure d'adresse forment ensemble une adresse physique
    Insérez la description de l'image ici

1.2 Mécanisme de conversion d'adresse de base

On sait que la table de pages est utilisée pour enregistrer le mappage de l'adresse logique de la mémoire à l'adresse physique de la mémoire externe, et le mécanisme de conversion d'adresse utilise l'enregistrement de la table de pages pour réaliser ce processus de conversion.
Insérez la description de l'image ici
Registre de la table des pages : Comme mentionné précédemment, la table des pages est résidente en mémoire, donc quand on veut utiliser la table des pages, il faut la trouver, son adresse en mémoire est réalisée par le registre de la table des pages.
En particulier, ce n'est que lorsque le programme est exécuté que les deux informations de la table de pages seront lues dans le registre de table de pages

Calculer le mappage de l'adresse logique à l'adresse physique

首先分析,整个映射过程其实就是让页表**动态化**,即我们只要找到页号,页号映射到
对应的页表项,页表项对应的块号,再由块号和地址结构的页内偏移量组合(回顾概念 
5 )就可以得到结果

Le processus est le suivant, en supposant que le numéro de page est P, le décalage dans la page est W, la taille de la page est L, la longueur de la table de page est M, l'adresse logique est A et l'adresse physique est E, la conversion le processus est le suivant:

  1. Numéro de page P = A / L
  2. Décalage sur la page W = A% L
  3. Comparez le numéro de page P et la longueur de la table de pages M, si P> = M, cela signifie hors de portée
  4. L'entrée du tableau des pages correspondant au numéro de page = l'adresse de début du tableau des pages + le numéro de page P * la longueur de l'entrée du tableau des pages
  5. Recherchez le numéro de bloc physique correspondant via l'entrée de la table des pages
  6. Adresse physique E = W + numéro de bloc physique * L

En particulier, la taille de la page, la taille du cadre de la page et la taille du bloc sont les mêmes pour la correspondance un à un

1.3 Mécanisme de conversion d'adresse avec table rapide

Insérez la description de l'image ici

À partir du processus de recherche ci-dessus, nous pouvons voir que nous devons accéder à la mémoire au moins deux fois pour accéder aux données (instruction) une fois. La première fois est de calculer l'adresse physique correspondant aux données (instruction), et la deuxième fois est pour récupérer réellement l'adresse. C'est la moitié de la vitesse.

C'est comme si je vais chercher quelque chose à la place A à une certaine heure le mardi, parce que je ne connais pas la place A. Afin de m'assurer d'arriver à l'heure, je vais à la place A le lundi pour me familiariser avec l'itinéraire, mais mardi, je vais vraiment le récupérer.

Nous avons donc mis en place une table rapide (comme son nom l'indique est pour améliorer la vitesse de défilement), utilisée pour stocker un certain nombre d'entrées actuellement consultées.

Processus de conversion d'adresse avec mécanisme de pagination de table rapide:

  1. Après avoir obtenu l'adresse logique, comparez d'abord le numéro de page avec le numéro de page dans le tableau rapide
  2. Si une correspondance est trouvée, le numéro de bloc physique correspondant est trouvé dans le tableau rapide pour terminer
  3. Sinon, accédez au tableau des pages pour l'obtenir comme dans les étapes précédentes

1.4 Tableau des pages à deux niveaux

Afin d'améliorer encore l'utilisation de la mémoire, nous utilisons une table de page à deux niveaux pour compresser l'espace de la table de page.

En ce qui concerne le tableau des pages à deux niveaux de l'examen, il vous suffit de vous rappeler que le tableau des pages de niveau supérieur peut comprendre au plus une page.
Insérez la description de l'image ici

Points de connaissance supplémentaires pour les problèmes de calcul associés

  1. La taille d'une page = 2 bits de décalage dans la page, le décalage est généralement de 12 bits La taille d'une page = 2 ^ {bits de décalage dans la page}, le décalage est généralement de 12 bits Yi Ye est grand petit=2Page la quantité de décalage de polarisation du numéro de position ,Partielle décalage montant à travers normalement sont . 1 2 bit
  2. Le nombre maximum d'octets occupés par la table de pages = 2 chiffres du numéro de page ∗ Taille de l'élément de table de pages Tableau des pages les plus grands comptes avec le mot numéro de section=2Page Numéro poste numéroEntrées de table de page grandes petites

2. Méthode de base de gestion du stockage segmenté

2.1 Segmentation

分段存储管理主要要从语义上来进行分段。比如一个程序由主程序,负责加法逻辑的程序
负责减法逻辑的程序,那么就可以按上述分成三段。每段从 0 开始分配一段连续空间(要
求段内连续,段间可以不连续),由此可见整个作业的地址空间是二维的

La division des segments se fait lors de la programmation utilisateur


REMARQUE: le numéro de segment et le décalage dans le segment doivent être fournis explicitement

2.2 Tableau des segments

La structure de la table de segments (numéro de segment, longueur de segment, l'adresse de départ de ce segment en mémoire) La
table de segments réalise le mappage de l'adresse logique vers la zone de mémoire physique
Insérez la description de l'image ici

Utilisez la table des segments pour réaliser le mappage de la zone de mémoire physique
Insérez la description de l'image ici

2.3 Mécanisme de conversion d'adresse

Insérez la description de l'image ici

Le processus de conversion d'adresse de l'adresse logique A à l'adresse physique E:

  1. Extraire le numéro de segment S et le décalage W de A
  2. Comparez le numéro de segment S avec la longueur de la table de segments M, si S> = M, il sera hors de portée
  3. Rechercher l'adresse d'entrée de la table des segments = adresse de début de la table des segments F + numéro de segment S * longueur de l'entrée de la table des segments
  4. Retirez la longueur du segment C dans l'entrée de la table des segments, comparez la relation entre la longueur du segment C et le décalage W, si W est grand, il traversera la frontière
  5. Calculer l'adresse physique = adresse de base (adresse de début de la table de segments) + W

REMARQUE: nous pouvons voir qu'à l'étape 4, le calcul avec le stockage de pagination a changé. Nous avons effectué deux comparaisons en segmentation, mais une seule fois en pagination.

2.4 Partage et protection des segments

  1. Code réentrant (code pur): code non modifiable ( code réentrant partageable )

3. Gestion des paragraphes

Insérez la description de l'image ici

Comme le montre la figure ci-dessus, il n'y a qu'une seule table de segments. Le mappage de table de segment a une table de page pour chaque segment. Il n'y a qu'une seule table de segments dans un processus, mais il peut y avoir plusieurs tables de pages.

Insérez la description de l'image ici

La méthode de conversion d'adresse est la suivante: table de segments -> adresse de début de table de pages -> numéro de page -> forme une adresse physique.
On peut voir qu'un accès nécessite en fait trois accès à la mémoire

Je suppose que tu aimes

Origine blog.csdn.net/qq_34902437/article/details/98780388
conseillé
Classement