Next: Conclusion Up: Support des systèmes Previous: Cache de traduction

Protection

Afin de garantir l'intégrité des données et des instructions, en particulier en présence de processus multiples, les microprocesseurs offrent des mécanismes de protection sur la mémoire.

MIPS R10000


Le MIPS R10000 supporte trois modes d'exécution : le mode noyau, le mode superviseur et le mode utilisateur. Le mode superviseur, qui existait sur le MIPS R4000 mais pas sur le MIPS R8000, est implémenté pour assurer la sécurité de certaines parties du système d'exploitation moins critiques. Les espaces d'adressage virtuels vus par les trois modes ont été présentés aux figures , et . La sélection entre les trois modes se fait par le système d'exploitation (en mode noyau) en écrivant dans le champ KSU du registre d'état du processus. Les cinq bits de poids fort de l'adresse virtuelle (les bits de région : VA[63:59]) permettent de coder, pour chaque adresse, le mode utilisé.

Mode noyau :

Ce mode peut accéder et modifier tous les registres. Le coeur du système d'exploitation utilise ce mode.

Mode superviseur :

C'est un mode intermédiaire entre le mode noyau et le mode utilisateur. Il est utilisé par des parties du système d'exploitation moins critiques. Ainsi certaines zones noyau ne sont pas accessibles au superviseur.

Mode utilisateur :

Ce mode permet de prévenir les interactions d'un utilisateur sur un autre. L'espace utilisateur est accessible en mode noyau et en mode superviseur.

De plus, les droits d'accès sur chaque page (Read, Read Only, Write) et des informations sur la cachabilité de la page sont associés à chaque descripteur de page et vérifiés à chaque traduction d'adresse.

UltraSPARC


La sécurité sur l'UltraSPARC est gérée par deux modes d'exploitation : le mode privilégié (priviledged mode) et le mode non-privilégié. À chaque accès à la mémoire, la cohérence d'une opération avec le mode est vérifiée ainsi que les droits d'accès. Les pages marquées en mode privilégié (un bit dans la Translation Table Entry) ne peuvent être accédées que par les processus lancés en mode privilégié.

PentiumPro


Pour chaque accès à la mémoire, le niveau courant du privilège d'accès du programme qui s'exécute (CPL : Current Privilege Level) est comparé au niveau du privilège du segment adressé. D'autres vérifications sont effectuées, comme la cohérence du type d'accès, le non-dépassement des différentes limites du domaine adressable et le respect de différentes restrictions du jeu d'instructions ou des points d'entrée de procédures.

Sécurité au niveau des segments :

le premier niveau de vérification est faite au cours de la segmentation à l'aide de champs de vérification présents dans les descripteurs de segments. En plus des descripteurs pour les segments classiques (données, code...), il existe des descripteurs de segments dédiés au système d'exploitation et des descripteurs de portes (Gates). La porte est une structure de données servant à manipuler les tâches, exceptions et interruptions. En particulier, les descripteurs de portes permettent des transferts de contrôle entre des segments de niveaux de privilèges différents; ils jouent le rôle de passerelles.

Sécurité au niveau des pages :

seule la vérification de la cohérence du type d'accès est effectuée à ce niveau. Cette protection est réalisée au niveau du répertoire et de la table de pages du mécanisme de traduction d'adresse (voir figure ).



Next: Conclusion Up: Support des systèmes Previous: Cache de traduction


flloansi@IRISA.irisa.fr
Tue Jun 4 09:57:56 MET DST 1996