 |
 |
 |
 |
 |
 |
| |
  |
Théorie des systèmes d'exploitation
|
|
|
 
|
- 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
- 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".
- 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é.
- 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.
- 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 .
- 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.
- 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.
|
| |
|
 
|
Exécution d'une procédure :
- Le programme utilisateur passe de l'espace utilisateur vers l'espace
noyau suite à sa demande.
- Le système d'exploitation détermine les numéros de services requis.
- 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.
- Le contrôle est rendu au programme de l'utilisateur.
|
 |
Unix System V : Système monolithique |
|
 
|
| 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 |
|
| |
 
|
| |
|
|
|
|
|
|
|
| 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 :
- 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.
- 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.
- 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. |
| |
|