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

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 :

  • Niveau 0 : Niveau super-utilisateur. C'est le fonctionnement en mode noyau : accès aux instructions privilégiées, accès aux interruptions, accès aux entrées/sorties.
  • Niveau 1 : Fonctions systèmes appelées par les applications, gestion des fichiers, affichage, pilotes d’imprimantes, etc.
  • Niveau 2 : Extensions du système d’exploitation qui reposent sur le niveau 1.
  • Niveau 3 : Niveau des applications.

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, ...).