Systèmes d’Exploitation - ENSIN6U3Gestion de processus
Leonardo Brenner 1 Jean-Luc Massat 2
Aix-Marseille UniversitéFaculté des Sciences
Table de matière
1 Définition d’un processusReprésentation d’un processusÉtat d’un processus
2 Création de processus lourdCas de UnixCas de Windows
3 Création de processus léger
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 2 / 25
Définition d’un processus
Table de matière
1 Définition d’un processusReprésentation d’un processusÉtat d’un processus
2 Création de processus lourdCas de UnixCas de Windows
3 Création de processus léger
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 3 / 25
Définition d’un processus
Processus : définition, identification, filiation
Définition : processus
Un processus est un programme en cours d’exécution.
Composition d’un processus
Un processus comporte :
un espace d’adressage ;le bloc du contrôle du processus, décomposé en :
entrée dans la table des processus ;une zone u, allouée dynamiquement à la création du processus.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 4 / 25
Définition d’un processus Représentation d’un processus
Représentation d’un processus
Données sur un processus
Pour chaque processus le systèmes maintient les données suivantes :
un identifiant (PID),
des informations diverses (priorités, filiations, propriétaires, ...),
un état opérationnel,
un contexte d’exécution,
des statistiques (temps de CPU, # d’E/S, # de défauts de pages, ...).
Ces informations sont rangées dans un PCB (Process Control Block).
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 5 / 25
Définition d’un processus Représentation d’un processus
Identifiants des processus
Identification
A chaque processus est associé un identifiant :→֒ Cet identifiant est appelé PID (pour Process Identifier)
Le PID est attribué par le système au moment de l’exécution
Tous les processus ont un PID unique
Le premier processus : init possède le PID 1
Filiation
Tout processus est créé à partir d’un autre processus :→֒ Sous Unix, le premier processus init
Tous les processus sont créés à partir de init
Un processus A créé par un processus B est appelé fils de B et B est lepère de A
Le PPID d’un processus est le PID de son père
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 6 / 25
Définition d’un processus Représentation d’un processus
Propriétés et accès aux fichiers
La priorité
Utilisée lors de l’exécution du processus
Un processus sera exécuté avant (ou plus souvent) que les autresprocessus moins prioritaire
Généralement, la priorité évolue dans le temps
Accès aux fichiers
A chaque processus est attribué des identifiants pour les accès auxfichiers
En fonction des identifiants, le processus pourra ou non accéder àcertains fichiersPlusieurs identifiants :
GID : l’identifiant de groupeUID : l’identifiant de l’utilisateur
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 7 / 25
Définition d’un processus État d’un processus
État d’un processus
États opérationnels
Chaque processus est dans l’un des états opérationnels suivants :
en attente
1. initialisation2. exécution3. achèvement4. préemption5. attente6. signal
3
1
24
actif
prêt
connu
terminé
6
5
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 8 / 25
Définition d’un processus État d’un processus
La table des processus
Description
L’ensemble des processus sont gérés dans une table :→֒ Une entrée par processus
Données sur les processus : identifiant du processus, priorité, compteurordinal, pointeurs vers les segments mémoire, . . .
Représentation mémoire
������������������������������
������������������������������
Compteur ordinal
CodeDonnées
Table des processus
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 9 / 25
Définition d’un processus État d’un processus
Rôle de PCB
Commutation de contexte
Le rôle du PCB dans la commutation de contexte entre deux processus :
PCB0 PCB1
sauvegarde
restauration
restauration
sauvegarde
P0 P1
actif
prêt
actif pr
êtac
tifpr
êt
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 10 / 25
Définition d’un processus État d’un processus
Contexte d’un processus
Quelques données nécessaires à la commutation de contexte
mot d’état, contexte de l’unité centrale :accumulateur,registre d’instruction et compteur d’instruction,registres d’état du processeur,registres d’états du processus.
état du processus,
variables globales statiques dynamiques,
entrée dans la table du processus,
zone u,
piles utilisateur et système,
zones de codes et de données.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 11 / 25
Définition d’un processus État d’un processus
Files et états des processus
Files des processus
Le système maintient un ensemble de files dans lesquelles il range les PCB.On trouve par exemple un file
des processus prêts,
des processus en attente (d’une ressource, de la fin d’une E/S, ...),
etc.
file des processus prêts
file des processus enattente de fin d'E/S
file des processus morts
allocationde la CPU
demanded'E/S
fin del'E/S
réquisition
appel de exit()
processusactifs
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 12 / 25
Définition d’un processus État d’un processus
Gestion des processus
Création de processus
chaque processus peut créer des processus (ses fils)
il est possible de figer, tuer des processus
Communication entre processus
Le système gère la communication entre les processus existants (signal,messages, ...)
Synchronisation de processus
La gestion de synchronisation entre les processus gère la dépendance entreles processus.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 13 / 25
Définition d’un processus État d’un processus
Gestion des processus
Types de processus
Le S.E. gère deux types de processus :
Lourd : crées par fork, nouveau PID, nouvelle zone mémoire,
Léger : crées par « threads », même PID, même zone mémoire (mémoirepartagée)
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 14 / 25
Création de processus lourd
Table de matière
1 Définition d’un processusReprésentation d’un processusÉtat d’un processus
2 Création de processus lourdCas de UnixCas de Windows
3 Création de processus léger
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 15 / 25
Création de processus lourd Cas de Unix
Création d’un processus : cas de Unix (1/2)
Sous Unix
Appel système fork()
Le processus appelant (le père) est dupliqué (même image mémoire)
La copie est remplacé par le fils (via exec)
Illustration
������
������
���������
���������
Processus 1
Processus 2
Appels systèmefork( ) exec( ) exit( )
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 16 / 25
Création de processus lourd Cas de Unix
Création d’un processus : cas de Unix (2/2)
Création d’un processus avec fork()
����������������������������������������
����������������������������������������
Table des processus
Données Donnéespère fils
Code
pid = fork(); Compteur ordinal
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 17 / 25
Création de processus lourd Cas de Windows
Création d’un processus : cas de Windows
Sous Windows
Appel à CreateProcess() (Win32)
Le processus fils est créé et remplacé directement par le processus
Illustration
������
������
���������
���������
Processus 1
Processus 2
CreateProcess( ) ExitProcess( ) Appels système
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 18 / 25
Création de processus léger
Table de matière
1 Définition d’un processusReprésentation d’un processusÉtat d’un processus
2 Création de processus lourdCas de UnixCas de Windows
3 Création de processus léger
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 19 / 25
Création de processus léger
Les threads : processus de poids léger
Threads
Un thread (fil) est un programme en cours d’exécution qui partage son codeet ses données .
DATA
Thread 1
Thread 3
Thread 2
PILE
PILE
PILE
M E P
M E P
M E P
Exécution
Exécution
Exécution
CODE
Fichiersouverts
et Ressources
Processus
Chaque thread a une pile d’exécution autonome.
Un processus est composé de threads
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 20 / 25
Création de processus léger
Les threads : processus de poids léger
Utilité des threads
Étude des dépendances et découpage :
C1 C2 C3 C5C4
C1 C2 C5
C3 C4
Thread 1
Thread 2
C4 dépend de C3C2 dépend de C1
C5 dépend de C2 et C4
Avantages :
récupération des temps d’E/S,
exploitation des machines multi-processeurs,
coopération entre threads.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 21 / 25
Création de processus léger
Les threads : processus de poids léger
Utilité des threads : application serveurs
Organisation logicielle d’une application serveur :
Processus fils
Processus fils
Processus fils
Processus fils
principal
Processus
Application serveur
principal
Thread
Thread fils
Thread fils
Thread fils
Thread fils
Données globales
Processus serveur
La commutation et la communication entre threads est une opération plussimple.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 25
Création de processus léger
Les threads : processus de poids léger
Les processus monolithiques
Il existe un conflit entre :
entrées / sorties synchrones (bloquantes),
interface homme/machines (IHM).
Processus monolithique
Gestionnairede la file
des événementsrécupérer unévénement
Traiter
Boucle des événementsréseau
disque
GUI
Evénementsasynchrones
Solution d’attente active :
E/S asynchrones (non-bloquantes),
structure avec boucle d’événements.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 25
Création de processus léger
Les threads : processus de poids léger
Les processus multi-threads
Il existe une autre solution basée sur :
le découpage en plusieurs threads,
une utilisation des E/S synchrones,
un module de communication.
Processus multi−threads
réseau
disque
GUI
Evénementsasynchrones
Thread "Gestion réseau"
Thread "Gestion disque"
Thread "Gestion de l’IHM"
Thread "Gestion de la mémoire"
et
Communication
synchronisation
Avantages :
plus grande simplicité du code,
indépendance entre les modules.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 24 / 25
Création de processus léger
Les threads : processus de poids léger
Implantation des « threads »
Implantation au niveau du S.E. :
+ le S.E. connaît et ordonnance les threads,
+ la répartition de la CPU est bonne,
- les structures du S.E. sont alourdies.
Implantation au niveau utilisateur (java) :
+ une librairie se charge de la gestion des threads (création, destruction,etc.),
+ la commutation entre threads d’un même processus est plus rapide,
- la répartition de la CPU n’est pas équitable,
- la mise « en attente »d’un processus entraîne le blocage de tous sesthreads.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 25 / 25