Vous êtes sur la page 1sur 22

Systèmes

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

Scheduling 2 Ordonnancement des processus


Opérations

Communication

Multithreading 3 Opérations sur les processus

4 Communication entre processus

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

Didier Verna Nouveau Terminé


E PITA

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

File d’attente d’une Requête d’E/S


E/S
entrée/sortie

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

Scheduling Vitesse liée à la complexité du système, la quantité de


Opérations registres, l’existence d’instructions matérielles etc.
Communication
Goulot d’étranglement pour les systèmes modernes
Multithreading
(Cf. les threads).

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

Multithreading Terminaison en cascade


Un processus ne peut pas survivre à son parent.
I Exception : orphelins (orphan). Cf. nohup.

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

Communication Threads noyau


Multithreading

noyau

Proc Proc Proc Proc

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

Vous aimerez peut-être aussi