Gestion des processus

publicité
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Systèmes d’Exploitation : Gestion des processus
Nicolas Prigent et Frédéric Tronel
Supélec - Campus de Rennes
3 octobre 2012
Dernier commit
c648026 (HEAD, gforge/master, master) par Frederic Tronel <[email protected]> à Mon Oct 1 11 :51 :45 2012 +0200
Modifications non commitées
M contenu.tex M ../Ressources/biblio.tex
Fichiers .tex
biblio.tex contenu.tex processus-handout.tex processus-slides.tex
Figures .fig
Autres figures
cartemere.pdf Core i7 920 back.png Core i7 920 front.png dijkstra.jpg kernel-development.jpg lga1366-ddr0-0-63.png lga1366.png
LGA Socket 1366.jpg linux-kernel.jpg marsPathFinder.png OS-tanenbaum.jpg RoundRobin.png RRPrio.png wikipedia.png windowsinternals.jpg
Code
Gestion des processus,15026/02
3 octobre 2012
1 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Bibliographie
Systèmes d’exploitation, Andrew Tanenbaum, Pearson Education, 3ème Édition, 26 septembre
2008, ISBN-10 : 2744072990
Microsoft Windows Internals : Part 1 and 2. Mark E. Russinovich, David A. Soloman et Alex
Ionescu Microsoft Press, Sixième Édition, 17 avril 2012, ISBN-10 : 0735648739
Understanding The Linux Kernel, Daniel P. Bovet et Marco Cesati, O’Reilly, Troisième édition, 15
décembre 2005, ISBN-10 : 0596005652
Gestion des processus,15026/02
Bibliographie
3 octobre 2012
2 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Bibliographie
Linux Kernel Development, Robert Love, Addison Wesley, Troisième Édition, 22 juin 2010, ISBN10 : 0672329468
Wikipedia, L’encyclopédie libre.
Gestion des processus,15026/02
Bibliographie
3 octobre 2012
3 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Familles de processeur
Les processeurs actuels peuvent être classés en deux catégories selon le type
d’instructions et de modes d’adressage qu’ils supportent :
• Processeurs CISC : type de processeurs le plus ancien.
• Processeurs RISC : évolution architecturale apparue à la fin des années
1970 et fortement développée durant les années 1980.
Gestion des processus,15026/02
Architecture
3 octobre 2012
4 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Processeurs CISC
Complex Instruction Set Computer
Ce type de processeurs est le premier apparu. Les processeurs CISC se
caractérisent par :
•
•
•
•
•
•
Nombreuses instructions.
Nombreux modes d’adressages disponibles.
Possibilités d’opérations complexes en une seule instruction.
Conçus pour être programmés en assembleur par des humains.
Instructions binaires de tailles variables.
Syndrome TIMTOWTDI.
Gestion des processus,15026/02
Architecture
3 octobre 2012
5 / 84
ÉCOLE
SUPÉRIEURE
Processeurs CISC
D’ÉLECTRICITÉ
Avantages
• Les instructions les plus utilisées sont plus courtes.
• ⇒ Compression du code binaire.
• L’assembleur possède certaines caractéristiques des langages de haut
niveau :
• Manipulation de chaı̂nes de caractères.
• Modification de tableaux.
Gestion des processus,15026/02
Architecture
3 octobre 2012
6 / 84
ÉCOLE
SUPÉRIEURE
Processeurs CISC
D’ÉLECTRICITÉ
•
•
•
•
•
Exemples
Intel x86
Digital VAX
PDP-11
Zilog Z80
Motorola 680x0
Gestion des processus,15026/02
Architecture
3 octobre 2012
7 / 84
ÉCOLE
SUPÉRIEURE
Processeurs CISC
D’ÉLECTRICITÉ
Inconvénients
•
•
•
•
Complexité du décodage des instructions.
Difficulté de l’optimisation de l’architecture du processeur.
Difficulté de l’optimisation du code assembleur (même pour un humain).
Il n’est pas clair qu’une instruction complexe (effectuant plusieurs
opérations plus simples en une seule instruction) s’effectue plus
rapidement que l’enchaı̂nement de chacune de ses sous-opérations.
• La place occupée par le décodage des instructions sur le die n’est plus
disponible pour ajouter des registres et/ou du cache.
Gestion des processus,15026/02
Architecture
3 octobre 2012
8 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Processeurs CISC
Vers une autre architecture
Les défauts des processeurs CISC culminent à la fin des années 1970.
• De moins en moins de code est écrit directement en assembleur.
• Le langage C est vu comme un macro-assembleur portable.
• Il est difficile d’écrire des compilateurs optimisant du code pour les
processeurs CISC.
• Seul un petit pourcentage des instructions disponibles est réellement
utilisé.
• Il serait plus simple d’optimiser l’architecture de processeurs possédant
un petit nombre d’instructions, et peu de modes d’adressages.
• De tels processeurs pourraient posséder un plus grand nombre de
registres et un plus grand cache.
Gestion des processus,15026/02
Architecture
3 octobre 2012
9 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Processeurs RISC
Reduced Instruction Set Computer
• Petit nombre d’instructions.
• Un seul mode d’adressage (direct).
• Code assembleur conçu pour être généré automatiquement par des
compilateurs.
• Une seule façon de faire une chose.
• Grand nombre de registres.
• Instructions binaires de taille fixe.
Gestion des processus,15026/02
Architecture
3 octobre 2012
10 / 84
ÉCOLE
SUPÉRIEURE
Processeurs RISC
D’ÉLECTRICITÉ
Avantages
• L’architecture peut être optimisée plus facilement.
• Le décodage des instructions est plus simple.
• La place gagnée sur le die permet d’ajouter de nombreux registres et du
cache.
• La conception des compilateurs est facilitée.
Gestion des processus,15026/02
Architecture
3 octobre 2012
11 / 84
ÉCOLE
SUPÉRIEURE
Processeurs RISC
D’ÉLECTRICITÉ
Inconvénients
• La taille fixe des instructions induit une taille de code plus grande.
• Le cache d’instruction est donc moins bien utilisé.
Gestion des processus,15026/02
Architecture
3 octobre 2012
12 / 84
ÉCOLE
SUPÉRIEURE
Processeurs RISC
D’ÉLECTRICITÉ
•
•
•
•
•
•
Exemples
ARM (ARM Ltd)
Sparc (Sun, Oracle)
PowerPC (IBM)
Alpha (Digital)
MIPS
PA-Risc (Hewlett Packard)
Gestion des processus,15026/02
Architecture
3 octobre 2012
13 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
RISC vs CISC
• D’un point de vue architectural, les processeurs RISC ont gagné la
bataille technologique.
• D’un point de vue commercial, les parts de marché des processeurs
CISC (Intel x86 et x86 64) sont toujours très importantes.
• Pour autant, Intel et AMD se sont tournés vers des architectures RISC
même pour leurs processeurs CISC :
• Les cœurs de processeurs sont des RISC (micro-code RISC).
• Une coquille externe traduit les instructions CISC en micro-code pour le
cœur RISC.
• Toutes les optimisations des processeurs RISC peuvent être appliquées.
• La compatibilité arrière est préservée, les clients sont contents.
Gestion des processus,15026/02
Architecture
3 octobre 2012
14 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Principes
Technologie directement inspirée du Fordisme. L’exécution d’une instruction
est découpée en sous-tâches. Chacune des tâches dépend de la précédente
mais elles peuvent être exécutées en parallèle :
•
•
•
•
•
Rapatriement d’une instruction (Instruction Fetch).
Décodage de l’instruction (Instruction Decoding).
Récupération des paramètres de l’instruction (Data Fetch).
Exécution effective (Execution).
Écriture des résultats (Result Writeback).
Gestion des processus,15026/02
Architecture
3 octobre 2012
15 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Principes
• Il est donc possible (par analogie à une chaı̂ne de montage de voitures)
d’exécuter chacune de ces tâches en parallèle.
• Il devient ainsi possible de produire le résultat d’une instruction à chaque
cycle d’horloge.
• Même lorsque le calcul complet mené par l’instruction requerrait
plusieurs cycles.
• C’est un premier exemple de concurrence au sein du processeur.
Gestion des processus,15026/02
Architecture
3 octobre 2012
16 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
Illustration
1
2
Cycles d’horloge
3
4
5
6
7
8
1
2
3
4
Unités fonctionnelles
IF ID DF EX RW
Gestion des processus,15026/02
Architecture
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
Cycles d’horloge
3
4
5
6
Unités fonctionnelles
IF ID DF EX RW
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
Cycles d’horloge
3
4
5
6
Unités fonctionnelles
IF ID DF EX RW
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
Cycles d’horloge
3
4
5
6
Unités fonctionnelles
IF ID DF EX RW
1
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
Unités fonctionnelles
IF ID DF EX RW
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
Unités fonctionnelles
IF ID DF EX RW
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
DF
Unités fonctionnelles
IF ID DF EX RW
2
1
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
DF
ID
Unités fonctionnelles
IF ID DF EX RW
2
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
DF
ID
IF
Unités fonctionnelles
IF ID DF EX RW
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
DF
ID
IF
Unités fonctionnelles
IF ID DF EX RW
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
DF EX
ID
IF
Unités fonctionnelles
IF ID DF EX RW
3
2
1
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
Cycles d’horloge
3
4
5
6
DF EX
ID DF
IF
Unités fonctionnelles
IF ID DF EX RW
3
2
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX
DF
ID
Unités fonctionnelles
IF ID DF EX RW
3
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX
DF
ID
IF
Unités fonctionnelles
IF ID DF EX RW
4
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX
DF
ID
IF
Unités fonctionnelles
IF ID DF EX RW
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF
ID
IF
Unités fonctionnelles
IF ID DF EX RW
3
2
1
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX
ID
IF
Unités fonctionnelles
IF ID DF EX RW
3
2
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX
ID
DF
IF
Unités fonctionnelles
IF ID DF EX RW
3
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX
ID
DF
IF
ID
Unités fonctionnelles
IF ID DF EX RW
4
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX
ID
DF
IF
ID
Unités fonctionnelles
IF ID DF EX RW
3
2
1
Gestion des processus,15026/02
Architecture
7
8
Sortie
1
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
IF
ID
Unités fonctionnelles
IF ID DF EX RW
3
2
2
Gestion des processus,15026/02
Architecture
7
8
Sortie
1
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
Unités fonctionnelles
IF ID DF EX RW
3
3
2
Gestion des processus,15026/02
Architecture
7
8
Sortie
1
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
DF
Unités fonctionnelles
IF ID DF EX RW
4
3
2
Gestion des processus,15026/02
Architecture
7
8
Sortie
1
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
DF
Unités fonctionnelles
IF ID DF EX RW
3
2
Gestion des processus,15026/02
Architecture
7
8
Sortie
2
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
DF
Unités fonctionnelles
IF ID DF EX RW
3
3
Gestion des processus,15026/02
Architecture
7
8
RW
Sortie
2
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
DF
Unités fonctionnelles
IF ID DF EX RW
4
3
Gestion des processus,15026/02
Architecture
7
8
RW
EX
Sortie
2
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
DF
Unités fonctionnelles
IF ID DF EX RW
3
Gestion des processus,15026/02
Architecture
7
8
RW
EX
Sortie
3
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
DF
Unités fonctionnelles
IF ID DF EX RW
4
Gestion des processus,15026/02
Architecture
7
8
RW
EX
RW
Sortie
3
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions
1
2
3
4
Illustration
1
IF
2
ID
IF
3
DF
ID
IF
Cycles d’horloge
4
5
6
EX RW
DF EX RW
ID
DF
EX
IF
ID
DF
Unités fonctionnelles
IF ID DF EX RW
7
8
RW
EX
RW
Sortie
4
Gestion des processus,15026/02
Architecture
3 octobre 2012
17 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Profondeurs de pipeline
Révision
Marque commerciale
Willamette (180 nm)
Northwood (130 nm)
Gallatin (130 nm)
Prescott (90 nm)
Cedar Mill (65 nm)
Smithfield (90 nm)
Presler (65nm)
Penryn (45nm)
Nehalem (45nm)
Celeron, Pentium 4
Celeron, Pentium 4, Pentium 4 HT
Pentium 4 HT Extreme Edition, Xeon
Celeron D, Pentium 4, Pentium 4 HT, Pentium 4 Extreme Edition
Celeron D, Pentium 4
Pentium D
Pentium D
Pentium Core
Xeon
Gestion des processus,15026/02
Profondeur
Architecture
20
20
20
31
31
31
31
12-14
16
3 octobre 2012
19 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Limites
• Afin de maintenir les performances du processeur (à savoir une
instruction exécutée par cycle d’horloge), il convient que le pipeline ne se
vide jamais.
• Ceci n’est pas vraiment possible, car le processeur ne sait pas toujours
quelles sont les prochaines instructions à exécuter :
Les branchements conditionnels conduisent potentiellement vers deux
instructions situées à des endroits différents.
2 La faible vitesse de la mémoire (comparativement à celle du processeur)
ne permet pas de remplir le pipeline à la vitesse à laquelle il se vide.
3 Les traitements déclenchés par des évènements extérieurs (et donc
imprévisibles) peuvent conduire le processeur à devoir exécuter des
instructions non prévues.
1
Gestion des processus,15026/02
Architecture
3 octobre 2012
20 / 84
Pipeline
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Extensions
• Pour lutter contre les ruptures du pipeline dues aux branchements
conditionnels, les architectes ont proposé :
• Architectures superscalaires.
• Exécution spéculative.
• Prédiction de branchement.
• Afin de préserver le remplissage du pipeline, même lorsque les temps
d’accès à la mémoire centrale sont longs, on utilise des mémoires
caches.
Gestion des processus,15026/02
Architecture
3 octobre 2012
21 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Architecture superscalaire
Une architecture est dite superscalaire lorsqu’elle possède plusieurs
exemplaires de chacune des unités d’exécution.
• Il est possible d’avoir plusieurs pipelines.
• Les unités éventuellement non utilisées peuvent ne pas être alimentées
et réduire la consommation électrique.
Gestion des processus,15026/02
Architecture
3 octobre 2012
22 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Prédiction de branchement
• Le processeur peut maintenir dans une mémoire interne (de faible
capacité) des statistiques sur les tests conditionnels.
• Pour les instructions de tests récemment rencontrées, il peut maintenir le
pourcentage de fois où le test a rendu vrai.
• En s’aidant cette statistique, il peut tenter de prédire quelle sera la
prochaine instruction à exécuter après un test conditionnel :
• Si la prédiction est correcte, le pipeline est correctement rempli.
• Si elle est fausse, il faut annuler les effets des instructions dans le pipeline
qui ne correspondent pas à l’exécution qui doit avoir lieu.
• En cas de succès, la vitesse d’exécution est maintenue maximale.
• En cas d’erreur le surcoût est important.
Gestion des processus,15026/02
Architecture
3 octobre 2012
23 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Exécution spéculative
En couplant les architecture superscalaires avec plusieurs pipelines, on peut :
• Exécuter les deux branches d’un saut conditionnel simultanément
(chacune dans un pipeline).
• Le pipeline qui contient la branche qui ne devra pas être prise sera tout
simplement vidé.
Ceci permet de maintenir une vitesse maximale dans de nombreuses
circonstances. C’est un second exemple de concurrence au sein du
processeur.
Gestion des processus,15026/02
Architecture
3 octobre 2012
24 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Architecture multiprocesseurs
• Les architectes ont assez vite compris qu’une des manières d’augmenter
les performances du matériel était d’en augmenter le parallélisme.
• Plusieurs manières d’obtenir ce résultat ont été testées :
Augmenter le parallélisme au sein du processeur (architectures
multiscalaires, hyperpipelinées)
2 Système multi-processeurs.
1
Gestion des processus,15026/02
Architecture
3 octobre 2012
25 / 84
ÉCOLE
SUPÉRIEURE
Architecture multiprocesseurs
D’ÉLECTRICITÉ
Catégories
On distingue deux types de systèmes multiprocesseurs. Selon que le type
d’accès à la mémoire associée à chacun des processeurs :
• Accès uniformes (Symetric Multi Processor ).
• Accès non-uniforme (Non Uniform Memory Access).
Gestion des processus,15026/02
Architecture
3 octobre 2012
26 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Architectures multithreadées
Une architecture est dite multithreadée si elle est capable d’exécuter plusieurs
fils d’exécution de manière concurrente. On distingue trois technologies (qui
peuvent être combinées) :
• Pseudo-concurrence à grain fin
• Concurrence réelle à grain fin
• Multicœur
Gestion des processus,15026/02
Architecture
3 octobre 2012
27 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Architectures multithreadées
Pseudo-concurrence à grain fin
• Dans ce type d’architecture, à chaque cycle d’horloge un nouveau fil
d’exécution est choisi par le matériel.
• Il s’agit clairement d’une pseudo-concurrence, puisque les instructions
des divers fils d’exécution ne sont pas exécutées parallèlement, mais
entrelacées avec le grain le plus fin (cycle d’horloge).
Gestion des processus,15026/02
Architecture
3 octobre 2012
28 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Architectures multithreadées
Concurrence réelle à grain fin (SMT : Simultaneous Multi Threading)
• Maximiser l’utilisation des différentes unités d’exécution (architectures
multiscalaires).
• Ajout d’une unité logique permettant d’allouer les différentes unités
d’exécution à deux (ou plus) fils d’exécution.
• Architecture SMP.
• Les processeurs HyperThreading d’Intel sont des exemples de cette
technologie.
• Les processeurs UltraSparc T1, T2 (Oracle, ex Sun) sont des exemples
de cette technologie.
Gestion des processus,15026/02
Architecture
3 octobre 2012
29 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Architectures multithreadées
Multicœur (Multicore)
• Il s’agit ”simplement” de graver plusieurs cœurs d’un même processeur
sur le même die.
• Architecture SMP.
• Les processeurs Intel ou AMD multi-cœurs sont des exemples de cette
technologie.
• Les processeurs UltraSparc T1, T2 (Oracle, ex Sun) sont des exemples
de cette technologie.
Gestion des processus,15026/02
Architecture
3 octobre 2012
30 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Temps d’accès à la mémoire
Constatation
Les temps d’accès à la mémoire (RAM) sont d’un ordre de grandeur plus lent
que la vitesse d’exécution pure du processeur.
• Typiquement un processeur récent peut exécuter une instruction à
chaque cycle d’horloge (2 GHz ⇒ 2 Ginstr.s−1 ).
• Une barrette de RAM DDR-3 cadencée à 266 MHz (DDR3-1066) peut
transférer ≈ 17 Go.s−1 .
• Pour une instruction de taille moyenne de 10 octets, on obtient au mieux
1.7 Ginstr.s−1 .
• On ne peut donc pas alimenter le pipeline à la vitesse du processeur.
• Par ailleurs, cette bande passante doit être partagée par l’ensemble des
fils d’exécution (couramment 8 actuellement).
Gestion des processus,15026/02
Architecture
3 octobre 2012
31 / 84
ÉCOLE
Caches
SUPÉRIEURE
D’ÉLECTRICITÉ
Une manière de compenser cette perte de vitesse est d’utiliser une mémoire
cache.
• Il s’agit d’une mémoire directement intégrée sur le die.
• Sa vitesse de lecture/écriture est inversement proportionnelle à sa taille.
• Comme la taille du cache est inférieure à celle de la mémoire, il se
produit forcément des collisions.
• Chaque cache possède sa politique de remplacement.
• Les processeurs modernes possèdent en général au moins deux niveaux
de caches (L1,L2), sinon trois.
Gestion des processus,15026/02
Architecture
3 octobre 2012
32 / 84
ÉCOLE
Caches
SUPÉRIEURE
D’ÉLECTRICITÉ
Dimension d’un cache
On peut se représenter un cache comme une matrice d’octets. Un cache est
caractérisé par son nombre de lignes (cache rows), et son nombre de
colonnes (cache row size). Sa taille (cache size) est donc simplement la
multiplication entre le nombre de lignes et la largeur d’une ligne.
Exemples
Cache L1 d’un processeur actuel : 1024 lignes de longueur 64 octets (64 ko).
Cache L2 d’un processeur actuel : à partir de 256 ko jusqu’à quelques
méga-octets.
Gestion des processus,15026/02
Architecture
3 octobre 2012
33 / 84
Caches
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Politique de remplacement
La modification d’un cache se fait une ligne à la fois. Il faut choisir cette ligne.
C’est le rôle de la politique de remplacement. Cette politique se situe entre
deux extrêmes :
• Le contenu d’adresse mémoire donnée ne peut être placé que dans une
seule ligne bien précise (et toujours la même).
• Le contenu d’une adresse mémoire donnée peut être placé dans
n’importe quelle ligne de cache.
Associativité
Le nombre de lignes dans lesquelles peut être stockée une donnée est appelé
l’associativité du cache.
Gestion des processus,15026/02
Architecture
3 octobre 2012
34 / 84
ÉCOLE
Caches
SUPÉRIEURE
D’ÉLECTRICITÉ
Associativité
Associativité complète
Lorsque n’importe quelle ligne de cache peut être utilisée pour stocker une
donnée provenant de n’importe quelle adresse, on dit que le cache est
complètement associatif (fully associative).
Associativité partielle
Lorsque que seulement k lignes de cache peuvent être utilisées pour stocker
une donnée, on dit que le cache est k -associatif (k-way associativity).
Gestion des processus,15026/02
Architecture
3 octobre 2012
35 / 84
Caches
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Associativité complète
Avantages
• Meilleure utilisation du cache
Inconvénients
• Il est nécessaire de parcourir toutes les lignes pour savoir si le contenu
d’une adresse mémoire est présent.
Gestion des processus,15026/02
Architecture
3 octobre 2012
36 / 84
Caches
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Associativité partielle
Avantages
• Il ne faut consulter que k lignes pour savoir si le contenu d’une adresse
mémoire est présent.
Inconvénients
• Le cache peut ne pas être complètement rempli et pourtant une donnée
peut être retirée du cache pour faire de la place à une autre avec laquelle
elle entre en collision (ces deux adresses mémoire doivent être stockées
sur les mêmes lignes de cache).
Gestion des processus,15026/02
Architecture
3 octobre 2012
37 / 84
ÉCOLE
Caches
SUPÉRIEURE
D’ÉLECTRICITÉ
Associativité des caches
TM
R
Sur un processeur récent (Intel Core
i5-2410M CPU @ 2.30GHz) on
constate les dimensionnements et associativité suivants :
Deux caches de niveau 1 (instructions et données)
• Largeur de ligne : 64
• Taille : 32ko
• Associativité : 8
Cache de niveau 2 (unifié)
• Largeur de ligne : 64
• Taille : 256ko
• Associativité : 8
Cache de niveau 3 (unifié)
• Largeur de ligne : 64
• Taille : 3mo
• Associativité : 12
Gestion des processus,15026/02
Architecture
3 octobre 2012
38 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Caches
Obtenir ces informations sous Linux
#grep . /sys/devices/system/cpu/cpu0/cache/index*/*
/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size:64
/sys/devices/system/cpu/cpu0/cache/index0/level:1
/sys/devices/system/cpu/cpu0/cache/index0/number_of_sets:64
/sys/devices/system/cpu/cpu0/cache/index0/physical_line_partition:1
/sys/devices/system/cpu/cpu0/cache/index0/shared_cpu_list:0-1
/sys/devices/system/cpu/cpu0/cache/index0/shared_cpu_map:00000000,00000000,00000000,00000000,000000
/sys/devices/system/cpu/cpu0/cache/index0/size:32K
/sys/devices/system/cpu/cpu0/cache/index0/type:Data
/sys/devices/system/cpu/cpu0/cache/index0/ways_of_associativity:8
/sys/devices/system/cpu/cpu0/cache/index1/coherency_line_size:64
/sys/devices/system/cpu/cpu0/cache/index1/level:1
/sys/devices/system/cpu/cpu0/cache/index1/number_of_sets:64
/sys/devices/system/cpu/cpu0/cache/index1/physical_line_partition:1
/sys/devices/system/cpu/cpu0/cache/index1/shared_cpu_list:0-1
/sys/devices/system/cpu/cpu0/cache/index1/shared_cpu_map:00000000,00000000,00000000,00000000,000000
/sys/devices/system/cpu/cpu0/cache/index1/size:32K
/sys/devices/system/cpu/cpu0/cache/index1/type:Instruction
/sys/devices/system/cpu/cpu0/cache/index1/ways_of_associativity:8
/sys/devices/system/cpu/cpu0/cache/index2/coherency_line_size:64
/sys/devices/system/cpu/cpu0/cache/index2/level:2
/sys/devices/system/cpu/cpu0/cache/index2/number_of_sets:512
/sys/devices/system/cpu/cpu0/cache/index2/physical_line_partition:1
/sys/devices/system/cpu/cpu0/cache/index2/shared_cpu_list:0-1
/sys/devices/system/cpu/cpu0/cache/index2/shared_cpu_map:00000000,00000000,00000000,00000000,000000
/sys/devices/system/cpu/cpu0/cache/index2/size:256K
/sys/devices/system/cpu/cpu0/cache/index2/type:Unified
/sys/devices/system/cpu/cpu0/cache/index2/ways_of_associativity:8
/sys/devices/system/cpu/cpu0/cache/index3/coherency_line_size:64
/sys/devices/system/cpu/cpu0/cache/index3/level:3
/sys/devices/system/cpu/cpu0/cache/index3/number_of_sets:4096
/sys/devices/system/cpu/cpu0/cache/index3/physical_line_partition:1
Gestion des processus,15026/02
Architecture
3 octobre 2012
39 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Fonctionnement
Extrait de http ://en.wikipedia.org/wiki/CPU cache
Gestion des processus,15026/02
Architecture
3 octobre 2012
40 / 84
Fonctionnement
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Ligne de cache
• Tag : permet de déterminer à quelle adresse mémoire est associé la ligne
de cache.
• Données : contenu de l’adresse mémoire à proprement parler.
• Flags : drapeaux divers de gestion (au moins 1 bit pour signaler si la ligne
est active/inactive).
Ligne de cache
Tag
Données
Flags
Longueur de ligne
Gestion des processus,15026/02
Architecture
3 octobre 2012
41 / 84
Fonctionnement
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Découpage d’une adresse mémoire
Adresse mémoire
Poids faibles
Poids forts
Tag
Index
Cache
Longueur de ligne
Index 0
Tag
Données
Flags
Index 1
Tag
Données
Flags
Index n
Tag
Données
Flags
Gestion des processus,15026/02
Architecture
3 octobre 2012
42 / 84
Caches
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Politique de propagation des écritures
Deux politiques possibles :
• Synchrone (write through) : toute écriture est immédiatement propagée
vers la mémoire centrale (ou vers le cache de niveau supérieur).
• Asynchrone (write back ) : l’écriture ne se produit qu’au dernier moment,
lorsque la ligne doit être écrasée par une nouvelle entrée correspondant
à une adresse différente (tag différent).
Note
La politique write back est plus efficace, mais nécessite un protocole de
synchronisation entre caches dans le cas de machine multi-processeurs. Il
faut synchroniser les caches entre eux.
Gestion des processus,15026/02
Architecture
3 octobre 2012
43 / 84
Exemple du processeur Intel I7 (series 9xx)
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Processeur et brochage
(a) Vue de dessus
Gestion des processus,15026/02
(b) Vue de dessous
Architecture
3 octobre 2012
44 / 84
ÉCOLE
Exemple du processeur Intel I7 (series 9xx)
SUPÉRIEURE
D’ÉLECTRICITÉ
Socket LGA 1336/Socket B
F IGURE: Vue des 1336 broches du socket B
Gestion des processus,15026/02
Architecture
3 octobre 2012
45 / 84
ÉCOLE
SUPÉRIEURE
Exemple du processeur Intel I7 (series 9xx)
D’ÉLECTRICITÉ
Gestion des processus,15026/02
Brochage
Architecture
3 octobre 2012
46 / 84
Exemple du processeur Intel I7 (series 9xx)
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Brochage
64 broches de données pour le premier banc de mémoire (3 bancs de 2 slots DDR3 ⇒ 3 × 2 × 4 = 24 Go)
Extrait de http ://download.intel.com/embedded/processor/designguide/323107.pdf
Gestion des processus,15026/02
Architecture
3 octobre 2012
46 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Architecture d’une carte mère
F IGURE: Détail de l’architecture d’une carte mère x86.
Extrait de http ://en.wikipedia.org/wiki/File :Motherboard diagram.svg
Gestion des processus,15026/02
Architecture
3 octobre 2012
48 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Coopération entre le processeur et les
périphériques
• Le processeur n’est pas un composant isolé du monde extérieur.
• Il est nécessaire qu’il puisse communiquer avec les composants qui
l’entourent.
• Ces périphériques peuvent être amenés à signaler des modifications de
l’environnement (réception d’un paquet Ethernet, appui d’une touche
clavier).
• La survenue de ces événements est complètement asynchrone.
• Une manière de signaler de tels événements peut se faire via la levée
d’un signal électrique relié au processeur.
Gestion des processus,15026/02
Architecture
3 octobre 2012
49 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Interruptions
• Cette signalisation se fait via des interruptions.
• Une interruption est un signal qui transporte un bit d’information.
• Un processeur donné supporte la signalisation d’un certain nombre
d’interruption (en général une puissance de deux).
• Lorsqu’une interruption est levée, le processeur suspend son exécution.
• Celui-ci (via un pilote de périphérique) doit acquitter le plus rapidement
possible la bonne réception de l’interruption.
• Pour cela le système d’exploitation doit enregistrer une portion de code
pour chacune des interruptions possibles.
• Il s’agit du vecteur d’interruptions.
Gestion des processus,15026/02
Architecture
3 octobre 2012
50 / 84
ÉCOLE
SUPÉRIEURE
Interruptions sur x86
D’ÉLECTRICITÉ
Intel 8529
• Il s’agit du composant destiné à multiplexer les interruptions sur les
premiers PC.
• Il est relié électriquement à chacun des périphériques.
• Il bufferise les interruptions signalés par ces derniers.
• Et les transmet séquentiellement au processeur sous la forme d’un
encodage binaire.
Gestion des processus,15026/02
Architecture
3 octobre 2012
51 / 84
ÉCOLE
SUPÉRIEURE
Interruptions sur x86
D’ÉLECTRICITÉ
I/O APIC
• Le composant Intel 8529 ne supportait pas les systèmes
multi-processeurs.
• Intel a proposé une évolution de ce composant avec l’introduction du
pentium Pro.
• Il s’agit d’une hiérarchie de gestionnaire d’interruptions.
• Un premier composant réceptionne l’ensemble des interruptions.
• Il les route vers un gestionnaire local associé à chacun des processeur.
• La politique de routage peut être programmée de manière :
1
2
à diriger certaines interruptions vers un processeur fixé ;
à équilibrer la charge d’interruptions sur l’ensemble des processeurs.
Gestion des processus,15026/02
Architecture
3 octobre 2012
52 / 84
Vérification de l’état des interruptions
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
0:
1:
4:
7:
8:
9:
14:
15:
16:
17:
19:
20:
21:
22:
23:
26:
CPU0
52
430
0
1
0
0
16530
0
57841
317952
0
9566
0
153318
42120
8990
CPU1
904
65351
1
0
1
0
2218946
0
6276636
49186924
3
1014964
0
39626553
1410775
1314373
Gestion des processus,15026/02
/proc/interrupts
IO-APIC-edge
IO-APIC-edge
IO-APIC-edge
IO-APIC-edge
IO-APIC-edge
IO-APIC-fasteoi
IO-APIC-edge
IO-APIC-edge
IO-APIC-fasteoi
IO-APIC-fasteoi
IO-APIC-fasteoi
IO-APIC-fasteoi
IO-APIC-fasteoi
IO-APIC-fasteoi
IO-APIC-fasteoi
PCI-MSI-edge
timer
i8042
parport0
rtc0
acpi
pata_amd
pata_amd
ahci, pata_jmicron, nvidia
ivtv0
ohci1394
ehci_hcd:usb1, HDA Intel
sata_nv
sata_nv, ohci_hcd:usb2
sata_nv
fbox
Architecture
3 octobre 2012
53 / 84
Vérification de l’état des interruptions
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
/proc/irq/20:
total 0
dr-xr-xr-x 4
dr-xr-xr-x 26
dr-xr-xr-x 2
dr-xr-xr-x 2
-rw------- 1
-r--r--r-- 1
root
root
root
root
root
root
/proc/irq/XX/
root
root
root
root
root
root
0
0
0
0
0
0
30
30
30
30
30
30
sept.
sept.
sept.
sept.
sept.
sept.
07:05
07:05
07:05
07:05
07:05
07:05
.
..
ehci_hcd:usb1
HDA Intel
smp_affinity
spurious
/proc/irq/20/ehci_hcd:usb1:
total 0
dr-xr-xr-x 2 root root 0 30 sept. 07:05 .
dr-xr-xr-x 4 root root 0 30 sept. 07:05 ..
/proc/irq/20/HDA Intel:
total 0
dr-xr-xr-x 2 root root 0 30 sept. 07:05 .
dr-xr-xr-x 4 root root 0 30 sept. 07:05 ..
Gestion des processus,15026/02
Architecture
3 octobre 2012
54 / 84
ÉCOLE
SUPÉRIEURE
Ports d’entrées-sorties
D’ÉLECTRICITÉ
Port I/O
• Il s’agit d’adresses mémoires spéciales.
• Elles ne peuvent être lues ou écrites que via des instructions spécialisées
du processeur.
• La lecture ou l’écriture à ces adresses correspond à la réception ou la
transmission d’information vers un registre localisé dans un périphérique ;
• mais partagé entre celui-ci et le processeur.
• Tout se passe comme si l’adresse mémoire en question contenait une
image du contenu du registre.
Gestion des processus,15026/02
Architecture
3 octobre 2012
55 / 84
ÉCOLE
SUPÉRIEURE
Cartographie des ports d’entrées-sorties
D’ÉLECTRICITÉ
0000-001f :
0020-0021 :
0040-0043 :
0050-0053 :
0060-0060 :
0064-0064 :
0070-0073 :
0080-008f :
00a0-00a1 :
00c0-00df :
00f0-00ff :
0170-0177 :
0170-0177
01f0-01f7 :
01f0-01f7
0290-0297 :
dma1
pic1
timer0
timer1
keyboard
keyboard
rtc0
dma page reg
pic2
dma2
fpu
0000:00:04.0
: pata_amd
0000:00:04.0
: pata_amd
pnp 00:02
Gestion des processus,15026/02
/proc/ioports
0376-0376 :
0376-0376
0378-037a :
03c0-03df :
03f6-03f6 :
03f6-03f6
03f8-03ff :
04d0-04d1 :
0778-077a :
0800-087f :
0960-0967 :
0960-0967
0970-0977 :
0970-0977
09e0-09e7 :
09e0-09e7
09f0-09f7 :
09f0-09f7
0b60-0b63 :
0b60-0b63
0b70-0b73 :
0b70-0b73
0be0-0be3 :
0be0-0be3
0bf0-0bf3 :
0bf0-0bf3
0000:00:04.0
: pata_amd
parport0
vesafb
0000:00:04.0
: pata_amd
serial
pnp 00:02
parport0
pnp 00:02
0000:00:05.1
: sata_nv
0000:00:05.0
: sata_nv
0000:00:05.1
: sata_nv
0000:00:05.0
: sata_nv
0000:00:05.1
: sata_nv
0000:00:05.0
: sata_nv
0000:00:05.1
: sata_nv
0000:00:05.0
: sata_nv
Architecture
0cf8-0cff : PCI conf1
1000-107f : pnp 00:01
1000-1003 : ACPI PM1a_EVT_BLK
1004-1005 : ACPI PM1a_CNT_BLK
1008-100b : ACPI PM_TMR
101c-101c : ACPI PM2_CNT_BLK
1020-1027 : ACPI GPE0_BLK
1080-10ff : pnp 00:01
1400-147f : pnp 00:01
1480-14ff : pnp 00:01
14a0-14af : ACPI GPE1_BLK
1800-187f : pnp 00:01
1880-18ff : pnp 00:01
1c00-1c3f : 0000:00:01.1
1c00-1c3f : nForce2_smbus
1c40-1c7f : 0000:00:01.1
8000-9fff : PCI Bus 0000:02
8c00-8c0f : 0000:02:00.1
8c00-8c0f : pata_jmicron
9000-9003 : 0000:02:00.1
9000-9003 : pata_jmicron
9400-9407 : 0000:02:00.1
9400-9407 : pata_jmicron
9800-9803 : 0000:02:00.1
9800-9803 : pata_jmicron
9c00-9c07 : 0000:02:00.1
9c00-9c07 : pata_jmicron
3 octobre 2012
56 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Entrées-sorties projetées en mémoire
Memory mapped I/O
• Il s’agit d’un concept proche des ports d’entrées-sorties.
• Sauf qu’ici les adresses peuvent être manipulées par l’ensemble des
instructions du processeur.
• Elles ne correspondent pas à de la mémoire vive, mais sont détournées
par le north bridge (contrôleur mémoire) vers le périphérique qui a
enregistré cette zone de mémoire.
• Cette programmation du north bridge est faite en coopération entre le
périphérique et le système d’exploitation par l’intermédiaire d’un pilote de
périphérique (driver).
• La communication entre le processeur et le périphérique est identique à
celle des ports d’entrées-sorties.
Gestion des processus,15026/02
Architecture
3 octobre 2012
57 / 84
ÉCOLE
SUPÉRIEURE
Cartographie de la mémoire
D’ÉLECTRICITÉ
/proc/iomem
00000000-0000ffff : reserved
00010000-0009efff : System RAM
0009f000-0009ffff : reserved
000d2800-000d3fff : pnp 00:0d
000f0000-000fffff : reserved
00100000-dfedffff : System RAM
01000000-0135960e : Kernel code
0135960f-014ddb07 : Kernel data
0154b000-015d75cb : Kernel bss
20000000-23ffffff : GART
dfee0000-dfee2fff : ACPI Non-volatile Storage
dfee3000-dfeeffff : ACPI Tables
dfef0000-dfefffff : reserved
dff00000-dfffffff : RAM buffer
e0000000-efffffff : PCI Bus 0000:03
e0000000-efffffff : 0000:03:00.0
e0000000-e02fffff : vesafb
f0000000-f3ffffff : PCI MMCONFIG 0 [00-3f]
f0000000-f3ffffff : reserved
f0000000-f3ffffff : pnp 00:0c
f4000000-f7ffffff : PCI Bus 0000:01
f4000000-f7ffffff : 0000:01:07.0
f4000000-f47fffff : ivtv encoder
f5000000-f57fffff : ivtv decoder
f6000000-f600ffff : ivtv registers
Gestion des processus,15026/02
Architecture
3 octobre 2012
58 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Accès directs en mémoire
DMA (Direct Memory Access)
• Un périphérique peut obtenir un accès direct à la mémoire (sans passer
par le goulot d’étranglement que représente le processeur).
• Ceci permet d’obtenir un accès à très haut débit.
• Le périphérique peut transférer de grande quantité de données (à grande
vitesse).
• Il existe un contrôleur programmable et dédié à cet effet.
• Il s’agit du contrôleur DMA.
Gestion des processus,15026/02
Architecture
3 octobre 2012
59 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Temps partagé
Constatation
Sur les premiers systèmes d’exploitation, les tâches s’exécutaient les unes
après les autres. Cependant les opérations d’entrées-sorties sont beaucoup
plus lentes que la vitesse du processeur. Celui-ci passait une grande partie de
son temps à attendre la terminaison de ces opérations.
Solution
Entrelacer l’exécution des différentes tâches. Lorsqu’une tâche est bloquée
sur une entrée-sortie, le système d’exploitation peut basculer vers une autre
tâche prête à s’exécuter.
Gestion des processus,15026/02
Problématique
3 octobre 2012
60 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Pourquoi les processus ?
• Sur les systèmes multiprogrammés, plusieurs tâches peuvent s’exécuter
en apparence de manière simultanée sur le système.
• Un processus est une abstraction qui permet de représenter et de
contrôler une tâche s’exécutant sur un système.
• Cette abstraction permet notamment d’optimiser les performances sur les
systèmes en attribuant de manière juste le processeur aux processus les
plus à même de s’exécuter.
Gestion des processus,15026/02
Problématique
3 octobre 2012
61 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Un processus, c’est quoi ?
• Un processus est caractérisé par :
•
•
•
•
Son compteur ordinal.
Ses registres.
Ses données.
Ses ressources (fichiers, sockets, etc.).
• Le système d’exploitation offre à chaque processus un ”processeur
virtuel” sur lequel celui-ci a l’impression d’être le seul à s’exécuter.
• Chaque processus n’a donc pas a priori à considérer les autres
processus qui s’exécutent sur le même processeur.
• Dans le cas d’architectures multiprocesseurs, il est possible qu’un même
processus s’exécute successivement sur plusieurs processeurs
différents.
Gestion des processus,15026/02
Problématique
3 octobre 2012
62 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Ordonnancement des processus
• Le rôle de l’ordonnanceur est d’attribuer successivement le ou les
processeurs aux processus en concurrence pour cette ressource.
• Lorsque plusieurs processus sont prêts, l’ordonnanceur choisit le
processus qui sera le suivant à s’exécuter.
• L’algorithme d’ordonnancement définit les choix qui seront faits par
l’ordonnanceur.
• Chaque algorithme d’ordonnancement optimise l’ordonnancement en
fonction de propriétés qu’il privilégie.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
63 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Propriétés visées par l’algorithme
d’ordonnanceur
• L’équité vise à ce que chaque processus bénéficie d’un temps
d’exécution équitable.
• Le respect de la priorité vise à ce que les processus les plus prioritaires
bénéficient de plus de temps processeur.
• L’équilibre vise à ce que toutes les parties du système sont occupées au
mieux.
• La maximisation de l’usage CPU vise à utiliser au maximum le CPU.
• La capacité de traitement vise à optimiser le nombre de travaux traités
sur une durée donnée.
• Le délai de rotation vise à avoir le délai moyen le plus faible entre le début
et la fin de chaque traitement.
• La réactivité vise à minimiser le temps de réponse aux requêtes de
l’utilisateur.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
64 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Taxonomie des algorithmes
d’ordonnancement
On distingue deux grands types d’algorithmes d’ordonnancement :
• Ordonnancement coopératif.
• Ordonnancement préemptif.
Si la première catégorie a été très utilisée dans des OS plus anciens, la
seconde catégorie est celle utilisée par tous les OS modernes.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
65 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Ordonnancement coopératif
Un algorithme d’ordonnancement coopératif laisse le processus courant
s’exécuter jusqu’à celui-ci soit bloqué par :
•
•
•
•
Une demande d’entrée-sortie.
Une interruption d’entrée-sortie.
Une primitive de synchronisation.
Un relâchement volontaire du processeur.
La création et la terminaison d’un processus impliquent aussi des décisions
d’ordonnancement.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
66 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Inconvénients de l’ordonnancement
coopératif
• L’ordonnancement coopératif ne permet pas d’assurer l’équité.
• Un processus qui n’effectue aucune entrée-sortie peut mobiliser le
processeur sans jamais le relâcher.
• Il est nécessaire que se produise régulièrement une interruption
matérielle.
• Ceci amène à définir la notion de quantum de temps.
• Le processus courant se voit attribué une quantité de temps de
processeur (le quantum de temps).
• Le système d’exploitation programme le contrôleur d’interruption de façon
à ce que celui-ci génère une interruption à l’échéance de ce quantum de
temps.
• Ceci permet au système d’exploitation de reprendre la main.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
67 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Ordonnancement préemptif
Un algorithme d’ordonnancement préemptif laisse le processus courant
s’exécuter jusqu’à ce que :
•
•
•
•
•
Celui-ci produise une entrée-sortie bloquante.
Celui-ci se synchronise de manière bloquante.
Se produise une interruption d’entrée-sortie.
Celui-ci relâche volontaire le processeur.
Son quantum de temps de calcul soit écoulé.
La création et la terminaison d’un processus impliquent là encore aussi des
décisions d’ordonnancement.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
68 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Changement de contexte
Definition
Le passage d’un processus à l’autre par l’ordonnanceur est appelé
changement de contexte.
Il est nécessaire de sauvegarder l’état de la tâche courante, pour pouvoir le
rétablir plus tard.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
69 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
État d’une tâche
Qu’est-ce que l’état d’une tâche ?
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
70 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Changement de contexte
• Durant un changement de contexte, l’ordonnanceur doit tout d’abord
sauvegarder l’état du processus courant (registres, compteur de
programme, etc.) dans une zone de données prévue à cet effet et
appelée table des processus.
• Il charge ensuite de la table des processus les données concernant le
prochain processus à s’exécuter et les rétablit.
• Enfin, il fait reprendre l’exécution du nouveau processus dans l’état dans
lequel celui-ci avait été précédemment interrompu.
• Le changement de contexte est donc une opération coûteuse.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
71 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Algorithme du tourniquet (Round-Robin)
• L’algorithme d’ordonnancement
par tourniquet donne à chaque
processus un quantum de temps
pour s’exécuter.
• Lorsque ce quantum est écoulé,
l’ordonnanceur passe au
processus suivant.
• Le tourniquet est équitable.
• Il n’est pas du tout réactif, ne
permet pas de respect de la
priorité, etc.
Gestion des processus,15026/02
F IGURE: L’ordonnancement par tourniquet
Ordonnancement
3 octobre 2012
72 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Algorithme du tourniquet avec priorités fixes
• Chaque processus a un niveau de
priorité et l’ordonnanceur maintient
autant de listes de que niveaux.
• L’ordonnanceur parcourt les listes par
ordre décroissant de priorité et exécute
le premier processus prêt qu’il rencontre.
• À chaque niveau de priorité, le
tourniquet est appliqué.
• Le tourniquet avec priorités fixes prend
en compte la priorité mais n’est pas
F IGURE: Tourniquet avec priorités
fixes
équitable et peut même entraı̂ner des
famines.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
73 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Tourniquet avec priorités variables
L’exemple de MS-Windows
• Il existe 32 niveaux de priorité, de 0 à 15 pour les threads à priorité
variable, et de 16 à 31 pour les threads temps-réels.
• Lorsqu’un thread est interrompu par l’horloge et qu’il est à priorité
variable, sa priorité est réduite.
• Quand un thread à priorité variable est lancé après avoir attendu une
ressource, sa priorité est augmentée en fonction de la ressource :
• Forte augmentation s’il s’agissait par exemple du clavier.
• Faible augmentation s’il s’agissait par exemple de disque.
• Un thread appartenant à la fenêtre qui a actuellement le focus gagne
deux points de priorité.
Gestion des processus,15026/02
Ordonnancement
3 octobre 2012
74 / 84
ÉCOLE
SUPÉRIEURE
Edsger Dijkstra
D’ÉLECTRICITÉ
(1930-2002)
• Né le 11 mai 1930 à Rotterdam (Pays-Bas) et décédé le 6 août 2002 à
Nuenen (Pays-Bas).
• Lauréat du Turing Award en 1972.
• Les étudiants en première année d’info le connaissent notamment grâce
à son algorithme de parcours de plus court chemin dans les graphes.
• Il a aussi été un grand défenseur de la programmation structurée.
• Si nous parlons de lui aujourd’hui, c’est pour sa contribution à la
synchronisations des processus.
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
75 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Sémaphores
• Créé par Edsger Dijkstra dans THE (Technische Hogeschool Eindhoven)
Operating System, un sémaphore permet la synchronisation entre
plusieurs processus souhaitant accéder de manière exclusive à un objet
partagé.
• Un sémaphore créé avec une valeur val correspondant au nombre
d’accès simultanés à la ressource autorisés.
• Un processeur souhaitant accéder à une ressource réalise une opération
P sur ce sémaphore :
• Si val est supérieure à 0, le processus continue et val est décrémenté.
• Si val est égale à 0, le processus est bloqué. Il ne sera libéré que quand
val sera de nouveau supérieure à 0.
• Un processus qui libère une ressource réalise sur le sémaphore une
opération V, qui incrémente val de 1. Un des processus bloqué pourra
ainsi être débloqué.
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
76 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Sémaphores
Moyen mnémotechnique
• Opération P : Puis-je ?
• Opération V : Vas-y !
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
77 / 84
ÉCOLE
Mutex
SUPÉRIEURE
D’ÉLECTRICITÉ
Le mutex est un cas particulier du sémaphore, initialisé à 1.
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
78 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Instructions atomiques
• Si on regarde en détail l’opération P du sémaphore ou du mutex, on
s’aperçoit qu’elle comporte deux opérations successives :
• Le test de val
• Si val est supérieur à 0, décrémentation de val
• Qu’arrive-t-il si le processus est interrompu entre ces deux opérations et
qu’un autre processus tente d’accéder à la ressource ?
• Plusieurs approches peuvent être utilisées pour résoudre ce problème,
dont l’instruction processeur atomique Test And Set ou la demande de
section critique
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
79 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Inversion de priorité
L’histoire de Mars PathFinder
• Mars Pathfinder est une mission spatiale
de la NASA qui s’est déroulée en 1996.
• Son but était de faire atterrir une sonde
sur Mars contenant un robot (Rocky).
• 7 mois après le décollage, Rocky atterrit
sur Mars et fonctionne très bien.
• Cependant, après un certain temps, des
données collectées sont
systématiquement perdues.
Gestion des processus,15026/02
Synchronisation
F IGURE: Rocky
3 octobre 2012
80 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Inversion de priorité
Ce qui s’est passé sur Mars ce jour là
• Les trois processus suivants s’exécutaient sur le système d’exploitation
temps réel VxWorks de Rocky :
• Un processus de priorité haute qui gérait de la mémoire partagée et le
réarmement périodique d’un chien de garde.
• Un processus de priorité faible qui écrivait dans cette mémoire les données
météorologiques qu’il collectait.
• Un troisième processus de priorité moyenne chargé de transmettre les
informations collectées vers la Terre (temps d’exécution assez long).
• L’accès à la mémoire partagée est protégé par un mutex.
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
81 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Inversion de priorité
Ce qui s’est passé sur Mars ce jour là
• Il arrivait que le processus de priorité faible demande un accès exclusif à
la mémoire et l’obtienne.
• Si une interruption intervenait entraı̂nant un changement de contexte vers
le processus de priorité haute ; celui-ci se bloquait en demandant lui aussi
un accès exclusif à la mémoire.
• Si une transmission vers la Terre se déclenchait à cet instant le
processus de priorité moyenne obtenait le processeur.
• Il empêchait le processus de priorité faible de libérer l’accès à la mémoire.
• Celui-ci ne pouvait pas débloquer le processus de haute priorité.
• Redémarrage par le chien de garde.
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
82 / 84
ÉCOLE
SUPÉRIEURE
Inversion de priorité
D’ÉLECTRICITÉ
Schéma
Au tableau ...
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
83 / 84
ÉCOLE
SUPÉRIEURE
D’ÉLECTRICITÉ
Inversion de priorité
En terme technique
L’inversion de priorité est un problème classique qui peut survenir dans les
mécanismes d’ordonnancement avec priorité et qui se traduit par le fait qu’une
tâche à priorité élevée ne peut avoir accès au processeur car elle est bloquée
par une tache de priorité inférieure.
Gestion des processus,15026/02
Synchronisation
3 octobre 2012
84 / 84
Téléchargement
Study collections