Mode protégé

Le mode protégé est un mode de fonctionnement des processeurs basés sur l'architecture x86 d'Intel à partir du 80286. Il est aussi présent dans les séries x86-64 sous deux formes envisageables : 32 bits et 64 bits.



Catégories :

Architecture x86 - Microprocesseur

Recherche sur Google Images :


Source image : asmzone.ifrance.com
Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur.

Page(s) en rapport avec ce sujet :

  • Pas vraiment les adresses hautes «de la mémoire» mais plutôt celles du ... C'était en particulier vrai en mode réel 16 bits lorsque les segments... (source : developpez)
  • Ce mode permet l'addressage de 4 Go de memoire et apporte un support pour... Passer du mode reel au mode protege est tres simple, il suffit de mettre le bit 0 du ... Les segments sont decrits par des structures de 64 bits appelees... (source : jojo.ouvaton)
  • Le mode protégé est un mode de fonctionnement des processeurs basés sur ... Il est aussi présent dans les séries x86-64 sous deux formes envisageables : 32 bits et 64 bits.... (Protected mode). Mode de gestion de la mémoire apparu avec les ... (source : babylon)

Le mode protégé est un mode de fonctionnement des processeurs basés sur l'architecture x86 d'Intel à partir du 80286. Il est aussi présent dans les séries x86-64 sous deux formes envisageables : 32 bits et 64 bits.

Caractéristiques

L'introduction du mode protégé a pour but d'ajouter, à côté du mode dit réel compatible avec l'existant, de nouvelles fonctionnalités pour faciliter le multitâche et la stabilité du dispositif en proposant une assistance matérielle pour les points suivants :

La plupart des systèmes d'exploitation modernes x86, de Linux à FreeBSD en passant par Windows depuis la version 3.0, fonctionnent dans ce mode. Pour des raisons de compatibilité, un ordinateur se lance en mode réel et le basculement en mode protégé s'effectue manuellement. C'est une des premières tâches faites par le dispositif d'exploitation après l'amorçage.

La segmentation

La segmentation ne peut pas être totalement désactivée en mode protégé. Mais à la différence du mode réel, les segments sont entièrement programmables.

C'est avec la segmentation que sont instaurés les niveaux de privilèges (anneaux, voir ci-dessous). Chaque segment possède un niveau de 0 à 3.

La segmentation sert aussi de support à la mémoire virtuelle. En effet, un segment est constitué d'une base (adresse physique — nommée linéaire si la pagination est activée — de départ dans la mémoire) et d'une limite qui définit sa longueur. À l'intérieur d'un segment, l'adresse logique 0 correspond à la base de ce segment. Un segment peut par conséquent être déplacé avec ses données de façon transparente.

De plus le descripteur de chaque segment contient un bit P pour «présent» qui indique si les données sont en mémoire vive ou pas. Si ce bit est éteint, lors d'un accès à ce segment, une exception se déclenche qui permet au système d'exploitation d'aller chercher les données où elles se trouvent et de les copier en mémoire vive.

La segmentation n'est quasiment pas utilisée par Linux, qui définit des segments correspondant à la totalité de la mémoire virtuelle.

Niveaux de privilège

Il existe, en mode protégé de x86, quatre niveaux de privilège nommés anneaux de protection, numérotés de 0 à 3. Le niveau 0 est le niveau de privilège le plus élevé et le niveau 3 le plus faible. La protection mémoire repose sur les segments : le matériel n'autorise pas à un programme qui s'exécute dans un segment, d'accéder aux segments de privilège supérieur (donc localisés dans un anneau de numéro inférieur).

En pratique, la majorité des systèmes d'exploitation modernes (dont Linux et Windows) n'utilisent que deux de ces niveaux. Le code de l'espace noyau (surtout le noyau de dispositif d'exploitation) s'exécute dans l'anneau Ring 0, alors que les applications utilisateur sont normalement exécutées dans l'anneau Ring 3, plus sécurisé et plus restrictif. On parle fréquemment de ces anneaux avec les termes «mode noyau» et «mode utilisateur».

Pagination

La segmentation ne pouvant être désactivée, les adresses virtuelles sont toujours traitées par l'unité de segmentation, qui produit une adresse linéaire. Quand la pagination n'est pas disponible (80286) ou désactivée, cette adresse linéaire est directement reconnue comme une adresse physique. Cependant, le 80386 et ses successeurs offrent un puissant mécanisme de pagination qui sert à gérer particulièrement efficacement la mémoire virtuelle.

Dans le cas le plus habituel, la mémoire virtuelle (celle correspondant aux adresses linéaires) est divisée en pages de 4 Kio (mais il est envisageable aussi d'avoir des pages de 2 Mio ou 4 Mio). Chaque contexte dispose d'un espace d'adressage de 4 Gio, soit 1 024×1 024 pages, dont certaines d'entre elles correspondent à des cadres en mémoire physique (qui ont la même taille, par conséquent généralement 4 Kio). L'association entre pages et cadres est assurée par l'unité de pagination.

Pour limiter la taille de la table des pages (a priori un tableau de plus d'un million d'entrées, mais très creux), une structure à deux niveaux est mise en place :

Pagination sur 80386, avec pages de 4 Kio.

Une entrée de répertoire ou de table de pages fait 32 bits, or une adresse de cadre est donnée sur 20 bits (10+10). Il reste par conséquent 12 bits supplémentaires, qui correspondent à divers indicateurs, dont le bit de présence, qui indique que la page n'est pas présente en mémoire. Quand cela se produit, une exception de type défaut de page est levée, et doit être traitée par le dispositif d'exploitation. Deux cas se présentent :

Rétro-compatibilité avec le mode réel

Il existe une série de règles pour qu'un programme exploité en mode réel soit binairement compatible, c'est-à-dire qu'il puisse être exécuté en mode protégé.

En réalité, la majorité des programmes DOS enfreignaient ces règles. Le 386 introduit le mode virtuel 8086 pour remédier à cela.

Les modes protégés de x86-64

Le mode 32 bits de x86 est conservé, nommé Legacy Mode (mode hérité). x86-64 introduit un autre mode protégé en 64 bits natif nommé Long mode, avec des différences notables :

Voir aussi

Liens externes

Recherche sur Amazone (livres) :




Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Mode_prot%C3%A9g%C3%A9.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu