Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    août 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2012
    Messages : 16
    Points : 45
    Points
    45

    Par défaut [question]Problème de compréhension: La pagination

    Bonjour,
    je suis étudiant en informatique et j'ai quelques problèmes de compréhension sur le mécanisme de pagination.
    J'ai lu beaucoup de choses sur internet, mais cela n'a pas répondu a toutes mes questions. Je viens donc ici en espérant que certains puissent m'éclairer

    Je vous montre un exemple sur lequel je me pose certaines questions, il s'agit de d'un processeur x86-64 bits avec une pagination à 4 niveau.




    Les adresses virtuelles sont sur 48 bits vu que le plus grand diviseur entier de 52 par 4 est 48.
    Cependant je ne comprend pas pourquoi on utilise des adresses physique limitées sur 52 bits?
    que contiennent les entrées e chaque table?

    Je me demande aussi comment calculer la taille des de l'ensemble de pages?
    page map lvl4= 2^9 = 1ko
    page pointer directory = 2^18 = 32 ko
    page directory = 2^27 = 16 Mo
    page = 2^36 =8,1 Go
    ça me parait énorme pour gérer la mémoire.

    Certains processeurs récent utilisent des pages de 4kio, 4Mio voir 1 Gio. Quel en est l’intérêt?

    Voila, merci pour ceux qui prendront le temps de répondre, bonne journée

  2. #2
    Expert Confirmé Sénior Avatar de JML19
    Homme Profil pro Jean Michel
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    décembre 2010
    Messages
    7 176
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean Michel
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : décembre 2010
    Messages : 7 176
    Points : 11 496
    Points
    11 496
    Billets dans le blog
    1

    Par défaut

    Bonjour

    Pour comprendre la pagination il faut avant comprendre la segmentation, ceci vient du processeur 16 bits qui adresse en 20 bits.

    Ce qui fait que la registrerie en adressage mémoire comporte deux niveaux de registre qui est segment:offset (segment + déplacement).

    Voici ce que dit Wikipédia :

    Accès mémoire

    Les possibilités d'adressage mémoire de la gamme x86 remontent au 8080, qui avait 16 bits de bus d'adresse et pouvait donc accéder à 64 Ko de mémoire.

    Le 8086, pour faciliter le passage du 8080 au 8086, introduit l'adressage segmenté, où l'adresse référencée par segment:offset est segment · 0x10 + offset, avec segment et offset tous deux sur 16 bits. Cela fournit 1 Mo de mémoire adressable, divisée en segments de 64 Ko, un segment commençant tous les 16 octets. Le processeur a 4 registres de segment : un pour le code, un pour les données, un pour la pile et un supplémentaire (qui sert entre autres de destination dans les instructions de copie de chaînes de caractères). Intel introduit des « modèles mémoire ». Dans le modèle tiny, qui imite le modèle mémoire du 8080, tous les registres de segments ont la même valeur et on accède donc effectivement à 64 Ko de mémoire. C'est le modèle utilisé sous DOS, par les exécutables .com. Dans le modèle small, les registres ont des valeurs différentes mais ne changent pas : on a donc 64 Ko pour le code, 64 Ko pour les données, 64 Ko pour la pile. Pour manipuler plus de mémoire, il faut faire des accès « far », c'est-à-dire aller chercher le mot en mémoire en changeant d'abord la valeur du registre de segment, puis en lisant le segment à l'offset voulu. Le modèle « large » fait des accès far dans le code et les données et donc utilise effectivement le mébi-octet d'espace adressable. Les modèles medium (64 Ko de données, plusieurs segments de code) et compact (plusieurs segments de données, 64 Ko de code) sont des compromis.

    Le 80286 brise la barrière des 1 024 Ko en introduisant le mode protégé : les segments ne se réfèrent plus à l'adresse segment·0x10 mais à une table (la GDT -- ou la LDT) qui maintient en plus les informations de protection. L'espace adressable est de 16 Mo, l'espace virtuel est potentiellement de 1 Go, un segment ne peut pas dépasser 64 Ko. Avec le 386, Intel introduit un processeur 32 bit. Les segments peuvent être aussi gros que tout l'espace adressable, soit 4 Go. La pagination vient s'ajouter à la segmentation.

  3. #3
    Membre confirmé
    Avatar de Chatanga
    Inscrit en
    décembre 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : décembre 2005
    Messages : 184
    Points : 283
    Points
    283

    Par défaut

    Citation Envoyé par petogo Voir le message
    Les adresses virtuelles sont sur 48 bits vu que le plus grand diviseur entier de 52 par 4 est 48.
    Cependant je ne comprend pas pourquoi on utilise des adresses physique limitées sur 52 bits?
    que contiennent les entrées e chaque table?
    Rien, ou plutôt la même valeur que le bit 47 (d’où le terme extension). Il existe des modes de pagination sur 52 et 64 bits, mais il n’existe par contre pas encore, que je sache, de processeurs les exploitant. Ce n’est donc pas une limite fondamentale, mais davantage une optimisation pour se dispenser de gérer une pagination à plus de 48 bits quand personne n’a besoin pour l’instant d’autant de mémoire adressable.
    Citation Envoyé par petogo Voir le message

    Je me demande aussi comment calculer la taille des de l'ensemble de pages?
    page map lvl4= 2^9 = 1ko
    page pointer directory = 2^18 = 32 ko
    page directory = 2^27 = 16 Mo
    page = 2^36 =8,1 Go
    ça me parait énorme pour gérer la mémoire.
    Ça l’est, mais les tables elles-même peuvent être swappées (à l’exception de la table de premier niveau). C’est en partie l’utilité du découpage en plusieurs niveaux.
    Citation Envoyé par petogo Voir le message

    Certains processeurs récent utilisent des pages de 4kio, 4Mio voir 1 Gio. Quel en est l’intérêt?
    La pagination change aussi, avec moins de niveaux. Le but est d’accélérer les traductions d’adresses virtuelles en évitant de faire trop de recherches dans les tables. Les inconvénients, fragmentation et optimisation de l’espace, sont les mêmes qu’avec les systèmes de fichiers.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •