Académique Documents
Professionnel Documents
Culture Documents
d’Exploitation
Didier Verna
E PITA
Généralités
Systèmes d’Exploitation
Scheduling
Opérations
Gestion des processus
Communication
Multithreading
Didier Verna
didier@lrde.epita.fr
http://www.lrde.epita.fr/˜didier
1/27
Table des matières
Systèmes
d’Exploitation
Didier Verna
E PITA 1 Généralités
Généralités
Communication
5 Multithreading
2/27
Programme vs. Processus
Systèmes
d’Exploitation Un programme est une suite d’instructions
Didier Verna
E PITA
(objet statique)
Un processus est un programme en exécution
Généralités
Scheduling
(objet dynamique : programme + contexte)
Opérations Contexte : Espace d’adresses (exécutable, zone de
Communication données, pile), registres (PC, SP), d’autres
Multithreading informations.
Mode d’exécution
I Exécution simultanée de copies d’un même
programme.
I Exécution simultanée de la même copie d’un même
programme (« réentrance »).
I Cas intermédiaires : partager seulement le code, les
données en lecture seule.
4/27
Bloc de contrôle d’un processus (PCB)
Systèmes
d’Exploitation Structure de sauvegarde du contexte d’exécution d’un
Didier Verna
E PITA
processus (U NIX : « U-Structure »)
Généralités
Gestion des processus
Scheduling
I État : prêt, en exécution etc.
Opérations
I Registres : PC, PSW etc.
Communication
I Identité : PID, parent, groupe etc.
Multithreading
I Ordonnancement : priorité, comptabilitéetc.
Gestion de la mémoire
I Zones d’accès : pointeurs de pile, tas, texte etc.
Gestion des fichiers
I E/S : fichiers ouverts etc.
I Répertoires : répertoire courant, racine etc.
I Identité : utilisateur, groupe etc.
5/27
États d’un processus
Un processeur ne peut exécuter qu’un seul processus à la fois
Systèmes
d’Exploitation
admission exit
Généralités
dispatching
Scheduling
Opérations
Prêt En Exécution
Communication interruption
Multithreading
réception d’événement requête d’événement
ou d’entrée/sortie ou d’entrée/sortie
En Attente
6/27
Principe de l’ordonnancement
Systèmes
d’Exploitation Le système maintient :
Didier Verna
E PITA une table de processus,
Généralités une file d’attente des processus prêts,
Scheduling des files d’attente de processus bloqués (ex. par
Opérations périphérique).
Communication
Multithreading
File d’attente des
Proc
processus prêts
Quantum écoulé
8/27
Types d’ordonnanceurs
Systèmes
d’Exploitation Long terme
Didier Verna
E PITA
Présélection des tâches spoolées sur disque et mise
en mémoire (traitement par lots). S’exécute très peu
Généralités
souvent.
Scheduling
Opérations
Court terme
Communication Sélection des processus à exécuter parmi les
Multithreading processus prêts (en temps partagé). S’exécute très
souvent.
Moyen terme
Gestion de la mémoire auxiliaire (en temps partagé).
« Swapping ».
9/27
Commutation de contexte
Systèmes
d’Exploitation Échange des données concernant les processus (PCB) au
Didier Verna
E PITA
moment du dispatching.
Surcharge de travail pour le processeur.
Généralités
10/27
Création de processus
Systèmes
d’Exploitation Nature : processus interactifs, tâches de fond
Didier Verna
E PITA
(background), démons etc. (U NIX : ps).
Causes : Initialisation système, création par un autre
Généralités
Scheduling
processus, requête utilisateur etc. (U NIX : fork).
Opérations Types : clônage du processus parent, nouvelle tâche
Communication (U NIX : exec).
Multithreading
12/27
Terminaison de processus
Systèmes
d’Exploitation Terminaison (a)normale volontaire
Didier Verna
E PITA
U NIX : exit.
Terminaison anormale involontaire
Généralités
Scheduling
Bugs : Division par 0, accès mémoire illégal etc..
Opérations
Possibilité de paramétrer le comportement (signaux
Communication U NIX).
Multithreading Terminaison normale involontaire
U NIX : kill.
13/27
Processus Coopératif
Systèmes
d’Exploitation Création
Didier Verna I Efficacité : répartition du travail en sous-tâches
E PITA
parallèles
Généralités I Modularité : répartition du travail en sous-tâches
Scheduling logiques
Opérations Terminaison
Communication I Synchronisation : bloquage et attente de la
Multithreading
terminaison du fils (U NIX : wait).
I Communication : renvoi d’une valeur de terminaison.
I Exception : zombies.
14/27
Hiérarchies de processus
Association permanente entre parent et enfant
Systèmes
d’Exploitation Windows
Didier Verna
E PITA
Pas de hiérarchie. Le « process handle » peut circuler.
U NIX
Généralités
I Arborescence sous init.
Scheduling
I Notion de « groupe de processus » (Unix : setpgid).
Opérations
Réception des signaux par groupe.
Communication
15/27
Communication inter-processus
aka IPC
Systèmes
d’Exploitation Contexte
Didier Verna I Les processus coopératifs ont besoin de communiquer
E PITA
I Solution 1 : mémoire partagée
Généralités I Solution 2 : envoi de message
Scheduling Problématique
Opérations I Comment établir une liaison ?
Communication I Combien de processus par liaison ?
Multithreading I Combien de liaison par processus ?
I etc.
17/27
Communication directe
Nommage explicite du destinataire ou de l’émetteur
Systèmes
d’Exploitation Caractéristiques
Didier Verna I Liaison automatique créée par le système
E PITA
I Une seule paire de processus par liaison
Généralités I Liaison uni ou bidirectionnelle
Scheduling Modes
Opérations I Liaison symétrique
Communication
send (P, msg); recv (P, msg);
Multithreading I Liaison asymétrique
send (P, msg); recv (id, msg);
Problèmes
I Nécessité de connaître les noms des processus
I Problème en cas de changement de nom
18/27
Communication indirecte
Envoi et réception sur des ports
Systèmes
d’Exploitation Caractéristiques
Didier Verna
E PITA I Liaison établie à condition que les processus partagent
un même port
Généralités
I Plus de deux processus par liaison
Scheduling
I Liaison uni ou bidirectionnelle
Opérations
Communication
Mode
Multithreading
I send (A, msg); recv (A, msg);
Problèmes
I Réceptions multiples sur un même port (se restreindre
à deux processus, limiter les types d’accès en lecture
ou écriture etc.)
19/27
Bufferisation
Caractérisation de la capacité d’une liaison
Systèmes
d’Exploitation Modes
Didier Verna I Capacité nulle : Aucun message en attente. Nécessité
E PITA
d’une synchronisation pour échanger des messages
Généralités (« rendez-vous » / « hand shaking »).
Scheduling I Capacité limitée : L’émetteur peut être retardé si le
Opérations buffer est plein.
Communication I Capacité infinie : L’émetteur n’est jamais retardé.
Multithreading Synchronisation
I Pour des capacités non nulles, la communication est
asynchrone (un émetteur ne sait pas si son message
est reçu)
I Synchronisation possible par « acquittement »
(acknowledgement)
I Synchronisation possible en rendant send bloquant
jusqu’à l’arrivée d’un accusé de réception
20/27
Cas pathologiques
Systèmes
d’Exploitation Terminaison : P attend (ou envoie) un message de (ou
Didier Verna
E PITA
vers) un processus terminé. Le système doit le
terminer ou lui notifier le problème.
Généralités
Messages perdus :
Scheduling
Opérations
I Vérification sous la responsabilité de l’émetteur
I Renvoi (ou notification à l’émetteur) sous la
Communication
responsabilité du système
Multithreading
I Détection par temporisation
I Pas de détection
Messages bruités : (bitflip) idem
Détection par contrôle de parité
21/27
Qu’est-ce que le multithreading ?
Systèmes
d’Exploitation Problèmes
Didier Verna I Fournir un parallélisme intra-processus
E PITA
I Amoindrir le coût de la commutation de contexte
Généralités
Solution
Scheduling
I Thread / LWP (Light Weight Processus) : état, registres
Opérations
(dont PC) et pile. Partage des autres ressources.
Communication I Tâche / HWP (High Weight Processus) : ensemble de
Multithreading
threads. Processus traditionnel = tâche à un seul
thread.
Fonctionnement
I Identique à celui des processus : création,
terminaison, notion d’état etc.
I Problèmes nouveaux : concurrence d’accès aux
ressources partagées (synchronisation) etc.
23/27
Threads utilisateur
Systèmes
d’Exploitation Principe
Didier Verna I Implémentés par une bibliothèque en espace utilisateur
E PITA
I Une table de threads par processus
Généralités
Avantages
Scheduling
I Utilisable au dessus d’un système non multithreadé
Opérations I Commutation de contexte très rapide (pas de « kernel
Communication
trapping »)
Multithreading I Algorithmes d’ordonnancement personalisables
Inconvénients
I Besoin d’appels systèmes non bloquants
Wrappers utilisant select
I Threads monopolisant le CPU
yield + requête d’alarme
I L’intérêt des threads réside justement là où il y a
souvent bloquage. Mais le noyau est là pour ça !
24/27
Threads noyau
Systèmes
d’Exploitation Principe
Didier Verna I Une table de threads en plus de la table de processus
E PITA
I Tout appel bloquant est implémenté par appel système
Généralités
Avantages
Scheduling
I Facilité de conception des applications
Opérations I Pas de nécessité de procédures supplémentaires non
Communication
bloquantes
Multithreading
Inconvénients
I Coût de gestion des threads (recyclage)
I Coût des appels bloquant (interruptions)
25/27
Approches hybrides (ex. Solaris 2)
Systèmes
d’Exploitation
Tâche 1 Tâche 2 Tâche 3 Tâche 4
Didier Verna
E PITA Threads utilisateur
Généralités
Scheduling LWP
Opérations
noyau
Scheduler activation
I « upcall » vers l’ordonnanceur logiciel (userland) quand
un thread se (dé)bloque
I Rupture avec le modèle en couches
26/27
Transition vers le multithreading
Des problèmes nouveaux
Systèmes
d’Exploitation Variables globales (programmes ou système)
Didier Verna I Les interdire
E PITA
I Fournir des valeurs locales par thread (ex. errno)
Généralités
Signaux : qui les récupère ?
Scheduling
Opérations
Réentrance des fonctions (bibliothèques systèmes)
Communication
I mettre des drapeaux d’exclusion mutuelle (attention au
Multithreading
parallélisme),
I réécrire les bibliothèques.
27/27