Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Systèmes d’exploitation
23 novembre 2016
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 1 / 54
Plan
Plan
1 Introduction
Bibliographie
Définition
Historique
Concepts de base
Architectures de systèmes d’exploitation
2 Processus
Introduction
Communication inter-processus (IPC)
Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 2 / 54
Introduction
Plan
1 Introduction
Bibliographie
Définition
Historique
Concepts de base
Architectures de systèmes d’exploitation
2 Processus
Introduction
Communication inter-processus (IPC)
Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 3 / 54
Introduction Bibliographie
A. Tannenbaum et A. Woodhull
Operating systems – Design and implementation
Prentice Hall 2006, troisième édition.
A. Tannenbaum
Modern operating systems
Prentice Hall, deuxième édition.
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 4 / 54
Introduction Définition
Définition
Un système d’exploitation (Operating System ou OS en anglais) est un
programme réalisant les fonctions élémentaires suivantes :
Gestion des ressources physiques de l’ordinateur (temps cpu, mémoire,
périphériques)
Protection de l’intégrité des données stockées et exécutées (en mémoire,
sur les unités de stockage)
Assurer un niveau d’abstraction du matériel pour l’utilisateur
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 5 / 54
Introduction Historique
La préhistoire
1642 – La Pascaline
Blaise Pascal invente en 1642 une machine à calculer mécanique réalisée
à l’aide d’engrenages. Elle permettait de réaliser des additions et des sous-
tractions. Environ 50 exemplaires furent fabriqués, mais ce fut un échec com-
mercial en raison d’un prix de revient élevé. En mémoire de sa contribution à
l’histoire de l’informatique, Pascal donna son nom à un langage de program-
mation.
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 6 / 54
Introduction Historique
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 7 / 54
Introduction Historique
L’antiquité
1945-1955 – Relais et tubes à vide
À cette époque les ordinateurs sont constitués de relais et/ou d’amplificateurs
à base de tubes à vide (par exemple l’ENIAC, 30 tonnes, 17 500 tubes à vide,
1500 relais, maximum 5 jours sans panne). Alan Turin invente la machine qui
porte son nom et avec elle la notion d’algorithme. John Von Neumann donne
son nom à l’architecture moderne des ordinateurs : une unité de contrôle, une
unité arithmétique et logique, une mémoire, des entrées-sorties. La notion de
système d’exploitation est toujours inconnue à cette époque.
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 8 / 54
Introduction Historique
La renaissance
1955-1965 – La révolution du transistor
L’utilisation du transistor en informatique à partir de 1955 fut une véritable
révolution. Le prix et surtout la fiabilité des ordinateurs s’améliora de manière
drastique. Les ordinateurs de cette époque se nommaient mainframes et
étaient encore réservés aux institutions (par exemple l’IBM 7094 avec en-
viron 128 Ko de mémoire et une fréquence d’horloge inférieure à 1 MHz).
Ils nécessitaient un personnel pléthorique pour sa maintenance. On assiste
au développement d’un embryon de système d’exploitation : les systèmes de
batch.
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 9 / 54
Introduction Historique
L’époque moderne
IBM 360
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 10 / 54
Introduction Historique
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 11 / 54
Introduction Historique
L’époque contemporaine
1980-nos jours – La démocratisation
Miniaturisation des circuits intégrés
INTEL commercialise le 8086 en 1980 tandis que Motorola sort le 6502
Apparition de l’IBM PC (Personal Computer) équipé du système
d’exploitation MS/DOS et du langage de programmation Microsoft BASIC
Apparition du Macintosh : interface graphique utilisant des fenêtres et la
souris comme pointeur
Windows 1.0 : pâle tentative de copie de l’interface d’Apple par Microsoft
IBM PC
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 12 / 54
Introduction Historique
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 13 / 54
Introduction Concepts de base
Concepts de base
Le Noyau (Kernel)
Programme réalisant toutes les fonctions du système d’exploitation
En général, le noyau a le degré de privilège maximum pour l’accès aux
ressources matérielles
Le système d’exploitation (Operating Systems ou OS) est constitué du
noyau et de diverses applications périphériques
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 14 / 54
Introduction Concepts de base
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 16 / 54
Introduction Concepts de base
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 17 / 54
Introduction Concepts de base
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 18 / 54
Introduction Concepts de base
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 19 / 54
Introduction Architectures de systèmes d’exploitation
Systèmes monolithiques
Tout le code du noyau tourne dans le ring 0, gestionnaires de
périphériques (drivers) compris
Ces systèmes n’utilisent que 2 modes de fonctionnement (ring) du
processeur : le ring 0 pour le noyau et le ring 1 pour les processus
utilisateur.
Le code du noyau est très volumineux
Robustesse moindre : plus de code tourne en mode superviseur
Réactivité meilleure : le protocole d’accès au matériel est le plus simple
possible
Exemple : linux du type monolithique modulaire (les drivers peuvent être
chargés à la demande).
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 20 / 54
Introduction Architectures de systèmes d’exploitation
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 21 / 54
Introduction Architectures de systèmes d’exploitation
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 22 / 54
Introduction Architectures de systèmes d’exploitation
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 23 / 54
Introduction Architectures de systèmes d’exploitation
Micro-noyau
Idée : mettre le moins de code possible dans le noyau et déporter le
maximum de code en mode protégé. Cette architecture est aussi appelée
micro-noyau (microkernel)
Ce système est beaucoup plus robuste qu’un système monolithique, car
le nombre de lignes de code en mode supervisuer est très réduit
Les drivers sont déportés en mode utilisateur. S’ils commettent une
action interdite, ils peuvent être tués (killed) et relancés. Ce système est
donc tolérant aux fautes.
Les drivers accèdent au matériel via un mécanisme logiciel de protection
d’où une perte de réactivité
Exemple : Mach, Minix, Windows (de type micro-noyau enrichi, car
certaines fonctions très sollicitées sont mises dans le noyau)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 24 / 54
Introduction Architectures de systèmes d’exploitation
Systèmes temps-réel
Le noyau permet de respecter des contraintes temporelles fortes
Réactivité par rapport aux interruptions matérielles
Création de tâches périodiques avec une fluctuation de la période (jitter)
minimale
Exemples : VXWorks (micro-noyau temps-réel), QNX (micro-noyau
temps-réel UNIX-like), Xenomai (monolithique modifié avec micro-noyau
sous-jacent tournant sur une machine virtuelle nano-noyau adeos)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 25 / 54
Processus
Plan
1 Introduction
Bibliographie
Définition
Historique
Concepts de base
Architectures de systèmes d’exploitation
2 Processus
Introduction
Communication inter-processus (IPC)
Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 26 / 54
Processus Introduction
Introduction
Définitions
Processus : séquence d’instructions exécutées par le processeur.
Sur un système multitâches, l’illusion du parallélisme est donnée en
réalisant un multiplexage temporel de la ressource CPU et en la
distribuant entre les différents processus suivant une loi appelée
ordonnancement (scheduling).
Les processus ne sont pas tous égaux. Certains sont prioritaires et
doivent être traités rapidement, car ils servent par exemple au bon
fonctionnement du système d’exploitation.
Chaque processus fonctionne de manière cloisonnée par rapport aux
autres. Le contexte d’un processus est l’état courant du matériel
(processeur principalement) lorsque ce processus est en cours
d’exécution.
Le découpage temporel du temps CPU entre les différents processus
implique une commutation de contexte du matériel pour sauvegarder le
contexte courant du processus en cours de suspension et la restauration
du contexte du processus sur le point d’être réveillé.
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 27 / 54
Processus Introduction
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 28 / 54
Processus Introduction
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 29 / 54
Processus Introduction
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 30 / 54
Processus Introduction
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 31 / 54
Processus Introduction
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 32 / 54
Processus Communication inter-processus (IPC)
Communication inter-processus
Introduction
Comment communiquer des données entre processus ?
Comment synchroniser la transmission des données ?
Comment éviter les situations de blocage ?
Comment gérer l’accès concurrent à des ressources communes ?
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 33 / 54
Processus Communication inter-processus (IPC)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 34 / 54
Processus Communication inter-processus (IPC)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 35 / 54
Processus Communication inter-processus (IPC)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 36 / 54
Processus Communication inter-processus (IPC)
Alternance stricte
while( 1 ) {
while( turn != 0 );
/* section critique */
/* ... */
turn = 1;
/* section non critique */
/* ... */
}
while( 1 ) {
while( turn != 1 );
/* section critique */
/* ... */
turn = 0;
/* section non critique */
/* ... */
}
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 37 / 54
Processus Communication inter-processus (IPC)
Algorithme de Peterson
flag[0] = flag[1] = turn = 0;
P0: flag[0] = 1;
turn = 1;
while( flag[1] && turn == 1 );
// do nothing
// critical section
...
// end of critical section
flag[0] = 0;
P1: flag[1] = 1;
turn = 0;
while( flag[0] && turn == 0 );
// do nothing
// critical section
...
// end of critical section
flag[1] = 0;
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 38 / 54
Processus Communication inter-processus (IPC)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 39 / 54
Processus Communication inter-processus (IPC)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 40 / 54
Processus Communication inter-processus (IPC)
Sémaphore
Méthode classique pour accéder à une ressource commune
Le sémaphore est un compteur qui est initialisé à la valeur du nombre de
ressources partagées à protéger
Lorsqu’il n’y a qu’une seule ressource à partager, on parle de sémaphore
binaire ou mutex
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 41 / 54
Processus Communication inter-processus (IPC)
Producer() {
int widget;
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 43 / 54
Processus Communication inter-processus (IPC)
Mutex
Un mutex est un cas particulier d’un sémaphore qui n’aurait que 2 états :
0 ou 1
Un mutex est typiquement utilisé lorsqu’il faut protéger une section
critique
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 44 / 54
Processus Communication inter-processus (IPC)
Moniteurs (monitors)
Ensemble de procédures, variables, structures de données regroupées
dans un objet spécial appelé moniteur
Les processus externes au moniteur peuvent appeler les procédures du
moniteur, mais une seule procédure du moniteur ne peut être active à la
fois
La synchronisation est gérée par le compilateur qui sait que le moniteur
est une structure spéciale. C’est le compilateur qui rajoute les
mécanismes de synchronisation adéquats.
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 45 / 54
Processus Communication inter-processus (IPC)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 46 / 54
Processus Ordonnancement (scheduling)
Ordonnancement
Introduction
Partage du temps CPU entre les processus. Le passage d’un processus
à un autre s’appelle la commutation de processus. C’est l’ordonnanceur
du noyau qui effectue cette commutation.
La prise de décision des commutations s’effectue de manière périodique
(tic du système)
Deux principaux types de comportements des processus : processus
dédiés aux entrées-sorties et processus dédiés aux calculs
Quand commuter les processus : quand un processus se termine, quand
un processus bloque sur une entrée/sortie, un sémaphore ...
Éventuellement : quand un nouveau processus est créé, quand une
interruption matérielle intervient.
Différents objectifs d’ordonnancement : équité, veiller à ce qui la politique
d’ordonnancement soit respectée, équilibre. Pour les systèmes
interactifs : temps de réponse court, ergonomie adaptée aux attentes des
utilisateurs. Pour les systèmes temps-réel : respect strict des délais,
déterminisme.
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 47 / 54
Processus Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 48 / 54
Processus Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 49 / 54
Processus Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 50 / 54
Processus Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 51 / 54
Processus Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 52 / 54
Processus Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 53 / 54
Processus Ordonnancement (scheduling)
Jacques Gangloff (TPS) Systèmes temps réel et systèmes embarqués Année scolaire 2016-2017 54 / 54