Examen de l'examen du système d'exploitation - Chapitre 4 Méthode de gestion du stockage de pagination d'échange

La technologie d'échange est également devenue une technologie de commutation. Comme la mémoire des ordinateurs à cette époque était très petite, la technologie d'échange a été introduite afin de permettre au système d'exécuter plusieurs programmes utilisateur en temps partagé.

1. Introduction du swap :

Ce que l'on appelle « l'échange » fait référence au transfert de processus et de données qui sont temporairement incapables d'exécuter ou de programmes et de données temporairement inutilisés dans la mémoire vers une mémoire externe afin de libérer suffisamment d'espace mémoire, puis de transférer les processus ou les processus déjà en cours . qualifié pour fonctionner. Les programmes et les données sont chargés en mémoire .

2. Type d'échange :

1) Échange global

La planification de niveau intermédiaire du processeur est en fait la fonction d'échange de mémoire. Son objectif est de résoudre le problème du manque de mémoire. La planification intermédiaire étant basée sur des processus, elle est également appelée « échange de processus » ou « échange complet ».

2) Échange de pages

Effectués par unités d'une « page » ou d'un « segment » du processus, ils sont appelés respectivement « échange de page » et « échange de segment », et sont collectivement appelés « échange partiel ».

Parmi les technologies de swap, nous discutons uniquement du swap de processus, tandis que la pagination ou le swap de segment seront introduits dans la mémoire virtuelle.

Gestion de l'espace d'échange

1. Les principaux objectifs de la gestion de l'espace d'échange :

Dans un système d'exploitation doté de la fonction swap, le stockage externe est généralement divisé en une zone de fichiers et une zone de swap .
1) L'objectif principal de la gestion des zones de fichiers.
Il s'agit d'améliorer l'utilisation de l'espace de stockage des fichiers. À cette fin, la zone des fichiers est allouée discrètement.
2) L'objectif principal de la gestion de la zone d'échange.
Les opérations d'échange sont plus fréquentes. Par conséquent, la vitesse d'échange d'entrée et de sortie de processus est améliorée. Pour cette raison, une méthode d’allocation continue est adoptée, avec moins de considération pour le problème de fragmentation dans la mémoire externe.

2. Structure des données dans la gestion des blocs de disque libres dans la zone d'échange

Elle est similaire à la structure des données de la méthode d'allocation de partition dynamique, c'est-à-dire la table de partition libre ou la chaîne de partition libre. Chaque entrée contient deux éléments : la première adresse de la zone de swap et sa taille. Le sous-tableau est représenté par le numéro de bloc disque et le nombre de blocs disque.

3. Attribution et recyclage des parties d'espace d'échange

Semblable aux méthodes précédentes d'allocation de mémoire et de recyclage d'allocation de partition dynamique, elle est également divisée en quatre situations. Il y a une cloison libre au-dessus de la zone de recyclage et une cloison libre en dessous de la zone de recyclage. Il y a des cloisons libres au-dessus et en dessous de la zone libre, et il n'y a pas de cloisons libres au-dessus et en dessous de la zone libre.

Échange de processus et échange de processus :

Processus de remplacement :
1) Sélectionnez le processus à remplacer. Le processus bloqué ou en veille est sélectionné en premier, et s'il y en a plusieurs, le processus ayant la priorité la plus basse est sélectionné. Dans certains systèmes, en plus de considérer la priorité, il est également nécessaire de considérer le temps de séjour du processus en mémoire. S'il n'y a aucun processus bloquant dans le système et que la mémoire est toujours insuffisante, le processus prêt avec la priorité la plus basse est sélectionné pour être remplacé.
2) Processus d’échange de processus. Seuls les segments de programme et de données non partagés peuvent être échangés. Les segments partagés ne peuvent pas être échangés tant que le processus en a besoin. Lors de l'échange, ① vous devez demander un espace d'échange. ② Si l'application réussit, démarrez le disque et transférez le programme et les données du processus vers la zone d'échange du disque. ③Si le transfert réussit, l'espace mémoire occupé par le processus peut être récupéré et le PCB et la table d'allocation de mémoire du processus peuvent être modifiés en conséquence. S'il y a encore des processus qui peuvent être échangés, continuez à échanger jusqu'à ce qu'il y ait plus aucune obstruction dans la mémoire jusqu'à ce que le processus soit bloqué.

Échange de processus.
Effectuez régulièrement des opérations de swap. Recherchez les processus qui sont à l'état « prêt » mais qui ont été remplacés, utilisez le processus qui a été remplacé le plus longtemps comme processus de remplacement et demandez de la mémoire pour celui-ci. Si l'application réussit, elle sera transférée. Si elle échoue, certains processus de la mémoire doivent d'abord être remplacés, puis les processus seront remplacés. Le processus d'échange arrête l'échange jusqu'à ce qu'il n'y ait plus de processus à l'état "prêt et échangé" dans la mémoire externe, ou qu'il n'y ait plus assez de mémoire pour échanger dans le processus.

Méthode de gestion du stockage de pagination :

La méthode d'allocation continue formera de nombreux "fragments". Bien que de nombreux fragments puissent être fusionnés dans un grand espace utilisable de manière "compacte", cela nécessite beaucoup de frais généraux. Si le processus peut être chargé directement dans de nombreuses partitions non contiguës, l'espace mémoire peut être pleinement utilisé sans avoir besoin de « compactage ».

1) Méthode de gestion du stockage de pagination : Divisez l'espace d'adressage du programme utilisateur en plusieurs zones de taille fixe, appelées « pages » ou « pages ». L'espace mémoire est également divisé en plusieurs blocs physiques ou cadres de page, et les pages et cadres ont la même taille.
2) Méthode de gestion du stockage segmenté : Divisez l'espace d'adressage du programme utilisateur en plusieurs segments de tailles différentes. L'allocation est en unités de segments.
3) Méthode de gestion du stockage de pages segmentées : C'est le produit de la combinaison de méthodes de stockage de pagination et de segmentation.

Méthodes de base de gestion du stockage de pagination

1. Pages et blocs physiques

1) Page : divisez l'espace d'adressage logique d'un processus en plusieurs morceaux de taille égale, appelés pages ou pages, et numérotez chaque page. De manière correspondante, l'espace physique de la mémoire est également divisé en plusieurs blocs, et chaque bloc est numéroté. Lors de l'allocation de mémoire à un processus, plusieurs pages du processus sont chargées en unités de bloc dans plusieurs blocs physiques qui peuvent ne pas être contigus. Étant donné que la dernière page du processus ne tient souvent pas en un seul morceau, une fragmentation inutilisable se forme, appelée « fragmentation sur la page ».
2) Taille de la page : la taille de la page doit être sélectionnée modérément et la taille de la page doit être une puissance de 2, généralement 1 Ko ~ 8 Ko. Si la page est trop petite, le nombre de pages dans le processus sera trop important, donc la table des pages sera trop longue, occupant une grande quantité de mémoire, et augmentera également le coût de la traduction des adresses matérielles et réduira l'efficacité de échange/échange de pages. Si la page est trop volumineuse, cela augmentera la fragmentation dans l’industrie et réduira l’utilisation de la mémoire.

2.Structure d'adresse

La structure de l'adresse dans l'adresse de radiomessagerie est la suivante :

                      31 12 11 0

Numéro de pageP Déplacement W

Il contient deux parties : la première partie est le numéro de page P et la seconde partie est le montant du déplacement W, qui est l'adresse dans la page. Comme le montre la figure, nous pouvons savoir que la taille de chaque bloc est de 2 ^ 12, soit 4 Ko. Les bits 31 à 12 sont le numéro de page, donc le numéro de page est 2 ^ 20, soit 1 million de pages.

3. Tableau des pages

Afin d'assurer le bon fonctionnement du processus, le bloc physique correspondant à chaque page peut être retrouvé dans la mémoire. A cette fin, le système établit une table image des pages pour chaque processus, appelée table des pages. Toutes les pages de l'espace d'adressage du processus ont une entrée de page dans la table des pages, qui enregistre le numéro de bloc physique correspondant de la page correspondante dans la mémoire . On peut voir que le rôle de la table des pages est d'implémenter le mappage d'adresses des numéros de page aux numéros de blocs physiques.

Agence de traduction d'adresses :

Le but de la configuration du mécanisme de conversion d'adresse est de convertir l'adresse logique dans l'espace d'adressage utilisateur en adresse physique dans l'espace mémoire.

Mécanisme de traduction d'adresses avec table rapide :

Étant donné que la table des pages est stockée en mémoire, le processeur doit accéder à la mémoire deux fois à chaque fois qu'il accède à une donnée. La première fois consiste à accéder à la table des pages dans la mémoire, à trouver le numéro de bloc physique de la page spécifiée, puis à concaténer le numéro de bloc avec le décalage W dans la page pour former une adresse physique. Lors du deuxième accès à la mémoire, les données requises sont obtenues à partir de l'adresse obtenue pour la première fois.
Afin d'améliorer la vitesse de conversion d'adresse, un registre de cache spécial avec une capacité de recherche parallèle peut être ajouté au mécanisme de conversion d'adresse, également connu sous le nom de « registre associatif » ou « table rapide ».

Une fois que le processeur a donné l'adresse effective, le mécanisme de conversion d'adresse envoie automatiquement le numéro de page P dans le registre du cache et compare ce numéro de page avec tous les numéros de page dans le cache. S'il existe un numéro de page correspondant, , cela signifie que la page l’entrée de table à laquelle accéder se trouve dans la table rapide. Par conséquent, le numéro de bloc physique correspondant à la page peut être directement lu dans la table rapide et envoyé au registre d'adresses physiques. Si l'entrée de table de pages correspondante n'est pas trouvée dans la table de blocs, il faut accéder à nouveau à la table de pages dans la mémoire. Après l'avoir trouvée, le numéro de bloc physique lu à partir de l'entrée de table de pages est envoyé au registre d'adresses ; en même temps , la table de pages est L'entrée est stockée dans une unité de registre de la table rapide, c'est-à-dire que la table rapide est re-modifiée. Mais si la table rapide est pleine, le système d’exploitation doit trouver une ancienne entrée de table de pages qui n’est plus considérée comme nécessaire et la remplacer.

Heure valide pour accéder à la mémoire :

Dans le procédé de gestion de stockage de pagination de base, le temps d'accès effectif est divisé en le premier temps d'accès à la mémoire (c'est-à-dire le temps t passé pour trouver l'entrée de table de pages correspondant à la table de pages) et le deuxième temps d'accès à la mémoire (c'est-à-dire accéder à l'entrée de la table des pages dans la table des pages). La somme du temps t) passé à concaténer le numéro de bloc physique et l'adresse de la page dans l'adresse physique réelle : EAT = t + t = 2t ;

Il existe un problème de taux de réussite lors de la recherche de l'entrée de table requise dans la table rapide. Le soi-disant taux de réussite fait référence au taux d'utilisation du tableau rapide et de recherche réussie des entrées du tableau de la page requise.
Alors : EAT = а×λ + (t+λ)(1-а) + t = 2t + λ - t×а ;
dans la formule ci-dessus, λ représente le temps nécessaire pour trouver la table rapide, а représente le taux de réussite. , et t représente le temps nécessaire pour accéder une fois à la mémoire.

Tableaux de pages à deux et plusieurs niveaux

La plupart des systèmes informatiques modernes prennent en charge de très grands espaces d'adressage logique, de sorte que la table des pages devient très volumineuse et occupe une quantité considérable d'espace mémoire. Étant donné que chaque entrée de la table des pages occupe un octet, la longueur de la table des pages * 1 octet correspond à la taille de l'espace mémoire occupé par la table des pages. De plus, l'espace mémoire de la table de pages doit également être continu, ce qui est évidemment irréaliste. Solution :
(1) Pour l'espace mémoire requis par la table des pages, une allocation discrète peut être utilisée pour résoudre le problème de la difficulté de trouver un grand espace mémoire continu ; (2) Seule une partie des entrées de la table des pages actuellement nécessaires est transférée dans
le mémoire, et le reste est. Les entrées de la table de pages résident toujours sur le disque et peuvent être rappelées en cas de besoin.

Table de pages à deux niveaux.
La table des pages est divisée en pages, puis chaque page est stockée discrètement dans différents blocs physiques. Il est également nécessaire de créer une autre table de pages pour la table de pages allouée de manière discrète, appelée table de pages externe. Le numéro de bloc physique de la table de pages est enregistré dans chaque entrée de table de pages.
En prenant comme exemple l'espace d'adressage logique de 32 bits précédent, lorsque la taille de la page est de 4 Ko et qu'une structure de table de pages à deux niveaux est utilisée, la table de pages est paginée de sorte que chaque page contient 2 ^ 10 (c'est-à-dire 1024) pages. Les entrées de tableau autorisent jusqu'à 2 ^ 10 pages de tableau. La structure logique des adresses à l’heure actuelle est la suivante :

Chaque entrée de la table des pages stocke le numéro de bloc physique d'une certaine page du processus dans la mémoire, tandis que chaque entrée de la table des pages dans la table des pages externe stocke le nombre de pages dans la mémoire d'une certaine table de pages. Vous pouvez utiliser deux niveaux de tables de pages, la table de pages externe et la table de pages, pour réaliser la conversion de l'adresse logique du processus en adresse physique dans la mémoire. Dans le mécanisme de conversion d'adresse, il est également nécessaire d'ajouter un registre de table de pages externes pour stocker l'adresse de début de la table de pages externes, et d'utiliser le numéro de page externe dans l'adresse logique pour trouver l'adresse de début de la table de pages spécifiée, et utilisez ensuite le numéro de page externe pour trouver l'adresse de début de la table de pages spécifiée. Recherchez l'entrée de table de pages spécifiée à l'adresse dans la page, puis lisez le numéro de bloc physique de la page en mémoire à partir de l'entrée de table de pages.
Bien que cela résolve le problème de ne pas nécessiter un grand espace de stockage contigu pour les grandes tables de pages, cela ne résout pas le problème de l'utilisation de moins d'espace mémoire pour stocker les grandes tables de pages. Seule l'allocation discrète d'espace ne réduit pas l'espace mémoire occupé par la table des pages. La solution consiste à transférer en mémoire un lot d'entrées de table de pages actuellement nécessaires, puis à les transférer les unes après les autres selon les besoins. Dans le cas de l'utilisation d'une structure de table de pages à deux niveaux, pour le processus en cours, sa table de pages externe doit être transférée dans la mémoire, tandis que la table de pages n'a besoin d'être transférée que dans une ou plusieurs pages. Afin d'indiquer si la table des pages d'une certaine page a été transférée dans la mémoire, un bit d'état S doit être ajouté à l'entrée de la table des pages externe. Si sa valeur est 0, cela signifie que la page de la table des pages n'a pas été transférée. dans la mémoire ; sinon, cela signifie que la page a été transférée dans la mémoire
. Lorsque le processus est en cours d'exécution, le mécanisme de conversion d'adresse recherche dans la table des pages externes en fonction du numéro de page externe P1 dans l'adresse logique ; si le bit d'état dans l'entrée de la table des pages trouvées est 0, un signal d'interruption est généré pour demander au système d'exploitation de transférer la page Le tableau est paginé en mémoire. Les détails de la pagination des requêtes sont traités dans le chapitre suivant, Mémoire virtuelle.
Tableaux de pages à plusieurs niveaux.
Pour les machines 32 bits, il est approprié d'utiliser une structure de table de pages à deux niveaux ; mais pour les machines 64 bits, une table de pages à plusieurs niveaux doit être utilisée et la table de pages externe est paginée.

L'introduction de tables de pages inversées
Dans les systèmes informatiques modernes, l'espace d'adressage logique d'un processus peut généralement être très grand, il nécessite donc de nombreuses entrées de table de pages, ce qui occupe également beaucoup d'espace mémoire. En présentant la table de pages inversée, les entrées de la table de pages sont généralement triées par numéro de page et le contenu de l'entrée de la table de pages est le numéro de bloc physique. La table de pages inversée définit une entrée de table de pages pour chaque bloc physique et la trie selon le numéro du bloc physique. Le contenu est le numéro de page et l'identifiant du processus auquel il appartient.

Traduction d'adresses
Lorsque vous utilisez la table de pages inversée pour la traduction d'adresses, la table de pages inversées est récupérée en fonction de l'identifiant du processus et du numéro de page. Si une entrée de table de pages correspondante est récupérée, le numéro de séquence i de l'entrée de table de pages (au centre) est le numéro de bloc physique où se trouve la page. Ce numéro de bloc peut être utilisé avec l'adresse de la page pour former une adresse physique et envoyer au registre d'adresses mémoire.
Le tableau des pages inversé ne peut contenir que des pages qui ont été chargées en mémoire, mais pas des pages qui n'ont pas encore été chargées en mémoire. Par conséquent, une table de pages externe doit également être établie pour chaque processus. Lorsqu'il s'avère que la page requise n'est pas dans la mémoire, étant donné que la table des pages externes contient l'adresse physique de chaque page dans la mémoire externe, la page requise peut être transférée dans la mémoire via celle-ci.
Lorsque la capacité mémoire est grande, le nombre d’entrées de table sera toujours très important. Récupérer un tableau linéaire aussi volumineux à l’aide d’identifiants de processus et de numéros de page prend beaucoup de temps. L'algorithme de hachage peut être utilisé pour la récupération, et l'entrée de la table de pages correspondante dans la table de pages inversée peut être rapidement trouvée, mais des « conflits d'adresses » peuvent survenir.

Guess you like

Origin blog.csdn.net/m0_53345417/article/details/130542725