Académique Documents
Professionnel Documents
Culture Documents
Tanguy Philippe
2023–2024
1 / 227
Avant-propos
Avant-propos
2 / 227
Avant-propos
3 / 227
Avant-propos
Motivations
4 / 227
Avant-propos
Objectifs
5 / 227
Avant-propos
6 / 227
Avant-propos
Évaluation certificative
Controle continu
7 / 227
Avant-propos
Prérequis
• Cours :
• Architecture des ordinateurs
• Langage C
• Compilation
• Commandes UNIX
• Nous vous conseillons d’installer (uniquement, dual-boot ou machine
virtuelle) sur vos machines une distribution Linux classique
(non-exotique) !
8 / 227
Avant-propos
9 / 227
Avant-propos
10 / 227
Première partie I
11 / 227
Préambule
Préambule
Contenu
Cette partie :
• traite de manière introductive les éléments de base d’un système
d’exploitation
• permet d’acquérir le vocabulaire et de comprendre les bases
nécessaires pour les parties suivante de cette UE
Objectifs
À la fin de cette partie vous serez en mesure de :
• comprendre les concepts de base sur lesquels reposent un système
d’exploitation
• comprendre la structure d’un système d’exploitation
• justifier de l’intérêt d’un système d’exploitation pour un projet
12 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
13 / 227
Sommaire
1 Introduction
Qu’est-ce qu’un système d’exploitation ?
Chronologie des systèmes et logiciels d’exploitation
Architecture d’un système d’exploitation
Matériel
Types de système d’exploitation
14 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Premières notions
15 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Premières notions
Définition de sa nature
Un système d’exploitation est un logiciel informatique s’exécutant sur un
ordinateur.
16 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Premières notions
Définition de sa nature
Un système d’exploitation est un logiciel informatique s’exécutant sur un
ordinateur.
17 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
18 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Couche 1 : Micro-architecture
19 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Couche 1 : Micro-architecture
20 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Couche 1 : Micro-architecture
21 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Couche 1 : Micro-architecture
22 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Couche 1 : Micro-architecture
23 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Couche 1 : Micro-architecture
24 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Couche 1 : Micro-architecture
25 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
26 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
27 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
28 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
29 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
30 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
31 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
32 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
33 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
34 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Définition : logiciel
“Le logiciel est un ensemble de programmes, procédés et règles, et
éventuellement de documentation, relatifs au fonctionnement d’un
ensemble de traitement de données.”, source Larousse.
35 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Définition : logiciel
“Le logiciel est un ensemble de programmes, procédés et règles, et
éventuellement de documentation, relatifs au fonctionnement d’un
ensemble de traitement de données.”, source Larousse.
36 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Définition : logiciel
“Le logiciel est un ensemble de programmes, procédés et règles, et
éventuellement de documentation, relatifs au fonctionnement d’un
ensemble de traitement de données.”, source Larousse.
Définition : programme
Un programme est défini par une suite d’instructions permettant de faire
des traitements sur des données afin de fournir un résultat.
37 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
38 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Définition
Un système d’exploitation est un logiciel système qui permet d’abstraire et
de gérer les éléments matériels de l’architecture sur laquelle il est hébergé.
Il est la couche intermédiaire entre le logiciel applicatif et le matériel.
Applications
Système d’exploitation
Matériel
39 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
40 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Les interruptions
Définition
Une interruption est un évènement qui provoque l’arrêt de l’exécution
courante d’un programme par le processeur pour exécuter un bout de code
(routine).
Nature
• interruption matérielle (interrupt)
• interruption logicielle (Exception or Trap)
41 / 227
Introduction Qu’est-ce qu’un système d’exploitation ?
Applications
Système d’exploitation
Matériel
42 / 227
Sommaire
1 Introduction
Qu’est-ce qu’un système d’exploitation ?
Chronologie des systèmes et logiciels d’exploitation
Architecture d’un système d’exploitation
Matériel
Types de système d’exploitation
43 / 227
Introduction Chronologie des systèmes et logiciels d’exploitation
Un peu d’histoire
44 / 227
Sommaire
1 Introduction
Qu’est-ce qu’un système d’exploitation ?
Chronologie des systèmes et logiciels d’exploitation
Architecture d’un système d’exploitation
Matériel
Types de système d’exploitation
45 / 227
Introduction Architecture d’un système d’exploitation
User
Shell, gui, compiler programms, interpre-
User mode ters, library standard (read, write, etc.) etc.
System call interface
kernel
filesystem, pilote, memory
Supervisor mode access, scheduling, etc.
Kernel interface to HW
controllers : memory, disks, terminals, etc.
HW
46 / 227
Introduction Architecture d’un système d’exploitation
47 / 227
Introduction Architecture d’un système d’exploitation
Noyau - rôle
48 / 227
Introduction Architecture d’un système d’exploitation
49 / 227
Introduction Architecture d’un système d’exploitation
50 / 227
Sommaire
1 Introduction
Qu’est-ce qu’un système d’exploitation ?
Chronologie des systèmes et logiciels d’exploitation
Architecture d’un système d’exploitation
Matériel
Types de système d’exploitation
51 / 227
Introduction Matériel
À la base il y a le matériel
Applications
Système d’exploitation
Matériel
53 / 227
Introduction Matériel
54 / 227
Introduction Matériel
55 / 227
Introduction Matériel
56 / 227
Introduction Matériel
57 / 227
Introduction Matériel
58 / 227
Introduction Matériel
59 / 227
Sommaire
1 Introduction
Qu’est-ce qu’un système d’exploitation ?
Chronologie des systèmes et logiciels d’exploitation
Architecture d’un système d’exploitation
Matériel
Types de système d’exploitation
60 / 227
Introduction Types de système d’exploitation
61 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
62 / 227
Sommaire
2 Processus
Introduction au processus
Introduction à la gestion des processus
Notions de fil d’exécution (thread)
Ordonnancement
Communication entre processus
Conclusion
63 / 227
Processus Introduction au processus
64 / 227
Processus Introduction au processus
Besoins et contraintes
• Exécution de plusieurs tâches en même temps
• Les architectures n’ont pas un nombre infini de processeurs
Définition multiprogrammation
Mode d’exploitation d’un ordinateur permettant l’exécution de plusieurs
programmes soit en simultanéité, soit en alternance. (source Larousse)
65 / 227
Processus Introduction au processus
Exercice
Soit 4 processus notés A, B, C et D. Dessinez le diagramme de Gantt de
l’exécution de ces quatres processus par un processeur.
66 / 227
Processus Introduction au processus
Exercice
Soit 4 processus notés A, B, C et D. Dessinez le diagramme de Gantt de
l’exécution de ces quatres processus par un processeur.
67 / 227
Sommaire
2 Processus
Introduction au processus
Introduction à la gestion des processus
Notions de fil d’exécution (thread)
Ordonnancement
Communication entre processus
Conclusion
68 / 227
Processus Introduction à la gestion des processus
69 / 227
Processus Introduction à la gestion des processus
70 / 227
Processus Introduction à la gestion des processus
71 / 227
Processus Introduction à la gestion des processus
ELF header
⎧
⎪ .text
⎨
⎪
⎩ .rodata
⎧ ...
⎨
⎩ .data
source Wikipedia
72 / 227
Processus Introduction à la gestion des processus
Addr high
seg stack
seg heap
seg data
seg text
Addr low
73 / 227
Processus Introduction à la gestion des processus
Élu
1 Le processus se bloque en 1 2
attente de données 3
Bloqué Prêt
2 L’OS choisi d’exécuter un autre 4
processus
3 L’OS choisi d’éxécuter de Avec les états
nouveau le processus • Élu : processus en exécution
4 Les données deviennent • Prêt : processus suspendu
disponibles • Bloqué : processus en attente
d’un évènement externe
74 / 227
Processus Introduction à la gestion des processus
Élu
1 Le processus se bloque en 1 2
attente de données 3
Bloqué Prêt
2 L’OS choisi d’exécuter un autre 4
processus
3 L’OS choisi d’éxécuter de Avec les états
nouveau le processus • Élu : processus en exécution
4 Les données deviennent • Prêt : processus suspendu
disponibles • Bloqué : processus en attente
d’un évènement externe
Mais quelle partie de l’OS gère tout ça ?
75 / 227
Processus Introduction à la gestion des processus
Élu
1 Le processus se bloque en 1 2
attente de données 3
Bloqué Prêt
2 L’OS choisi d’exécuter un autre 4
processus
3 L’OS choisi d’éxécuter de Avec les états
nouveau le processus • Élu : processus en exécution
4 Les données deviennent • Prêt : processus suspendu
disponibles • Bloqué : processus en attente
d’un évènement externe
Mais quelle partie de l’OS gère tout ça ?
77 / 227
Processus Introduction à la gestion des processus
78 / 227
Processus Introduction à la gestion des processus
79 / 227
Processus Introduction à la gestion des processus
81 / 227
Processus Introduction à la gestion des processus
• demo cours
• D’autres illustrations pratiques avec étude de cas xv6 plus loin dans le
cours et en TD :
• création processus avec appel système fork
• …
82 / 227
Sommaire
2 Processus
Introduction au processus
Introduction à la gestion des processus
Notions de fil d’exécution (thread)
Ordonnancement
Communication entre processus
Conclusion
83 / 227
Processus Notions de fil d’exécution (thread)
Définition : thread
Un thread est un processus dit léger ayant un contexte commun mais
ayant sa propre pile.
Caractéristiques
• Un processus peut avoir plusieurs threads
• Les threads partagent le meme code et les mêmes données
• Un thread a sa propre pile
84 / 227
Processus Notions de fil d’exécution (thread)
Processus léger
Processus lourd
Code
Code
Données
Données
Pile A
Pile
Pile B
85 / 227
Processus Notions de fil d’exécution (thread)
Thread utilisateur
• Non géré par le noyau
• Si thread bloquant tout le processus est bloqué
• pas d’allocation sur plusieurs processeurs.
• portabilité (indépendant de l’OS)
Thread système
• Géré par le noyau
• Ordonnancement des threads du processus par le noyau
• Commmutation contexte, appels systèmes => coûteux
86 / 227
Processus Notions de fil d’exécution (thread)
87 / 227
Sommaire
2 Processus
Introduction au processus
Introduction à la gestion des processus
Notions de fil d’exécution (thread)
Ordonnancement
Communication entre processus
Conclusion
88 / 227
Processus Ordonnancement
Pourquoi ordonnancer ?
Besoin
• Contexte de multiprogrammation
• Plusieurs processus
• Partage du processeur ou des processeurs
Contraintes
• Ressources finis (nombre de processeurs)
• Priorité entre les processus
• Temps alloué à un processus
89 / 227
Processus Ordonnancement
Définitions
Définition : ordonnanceur
Un ordonnanceur (scheduler en anglais) exécute un algorithme
d’ordonnancement. C’est généralement un composant du noyau d’un
système d’exploitation.
Définition : quantum
Le quantum est le temps d’allocation d’un processus par le processeur.
90 / 227
Processus Ordonnancement
91 / 227
Processus Ordonnancement
92 / 227
Processus Ordonnancement
93 / 227
Processus Ordonnancement
94 / 227
Processus Ordonnancement
95 / 227
Processus Ordonnancement
Définition : préemptif
Un algorithme d’ordonnancement préemptif va allouer un processus pour
un temps donné puis allouer un autre processus après.
96 / 227
Processus Ordonnancement
Priorité
Principe
À chaque processus une priorité est associée.
Problème
Problème de la famine
Solution
Technique de vieillissement consistant à augmenter la priorité des
processus au cours du temps.
97 / 227
Processus Ordonnancement
Algorithmes d’ordonnancement ?
Algorithmes collaboratifs
• First Come First Served
• Last Input First Output
• Shortest Job First
Algorithmes préemptif
• Shortest Remaining Time Next
• Fixed priority pre-emptive scheduling
• Round-Robin
• Multilevel feedback queue
98 / 227
Processus Ordonnancement
Principe
Les processus sont alloués en fonction de leur ordre d’arrivée. Le premier
arrivé est le premier servi.
99 / 227
Processus Ordonnancement
Exercice
Quantum = 1
Questions
1 représenter le diagramme de Gantt
2 calculer les performances de l’algorithme : temps d’attente et temps
d’exécution
100 / 227
Processus Ordonnancement
Avantages/Inconvenients
• Avantages
• Simplicité
• Équité
• Inconvénients
• Efficacité
• Pas de priorité
• Réactivité
101 / 227
Processus Ordonnancement
Principe
L’algorithme (Shortest Job First, SJF) alloue le processus dont le temps
d’exécution le plus court en priorité
Avantages/Inconvenients
• Avantages
• Réactif
• Inconvénients
• Équité
• Efficacité
102 / 227
Processus Ordonnancement
Round-Robin
Algorithme
Allocation de tranches (quantum) de temps processeur égale pour tous les
processus. Lorsque le quantum est dépassé si le processus n’est pas
terminé il est replacé en fin de file (algorithme tourniquet).
Avantages/Inconvenients
• Avantages
• Équité
• Amélioration réactivité
• Inconvénients
• Temps d’attente moyen élevé
• Nombre de commutation important
103 / 227
Sommaire
2 Processus
Introduction au processus
Introduction à la gestion des processus
Notions de fil d’exécution (thread)
Ordonnancement
Communication entre processus
Conclusion
104 / 227
Processus Communication entre processus
Processus coopératif
• Processus qui nécessite une communication avec un autre processus
• Les processus coopératifs implique la mise en place de mécanisme
pour supporter une communication entre processus (Inter Process
Commmunication en anglais, (IPC)).
106 / 227
Processus Communication entre processus
Causes
• Accès à des ressources partagées
• Opérations non atomique comme par exemple i=i+1.
107 / 227
Processus Communication entre processus
108 / 227
Processus Communication entre processus
110 / 227
Processus Communication entre processus
Mécanismes de communications
Dans ce contexte, il existe deux modèles de communication IPC utilisé
dans les systèmes d’exploitation
1 les modèles à mémoire partagée
2 les modèles par passage de messages
Processus A Processus A
mem partage
Processus B Processus B
Noyau Noyau
111 / 227
Processus Communication entre processus
Mémoire partagée
Avantages
• Appels systèmes uniquement pour le partage mémoire
• Rapidité
• Le partage est seulement un accès mémoires à géré (pas de gestion
par le noyau)
Inconvénients
• Complexité
• Gestion conflits, synchronisation
112 / 227
Processus Communication entre processus
Passage de messages
avantages
• Simple
• Pas de problème de conflits
inconvénients
• Lent
• Utilisation du noyau (coût)
113 / 227
Processus Communication entre processus
Mécanismes de synchronisation
114 / 227
Processus Communication entre processus
• Principe :
• Le sémaphore (sem) est caractérisé par un compteurs et une liste de
processus bloqué
• Trois opérations sur le sémaphore sem
• init : création et initialisation valeur compteur
• P(sem) : action de demande d’autorisation. Décrémente le compteur,
teste si une ressource est disponible si oui ok si non mise en attente du
processus appeleant dans la file
• V(sem) : action d’autorisation. incrémente le compteur, test si
compteur inférieur ou égal à 0 et si vérifié alors libére un processus de
la file
• Deux types
• Sémaphore comptage
• Sémaphore binaire (utilisé aussi pour faire de l’exclusion mutuelle)
115 / 227
Sommaire
2 Processus
Introduction au processus
Introduction à la gestion des processus
Notions de fil d’exécution (thread)
Ordonnancement
Communication entre processus
Conclusion
116 / 227
Processus Conclusion
Résumé
117 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
118 / 227
Sommaire
3 Gestion de la mémoire
Introduction
Stratégies d’allocation mémoires et critères
Stratégies d’allocation mémoire contiguë
Stratégies d’allocation mémoire non contiguë
Stratégie de gestion par mémoire virtuelle
Conclusion
119 / 227
Gestion de la mémoire Introduction
120 / 227
Gestion de la mémoire Introduction
Définition
Une mémoire est un composant électronique ayant la capacité de stocker
des informations.
Caractéristiques
• capacité
• temps d’accès
• temps de cycle
• débit
• volatilité
• technologie : magnétique, etc.
• types : morte, vive, flash.
121 / 227
Gestion de la mémoire Introduction
122 / 227
Gestion de la mémoire Introduction
123 / 227
Gestion de la mémoire Introduction
Besoins
• On veut pouvoir exécuter plusieurs processus et donc nous devons
partager la mémoire
• On veut un certain niveau de performance
• On veut protéger l’accès mémoire d’un processus par un autre
processus
• etc.
Contraintes
• La taille de la mémoire vive est limitée pour des raisons de coût, etc.
• La tailles des programmes
• Le nombre de processus
124 / 227
Gestion de la mémoire Introduction
Problèmes
• Comment partager l’espace mémoire physique ?
• Comment protéger l’accès d’un espace mémoire d’un processus par un
autre ?
• Comment gérer lorque la mémoire vive ne peut contenir tous les
processus actifs ?
125 / 227
Gestion de la mémoire Introduction
Vocabulaire
• Adresse physique : adresse de l’unité mémoire
• Adresse logique : adresse généré par le CPU
126 / 227
Sommaire
3 Gestion de la mémoire
Introduction
Stratégies d’allocation mémoires et critères
Stratégies d’allocation mémoire contiguë
Stratégies d’allocation mémoire non contiguë
Stratégie de gestion par mémoire virtuelle
Conclusion
127 / 227
Gestion de la mémoire Stratégies d’allocation mémoires et critères
Critère matériel
128 / 227
Gestion de la mémoire Stratégies d’allocation mémoires et critères
Critère de la fragmentation
129 / 227
Gestion de la mémoire Stratégies d’allocation mémoires et critères
Critère de performance
• Temps requis pour lié une adresse logique à une adresse physique
130 / 227
Gestion de la mémoire Stratégies d’allocation mémoires et critères
Critère de va-et-vient
131 / 227
Gestion de la mémoire Stratégies d’allocation mémoires et critères
Critère de protection
132 / 227
Sommaire
3 Gestion de la mémoire
Introduction
Stratégies d’allocation mémoires et critères
Stratégies d’allocation mémoire contiguë
Stratégies d’allocation mémoire non contiguë
Stratégie de gestion par mémoire virtuelle
Conclusion
133 / 227
Gestion de la mémoire Stratégies d’allocation mémoire contiguë
134 / 227
Gestion de la mémoire Stratégies d’allocation mémoire contiguë
135 / 227
Sommaire
3 Gestion de la mémoire
Introduction
Stratégies d’allocation mémoires et critères
Stratégies d’allocation mémoire contiguë
Stratégies d’allocation mémoire non contiguë
Stratégie de gestion par mémoire virtuelle
Conclusion
136 / 227
Gestion de la mémoire Stratégies d’allocation mémoire non contiguë
Segmentation
Définition segmentation
La mémoire est partitionnée en éléments de taille variable qui ont une
certaine logique et qui sont alors appelés segments.
Définition segment
Un segment est un élément logique d’un programme (variables, main, etc.).
137 / 227
Gestion de la mémoire Stratégies d’allocation mémoire non contiguë
Seg. heap 1
Seg. data 1
Seg. text 1 Seg. text 1
Seg. heap 1
Seg. data 1
Seg. text 2
Seg. text 1
138 / 227
Gestion de la mémoire Stratégies d’allocation mémoire non contiguë
@ Logic
CPU Seg. num. Depl.
Yes
< +
Limit Base No @ Physical
Segments table
Memory
139 / 227
Gestion de la mémoire Stratégies d’allocation mémoire non contiguë
Pagination
Définition
La mémoire est partitionnée en blocs de taille fixe appelés pages.
140 / 227
Gestion de la mémoire Stratégies d’allocation mémoire non contiguë
Page 1
Espace mémoire Page 2
Processus2 Page 3
Page 4
Frame 1
Traduction? Frame 3
Frame 3
Frame 2
Frame 4
141 / 227
Gestion de la mémoire Stratégies d’allocation mémoire non contiguë
@ Logic
CPU Page num. Page offset
Pages table
@ Physical
Memory
142 / 227
Gestion de la mémoire Stratégies d’allocation mémoire non contiguë
Pages table
@ Physical
Memory
143 / 227
Sommaire
3 Gestion de la mémoire
Introduction
Stratégies d’allocation mémoires et critères
Stratégies d’allocation mémoire contiguë
Stratégies d’allocation mémoire non contiguë
Stratégie de gestion par mémoire virtuelle
Conclusion
144 / 227
Gestion de la mémoire Stratégie de gestion par mémoire virtuelle
Besoins et contraintes
• Contrainte de processus supérieur à la taille de la mémoire principale
• Besoin d’adresser plus que ce que peut adresser physiquement la
machine
• Problème de la fragmentation
Définition
La mémoire virtuelle est une technique qui consiste à associer à la
mémoire physique une partie de la mémoire d’un disque dur. En mémoire
vive se trouve uniquement les parties actives d’un processus et les autres
parties se trouvent sur le disque dur.
145 / 227
Gestion de la mémoire Stratégie de gestion par mémoire virtuelle
Techniques
• pagination (cf. transparents précédent)
• segmentation (cf. transparents précédent)
• hybride : segmentation et pagination
146 / 227
Gestion de la mémoire Stratégie de gestion par mémoire virtuelle
147 / 227
Sommaire
3 Gestion de la mémoire
Introduction
Stratégies d’allocation mémoires et critères
Stratégies d’allocation mémoire contiguë
Stratégies d’allocation mémoire non contiguë
Stratégie de gestion par mémoire virtuelle
Conclusion
148 / 227
Gestion de la mémoire Conclusion
Résumé
149 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
150 / 227
Sommaire
4 Système de fichier
introduction
Interface utilisateur
151 / 227
Système de fichier introduction
Besoins et contraintes
152 / 227
Système de fichier introduction
Les fichiers
Stocker les données dans des fichiers sur des supports de manière
permanente comme des disques durs par exemple.
Rôle de l’OS
Le système d’exploitation a pour rôle de gérer les fichiers : nom, droit,
appartenance, etc. Cette mission est faite par le système de fichier.
153 / 227
Sommaire
4 Système de fichier
introduction
Interface utilisateur
154 / 227
Système de fichier Interface utilisateur
Les fichiers
• Stucture selon les OS
• Suite d’octets
• Suite d’enregistrement
• Arbre d’enregistrement de taille variable
• types :
• donnée
• répertoire
• exécutable
• autres
• attributs : nom, date modification, taille, droits, etc.
• opérations :
• création
• suppression
• fermeture
• ouverture
• etc.
155 / 227
Système de fichier Interface utilisateur
Les catalogues
• répertoires
• hiérarchies : à plat, en arbre, catalogue par utilisateurs, etc.
• chemin d’accès
• opérations : création, suppression, ouverture, fermeture, etc.
156 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
157 / 227
Sommaire
158 / 227
Gestion des entrées/sorties Introduction
Entrées/Sorties ?
Définition
Les entrées/sorties sont des communications entre le processeur et les
périphériques.
159 / 227
Gestion des entrées/sorties Introduction
Exemples :
• clavier
• souris
• imprimantes
• écran
Structure :
• un contrôleur
• mémoire
• connexion : bus interne (pci, isa, etc.), usb, série, spi, i2c, etc
160 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
161 / 227
Sommaire
162 / 227
Architectures de systèmes d’exploitation Introduction
Introduction
163 / 227
Sommaire
164 / 227
Architectures de systèmes d’exploitation Noyau monolithique
Noyau monolithique
165 / 227
Sommaire
166 / 227
Architectures de systèmes d’exploitation Noyau monolithique modulaire
Applications
Noyau monolithique
modulaire
Matériel
Services
Source Wikipedia
167 / 227
Sommaire
168 / 227
Architectures de systèmes d’exploitation Micro-Noyau
Micro-Noyau
• Fonctionnalités du noyau réduite
• certaines fonctions gérées dans des noyaux monolithiques sont
déplacées en mode utilisateur sous forme de services : système de
fichier, pilotes de périphériques, …
Applications
µ noyau
Matériel
Services
Source Wikipedia
169 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
170 / 227
Sommaire
7 Amorçage d’un OS
Introduction
Description générale d’une séquence d’amorçage
Programmes d’amorçage
Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
Conclusion
171 / 227
Amorçage d’un OS Introduction
Introduction
172 / 227
Amorçage d’un OS Introduction
173 / 227
Amorçage d’un OS Introduction
Définition de sa nature
Un programme d’amorçage (ou Bootloader en anglais) est un programme
informatique.
174 / 227
Amorçage d’un OS Introduction
Définition de sa nature
Un programme d’amorçage (ou Bootloader en anglais) est un programme
informatique.
175 / 227
Amorçage d’un OS Introduction
Vocabulaire
176 / 227
Sommaire
7 Amorçage d’un OS
Introduction
Description générale d’une séquence d’amorçage
Programmes d’amorçage
Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
Conclusion
177 / 227
Amorçage d’un OS Description générale d’une séquence d’amorçage
Séquence d’amorçage
178 / 227
Sommaire
7 Amorçage d’un OS
Introduction
Description générale d’une séquence d’amorçage
Programmes d’amorçage
Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
Conclusion
179 / 227
Amorçage d’un OS Programmes d’amorçage
BIOS + Bootloader
180 / 227
Amorçage d’un OS Programmes d’amorçage
181 / 227
Sommaire
7 Amorçage d’un OS
Introduction
Description générale d’une séquence d’amorçage
Programmes d’amorçage
Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
Conclusion
182 / 227
Amorçage d’un OS Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
183 / 227
Amorçage d’un OS Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
184 / 227
Amorçage d’un OS Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
1. crédits : https://50linesofco.de/post/2018-02-28-writing-an-x86-hello-world-bootloader-with-assembly
185 / 227
Sommaire
7 Amorçage d’un OS
Introduction
Description générale d’une séquence d’amorçage
Programmes d’amorçage
Cas d’étude x86 : séquence d’amorçage avec BIOS Legacy
Conclusion
186 / 227
Amorçage d’un OS Conclusion
Résumé
187 / 227
Amorçage d’un OS Conclusion
188 / 227
Sommaire
1 Introduction
2 Processus
3 Gestion de la mémoire
4 Système de fichier
7 Amorçage d’un OS
8 Conclusion
189 / 227
Conclusion
Résumé
190 / 227
Conclusion
La suite du cours
191 / 227
Conclusion
192 / 227
Deuxième partie II
Études de cas
193 / 227
Sommaire
194 / 227
Sommaire
195 / 227
Étude de cas : xv6 Introduction
Introduction
196 / 227
Étude de cas : xv6 Introduction
Pourquoi un OS pédagogique ?
197 / 227
Étude de cas : xv6 Introduction
Pourquoi xv6 ?
198 / 227
Étude de cas : xv6 Introduction
xv6
199 / 227
Étude de cas : xv6 Introduction
• RISC-V ? https://riscv.org/
• RISC-V Instruction Set Manual :
https://github.com/riscv/riscv-isa-manual
• RISC-V architecture, SiFive FU540-C000 manual
https://www.sifive.com/boards/hifive-unleashed
• RISC-V emulation : QEMU
200 / 227
Sommaire
201 / 227
Étude de cas : xv6 Interfaces et organisation
user
shell cat
space
system
call
kernel
space Kernel
source [1]
202 / 227
Étude de cas : xv6 Interfaces et organisation
203 / 227
Étude de cas : xv6 Interfaces et organisation
204 / 227
Étude de cas : xv6 Interfaces et organisation
Isolation ?
205 / 227
Sommaire
206 / 227
Étude de cas : xv6 Tables de pages
44 10
2^27
PPN Flags
1
0
56
Page table
44 12
Physical Address
source [1]
207 / 227
Étude de cas : xv6 Tables de pages
44 10
511
44 10
511
PPN Flags
44 10
511
1 PPN Flags
0
Page Directory 1
PPN Flags
0
Page Directory 1
satp
0
Page Directory
63 53 10 9 8 7 6 5 4 3 2 1 0
V - Valid
R - Readable
W - Writable
X - Executable
U - User
G - Global
A - Accessed
D - Dirty (0 in page directory)
Reserved for supervisor software
Free memory
RW-
• a sa propre page
Kernel data RW-
privé
and other I/O devices
Unused
boot ROM
0x1000
Unused
0 0
source [1]
209 / 227
Étude de cas : xv6 Tables de pages
(empty)
text
211 / 227
Étude de cas : xv6 Trappes : appels systèmes, exceptions et interruptions
213 / 227
Étude de cas : xv6 Interruption et pilotes de périphériques
214 / 227
Sommaire
215 / 227
Étude de cas : xv6 Ordonnancement
Ordonnancement
user
space shell cat
save
swtch swtch restore
kernel
space
kstack kstack kstack
shell scheduler cat
Kernel
source [1]
216 / 227
Sommaire
217 / 227
Étude de cas : xv6 Système de fichier
Système de fichier
218 / 227
Étude de cas : xv6 Système de fichier
• découpe en bloque
• Bloque super contient info sur le FS : taille, nb inodes, …
• Bloque bitmap permet de connaître les bloques de données utilisés
0 1 2
source [1]
220 / 227
Étude de cas : xv6 Système de fichier
Descripteurs de fichier
221 / 227
Étude de cas : xv6 Système de fichier
222 / 227
Étude de cas : xv6 Système de fichier
dinode
type
data
major
minor
nlink ...
size
address 1
..... data
address 12
indirect
data
indirect block
address 1
..... ...
address 256
data
source [1]
223 / 227
Étude de cas : xv6 Système de fichier
224 / 227
Sommaire
225 / 227
Étude de cas : xv6 Conclusion
226 / 227
Étude de cas : xv6 Conclusion
Références (1)
227 / 227