Programme mmu: memory management unit 2/ Adresse logique ou physique








télécharger 47.09 Kb.
titreProgramme mmu: memory management unit 2/ Adresse logique ou physique
date de publication12.04.2017
taille47.09 Kb.
typeProgramme

S1 – AMSI IG2

Gestion de la mémoire



I/ Du code source au processus


1.1/ Production et chargement d’un programme





MMU: memory management unit
1.2/ Adresse logique ou physique
Adresse logique : adresse employée par un processus (dans la mém. centrale)
Adresse physique : adresse qui référence matériellement la mém. centrale
La liaison entre ces deux adresses se fait :

  • soit à l’exécution

  • soit à la compilation (adresse logique = adresse physique)

  • soit au chargement (adresse logique = adresse physique)


II/ Les <> modes de gestion de la mémoire

2.1/ Partition contiguë simple
Mém. centrale divisée :

  • SE

  • Processus dans la partition contiguë simple


2.1.1/ Avec registre de base


  • Liaison : adresse logique et physique à la compilation ou au chargement

  • matériel spécifique : registre de base contient l’adresse de départ de la partition



2.1.2/ Avec registre de translation


  • liaison : adresse logique et physique à l’exécution

  • matériel spécifique : registre de translation




Partition contiguë simple = mono programmation
2.2/ Partition contiguë multiple
Chaque processus correspond à une partition contiguë.

  • liaison à l’exécution

  • matériel spécifique : registre de translation et un registre de taille (ou de limite)





Le registre de translation contient le début de la partition.

Le registre de taille contient la taille de la partition.
Le SE :

  • gère l’espace libre et occupé

  • gère la table des partitions globales à tous les processus

  • choisit l’emplacement où mettre le nouveau processus

  • met à jour les registres lors des commutations de contexte


2.2.1/ A taille fixe
Chaque partition a une taille fixe :

  • le registre de taille a une valeur constante pour chaque processus

  • seul le registre de translation change à chaque commutation de contexte


Intérêt :

  • pas de pb de sélection de zone libre

  • table de partition simple


Inconvénient :

  • impossible d’allouer à un processus dont la taille est > à la taille de la partition

  • pb de fragmentation interne en moy, à l’intérieur d’une partition


2.2.2/ A taille variable
Bcp plus complexe :

  • il faut changer de registre de taille à chaque commutation de contexte

  • la table de partition doit prendre en compte la taille

  • pb de sélection de la zone libre quand chargement d’un nouveau processus


3 algos de sélection :

  • 1ère zone libre (First Fit) : le SE choisit la 1ère zone libre qui peut contenir le processus. Il peut être transformé en 1ère zone libre suivante.

  • Meilleur ajustement (Best Fit) : prendre la plus petite zone libre pouvant contenir le processus

  • Pire ajustement (Word Fit) : choisir la plus grande zone libre pouvant contenir le processus


Quand le processus ne peut être charger (pas de zone libre contiguë assez grande) mais que la réunion de toutes les zones libres est plus grande que la taille du processus alors on effectue un compactage de la mém. centrale.
Pb de la fragmentation externe : zone libre entre chaque partition occupée (non utilisable)

  • si compactage présent résout ce pb mais au prix d’un procédé coûteux

  • si pas compactage pour N bloc alloué, 0,5N perdus à cause de la fragmentation externe


2.3/ Pagination
Les processus sont morcelés et répartis dans la mémoire :

  • principe : code processus divisé en morceaux de taille fixe = page

la mém. centrale est divisée en bloc de même taille = cadre de page

le chargement en mém. centrale du processus = chargement de chaque page dans un cadre libre

  • liaison : adresse logique à physique pendant l’exécution

  • matériel spécifique : mém. divisée encadre de taille physique = 2T octets et nbre de cadre = 2C


A chaque processus, le SE devra gérer une table de pages (correspondance de chaque page à son cadre).

La nème entrée de la table = le numéro du cadre dans lequel la page n du processus est chargé.
Une adresse logique a le format :




Offset = décalage

Une adresse physique a le format :

Une entrée dans la table :

Note :

  • C et T sont fixés par le matériel

  • P <= C




Exercice : Une mémoire physique d’une machine est une mémoire paginée contenant 231 cadres de pages. Chaque page a une taille de 4 Ko et une adresse logique comportant en tout 32 bits.

  1. Quel est le nombre de page allouable à un processus ?

  2. Quel est le nombre de lignes d’une table de page ?

  3. Quelle est la taille, en bits, d’une entrée dans la table de page sachant qu’il y a 1 bit valide / invalide ?

  4. En déduire la taille d’une table de page.


RM : 1 Ko = 1024 o

1 Mo = 1024 Ko = 1024² o
Réponse :

  1. Nombre de page allouable à un processus cad que l’on cherche 2P : 220

2T = 4096  T = 12

P + T = 32 donc P=20


  1. Nombre de ligne d’une table de page : 220

Nbre de ligne d’une table de page = nbre de page allouable par un

Processus


  1. Taille d’une entrée dans la table de page : 32 bits

231 = 2C  C = 31

Il faut ajouter le bit valide / invalide


  1. Taille d’une table de page : 4 Mo

Taille d’une entrée dans la table de page * nbre de lignes dans la table de page  220 * 32

Pagination à plusieurs niveaux



2P1 = nbre de table de pages de niveau inf

= nbre de lignes de la table de pages de nivau sup

m1 adresse de la table de pages de niveau inf
Pour chaque processus, il y a une table de pages de niveau sup.
Exercice : Une mémoire physique d’une machine est une mémoire paginée à plusieurs niveaux contenant 231 cadres de pages. Chaque page a une taille de 4 Ko et une adresse logique comportant en tous 31 bits.

Avec P1 = 9 bits et P2 = 10 bits

  1. Nbre de table de pages de niveau inf. ?

  2. Nbre de lignes de la table de pages de niveau inf. ?

  3. Sachant qu’une entrée de la table de pages de niveau sup. comporte le numéro de cadre d’une table de page de niveau inf., donner la taille de page de niveau sup. ?

  4. Taille de la table de pages de niveau inf. ?


Réponse :

  1. Nbre de table de pages de niveau inf. : 29

d’après le schéma : 2P1


  1. Nbre de ligne de table de niveau inf. : 210

Chaque entrée de table de niveau inf. correspond à un numéro n2 codé sur P2 bits : 2P2


  1. Taille de la table de pages de niveau inf. : 2 ko

29 * 32


  1. Taille de la table de page de niveau sup. : 4 ko

210 * 32
Exercice : On considère un système de pagination simple dont les caractéristiques sont les suivantes. Chaque table de pages comporte 64 entrées (ou lignes) de 11 bits de large (en TOUT cad comprenant le bit valide / invalide) et une taille de page de 512 octets (adresse logique).


  1. Donner le nbre de bits nécessaires pour l’offset dans l’adresse logique ? T = 9

  2. Nbre de bit totale de l’adresse logique ? P = 6 donc P + T = 15

  3. Taille de l’espace d’adressage logique = nbre d’octets que l’on peut référencer avec une telle adresse logique ? 215

  4. Nbre de bits du numéro de cadres pour l’adresse physique ? C = 10

  5. Nbre de bit totale de l’adresse physique ? C + T = 19

  6. Taille de l’espace de l’adressage physique ? 219


RM : Taille de la page = 2T

Nbre de page allouable = 2P
Exercice : On considère la pagination à 2 niveaux. Une page a une taille de 212 octets et une adresse logique codée sur 32 bits. Les 8 premiers bits servent d’indexe pour la table de page de niveau sup.


  1. Nbre de bits pour repérer une entrée dans la table de pages de niveau inf. ? P2 = 12

  2. Nbre de lignes dans la table de niveau sup. ? 28

  3. Nbre de lignes dans la table de niveau inf. ? 212

  4. Nbre de pages dans l’adresse logique ? 2P1 * 2P2 = 220


2.4/ Segmentation
Segmentation simple

Le processus est divisé en plusieurs morceaux de taille variable. Chaque morceau correspond à un constituant logique du processus. Chaque morceau s’appelle un segment. Chaque processus contient une table de segmentation.




  • changement au niveau de la table de segmentation

  • gestion de l’espace libre

  • problème de fragmentation externe


Segmentation avec pagination

C’est une segmentation qui allie l’efficacité de la pagination à la protection et à l’organisation de la segmentation.

L’adresse logique a le format suivant :







III/ Mécanisme d’économie de la mémoire


3.1/ Table de page inversée
La table de page est globale à tous les processus. Le nbre de lignes = au nbre de cadres de la mémoire centrale.

L’adresse logique a le format suivant :


PID : Identifiant du processus



3.2/ Recouvrement
Si deux ou plusieurs segments d’un programme n’ont pas besoin d’être dans la mémoire physique en même temps alors on peut réduire l’espace occupé par le processus en inter changeant les segmentations en cours d’exécution.
3.3/ Partage de code entre processus
Une bibliothèque est un ensemble de plusieurs fichiers objets rassemblés les uns avec les autres avec un index. 2 sortes de bibliothèques :

  • Bibliothèque statique : le code objet de la biblio est inséré dans l’exécutable. Le problème est que l’exécutable généré à une taille importante parce que le code de la biblio est dupliqué à chaque génération d’exécutable donc surcharge de la mémoire.

  • Bibliothèque dynamique ou partagée : à l’édition de lien, insertion dans l’exécutable de stub (couche), point d’accès à la procédure de la biblio. La 1ère fois que l’UC rencontre le stub en mémoire centrale, il se pose la question suivante : est-ce que la procédure demandée par le stub est présente ?

    • Si oui, le stub est remplacé par un saut vers l’adresse mémoire de la procédure

    • Sinon, il y a chargement en mémoire de la procédure et remplacement du stub

La 2ème fois que l’UC arrive au niveau de l’ancien stub, plus de question. Le code de la biblio dynamique n’est changé que s’il est appelé au moins une fois. Le code n’est changé qu’une seule fois même s’il est utilisé par plusieurs personnes (d’où gain de place et de temps).



Gestion de la mémoire Page sur


similaire:

Programme mmu: memory management unit 2/ Adresse logique ou physique iconUn vlan, est donc, un regroupement logique, et non physique, de plusieurs stations

Programme mmu: memory management unit 2/ Adresse logique ou physique iconPasser d’une logique de bibliothèque à une logique de médiathèque. 3- l’etat des lieux p 08

Programme mmu: memory management unit 2/ Adresse logique ou physique iconHow much memory do you need for virtualization?

Programme mmu: memory management unit 2/ Adresse logique ou physique iconUnit 1 Questions

Programme mmu: memory management unit 2/ Adresse logique ou physique iconProgramme pour le cycle 2
«calcul intelligent», où les élèves comprennent ce qu’ils font et pourquoi ils le font. En questionnement du monde, la construction...

Programme mmu: memory management unit 2/ Adresse logique ou physique iconVocabulaire – unit 6 – review fran ҫ ais 7

Programme mmu: memory management unit 2/ Adresse logique ou physique iconLe programme de physique chimie en terminale stl, spcl, est composé...

Programme mmu: memory management unit 2/ Adresse logique ou physique iconAdresse physique

Programme mmu: memory management unit 2/ Adresse logique ou physique iconAdresse physique b-ab-00-6A

Programme mmu: memory management unit 2/ Adresse logique ou physique iconAdresse physique








Tous droits réservés. Copyright © 2016
contacts
p.21-bal.com