Académique Documents
Professionnel Documents
Culture Documents
Capter 2 Process
Pr. Meryeme Ayache 2
Management
Processus
(Introduction général)
o Définition
o Multiprogrammation
o Hiérarchie de processus
o Linux/Unix: Commandes
Capter 2 Process
Pr. Meryeme Ayache 5
Management
Positionnement de l’OS
Processus 1 Processus 2
VM 1 VM 2
Kernel
Architecture
Hardware
Identificateur du processus
État du processus
Compteur d’instruction
Contexte pour reprise ( registres …)
Pointeur sur file d’attente et
priorité ( ordonnancement )
Informations mémoire
Information de comptabilisation et
sur les E/S, périphériques alloués,
fichiers ouverts…
Capter 2 Process
Pr. Meryeme Ayache 9
Management
Notion de processus (suite)
Capter 2 Process
Pr. Meryeme Ayache 10
Management
Contenu du chapitre 2
2. Multithreading et synchronisation
Capter 2 Process
Pr. Meryeme Ayache 11
Management
Contenu du chapitre 2
2. Multithreading et synchronisation
o Introduction : la notion de thread
o Problème de l’exclusion mutuelle
o Un mécanisme de synchro universel : le sémaphore
Capter 2 Process
Pr. Meryeme Ayache 12
Management
1. Partage du temps et
ordonnancement
Capter 2 Process
Pr. Meryeme Ayache 13
Management
Contenu du chapitre 2
2. Multithreading et synchronisation
Capter 2 Process
Pr. Meryeme Ayache 14
Management
Résumé des épisodes précédents:
noyau vs userland
Kernel
Le processus vu comme une «machine virtuelle»
• un processeur pour moi tout seul: «CPU virtuel»
• une mémoire pour moi tout seul: «mémoire virtuelle»
Capter 2 Process
Pr. Meryeme Ayache 15
Management
Définitions: Multitasking vs
Multiprocessing
Multitraitement, en VO Multiprocessing, multi-core computing
Utilisation simultanée de plusieurs CPU dans un même système
VS
Multiprogrammation = multitâche
ou en VO multiprogramming=multitasking
Faculté d’exécuter plusieurs programmes «à la fois»
VCPU1 Application A
t
VCPU2 Application B t
VCPU3 Application C t
VS
Loi empirique
L’exécution d’un programme alterne entre des phases de calcul (en VO
CPU burst) et des phases d’entrées-sorties (I/O burst)
B B
VCPU2 B waiting waiting
idle B idle B idle
I/O
VS
CPU A B A B A
I/O B A B A B
Capter 2 Process
Pr. Meryeme Ayache 19
Management
La multiprogrammation:
remarques
Vous avez dit «des phases d’entrées-sorties» ?
• latence d’accèsau matériel: disque, réseau...
• lenteur de l’utilisateur d’un programme interactif
• Synchronisation avec d’autres programmes
Capter 2 Process
Pr. Meryeme Ayache 21
Management
Context switch: remarques
• Dispatcher = implémentation du context switch
• exécuté très souvent ► doit être bref (dispatch latency)
• Scheduler = choix du processus à qui rendre la main
• possible que P2 = P1, par exemple gettimeofday()...
• possible que P2 ƒ= P1, par ex. read()► appel bloquant
2. Multithreading et synchronisation
Capter 2 Process
Pr. Meryeme Ayache 23
Management
Quel processus exécuter après un
context switch?
CPU A1 A3 A5
t
I/O A2 A4
CPU B1 B3 B5 B7
t
I/O B2 B4 B6
CPU C1 C3 C5 C7 C9
t
I/O C2 C4 C6 C8 C10
Question: étant donnés ces trois processus et un seul CPU, comment les
organiser dans le temps «au mieux» ?
Capter 2 Process
Pr. Meryeme Ayache 24
Management
Ordonnancement naïf
Capter 2 Process
Pr. Meryeme Ayache 25
Management
Ordonnancement naïf
Première idée: exécuter A, B et C à tour de rôle
CPU A1 B1 C1 A3 B3 C3
t
I/O A2 B2 C2 A4 B4 C4
CPU C1 A1 C3 B1 C5 A3 C7 B3
t
I/O C2 A2 B2 C6 A4
I/O C4 C8
t1 t2
à l’instant t1:
• C est en train de s’exécuter
► A et B attendent de pouvoir s’exécuter
à l’instant t2:
• A est en train de s’exécuter
• C attend que son opération d’entrée-sortie se termine
► B attend de pouvoir s’exécuter
Capter 2 Process
Pr. Meryeme Ayache 27
Management
Diagramme état-transitions (1)
New Terminated
Ready Running
Blocked
Transitions:
0 le noyau a fini de créer le processus
1 Le dispatcher charge le processus sur le CPU
2 Une IRQ/ un syscall interrompt l’exécution du programme
3 le programme fait un syscall bloquant
• par ex: entrée-sortie read(), délai passif sleep(), etc...
4 l’évènement attendu se produit
• par ex: donnée disponible, délai écoulé, etc...
5 le programme se termine (volontairement ou non)
Capter 2 Process
Pr. Meryeme Ayache 29
Management
Problème d’ordonnancement:
formulation
Ordonnancement CPU, ou en VO process scheduling
• étant donné K processus ready= prêts à s’exécuter,
• et connaissant «leurs caractéristiques»
• étant donné N “ 1 processeurs disponibles, décider
quel processus exécuter sur chaque processeur
preemption
request disk
completed request
Capter 2 Process
Pr. Meryeme Ayache 32
Management
Organisation des PCB en files:
remarques
Les PCB des processus prêts forment la Ready Queue
• aussi appelée Run Queue
2. Multithreading et synchronisation
Capter 2 Process
Pr. Meryeme Ayache 34
Management
Ordonnancement = planification
de tâches
Ordonnancement a priori: projets, usine, etc
Entrées:ensemble de «tâches» avec durées et dépendances (
+ ensemble de «ressources» disponibles )
Sorties: une date de début pour chaque
tâche ( + affectation des
ressources )
Capter 2 Process
Pr. Meryeme Ayache 35
Management
Ordonnancement a priori vs processus infinis
Vision omnisciente
CPU A1 A3 A5
t
I/O A2 A4
CPU B1 B3 B5 B7
t
I/O B2 B4 B6
CPU C1 C3 C5 C7 C9
t
I/O C2 C4 C6 C8 C10
VS
Vision de l’ordonnanceur à t=0
La Ready Queue contient A, B et C. Le CPU est libre.
Remarques:
• inspiré par les files d’attente FIFO de la vie réelle
• ordonnancement non préemptif
• convoy effect, en VF effet de convoi, effet d’accumulation
• «petites» tâches risquent d’être désavantagées, par ex. C
• plutôt équitable ; aucun risque de famine
37
Le risque de famine, en VO
starvation
Définition: famine = privation
Situation dans laquelle une tâche, bien que prête, se retrouve à attendre
indéfiniment avant de pouvoir s’exécuter
Remarques:
• ordonnanceur non-préemptif + 1 tâche infinie = famine
► hypothèse: pas de tâches de durée infinie
• ordonnanceur préemptif + malchance = famine
• malchance, ou malveillance (par ex. déni de service)
Un processus est qualifié de «I/O-bound» (VF «limité par les E-S») si sa performance
dépend beaucoup de la vitesse des E-S
► activité = surtout des I/O-bursts
Loi empirique
En pratique, tout processus peut être considéré soit comme étant plutôt
compute-bound soit comme étant plutôt I/O-bound.
Remarques:
• processus A dans notre exemple: pas réaliste
• certains processus changent de comportent à certains moments
Pr. Meryeme Ayache 40
Beaucoup de bursts courts, peu de
bursts longs
41
Ordonnancement SJF: Shortest
Job First
Politique d’ordonnancement SJF: principe
choisir la tâche la plus courte dans la ready queue
CPU
C1 A1 C3 B1 C5 A3 C7 B3
I/O t
C2 A2 B2 C6 A4
I/O
C4 C8
Remarques
• avantageux pour les processus IO-bound...
• ...sans être réellement pénalisant pour les CPU-bound
• mais: risque de famine
Capter 2 Process
Pr. Meryeme Ayache 42
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: A1 , B1 , C1
Capter 2 Process
Pr. Meryeme Ayache 43
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: A1 , B1
Capter 2 Process
Pr. Meryeme Ayache 44
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: B1 , C3
Capter 2 Process
Pr. Meryeme Ayache 45
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: B1
Capter 2 Process
Pr. Meryeme Ayache 46
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: B1 , C5
►Préemptionde la tâche active (B 1) au profit de la tâche C5
Pr. Meryeme Ayache 47
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courtede la ready queue
Ready Queue: A3 , B1
Capter 2 Process
Pr. Meryeme Ayache 48
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courtede la ready queue
Ready Queue: A3
Capter 2 Process
Pr. Meryeme Ayache 49
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: A3 , B3 , C7
►Préemption de la tâche active (A 3) au profit de la tâche C7
Capter 2 Process
Pr. Meryeme Ayache 50
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: A3 , B3
Capter 2 Process
Pr. Meryeme Ayache 51
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: A3 , B3 , C9
►C est prêt mais A garde le CPU
Capter 2 Process
Pr. Meryeme Ayache 52
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
Ready Queue: B3 , C9
Capter 2 Process
Pr. Meryeme Ayache 53
Management
Ordo. SRTF: Shortest Remaining
Time First
Politique d’ordonnancement SRTF: principe
chaque fois qu’une nouvelle tâche arrive dans la ready queue, lancer la
tâche la plus courte de la ready queue
CPU A1 B1 C1 A1 B1 C3 B3 A3 C5 B3
t
I/O C2 C4
I/O A2
I/O B2 55
Ordonnancement Round Robin:
remarques
• Variante préemptive de FCFS
• nouvelles tâches prêtes toujours ajoutées en fin de file
• ready queue traitée comme une file d’attente FIFO
► famine impossible
Variantes:
• priorités fixes ►ordonnancement temps-réel
• priorités variables ►temps partagé (AKA best-effort)
• exemple: Multi-Level Feedback Queues Scheduling (MLFQ)
• on se donne des critères pour changer un processus de file
Exemple de MLFQ:
• priorité haute: RR q=5ms ►processus «interactifs»
• priorité moyenne: RR q=50ms ►processus I/O-bound
• priorité basse: SRTF ►CPU-bound en tâche de fond 57
Exemple (MLFQ)
Temps
Priorité Execution D Q = 6 ms
A 3 10
Q = 4 ms
B 5 6 C
C 2 2
D 1 4 A Q = 5 ms
E 4 8
A E Q = 5 ms
B E B Q = 5 ms
D C A E A B E B
0 4 6 11 16 21 26 29
Capter 2 Process
Pr. Meryeme Ayache 58
Management
Contenu du chapitre 3
2. Multithreading et synchronisation
Capter 2 Process
Pr. Meryeme Ayache 59
Management
Évaluation de politiques
d’ordonnancement
Méthodologies d’évaluation
• simulation déterministe: sur un scénario donné
• dérouler les algorithmes, à la main ou sur machine
• modélisation stochastique
• théorie des files d’attente, chaînes de markov...
• instrumentation de système réel: benchmarking
• interférences de performances, choix de la workload
Capter 2 Process
Pr. Meryeme Ayache 61
Management
Exemple de mesure des critères
d’ordonnancement
Capter 2 Process
Pr. Meryeme Ayache 62
Management
Exemple
tâche arrivée durée
T1 0 8
Soit le scénario suivant:
T2 1 4
T3 2 9
T4 3 5
FCFS T1 T2 T3 T4
SJF T1 T2 T4 T3
S R TF T1 T2 T4 T1 T3
R R q=3 T1 T2 T3 T4 T1 T2 T3 T4 T1 T3
0 1 2 3 4 5 10 15 20 25 time
Concepts importants:
• Dispatcher, Scheduler, Process Control Block, Préemption, CPU-burst
/ IO-burst, États d’un processus, Ready Queue...
Capter 2 Process
Pr. Meryeme Ayache 65
Management
Exercice 1
Capter 2 Process
Pr. Meryeme Ayache 68
Management
Correction 2
• Question 4 : Donnez les temps d'attente de chaque processus pour chacun des 3
Capter 2 Process algorithmes précédents. Pr. Meryeme Ayache 70
Management
Correction 2
Soient les processus suivants, dont les données sont précisées par le
tableau suivant :
Processus Temps arrivé Temps d’exécution Priorité
P1 0 10 3
P2 5 6 3
P3 5 7 2
P4 8 4 1
P5 12 10 4
Question 1 : On applique l'algorithme de scheduling 1 : "premier arrivé,
premier servi". Dessiner le digramme de Gantt correspondant.
Réponse :
P1 P2 P3 P4 P5
0 10 16 23 27 37
Capter 2 Process
Pr. Meryeme Ayache 71
Management
Correction 2 (suite)
Capter 2 Process
Pr. Meryeme Ayache 73
Management
TD: Odonnancement
Capter 2 Process
Pr. Meryeme Ayache 74
Management