Structure des ordinateurs

publicité
Système d’exploitation
L’architecture des ordinateurs en bref
Ordinateur personnel simple
Le processeur (CPU)
Extrait les instructions de la mémoire et les exécute.
Cycle de base:
1. Extraire
2. Décoder
3. Exécuter
Plusieurs registres de 32 ou 64 bits.
Trois registres spéciaux:
• Compteur ordinal (PC)
• Pointeur de pile (SP)
• Mot d’état (PSW)
Pipeline
Le processeur possède des unités séparées pour
l’extraction, le décodage et l’exécution.
Différentes étapes de différentes instructions peuvent
être traitées en parallèle.
Processeur superscalaire
On dispose de plusieurs unités d’exécutions
(ex. arithmétique entière, en point flottant et logique).
Deux ou plusieurs opérations sont traité à la fois
Processeur multi-coeurs
Modes utilisateur et noyau
• 2 modes de fonctionnement:
– Mode noyau: Accès à l’ensemble du système
– Mode utilisateur: Accès restreint
• Le système d’exploitation tourne en mode
noyau
• Un des bits du PSW indique le mode.
Appels système
Pour accéder aux services du système
d’exploitation, un programme utilisateur doit
effectuer un appel système qui consiste en:
–
–
–
–
Basculer en mode noyau
Invoquer le système d’exploitation
Revenir en mode utilisateur
Retourner le contrôle au programme utilisateur.
Exemple: Lecture ou écriture sur le disque dur.
Interruption
La bascule entre les modes utilisateur et noyau est générée par
l’instruction trap qui interrompt le programme en cours pour donner
le contrôle à un gestionnaire d’interruption:
– Passe en mode noyau
– Trouve l’adresse de la fonction cible dans une table
d’interruption
– Exécute la fonction
Selon le type d’interruption, le gestionnaire effectue l’action appropriée.
Exemple: Une interruption peut aussi être déclenchée par le matériel
pour avertir d’une situation imprévue (division par 0, débordement
de pile, etc.).
Langage assembleur sur Pentium
eax et ebx sont deux des registres de 32 bits.
•
•
•
•
•
•
•
add eax, ebx
mov eax, 3
mov ebx, eax
mov ebx, [eax]
inc ecx
sub eax, ebx
cmp eax, ebx
; eax = eax + ebx
; eax = 3
; ebx = eax
; ebx = *eax
; ecx++
; eax = eax – ebx
; compare eax et abx et
; modifie le PSW (FLAGS)
Langage assembleur sur Pentium
L’instruction cmp modifie le bit ZF de FLAGS
Par exemple, le code C suivant:
if (EAX == 0)
EBX = 1;
Else
EBX = 2;
peut s’écrire:
Langage assembleur sur Pentium
cmp eax, 0
jz
mov
jmp
A1:
mov
A2:
; if ( eax==0) ZF=1 else ZF=0
A1
ebx, 2
A2
; if (ZF==1) goto A1
; ebx=2
; goto A2
ebx, 1
; ebx=1
Langage assembleur sur Pentium
• Appels de fonctions effectués à l’aide de la pile.
• Le registre ESP contient l’adresse du dessus de la
pile.
• L'instruction CALL fait un saut inconditionnel vers
une sous-routine (empile l’adresse de l’instruction
suivante).
• L’instruction RET dépile une adresse et saute à cette
adresse.
• L’instruction PUSH sert à empiler les arguments
• L’instruction POP sert à dépiler les arguments
La mémoire
La mémoire est construite comme une
Hiérarchie de couches
La mémoire cache
•Principalement contrôlée par le matériel.
•Souvent plusieurs niveaux.
•Utilise le principe de la localité qui dit qu’une
ressource utilisée à un instant donné risque
fort d’être utilisée à nouveau dans un futur
proche.
La mémoire principale
•RAM (Random Access Memory)
•La capacité augmente rapidement
•Présentement on peut facilement
atteindre 16 Go sur un ordinateur
personnel
Les disques durs
Plusieurs millions de fois plus lents que la mémoire principale
Les bandes magnétiques
• Le principal avantage est le très faible coût
• Peut prendre plusieurs minutes pour
accéder à l’information.
• Utilisé pour l’archivage des données et
pour stocker de grandes quantités
d’information.
Systèmes multitâches
•
Plusieurs programmes sont en mémoires.
•
Quand un programme est bloqué parce qu’il
attend le résultat d’une E/S alors un autre
programme peut utiliser le CPU.
•
Deux problèmes se posent:
1. Comment protéger les programmes les uns contre
les autres?
2. Comment reloger les programmes en mémoires?
Les registres base-limite
Les périphériques
• Matériel
– contrôleur
– Périphérique
• Logiciel
– Pilote
Le pilote de périphérique
• Fonctionne habituellement en mode noyau
• 3 façons de l’installer
– Lier avec le noyau et redémarrer le système
(plusieurs systèmes UNIX fonctionnent ainsi)
– Ajouter une entrée dans un fichier spécial et
redémarrer le système (Windows fonctionne
ainsi)
– Ajouter sans arrêter le système et sans
redémarrage (plug-and-play)
Le contrôleur de périphérique
• Fourni une interface simple au système
d’exploitation
• Possède un petit nombre de registres
utilisés pour la communication.
• Le pilote reçoit une commande du SE qu’il
converti en valeurs qu’il écrit dans les
registres du contrôleur.
– Registres mappés en mémoire
– Instructions IN, OUT avec numéro de port.
Les entrées/sorties
Trois méthodes:
1. Attente active
2. Utilisation des interruptions
3. Accès direct à la mémoire
Attente active
Un appel système est effectué par un programme
utilisateur.
Le noyau appelle le pilote approprié qui demeure
actif tant que l’opération n’est pas terminée.
Le contrôle est retourné au programme utilisateur.
Utilisation des interruptions
Le pilote demande au contrôleur de périphérique d’effectuer une
interruption lorsque l’opération sera terminée.
À la réception de l’interruption, le pilote lira l’information en provenance
du contrôleur de périphérique.
Accès direct à la mémoire (DMA)
• Nécessite du matériel supplémentaire:
puce DMA (Direct Memory Access)
• Pour communiquer avec un périphérique,
le CPU initialise la puce DMA.
• Celle-ci s’occupera de la communication
avec le périphérique ainsi que du transfert
de données entre la mémoire et le
contrôleur. Il avertira le processeur lorsque
l’opération sera complétée.
Téléchargement