Vous êtes sur la page 1sur 74

Operating System Engineering

Chapter 1 • Basics of Operating Systems

Chapter 2 • Processes Management

Chapter 3 • Memory Management

Chapter 4 • File Systems & Input/Output

Chapter 5 • Operating Systems Security

Capter 2 Process
Pr. Meryeme Ayache 2
Management
Processus

(Introduction général)

Pr. Meryeme Ayache | Chapitre 2_Proc_Intro 3


Processus (introduction générale)

o Les processus, à quoi ça sert?

o Définition

o Etats des processus

o Multiprogrammation

o Bloc de contrôle d’un processus

o Hiérarchie de processus

o Ressources d’un processus

o Fin d’un processus

o Linux/Unix: Commandes

Pr. Meryeme Ayache | Chapitre 2_Proc_Intro 4


Process Management

Capter 2 Process
Pr. Meryeme Ayache 5
Management
Positionnement de l’OS

Processus 1 Processus 2

VM 1 VM 2

Kernel

Architecture

Hardware

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»
Pr. Ayache | Chapitre 1: généralités 6
Notion de processus

 Exécution d’un programme

 Le programme est placé en mémoire centrale

 Le compteur ordinal (CO) contient l’adresse en mémoire de


l’instruction à exécuter

 L’instruction à exécuter est chargée dans le registre


d’instruction RI

 Le registre PSW contient l’état du système

 Bloc de contrôle du processus (CPB)

Structure de donnée descriptive du processus


Contient les informations du contexte du processus
Capter 2 Process
Pr. Meryeme Ayache 7
Management
Notion de processus (suite)

 Définition d’un processus:

• Un processus est un programme en cours d'exécution auquel est


associé un environnement processeur (CO, PSW, RSP, registres
généraux) et un environnement mémoire appelés contexte du
processus.
 États d’un processus

 État élu: Processus est dans le processeur

État bloqué: processus manque de données pour continuer son


exécution. État d’attente d’une ressource

 État prêt: Le processus a tout ce qu’il faut pour continuer sont


exécution. Il attend le passage dans le processeur.
Capter 2 Process
Pr. Meryeme Ayache 8
Management
Notion de processus (suite)
 Bloc de Contrôle du Processus (BCP)

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)

• Un processus classique est constitué d'un espace


d'adressage avec un seul fil d'exécution, ce fil
d'exécution étant représenté par une valeur de
compteur ordinal et une pile d'exécution

• Un processus léger est un espace d'adressage dans


lequel plusieurs fils d'exécution peuvent évoluer en
parallèle, Ces fils d'exécution sont chacun caractérisés
par une valeur de compteur ordinal propre et une pile
d'exécution privée.

Capter 2 Process
Pr. Meryeme Ayache 10
Management
Contenu du chapitre 2

1. Partage du temps et ordonnancement


o Introduction: rappels sur la notion de processus
o Multitâche par commutation de contextes d’exécution
o Ordonnancement: formulation du problème
o Ordonnancement: les stratégies classiques
o Évaluation de politiques d’ordonnancement

2. Multithreading et synchronisation

Capter 2 Process
Pr. Meryeme Ayache 11
Management
Contenu du chapitre 2

1. Partage du temps et ordonnancement

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

1. Partage du temps et ordonnancement


o Introduction: rappels sur la notion de processus
o Multitâche par commutation de contextes d’exécution
o Ordonnancement: formulation du problème
o Ordonnancement: les stratégies classiques
o Évaluation de politiques d’ordonnancement

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»

►en général: nombre de CPU << nombre de processus


Capter 2 Process
Pr. Meryeme Ayache 16
Management
Pseudo-parallélisme et
entrelacement
Abstraction = 1 VCPU /application

VCPU1 Application A
t
VCPU2 Application B t
VCPU3 Application C t
VS

Implementation = CPU time-sharing


CPU A B C A B C A B C A B C A B C
t

Remarque: L’entrelacement doit être assez fin pour ne pas se voir


Capter 2 Process
Pr. Meryeme Ayache 17
Management
Le «Degré de
multiprogrammation»

Définition: degré de multiprogrammation


nombre de processus actuellement chargés en mémoire

source: Tanenbaum. Modern Operating Systems (4th ed, 2014). page 87


Capter 2 Process
Pr. Meryeme Ayache 18
Management
Pourquoi la multiprogrammation ?

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)

VCPU1 A waiting A waiting A


t
I/O idle A idle A idle

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

Mauvaise solution: attente active(polling)


• difficile pour le programmeur d’application
• temps processeur gâché à attendre

Bonne solution: attente passive


• plus facile pour le développeur
• meilleur taux d’utilisation du CPU
• masquage (= recouvrement) des latences
► besoin d’un mécanisme pour se partager le processeur
Capter 2 Process
Pr. Meryeme Ayache 20/39
Management
Commutation de contexte, ou en
VOcontext switch

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

Structures de données du noyau:


• Process Control Block = PCB
• représente un processus et son état d’exécution (données...)
• contient PID, fichier exécutable, permissions, etc (priorité...)
• contient un TCB
• Thread Control Block = TCB
• représente un VCPU, aussi appelé contexte d’exécution
• contient une copie du contenu du CPU: registres, PC, SR...
Capter 2 Process
Pr. Meryeme Ayache 22
Management
Contenu du chapitre 3

1. Partage du temps et ordonnancement


o Introduction: rappels sur la notion de processus
o Multitâche par commutation de contextes d’exécution
o Ordonnancement: formulation du problème
o Ordonnancement: les stratégies classiques
o Évaluation de politiques d’ordonnancement

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

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
►plutôt bien pour A, moins bien pour B, et médiocre pour C

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

►plutôt bien pour A, moins bien pour B, et médiocre pour C

Deuxième idée: exécuter C aussi souvent que possible


CPU C1 A1 C3 B1 C5 A3 C7 B3
t
I/O C2 A2 B2 C6 A4
I/O C4 C8

►beaucoup mieux pour C, et presque aussi bien pour A et B


Capter 2 Process
Pr. Meryeme Ayache 26
Management
Tous les processus ne sont pas en
permanence candidats à l’exécution

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

État du processus(mémorisé dans son Process Control Block)


• New: en cours de création par le noyau
• Running = actif: actuellement exécuté par le processeur
• Ready = activable: attend qu’on lui donne la main
• Blocked = endormi = suspendu: en attente d’un évènement
• Terminated = fini: en cours de nettoyage par le noyau
Capter 2 Process
Pr. Meryeme Ayache 28
Management
Diagramme état-transitions (2)

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

Remarque: à quels instants cette question se pose-t-elle ?


• lors d’une transition running → blocked (3), par ex. sleep()
• lors de la terminaison (5)d’un processus
• lors d’une transition blocked → ready (4)
• lors d’une transition running → ready (2)
• par ex. sur réception d’une interruption du system timer
• lors de la création (0)d’un nouveau processus
Capter 2 Process
Pr. Meryeme Ayache 30
Management
Ordonnancement préemptif vs
coopératif
Ordonnanceur non-préemptif: appelé seulement sur (3) et (5)
• les applications rendent explicitement la main au noyau
• appels système bloquants
• + un appel système yield() pour lâcher le CPU
• plus efficace mais suppose de faire confiance aux
applications

Ordonnanceur préemptif: sur (3), (5) et aussi (0), (2) et (4)


• permet au noyau de garder le contrôlede la machine
• interruptions de timer régulières pour assurer la préemption
• coûteux mais tous les OS grand public font ça
Capter 2 Process
Pr. Meryeme Ayache 31
Management
Organisation des PCB en files
d’attente
process dispatch
creation Ready queue
CPU

preemption
request disk
completed request

Disk queue network


request
request
completed
Net
queue
delay sleep()
expired
Sleeping
queue

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

Rôle du scheduler: choisir un PCB parmi la Ready Queue

Processus bloqués ►transférés dans une autre file d’attente


• Une Device Queue par périphérique d’entrées-sorties
• une file d’attente pour les processus endormis
• ... une file pour chaque autre raison d’être Blocked
Capter 2 Process
Pr. Meryeme Ayache 33
Management
Contenu du chapitre 3

1. Partage du temps et ordonnancement


o Introduction: rappels sur la notion de processus
o Multitâche par commutation de contextes d’exécution
o Ordonnancement: formulation du problème
o Ordonnancement: les stratégies classiques
o Évaluation de politiques d’ordonnancement

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.

►comment décider qui exécuter ? rien pour les départager


23/39
Ordonnancement FCFS: First
Come First Served
aussi appelé FIFO (First In First Out)
Politique d’ordonnancement FCFS: principe
choisir la tâchequi est arrivée le plus tôt dans la ready queue

Dans notre exemple:


CPU A1 B1 C1 A3 B3 C3
t
I/O A2 B2 C2 A4 B4 C4

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)

Risque de famine vs absence garantie de famine


en VO: non-starvation, bounded waiting
Capter 2 Process
Pr. Meryeme Ayache 38
Management
Découpage de l’exécution en
«bursts» (en VF: rafales)
Hypothèse de travail:
• pour chaque processus dans la ready queue, le noyau a un moyen
pour connaître la durée de sa prochaine CPU-burst

Remarque: en pratique, les «tâches» orchestrées par un scheduler


d’OS sont ces CPU-bursts, et non pas les processus

Vision de l’ordonnanceur à t=0


La Ready Queue contient A1 , B1 et C1 .

►à quelle tâche doit-on donner le processeur en premier ?


Capter 2 Process
Pr. Meryeme Ayache 39
Management
Différents goulots d’étranglement
Un processus est qualifié de «compute-bound» (VF «limité par le calcul») si sa
performance dépend beaucoup de la vitesse du CPU
► activité = surtout des CPU-bursts

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

source: Silberschatz Operating Systems Concepts Essentials (2011). p 177

41
Ordonnancement SJF: Shortest
Job First
Politique d’ordonnancement SJF: principe
choisir la tâche la plus courte dans la ready queue

Dans notre exemple:

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

►variante préemptive de SJF


Dans notre exemple:
t=0
CPU t
I/O
I/O

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

►variante préemptive de SJF


Dans notre exemple:
t=1
CPU C1 t
I/O
I/O

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

►variante préemptive de SJF


Dans notre exemple:
t=4
CPU C1 A1
t
I/O C2
I/O

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

► variante préemptive de SJF


Dans notre exemple:
t=5
CPU C1 A1 C3
t
I/O C2 A2
I/O

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

► variante préemptive de SJF


Dans notre exemple:
t=6
CPU C1 A1 C3 B1
t
I/O C2 A2
I/O C4

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

► variante préemptive de SJF


Dans notre exemple:
t=7
CPU C1 A1 C3 B1 C5
t
I/O C2 A2
I/O C4

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

►variante préemptive de SJF


Dans notre exemple:
t=9
CPU C1 A1 C3 B1 C5 B1
t
I/O C2 A2 C6
I/O C4

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

►variante préemptive de SJF


Dans notre exemple:
t=10
CPU C1 A1 C3 B1 C5 B1 A3
t
I/O C2 A2 C6
I/O C4 B2

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

►variante préemptive de SJF


Dans notre exemple:
t=11
CPU C1 A1 C3 B1 C5 B1 A3 C7
t
I/O C2 A2 C6
I/O C4 B2

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

►variante préemptive de SJF


Dans notre exemple:
t=12
CPU C1 A1 C3 B1 C5 B1 A3 C7 A3
t
I/O C2 A2 C6 C8
I/O C4 B2

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

►variante préemptive de SJF


Dans notre exemple:
t=13
CPU C1 A1 C3 B1 C5 B1 A3 C7 A3
t
I/O C2 A2 C6 C8
I/O C4 B2

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

►variante préemptive de SJF


Dans notre exemple:

CPU C1 A1 C3 B1 C5 B1 A3 C7 A3 C9 B3.. ... t


I/O C2 A2 C6 C8 A4..... ...
I/O C4 B2
Remarques:
• ordonnancement préemptif: plus réactif que SJF
• mais famine toujours possible
Capter 2 Process
Pr. Meryeme Ayache 54
Management
Ordonnancement RR: Round
Robin
Politique d’ordonnancement Round Robin: principe
• donner le CPU à tour de rôle à chaque tâche...
• ... pour une durée maximale q (en VO time quantum)
• Préemption lorsqu’une tâche dépasse son quantum

► Variante préemptive de FCFS

Dans notre exemple, ordonnancé en RR avec q = 2


Préemption

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

• Préemption grâce à IRQ du system timer


• si IRQ à fréquence constante ►notion de kernel tick
• quantum exprimé en nombre de ticks
• si IRQ flexibles = tickless kernel
• quantum exprimé en millisecondes

• Compromis entre durée du quantum et latence du dispatcher


• si quantum trop long ►manque de réactivité
• si quantum trop court ►surcoût en performance
Capter 2 Process
Pr. Meryeme Ayache 56
Management
La vraie vie: ordonnancement à
priorités
Ordonnancement à priorités: principe
• Maintenir plusieurs ready queues distinctes
• les examiner par ordre de priorité décroissante
• chaque file applique une politique différente: RR, SRTF...

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

1. Partage du temps et ordonnancement


o Introduction: rappels sur la notion de processus
o Multitâche par commutation de contextes d’exécution
o Ordonnancement: formulation du problème
o Ordonnancement: les stratégies classiques
o Évaluation de politiques d’ordonnancement

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

Nous = simulation à la main


• 1 «tâche» = 1 CPU-burst
• paramètres = durée d’exécution et date d’arrivée
tâche arrivée durée
tâche durée T1 0 8
T1 6 T2 1 4
Exemples:
T2 8
T3 2 9
Capter 2 Process T3 3 Pr. Meryeme Ayache 60
Management T4 3 5
Critères d’évaluation

CPU utilization rate: fraction du temps où le CPU est productif


• i.e. occupé à exécuter du code applicatif (vs noyau, ou CPU idle)

Throughput = débit: nombre de tâches terminées par unité de temps


• attention: n’a de sens que si les «tâches» peuvent «terminer»

Temps de rotation = Date de fin d'exécution - Date d'arrivée.


Turnaround time(tps de séjour): durée entre arrivée et terminaison
• n’a de sens que si les «tâches» peuvent «terminer»

Waiting time (temps d’attente): durée passée dans la ready queue


• aussi: «missed time» en VF: temps d’attente

Response time: durée entre arrivée et «réponse»


• attention: il faut définir ce qu’on appelle «réponse»

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

(17 − 0) + (5 − 1) + (26 − 17) + (10 − 5)


Pour SRTF: TT = = 8,75
4
(10 − 1) + 0 + (17 − 2) + (5 − 3)
WT= = 6.5
4
À retenir
Policy vs Mechanism
• Multitasking vs Multiprocessing
• Virtual CPU vs context switch + scheduling

Concepts importants:
• Dispatcher, Scheduler, Process Control Block, Préemption, CPU-burst
/ IO-burst, États d’un processus, Ready Queue...

Stratégies d’ordonnancement (en VO schedulingpolicies)


• First Come First Served
• Shortest Job First et Shortest Remaining Time First
• Round Robin avec un certainquantum
• Ordonnancement à priorités fixes ou dynamiques
• Dont Multi-Level Feedback Queue

Évaluation: Turnaround Time, Waiting Time...


Capter 2 Process
Pr. Meryeme Ayache 64
Management
Exercices

Capter 2 Process
Pr. Meryeme Ayache 65
Management
Exercice 1

• Considerons cinq travaux A, B, C, D et E, dont les temps d'execution


et leurs temps d’arrivee respectifs sont les suivants:

• Faire un schema qui illustre l’execution (diagramme de Gantt) et


calculer le temps de sejour de chaque processus, le temps moyen de
sejour, le temps d'attente et le temps moyen d'attente en utilisant :
 Premier arrive premier servi (FCFS)
 Le plus court d'abord (SJF)
Capter 2 Process
Pr. Meryeme Ayache 66
Management
Capter 2 Process
Pr. Meryeme Ayache 67
Management
Correction 1

Exercice 1 Correction FCFS

Le temps moyen de séjour est (3+8+9+9+9)/5=7.6

Le temps moyen d'attente est : (0+2+5+7+8)/5=4.4

Le débit : Il y a cinq taches exécutées dans 16 unités de temps,


alors D 16/5=3.2 unité de temps par processus en moyenne

Capter 2 Process
Pr. Meryeme Ayache 68
Management
Correction 2

Exercice 1 Correction SJF


Le plus court d'abord, schema d'execution :

Pour la strategie SJF nous aurons la sequence d'execution


A,B,E,D,C

Le temps moyen de sejour est (3+8+3+6+12)/5 = 6.4


Le temps moyen d'attente est (0+2+2+4+8)/5 = 3.2
Le débit : Il y a cinq taches exécutées dans 16 unités de temps,
alors D 16/5=3.2 unité de temps par processus en moyenne
Capter 2 Process
Pr. Meryeme Ayache
Management
Exercice 2

• Question 1 : On applique l'algorithme de scheduling 1 : "premier arrivé, premier servi".


Dessiner le digramme de Gantt correspondant.
• Question 2 : On applique l'algorithme de scheduling 2 : "Round Robin" avec un quantum égal à 7.
Dessiner le diagramme de Gantt correspondant.

• Question 3 : On applique l'algorithme de scheduling 3 : "Priorité". Dessinez le diagramme de Gantt


correspondant. (4 la plus haute)

• 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)

• Question 2 : On applique l'algorithme de scheduling 2 : "Round Robin" avec un quantum égal à 7.


Dessiner le digramme de Gantt correspondant.
Réponse :
P1 P2 P3 P1 P4 P5
0 7 13 20 23 27 37

• Question 3 : On applique l'algorithme de scheduling 3 : "Priorité". Dessinez le diagramme de Gantt


correspondant.
Réponse :
P1 P2 P5 P2 P3 P4
0 10 12 22 26 33 37
• Question 4 : Donnez les temps d'attente de chaque processus pour chacun des 3 algorithmes
précédents.
Réponse :
Algorithme1 Algorithme2 Algorithme 3
P1 00 13 00
P2 05 02 15
P3 11 08 21
P4 15 15 25
P5 15 15 00
72
Operating System

Capter 2 Process
Pr. Meryeme Ayache 73
Management
TD: Odonnancement

Capter 2 Process
Pr. Meryeme Ayache 74
Management

Vous aimerez peut-être aussi