Système d'exploitation - Gestion du stockage

1. les capacités de gestion de stockage

Cartographie 1.1 Adresse

Définition: Le programme 虚拟地址/逻辑地址est converti en mémoire 真实的地址/物理地址processus

la mise en œuvre de mappage d'adresses

déclaration préalable ici:

  • VA: Adresse logique Adresse virtuelle
  • BA: Adresse charge Adresse de base
  • MA: Adresse physique Adresse mémoire / Phisical Adresse
Cartographie d'adresse fixe
Cartographie des adresses statiques

Lorsque la charge de programme adresse logique d'achèvement de mappage d'adresse physique du système d'exploitation.
MA = BA + VA- à -dire l' adresse physique = adresse de base + décalage d' adresse

Exemple: Ajouter une adresse logique VA = X, X est le contenu stocké (X) et (X) = 1234. Adresse de base BA. Il
MA = BA + X
Insérer ici l'image Description

Caractéristiques de mappage d'adresses statiques
  • Avant que le programme est exécuté pour déterminer
  • Après le chargement programme ne peut pas se déplacer, si vous voulez avoir à se déplacer dans sa position d'origine
  • Programme occupent l'espace mémoire contigu
Cartographie des adresses dynamiques

Elle est définie: en une adresse physique dans l'adresse logique lors de l'exécution du programme.

Par exemple: MOV AX, [500]; unité d'accès 500 seulement effectue conversion d'adresse

Note: Si le programme est déplacé, BA peut être modifié calculer automatiquement le nouveau MA. Illustré comme suit:
Insérer ici l'image Description

caractéristique
  • Les programmes prennent de l'espace mémoire change dynamiquement nécessaire pour la mise à jour BA
  • Ne nécessite pas qui occupent l'espace d'adressage de mémoire contiguë, chaque adresse de base du segment système de placement de BA sait
  • Afin de code d'action dans de multiples processus (code d'action comme une période distincte de stockage)

1.2 Stockage virtuel

La mémoire virtuelle est un espace de stockage fermé virtuel orienté vers l'utilisateur.

Pour résoudre le problème:

  • Lorsque le programme est trop grand ne suffit pas de mémoire pour exécuter
  • l'exécution simultanée d'adresses multiples conduisent à des conflits d'adresses, ne peut pas exécuter
1.2.1 objectifs de gestion de la mémoire virtuelle
  • Fait un grand programme peut fonctionner petite mémoire
  • Alors que plusieurs programmes peuvent fonctionner dans une plus petite mémoire totale
  • Permet à plusieurs programmes en cours d'exécution en même temps que les adresses ne sont pas incompatibles
  • Alors que l'efficacité de l'utilisation de la mémoire haute: pas de fragmentation, de faciliter le partage

1,3 fonction d'allocation de mémoire

Allouer de l'espace de mémoire suffisant pour le programme à exécuter

Nécessité d'aborder:

  • politique de placement
    • Lorsque la zone de mémoire de programme dans la mémoire qui va le mettre
  • stratégie redéploiement
    • Quand le code d'exécution et des données à accès en mémoire
  • stratégie d'élimination
    • Lorsque la mémoire ne suffit pas, quel code ou diffusion de données pour libérer de l'espace mémoire

1.4 Protection de mémoire

Assurez-vous que la mémoire multiprogrammation actif et d'interférer dans une zone de stockage donnée.

  • Empêcher l'accès transfrontalier
  • Empêcher l'accès non autorisé
1.4.1 Méthode: registre frontière
  • Une paire de registres de limites supérieure et inférieure dans les registres de CPU, les limites supérieures et inférieures stockées dans l'adresse de mémoire de programme.
  • registre de base longue et registre limite

2. Gestion de la mémoire physique

2.1 Partition gestion de la mémoire

  • Gestion de stockage unique
  • gestion du stockage
    • cloison fixe
    • Partitionnement dynamique
2.1.1 Gestion de stockage unique (section de gestion de la zone de stockage)

Définition: district de zonage de l'utilisateur n'est pas complètement occupé par un programme. Tels que DOS

2.1.2 Gestion de stockage fixe

La gestion du stockage fait référence à la zone de mémoire utilisateur est divisé en plusieurs partitions de différentes tailles pour différentes utilisations. Convient pour le système monotâche mono-utilisateur

définition de partition fixe: la mémoire est fixée de manière divisée en plusieurs tailles de partitions. Chaque taille de la partition et l'emplacement sont fixes, plus reclassées pendant le fonctionnement du système.

Partition Table

Enregistrement emplacement de la partition, la taille et utiliser le logo. Illustré comme suit:
Insérer ici l'image Description

Insérer ici l'image Description

Caractéristiques de l'utilisation
  • Avant que le programme est chargé, et une partition de mémoire n'a pas changé.
  • Chaque taille de la partition différents programmes pour différents envoi.
  • Pour maintenir la table de partition système.
défaut
  • Déchets de mémoire: le programme fragmenter mémoire que les heures de partition
  • Les grands programmes peuvent ne pas fonctionner: le programme est supérieur à la partition maximale

Cependant, si vous connaissez la taille du programme, le nombre, l'ordre est chargé, une grande efficacité d'utilisation de la mémoire.

2.1.3 dynamique Cloisonnement

Définition: pour créer des partitions lorsque le programme est chargé, la taille de la partition et la taille du programme tout de même.
Figure:

2.2 Politique de placement de partition

2.2.1 allocation de partitions

Ah premier à introduire le concept de table de partition. Liste de zone de libre est utilisé pour décrire la structure de données, la position et la taille de la zone de mémoire libre.
Insérer ici l'image Description

Processus d'allocation (en supposant que l'utilisateur est demandé l'espace s)
  • Une région de la première table de zone de libre à trouver> s = l'espace à
  • Après avoir découvert de la cloison divisant la taille d'une partie aux utilisateurs de
  • La partie restante de l'espace divisé pour rester en tant que zone libre est enregistrée dans la table

Remarque: lorsque le fond est généralement divisé de la zone de l'espace divisé.

2.2.2 Comment trier la zone de libre - la politique de placement
  • zone de réserve en fonction d'un incrément / décrément tri situation
  • La taille de la zone de libre dans l'ordre croissant / Enregistrer le tri
2.2.3 récupération de partition

zone de sortie de programme de recyclage, connectez-vous à la liste libre pour la redistribution.

Procédé recyclage comme indiqué ci-dessous, dans lequel

  • La zone blanche représente la zone de libre actuelle
  • zone rouge représente la zone de sortie
  • zone grise représente l'empreinte

Insérer ici l'image Description

2.3 Couverture de la technologie de la mémoire

partition de mémoire
  • zone de résidence: est occupé de façon fixe certain individuellement, peut être divisé en une pluralité de
  • Zone de couverture: être commun à plusieurs degrés, peut être divisée en plusieurs
couverture inconvénient
  • programmation complexe: Les programmeurs ont besoin d'être divisé et de déterminer les relations de couverture du module
  • L'exécution du programme pendant une longue période: temps chargé dans la mémoire de la mémoire externe
  • Les modules de programme peuvent être plus grande que la taille des conducteurs de zone de couverture ne peut pas être chargé

Insérer ici l'image Description

3. Gestion de la mémoire virtuelle

3.1 Concepts virtuels Gestion de la mémoire

3.1.1 mémoire physique (à savoir, la mémoire réelle) Gestion
caractéristique défaut
1 Le code doit utiliser l'adresse physique directe Entre les programmes de violation d'accès facile
2 Toutes les procédures doivent être chargées en mémoire pour exécuter La mémoire est trop petite, ne peut pas exécuter le programme
3 Programme occupent pièce contiguë de mémoire Il produira la fragmentation de la mémoire
4 Une pluralité d'exécuter des programmes interfèrent facilement les uns aux autres peu sûr

Améliorer les technologies de mémoire physique ont

  • épissage de mémoire
  • La technologie permutant
  • technologie couvrant
3.1.2 Gestion de la mémoire virtuelle

Remarque: La taille de la mémoire virtuelle est déterminée par la plus grande mémoire de l'ordinateur + de mémoire externe et les bits d'adressage. Sa taille est min (mémoire + mémoire externe, face la plus grande puissance de 2 bits). Si l'utilisateur utilise une mémoire de système 64 bits à 8G, pour la mémoire externe 500G, la mémoire virtuelle maximale de 2 ^ 64 = 16G. En général, il est le plus grand système de mémoire virtuelle 2 adresser au maximum plusieurs parties, parce que généralement grande mémoire externe ... Chaque processus a un espace virtuel est la taille maximale de la mémoire virtuelle.

Réalisation d'idées

Nous savons que le programme est en cours ont certaines caractéristiques, telles que:

  • Pour accéder à un code temporel limité et les données sont souvent limitées dans plusieurs plage d'adresses
  • La partie du programme en mémoire dans la plus grande probabilité pour que suffisamment de temps pour fonctionner pendant une courte

Le système ne peut donc être qu'une petite partie de code et les données en mémoire au moment de l'exécution. Autre code rechargées en cas de besoin, ne court plus le code et les données de la mémoire effacée. Alors, peut-être même exécuter des programmes grands dans une petite mémoire.

gestion de la mémoire virtuelle
  • gestion de la mémoire virtuelle paginée
  • la gestion du stockage virtuel Segment
  • Segment paginée la gestion de la mémoire virtuelle
gestion de la mémoire virtuelle paginée

L'espace de traitement et la mémoire est divisée en morceaux de taille égale

  • Une taille typique d'un petit morceau de: 4K, 2K, 1K
  • La taille du processus - Page
  • Taille de la mémoire - Page boîte

Insérer ici l'image Description

Le principe du chargement de processus et l'utilisation de la mémoire
  • cadre de page de mémoire comme une unité affectée à l'utilisation
  • Unités de process de pages dans la mémoire
    • Seule la partie du programme dans les pages de mémoire peut fonctionner
    • Page dans la mémoire occupée par zone non adjacente
    • Quand une nouvelle page, à partir du disque dur en mémoire à la demande
    • Pas plus long terme aussi rapidement retiré pour libérer de l'espace mémoire

Insérer ici l'image Description

3.2 Adresse table de mappage et page

3.2.1 Adresse du système paginée

Il peut être décomposé en une adresse virtuelle VA

  • Numéro de page P (taille n = Page VA / VA lequel la page)
  • Décalage (offset où la taille de page de pages% VA = VA) W-Page

VA = P à savoir * page_size + W. Nous n'utiliserons le calcul réel /, %division calcul, et moi, au lieu d'utiliser l'opération de bits, de sorte qu'une plus grande efficacité.

Si la taille de la page est 1k = 2 ^ n, à savoir, n = 10, il y a

  • P = VA >> n
  • W = VA && (2 ^ n-1)

Exemple: Supposons que l'adresse virtuelle VA certain code = 2500, taille de page 1k = 2 ^ 10, il y a

  • P = 2500/1024 = 2
  • W = 2500% 1024 = 452
3.2.2 table de correspondance page / tableau page

table de mappage est une page d'enregistrement et de la table de correspondance de cadre de page, également appelée la table de page. Illustré comme suit:

numéro de page Page numéro d'image Page Autres caractéristiques
0 5 ...
1 32 ...
2 19 ...

Insérer ici l'image Description

3.2.3 Adresse style de page Mapping

adresses virtuelles en processus de mappage des adresses physiques:

  • W séparé du numéro de page VA offset et la page P
  • Rechercher tables de page: P est un indice au numéro cadre de page contrôle
  • Calcul de la MA d'adresse physique, MA = P « * page_size + W, page_size généralement 4k

Insérer ici l'image Description

Tableau 3.3 Technologie et technologie page partage rapide

Tableau 3.3.1 Mécanisme rapide
  • Table rapide: table de pages stockées dans le cache
  • Table lente: table de page stockée en mémoire

快表是慢表部分内容的复制. Lorsque le mappage d'adresses sera 先访问快表, si trouvé les données nécessaires dans une table rapide, « 命中» s'il n'y a pas de « coup », vous avez besoin d'accès lent à la table, en même temps 更新快表. Pour avoir un taux de réussite plus élevé, il devrait être une stratégie d'échange de choix raisonnable.

Insérer ici l'image Description

3.3.2 Partage de pages
  • Remplissez le même numéro de cadre de page dans une table de page de processus différents, plusieurs processus peuvent accéder au même espace mémoire, afin de parvenir à la page partagée
  • Seul un vrai pages de partage stockées en mémoire, pour économiser la mémoire

Insérer ici l'image Description

faute 3.4 page

Les ordinateurs actuels du système de stockage hiérarchique
Insérer ici l'image Description

premier regard cache CPU dans les données, si malheureusement pas de résultats pour aller chercher la mémoire, la mémoire s'il n'y a pas de données transférées depuis la mémoire externe à la mémoire. Trouver la mise à jour du cache de la mémoire au poste.

3.4.1 page Table étendue

Grâce à la structure décrite ci-dessus de la table de page:
Insérer ici l'image Description
En plus de cette structure de table de page sur résumé figure, ainsi que l' expansion d'un bit d' interruption et de la table de page et d' accès la page avec l'épitope de bits modifiés et les adresses de stockage auxiliaires, comme représenté sur la Fig. :
Insérer ici l'image Description

3.4.2 erreur de page

Définition: Dans le processus de mappage d'adresses, lorsque la page de destination se trouve pas dans la mémoire à accéder, le système génère avorter - défaut page.

Page traitement des défauts:

  • la routine d'interruption à la page manquante dans la mémoire d'une page de boîte de page de l'adresse de stockage auxiliaire indiqué dans le tableau
  • numéros de cadre page de mise à jour dans la table de page correspondant à la page
  • Modifier le bit d'interruption est 0

Insérer ici l'image Description

Taux de défaut:

  • F = nombre de taux de défaillance de page de défaut de page / nombre total de visites de pages
  • Taux de réussite = 1 - f

Pensez à un problème dans le programme ci-dessous, nous avons parfois calculer le temps d'exécution d'une fonction ou d'un programme avec une minuterie, mais ce n'est pas exact. La raison en est que le programme est paginée, il est possible de programmer en plusieurs pages et ne pas importer à la fois dans la mémoire, de sorte que le processus d'exécution du programme, peut générer une erreur de page, qui produira une ou plusieurs opérations entrées-sorties augmenter le temps de courir.
Insérer ici l'image Description

3.5 pages sur la stratégie

Stratégie d' élimination fait référence à un système de sélection sur les règles qui page. Une bonne politique devrait être progressivement avec un taux plus faible de pages manquantes ou supérieur 高的命中率, et les pages d'échange dans la mémoire et le stockage auxiliaire ( 页面抖动) moins.

3.5.1 pages de l'algorithme sur
algorithme description
Optimal algorithme OPT Après l'élimination est plus nécessaire ou utilisé à l'avenir était la page le plus (plus théorique, en réalité impossible)
algorithme FIFO de FIFO Restez en dehors des pages en mémoire la plus longue
Moins récemment utilisés éliminé algorithme LRU Page de la plus longue utilisé
L'algorithme moins fréquemment utilisé LFU Sélectionnez l' accès au nombre minimum inconnu heure de pages, chaque accès jeu de pages compteur, compteur d' accès +1 à chaque fois que la page est accessible. En cas de défaut de page se produit, 淘汰计数值最小的页面et effacé tous les chefs

3.6 page manquante des facteurs de page et les systèmes de lacunes

3.6.1 Sélection de la taille de la page
  • Page trop grande: une perte de mémoire
  • Page trop petite: une augmentation de la page, augmenter la longueur de la table de page, une perte de mémoire, la pagination fréquente, la faible efficacité du système
  • taille de la page commune: 1 Ko, 2 Ko, 4 Ko

Insérer ici l'image Description

Insérer ici l'image Description

Ce qui précède est commune à la fois au mode d'accès au réseau, un groupe de deux chiffres de stockage en mémoire pour stocker une rangée, comme représenté sur la Fig. Si le premier mode ( myArray[i][j]tableau d'accès), puis, le pointeur de la commande sera accessible. Mais si vous appuyez sur la deuxième façon, chaque fois que vous visitez un certain espace d'adressage doit 10000 intervalle qui bloc de mémoire. Int taille est de 4 octets (4b), la taille de MyArray 10K * 4B = 40 KB, si la taille de page du système est de 4 Ko, puis la seconde manière, un à la fois à l' accès du réseau d' alimentation de moût, un gaspillage du temps.

3.6.2 systèmes inadéquats de la page
  • Aucune page est divisée en sens logique
  • pages partagées inflexibles
  • Enclin à l'intérieur des débris pages

3,7 segment et le segment de mémoire virtuelle paged

3.7.1 Segment Gestion du stockage
processus segmentation

Le processus est divisé en une pluralité de segments dans un sens logique, chaque segment a un nom de section, la longueur n'a pas été déterminée. Le processus par une pluralité de segments.

Exemple: un segment de code ayant un segment de données, le segment de pile de traitement peut être stocké comme indiqué dans le schéma:

Insérer ici l'image Description

étape de l'allocation mémoire système de gestion de la mémoire:

  • Chargement unité de segment, chaque segment affecté mémoire contiguë
  • segments de segments adjacents et ne sont pas requises

Système virtuel Adresse étapes:

  • Stade comprenant une adresse virtuelle VA et le numéro du segment de décalage du segment S W
  • ET: (S, W)
Table sectorielle (tableau Mémoire du segment)
Numéro du segment chef de section Adresse de base (la première adresse dans le segment de mémoire)
S L B

mappage d'adresses étape de procédé

  • La séparation de la (S, W) par l'adresse logique VA
  • segment de table de requête (numéro de segment récupéré S, la section d'information 基地址Bet 长度L)
  • Adresse physique MA = B + W

Insérer ici l'image Description
Table sectorielle contient

  • champs de base: numéro de bloc, la longueur, la base
  • champ étendu: bit d'interruption, l'accès de bits, bit modifier, R / W / X (lecture, écriture, exécution d'autorisations)
Lacune système d'estrade
  • Segment nécessite de la mémoire continue
  • La taille maximale de la section de réception de la limite de taille de mémoire
  • Gestion de taille variable dans la section de stockage auxiliaire difficile
Section 3.7.2 à la page de gestion du stockage

Segment est paginée page subdivision de paragraphe.

section de mappage d'adresse de la page

Lors de l'utilisation des tables de segments et de la page pour obtenir mappage d'adresses.

  • Établir un système pour chaque table de segment de processus
  • Mettre en place une table de page système pour chaque segment
  • tableau page segment donné l'adresse de base de la table et la longueur de chacune des tables de pages
  • Par table de page correspondant au cadre de page donnée

Insérer ici l'image Description

Publié 148 articles originaux · louange gagné 136 · Vues 250 000 +

Je suppose que tu aimes

Origine blog.csdn.net/DlMmU/article/details/104686589
conseillé
Classement