Systèmes d`Exploitation - Architecture pour les systèmes

publicité
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Von Neumann
Interruptions
Systèmes d’Exploitation
Architecture pour les systèmes
Entrées /
Sorties
Protection
Didier Verna
[email protected]
http://www.lrde.epita.fr/˜didier
1/22
Table des matières
Systèmes
d’Exploitation
Didier Verna
E PITA
1
Architecture Générale
2
Cycle de Von Neumann
3
Interruptions
4
Entrées / Sorties
5
Protection matérielle
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
2/22
Architecture
Composition d’n système informatique
Systèmes
d’Exploitation
Un (ou plusieurs) processeur(s)
Didier Verna
E PITA
Mémoire
Architecture
Contrôleurs de périphériques
Von Neumann
Périphériques associés
Interruptions
Bus de liaison
Entrées /
Sorties
Protection
4/22
Bus
Systèmes
d’Exploitation
Disque dur
Écran
Imprimante
contrôleur 1
contrôleur 2
etc...
Didier Verna
E PITA
Architecture
processeur
Von Neumann
Interruptions
Entrées /
Sorties
Données
Protection
Addresses
Contrôle
Mémoire
5/22
Exemple : architecture Pentium
Systèmes
d’Exploitation
Didier Verna
E PITA
Cache level 2
Cache
CPU
Local
AGP
SCSI
USB
PCI
Bridge
Memory
RAM
Architecture
Von Neumann
PCI
Slots
Interruptions
Entrées /
Sorties
Graphics card
ISA
Bridge
IDE
IDE Disk
Protection
Modem
Sound
Printer
Et aussi IEEE 1394 (FireWire) etc.
6/22
ISA
Slots
Cycle de Von Neumann
Systèmes
d’Exploitation
Didier Verna
E PITA
Scenario
I
I
Architecture
I
Von Neumann
I
Interruptions
I
Entrées /
Sorties
Protection
Implémentation
I
I
I
8/22
Extraction d’une instruction
Stockage dans le registre d’instruction
Décodage
Extraction de données éventuelles (opérandes)
Exécution
Jeu d’instructions spécifique à chaque CPU
Utilisation de registres CPU. Registres spéciaux : PC
(Program Counter), SP (Stack Pointer), PSW (Program
Status Word)
Architectures modernes : pipelines, CPU
super-scalaires, R ISC etc.
Initialisation
Systèmes
d’Exploitation
Didier Verna
E PITA
BIOS (Basic Input Output System)
I
I
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
I
initialise le matériel (registres processeur, mémoire etc.)
scanne les bus (I SA et P CI d’abord) pour trouver un
périphérique amorçable (bootable)
Premier secteur =⇒ partition active =⇒ deuxième
« boot loader » ou système
charge le système d’exploitation en mémoire
Système d’Exploitation
I
I
lance le premier processus (« init »)
attend un événement
Les événements sont produits par des
« interruptions »
10/22
Interruptions
Seul moyen d’interrompre le traitement en cours d’exécution
Systèmes
d’Exploitation
Didier Verna
E PITA
Deux types d’interruption
I
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
I
Interruptions matérielles
déclenchées par le processeur, les périphériques etc.
(ex. fin d’une opération d’entrée / sortie)
Interruptions logicielles
déclenchées par des « appels système »
(ex. accès mémoire)
Vocabulaire : « Exception » = interruption causée par
une erreur (division par 0, accès mémoire illégal etc.)
Remarque : Conflit d’IRQ, périphériques legacy etc.
=⇒ « Plug and Play » (Plug and Pray).
11/22
Traitement des interruptions
Systèmes
d’Exploitation
Didier Verna
E PITA
Scenario
I
Architecture
Von Neumann
Interruptions
Implémentation
I
Entrées /
Sorties
Protection
I
I
12/22
L’arrivée d’une interruption suspend le traitement en
cours, exécute la routine associée puis reprend le
traitement précédent l’interruption.
Chaque interruption est associée à une routine fixe de
traitement.
Vecteur d’interruptions : tableau situé en mémoire
basse et contenant les adresses de début de chaque
routine.
L’adresse de l’instruction interrompue est stockée dans
la pile du système. Les routines de traitement des
interruptions doivent elle-même sauvegarder l’état du
processeur si besoin est.
Interruption des interruptions
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
13/22
Masquage simple
Aucune interruption ne peut intervenir pendant le
traitement d’une interruption : leur traitement est différé
jusqu’à la fin du traitement de l’interruption en cours.
Masquage sélectif
Chaque interruption est associée à un niveau de
priorité. Une interruption peut interrompre une autre
interruption de priorité inférieure. Les interruptions de
même niveau sont gérées par masquage simple.
Entrées / Sorties
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Contrôleur de périphériques
I
I
Von Neumann
Interruptions
Entrées /
Sorties
Protection
15/22
I
Gérer un ou plusieurs périphériques de même type
(IDE, SCSI etc.)
Harmoniser leur comportement (vitesse d’accès,
structure etc.)
Assurer le transfert de données entre ces périphériques
et la mémoire locale du contrôleur
Contrôle des périphériques par pilotes (drivers)
Fonctionnement des pilotes
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
Scenario
I
I
Requête d’E/S par positionnement des registres du
contrôleur
Signalement de la fin d’une E/S par une interruption
E/S configurées en mémoire
I
I
I
Adresses mémoire correspondant aux registres des
contrôleurs
Pas besoin d’instructions d’E/S spécifiques
Évite le contact direct entre le matériel et les
programmes utilisateurs
Remarques :
I
I
16/22
Pratique pour les périphériques à temps de réponse
rapide (adaptateurs vidéos) ou utilisés fréquemment
(modem)
Il existe également des périphériques permettant
l’acquisition de données avant que celles-ci soient
requises.
Techniques d’E/S
Processus ⇒ Appel système ⇒ Pilote ⇒ Contrôleur
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
17/22
E/S synchrones
Le pilote attend la fin de la requête : scrutation
(sondage) du périphérique (polling), attente active. Une
seule requête d’E/S à la fois.
E/S asynchrones
Demande d’interruption pour signaler la fin de la
requête, retour immédiat du pilote. Possibilité d’E/S
simultanées. Nécessité de maintenir une « table d’état
des périphériques ».
Direct Memory Access (DMA)
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
18/22
Problème : les périphériques rapides (disques, réseau
etc.) sont susceptibles de générer énormément
d’interruptions (à une fréquence proche du temps de
traitement des interruptions).
Solution : transférer des blocs entiers de données
entre le contrôleur et la R AM, sans intervention du
processeur. =⇒ Un interruption par bloc et non plus par
mot.
Mode double
Partage des ressources =⇒ problèmes de cohérence et de sécurité
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Von Neumann
Interruptions
Entrées /
Sorties
Protection
Mode utilisateur
Mode d’exécution des processus clients : le système
commute en mode utilisateur dès qu’il donne la main à
un processus.
Mode superviseur
Mode d’exécution du système d’exploitation : le
matériel commute en mode superviseur dès qu’une
interruption est reçue.
Instruction privilégiée
Instruction potentiellement nuisible ne pouvant
s’effectuer qu’en mode superviseur. Au minimum :
toutes les instructions d’E/S.
20/22
Protection de la mémoire
Systèmes
d’Exploitation
Didier Verna
E PITA
Problèmes
I
I
Architecture
Von Neumann
Interruptions
Solution la plus simple
I
Entrées /
Sorties
Protection
I
I
21/22
Protéger le système et les utilisateurs entre eux
Empêcher la modification du vecteur d’interruptions et
des routines de traitement de ces interruptions
À chaque processus, on associe un registre base et un
registre limite définissant ses capacités d’accès à la
mémoire.
Des instructions privilégiées permettent au système
d’exploitation de charger ces registres.
Le matériel effectue le contrôle d’accès.
Protection du CPU
Systèmes
d’Exploitation
Didier Verna
E PITA
Architecture
Von Neumann
But
I
Solution : horloge
I
Interruptions
Entrées /
Sorties
Protection
22/22
S’assurer que tout processus client finit par rendre la
main au système
I
Temps fixe : l’horloge génère une interruption à
intervalle régulier.
Temps variable : temps fixe + compteur. Le système
d’exploitation fixe la valeur du compteur. Le compteur
est décrémenté à temps fixe. Une interruption est
générée quand le compteur atteint la valeur 0.
Téléchargement