CONCEPTION D'UN OS - Segmentation & Interruptions
Segmentation
Buts
La segmentation permet d'adresser la totalité de l'espace mémoire physique possible (0 - 4 Go) sans souci - jusqu'à 4 Giga-octets, car nous sommes en mode protégé, donc les adresses mémoires sont sur 32 bits.
Le mécanisme de segmentation permet d'offrir un partage simplifié des données entre différents processus tout en permettant une protection efficace des données : il ne permet en aucune façon d'étendre la mémoire.
But de la segmentation
- Donner aux applications l’impression d’une grande mémoire vive en utilisant une mémoire vive plus modeste et une mémoire de masse.
- Protéger les applications contre les dommages causés volontairement ou non par les autres applications s’exécutant sur le même ordinateur.
- Protéger le système d’exploitation contre les dommages causés volontairement ou non par les applications.
Principes
Pour cela la segmentation repose sur plusieurs principes. A savoir la possibilité d'isoler les zones mémoires de chaque programme et l'utilisation des niveaux de privilèges pour certaines opérations propre au mode protégé.
Niveaux de privilèges
Il existe 4 niveaux de privilèges, du plus prioritaire au moins prioritaire, qui permettent de contrôler l'accès à la mémoire :
|
Les services ont ainsi d'autant plus de droits pour appeler des fonctions restreintes du noyau que leur niveau de privilège est proche de 0.
Un accès invalide à un élément avec un niveau de priorité illégal conduit à une exception de violation de protection.
Il est à noter que Windows NT et Linux n’utilisent que les niveaux 0 et 3. Le mode protégé du Pentium dispose de quatre niveaux de privilèges.
NB : Il est important aussi de ne pas confondre ces droits avec les droits logiques du niveau applicatif (root, ...).