Alian Web Server
carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets)
  Retour au sommaireAlian
Rubrique Informatique
Théorie des systèmes d'exploitation
 

 

 

 

Retour au sommaireHaut de page

- I - INTRODUCTION
 

1 - Historique des ordinateurs

 

2 - Ordinateur à la mise sous tension


Un ordinateur est complexe et un système d'exploitation est un programme élaboré qui orchestre la complexité du hardware afin de rendre une interface simple à évoluer .

Quand un microprocesseur est mis sous tension il fonctionne tout d'abord en mode 16 bits, il ne voit que 1 Mo de RAM ou mémoire . Il s'agit du mode réel . Ce mode est destiné à garder la compatibilité avec les anciennes machines . Ainsi sont chargés le firmware, la vidéo, le keyboard et les 640 Ko. Dans le 1er Ko de mémoire sont chargés les vecteurs d'interruptions (-> 4Ko : la table des E/S ).

Quel que soit le média de boot, on charge le 1er secteur de la partition à l'adresse hexadécimale 0x7C00 ou l'exécution peut commencer.

 

3 - Fonction du Firmware


Le microprocesseur commence l'exécution à partir du système "firmware". C'est un logiciel figé dans un chip appelé "ROM" , "BIOS" (Basic Input Output Systeme) ou "Flash" . Ce logiciel est chargé et exécuté. Une partie du système d'exploitation est chargé.
 

4 - Boot d'un noyau sans Loader


1 - Noyau <1 Mo
  1. Le 1er secteur 0x7C00 se déplace en s'exécutant à l'adresse 0x90000, puis charge les secteurs suivants à partir du média de boot.
    Le reste du noyau est ensuite chargé à l'adresse 0x100000 en tenant compte de la taille maximum de la mémoire. A ce moment là, l'image du noyau est compressé. Le secteur de boot est implémenté dans un module assembleur s'exécutant en mode réel appelés "bootsector".
  2. Le code qui se trouve à l'adresse 0x90200 définit dans le module setup.s prend soin de l'initialisation d'une partie du hardware et permet au mode texte de la vidéo par défaut d'être chargé.
  3. Tout le noyau est déplacé vers 0x10000 (64Ko) à l'adresse 0x1000 (4Ko) .Ce déplacement écrase les données du CIOS stockées dans la RAM. Ainsi les appels au BIOS ne peuvent plus être appelés. La 1ère page physique n'est pas touchée car elle sert pour la manipulation de la mémoire virtuelle.
  4. Le module setup.s rentre dans le mode protégé et fait un saut à l'adresse 0x1000 où le noyau réside. Maintenant toute la mémoire est disponible et peut-être accessible, le système commence son exécution.

IMAGE

2 - Noyau trop gros pour 1 Mo .

  1. L'entête est placée à l'adresse 0x1000 au lieu et à la place du noyau. Son but est de décompresser le noyau en appelant la fonction à decompress-kernel qui à son tour appelle une autre fonction appelée inflate. Cette suite de fonctions génèrent une sortie dans la partie haute de la mémoire c'est à dire 0x100000.
  2. Après décompression du noyau le module ?? fait un saut au début du noyau à l'adresse 0x100000 en appelant la fonction start-kernel.
 

Structure des sytèmes d'exploitation

 

 

1 - Monolithique ou le "grand désordre"

 
  • Il s'agit de la structure la plus répandue.
  • Le système se présente sous la forme d'une collection de procédures. Chacune pouvant appeler à tout instant n'importe quelle autre .
  • Dans cette structure , il n'existe pas de masquage des informations ; chaque procédure est visible par toutes les autres.
  • L'ensemble des opérations est appelé "service" ou "appel système".
  • Ils sont adressé par l'utilisateur en mettant des paramètres dans des endroits bien définis (registre ou pile)
  • Une fonction particulière ("trappe") permet de faire passer le système de l'espace utilisateur vers l'espace du noyau.
 

carre_transparent.gif (42 octets)
carre_transparent.gif (42 octets)

Retour au sommaireHaut de page

Exécution d'une procédure :
  1. Le programme utilisateur passe de l'espace utilisateur vers l'espace noyau suite à sa demande.
  2. Le système d'exploitation détermine les numéros de services requis.
  3. Le système d'exploitation localise les numéros de services requis. Ceux-ci s'exécutent en plaçant éventuellement le résultat à un endroit bien défini.
  4. Le contrôle est rendu au programme de l'utilisateur.
 

Unix System V : Système monolithique

Retour au sommaireHaut de page

 

2 - Client / Serveur


Cette structure vise à alléger l'espace noyau du système en déplaçant un ensemble non négligeables de services.
  • Le client envoie une requête vers le serveur.
  • Celui-ci effectue le travail et rend une réponse

On peut voir cette structure de la façon suivante :



La fonction essentielle du noyau est le traitement des requêtes . Cela se porte très bien sur des systèmes distribués.

Un client n'a pas besoin de savoir si exécution est locale ou distante.

 
 

3 - Modulaires

 

Les systèmes modulaires sont organisés sous forme de couches où chaque couche contient des identités autonomes et indépendantes.

Ex : la couche 1 contient tous les processus associés aux périphériques d'E/S.

 

Mémoire disponible pour les programmes utilisateurs
init
Gestionnaire de système de fichiers
Gestionnaire de mémoire
Tache ...
Tache terminale
Tache disque
Tache horloge
1536 - Processus
//////////////////// LIBRE///////////////////////////////
0 - Vecteurs d'interruptions

Mémoire sous Minix

 

Retour au sommaireHaut de page

 
Windows NT :
système d'exploitation modulaire et client-serveur
 

Conclusion

 

 

Un système d'exploitation est un système complexe , il est l'abstraction d'une machine physique. Celui-ci interface la machine physique et les utilisateurs en prenant en charge les ressources physiques et logicielles.

Il peut-être organisé de différentes manières :

  1. Comme une collection de procédures (Structure Monolithique) ou la notion d'abstraction des données est un service réalisé sous la forme d'une suite successives de fonctions . Ces services sont interfacés avec des paramètres se trouvant à des endroits bien définis.
  2. Il y a la structure modulaire où les syst entités sont implémentés sous la forme d'abstraction de données . La communication entre eux s'effectue par message. Un message peut prendre la forme d'une suite finie de bits, octets ou structures.
  3. Structure Client - Serveur où une entité appelé client à un instant donné demande un service à une autre entité appelé serveur. Ce dernier réalise le service et rend une réponse.
 

Un système d'exploitation est composé de parties importantes telles que :

  • Ensembles de tache d'E/S (également appelé driver, conducteur de périphériques).
  • Gestionnaire de mémoire qui permet de localiser les processus en mémoire, gérer l'espace libre ou occupé.
  • Un système de gestion de fichiers qui gère les différentes entités. (Fichiers et répertoires) et les mécanismes de protection qui en découle.

Un système est par définition l'interaction de ces parties.

   
Haut de page Retour au sommaire Suite