Académique Documents
Professionnel Documents
Culture Documents
Les Processus
Introduc0on
• Défini&on: Un processus est une instance d’un programme
qui s’exécute.
1
2. Les Processus
Introduc0on
• Il a un état d’exécu.on :
• compteur de programme, la pointeur sur la pile…
• Il dispose de zones et de ressources allouées temporairement :
• données, état des registres CPU, occupa.on mémoire…
• Il peut avoir besoin de ressources matérielles spécifiques :
• e.g. périphériques d’entrée/sor.es…
2
2. Les Processus
Introduction
• Le système d’exploita1on gère les
ressources matérielles pour le
comptes des applica1ons.
• Une applica*on : un programme qui
est stockés sur disque ou su, dans le
cloud… C’est une en1té sta1que.
• Un processus : l’état d’un programme
en cours d’exécu1on, chargé en
mémoire… C’est une en1té ac1ve.
3
2. Les Processus
Introduc0on
• Un programme peut être lancé plusieurs fois => plusieurs
processus sont créés.
4
2. Les Processus
À quoi ressemble un processus?
• Sta$que (au lancement du processus) : Vmax
• Code (text, read-only)
• Données sta$ques (données & variables).
• Le tas (heap) :
• Données allouées dynamiquement pendant
l’exécu$on.
• La pile (stack) :
• Augmente et diminue selon une stratégie LIFO
• Les appels de fonc$ons et variables locales aux
fonc$ons exigent une structure de donnée
dynamique V0
• Adresse de retour de fonc$on. 5
2. Les Processus
À quoi ressemble un processus?
• Espace d’adressage : la représenta1on d’un Vmax
processus en mémoire.
Adresses virtuelles
• Les adresses virtuelles sont à dis1nguer
des adresses physiques
Adresses virtuelles
• L’espace physique peut ne pas être
suffisant pour tous les états des processus
en cours.
V0
DRAM 7
2. Les Processus
Etats d’un processus
• Le système d’exploita1on doit savoir à tout moment qui fait
quoi et où en est chacun des processus :
• Program counter
• Registres du CPU
• Pointeur sur la pile
• …
• Pour sauvegarder toutes ces informa1ons :
=> Process Control Block
8
2. Les processus
Process Control Block (PCB)
• Le système d’exploita1on main1ent un
PCB par processus.
• C’est une structure de données.
• Créée et ini1alisée au lancement du
processus.
• Mise à jour tout au long de l’exécu1on
d’un processus
9
2. Les processus
U-lisa-on des PCB
• A chaque un
swap entre
processus est
effectué =>
Context switch
CPU regs =
10
2. Les processus
Context Switch
• Context switch :
• Changer l’affecta.on du CPU d’un processus à un autre
• Modifier les infos du CPU : du contexte d’un processus à un autre
contexte.
• Opéra.on très couteuse !
• Coûts pour charger et pour sauvegarder les instruc.ons.
• Perte des avantages des données en cache.
11
2. Les processus
Etats
Un processus peut être en exécu/on (running) ou libre (idle)
12
2. Les processus
Etats
13
2. Les processus
Etats
Au cours de sa vie, un processus passe par plusieurs états :
• Transitoire (new) : à la créa5on.
• Prêt (ready) : prêt à passer en mode exécu5on.
• Ac5f (running) : en cours d’exécu5on (mode noyau ou u5lisateur).
• Endormi (wai5ng) : en a>ente d’un évènement (a>ente d’entrée/sor5e, d’un
signal, de la terminaison d’un processus).
• Terminé (terminated).
14
2. Les processus
Créa/on
Deux mécanismes pour la créa1on de
processus :
• Fork =
• PCB du parent est copié dans le nouveau PCB du fils.
• Processus fils con1nue l’exécu1on à la suite de
l’instruc1on fork.
• Exec =
• Charge un nouveau programme
• PCB du fils pointe vers l’instruc1on du nouveau
program.
15
2. Les processus
Création
• Sous Unix, le processus qui est considéré comme parent à tous les
autres processus :
init
16
2. Les processus
Ordonnanceur
• L’ordonnanceur (en anglais scheduler)
est la par0e du système d’exploita0on
qui est chargée de l’arbitrage du
processeur.
=> Il détermine lequel des processus
prêts sera affecté au CPU et la durée
d’affecta0on.
17
2. Les processus
Ordonnanceur
• Pour que cela fonc-onne, le système
d’exploita-on :
• Préempte : interrompt un processus en
cours d’exécu-on et sauvegarde son
contexte.
• Ordonnance : choisit le prochain
processus qui sera affecté au CPU.
Ca doit être efficace et op-male
18
2. Les processus
Ordonnanceur
• A quelle fréquence, l’ordonnanceur doit être exécuté ?
19
2. Les processus
Ordonnanceur
• A quelle fréquence, l’ordonnanceur doit être exécuté ?
20
2. Les processus
Ordonnanceur : impact des E/S
21
2. Les processus
Interac0on entre processus
• Mécanisme IPC : inter-processus communica.on
• Transfert de données/info entre espaces d’adressage.
• Main:ent la protec:on et l’isola:on de 2 processus.
• Flexibilité et performance.
22
2. Les processus
Interac0on entre processus
• IPC : Par message IPC
• Le SE fournit des canaux de communica8on : buffer partagé.
• Processus écrivent et lisent à par8r du buffer partagé.
+ Géré par le SE
- Surcoût
23
3. Les threads
Introduc1on
Introduction Vmax
59
24
3. Les threads
Introduc1on
25
3. Les threads
Introduc1on
• Un thread se comporte comme un vendeur dans une bou2que :
• C’est une en2té ac2ve : travail sur des commandes clients.
• Il travaille simultanément avec d’autres : plusieurs vendeurs travaillent sur des
commandes.
• Nécessite un certaine coordina2on : partage des ou2ls de ges2on, des
caisses… avec d’autres vendeurs.
26
3. Les threads
Processus vs. thread
27
3. Les threads
Défini1on
• Un thread (ou fil d’exécu+on) est l’exécu0on d’une procédure/fonc0on en
parallèle de la fonc0on principale d’un processus
• Un processus comporte un ou plusieurs threads.
• Le PCB du processus con0ent pour chaque thread :
• un état
• un contexte processeur
• En revanche, toutes les autres ressources (mémoire, fichiers, etc…)
sont partagées par tous les threads du processus :
→ c’est au programmeur de les arbitrer
28
3. Les threads
Processus léger
• Les threads sont souvent appelés « processus légers ».
• Ils bénéficient des mêmes avantages en terme de parallélisme, que les
processus (l’ordonnanceur considère chaque thread individuellement).
• Avantages par rapport aux processus :
• la commutaEon de contexte est plus rapide (même PCB),
• la communicaEon entre eux est plus rapide (pas besoin d’appel système).
29
3. Les threads
Pourquoi cela est-il intéressant et u6le ?
30
3. Les threads
Pourquoi cela est-il intéressant et u6le ?
• Mul$threading => L’espace d’adressage
partagé (donc alloué une seul fois)
• Op$misa$on de la ges$on de la mémoire.
• La communica$on des données entres
threads est plus simple à gérer et plus
efficiente.
31
3. Les threads
Est-ce u0le quand on a un seul CPU ?
• Ou de façon générale, quand : # Threads > # CPU
Cela est valable autant pour les threads que les processus.
Pour les processus : l’une des étapes les plus couteuses dans la
commutaNon de contexte est :
• La créaNon de du mapping entre l’adressage virtuel et
l’adressage physique.
32
3. Les threads
Pour se fixer les idées…
Lesquelles de ces affirma.ons s’appliquent aux processus, aux threads
ou au deux ?
• Peuvent se partager le même espace d’adressage.
• Prend plus de temps pour effectuer une commuta.on de contextes.
• A un contexte d’exécu.on.
• habituellement permet de mieux .rer profit du cache.
• U.lise des mécanisme de communica.ons.
33
3. Les threads
En pra/que…
On a besoin de :
• Structure de données pour décrire chaque thread : iden4fica4on, ressources
u4lisée…
• Mécanismes pour créer et pour gérer des threads.
• Mécanismes pour assurer une coordina0on entre les threads qui s’exécutent de
façon concurrente, dans le même espace d’adressage.
34
3. Les threads
Ges-on de la concurrence d’accès
35
3. Les threads
Concurrence sans problème
36
3. Les threads
Concurrence probléma6que
37
3. Les threads
Quelques défini4ons
• Une ressource est dite ressource critique lorsque des accès
concurrents à cette ressources peuvent résulter dans un état
incohérent.
• On parle aussi de situation de compétition (race condition) pour
décrire une situation dont l’issue dépend de l’ordre dans lequel les
opérations sont effectuées.
• Une section critique est une section de programme manipulant une
ressource critique.
38
3. Les threads
Ges-on de la concurrence d’accès
• Nécessite de la coordina/on.
• L’exclusion mutuelle : accès exclusif à un seul
thread à chaque instant.
40
3. Les threads
L’exclusion mutuelle
• Mise en œuvre abstraite :
41
3. Les threads
L’exclusion mutuelle
Critères :
• Exclusion : deux tâches ne doivent pas se trouver en même temps en SC.
• Progression : une tâche doit pouvoir entrer en SC si aucune autre ne s’y trouve.
• Équité : une tâche ne devrait pas a:endre indéfiniment pour entrer SC.
• L’exclusion mutuelle doit fonc@onner dans un contexte mul7-cœurs.
42
3. Les threads
L’exclusion mutuelle
• Une (mauvaise) solu/on possible : l’a4ente ac/ve
• U/liser un booléen partagé comme « verrou ».
46
3. Les threads
L’exclusion mutuelle
A u$liser avec discernement !
• Certaines opéra$ons sur la ressource cri$ques ne nécessitent pas forcément
d’exclusion mutuelle.
→ exemple : lecture de la valeur du compte (si on accepte que la valeur lue
devienne rapidement invalide…)
• Les sec$ons cri$ques sont un mal nécessaire:
• un mal, parce qu’elles empêches le parallélisme qu’on a eu tant de mal à meEre en
place… elles réduisent donc les performances.
• nécessaire, parce qu’elles garan$ssent l’intégrité des ressources cri$ques
Conséquence :
• Les éviter lorsqu’on le peut (e.g. en concevant des structures de données
toujours cohérentes).
47
3. Les threads
L’exclusion mutuelle
• Réduire au strict minimum l’u+lisa+on des mécanisme d’exclusion
mutuelle :
48
3. Les threads
L’exclusion mutuelle
Inter-blocage (deadlock) :
Situa0on où plusieurs tâches sont bloquées car chacune a;end un
événement que doit produite une autre.
Un exemple classique se produit lorsque deux tâche a;endent chacune
un « jeton » détenu par l’autre :
49
3. Les threads
Quelques problèmes typiques de synchronisa9on
Producteurs/consommateurs
• Un ensemble de processus, divisé en deux catégories, partage une zone
mémoire.
• Les premiers (producteurs) remplissent la mémoire partagée, avec des
éléments.
→ la mémoire ne peut contenir qu’un nombre d’éléments limité et
connu à l’avance
• Les seconds (consommateurs) u@lisent ces éléments et les re@rent de la
mémoire.
50
3. Les threads
Quelques problèmes typiques de synchronisa9on
Producteurs/consommateurs
52
3. Les threads
Quelques problèmes typiques de synchronisa9on
Producteurs/consommateurs : Principe de la solu3on
53
4. Ordonnancement des processus
Introduction
Rappel
Rôle de l’ordonnanceur : choisir, parmi tous les processus éligibles,
lequel va devenir élu → poli<que d’ordonnancement.
54
4. Ordonnancement des processus
FIFO sans préemp4on
• Premier arrivé, premier servi
• Ordonnancement coopéra'f (pas de préemp4on) : les processus
rendent la main « de leur plein gré »,
• lorsqu’ils se terminent,
• lorsqu’ils se bloquent,
• lorsqu’ils font l’appel système yield.
56
4. Ordonnancement des processus
FIFO sans préemp4on
Avantages
• simple
• surcoût faible
• équitable
57
4. Ordonnancement des processus
FIFO sans préemp4on
U"lisa"ons :
• certains systèmes batch
• faible surcoût, meilleure u"lisa"on du/des processeur(s)
• pas de contrainte de temps de réponse
• Mac OS < X (mul"tâche coopéra"f)
• faible surcoût, intéressant pour une machine lente
• Processus « temps réel » sous Linux
• processus de ges"on des E/S, fréquemment bloqués mais nécessitant une
réac"on très rapide aux interrup"ons matérielles
58
4. Ordonnancement des processus
Tourniquet
• FIFO avec préemption
• Chaque processus reçoit un quantum de temps
• Une fois le quantum épuisé, le processus passe
la main au retourne dans la file d’attente
• En anglais : round robin (ruban rond)
59
4. Ordonnancement des processus
Tourniquet
• En diminuant la durée du quantum :
• le temps de réponse diminue, mais…
• le surcoût augmente
• Le quantum idéal dépend de la durée moyenne
d’une interac;on et du nombre de processus…
60
4. Ordonnancement des processus
Tourniquet : avantages et inconvénients
+ temps de réponse borné, indépendamment des
processus (calculs ou E/S)
+ équitable
- très sensible au choix du quantum
- défavorise les processus orientés E/S (bloqués
avant la fin de leur quantum)
61
4. Ordonnancement des processus
Shortest Job Next
• On donne toujours la main à celui qui va me4re le moins de temps
avant de se bloquer / terminer
• suppose d’avoir une connaissance / es9ma9on de ce temps pour chaque
processus : hypothèse forte
• Avantages
• maximise le temps de réponse, le débit (nombre de processus terminés par
unité de temps)
• Inconvénients
• surcoût
• inéquitable, famine possible (processus calculatoires)
62
4. Ordonnancement des processus
Highest Response Ra6o Next
Variante de la stratégie précédente :
• on prend en compte le ra3o du temps que le processus a passé à
a7endre sur le temps dont il a besoin
• Supprime le problème de famine
• plus un processus a7end, plus il augmente ses chances d’obtenir la main
• Mais suppose toujours la connaissance du temps d’exécu3on
63