• Aucun résultat trouvé

Ordonnancement Concepts de base Crit`eres d’ordonnancement Algorithmes d’ordonnancement Ordonnancement de threads Ordonnancement dans les syst`emes multiprocesseurs

N/A
N/A
Protected

Academic year: 2022

Partager "Ordonnancement Concepts de base Crit`eres d’ordonnancement Algorithmes d’ordonnancement Ordonnancement de threads Ordonnancement dans les syst`emes multiprocesseurs"

Copied!
19
0
0

Texte intégral

(1)

Concepts de base

Crit `eres d’ordonnancement

Algorithmes d’ordonnancement Ordonnancement de threads

Ordonnancement dans les syst `emes multiprocesseurs

(2)

Concepts de base

L’ordonnancement de processus permet de mieux utiliser le CPU Ex ´ecution d ´ecoup ´ee en CPU burst et I/O burst

Pr ´eoccupation principale: distribution des CPU bursts Ordonnancement vise `a profiter du parall ´elisme

Maintenir le CPU occup ´e pendant l’attente d’un p ´eriph ´erique

Maintenir les p ´eriph ´eriques occup ´es pendant l’attente du CPU

(3)

Ordonnanceur du CPU

l’ordonnanceur `a court-terme choisi parmi les processus ready D ´ecision d’ordonnancement se fait:

1. Lorsqu’un processus passe de running `a waiting 2. Lorsqu’un processus passe de running `a ready 3. Lorsqu’un processus passe de waiting `a ready 4. Lorsqu’un processus termine

Ordonnancement non-pr ´eemptif: sous contr ˆole du processus

coop ´eratif: pas de conditions de course

(4)

Dispatcher

Le module de dispatch transf `ere le contr ˆole au processus s ´electionn ´e

Changer le contenu des registres

Passer en mode utilisateur

Sauter au bon endroit dans le programme

Latence du dispatcher: temps pour passer d’un processus `a un autre

Le temps perdu dans un context-switch inclus des cache-miss Cette latence doit ˆetre minimis ´ee

Impact significatif si fr ´equence ´elev ´ee

(5)

Crit `eres d’ordonnancement

Utilisation du CPU

A maximiser, traditionnellement, minimiser plus r ´ecemment` D ´ebit: quantit ´e de travail effectif par unit ´e de temps

A maximiser`

Temps d’attente: temps qu’un processus passe dans ready

A minimiser`

Temps de r ´eponse: d ´elai entre une requ `ete et le d ´ebut de sa r ´eponse

A minimiser`

(6)

Ordonnancement FCFS (FIFO)

Ex ´ecution na¨ıve dans l’ordre d’arriv ´ee; non-pr ´eemptif Processus CPU burst time

P

1

24

P

2

3

P

3

3

Diagramme de Gantt

P

1

P

2

P

3

0 24 27 30

Temps moyen d’attente:

(0 + 24 + 27)/3 = 17

(7)

Shortest-Job First (SJF)

Ex ´ecute dans l’ordre de dur ´ee, du plus court au plus long

P

2

P

3

P

1

0 3 6 30

Temps moyen d’attente:

(0 + 3 + 6)/3 = 3

SJF est optimal: donne le temps d’attente moyen minimum

Bien s ˆur, en g ´en ´eral, la dur ´ee d’ex ´ecution est inconnue!

Le principe est quand m ˆeme fr ´equemment utilis ´e

On peut utiliser une estimation

(8)

Deviner la dur ´ee d’ex ´ecution

Estimer la dur ´ee d’ex ´ecution sur la base du comportement pass ´e

Le pass ´e est un bon pr ´edicteur du futur

t

n dur ´ee effective du CPU burst

n τ

n dur ´ee pr ´evue du CPU burst

n

α

facteur d’amortissement

τ

n+1

= αt

n

+ (1 − α)τ

n

Valeur courante de

α

:

0.5

Dur ´ee exacte peu importante: ordre de grandeur (10ms vs 10s)

α = 1

: pas de m ´emoire

α = 0

: ignore ex ´ecution effective

(9)

Shortest Remaining Time First

Comme SJF, mais pr ´eemptif

Processus

Arriv ee ´

CPU burst time

P

1

0 8

P

2

1 4

P

3

2 9

P

4

3 5

P

1

P

2

P

4

P

1

P

3

0 1 5 10 17 26

(10)

Ordonnancement par priorit ´e

Une priorit ´e num ´erique est associ ´ee `a chaque processus L’ordonnanceur choisi le processus de la plus haute priorit ´e

En version pr ´eemptive ou non

SJF et SRTF correspondent `a une priorit ´e de

1/

burst Utilisation d’une priorit ´e combinant plusieurs facteurs

Priorit ´e indiqu ´ee par l’utilisateur

• 1/τ

n, pour avantager les processus courts

Age, pour ´eviter lesˆ famines

(11)

Exemple d’ordonnancement par priorit ´e

Processus CPU burst time Priorit ´e

P

1

10 3

P

2

1 1

P

3

2 4

P

4

1 5

P

5

5 2

Diagramme de Gantt:

P

2

P

5

P

1

P

3

P

4

(12)

Algorithme du tourniquet (Round Robin)

Pr ´eemption de l’ex ´ecution apr `es ´ecoulement d’un quantum de temps

habituellement, de l’ordre de 10ms-100ms

Accorde un quantum `a chaque processus avant de recommencer Un long processus ne peut pas retarder excessivement un autre Offre l’illusion de l’ex ´ecution simultan ´ee

N processus `a la fois, mais N fois plus lentement Choix du quantum important:

trop grand: d ´eg ´en `ere en FIFO

trop court: cause perte de temps en context-switch

(13)

Exemple de Round-Robin

Processus CPU burst time

P

1

24

P

2

3

P

3

3

Diagramme de Gantt, avec quantum de 4:

P

1

P

2

P

3

P

1

P

1

P

1

P

1

P

1

0 4 7 10 14 18 22 26 30

Temps d’attente:

(6

(!)

+ 4 + 7)/3 = 5.66

(d ´epend du quantum)

(14)

Queues multi-niveaux

Plusieurs queues ready

T ˆaches de fonds, t ˆaches interactives, t ˆaches de syst `eme, ...

Chaque queue peut avoir son propre algorithme d’ordonnancement

t ˆaches interactives = RR, t ˆaches de fonds = FIFO Ordonnancement entre les queues:

Par priorit ´e des queues

RR, possiblement pond ´er ´e (80% interactif, 20% t ˆaches de fonds) Efficace en resources, mais peu ou trop flexible

(15)

Queues multi-niveaux `a r ´etroaction

Multi-level feedback queues

Les processus peuvent changer de queue

Typiquement, de mani `ere automatique, par ˆage ou

τ

n

Grande cat ´egorie param ´etr ´ee par:

Nombre queues

Ordonnancement de chaque queue

Ordonnancement entre les queues (habituellement, priorit ´e)

Crit `ere de promotion de processus

(16)

Exemple de multi-level feedback queues

N queues

Queue

i

: priorit ´e

N − i

; RR avec un quantum de

2

i

Promotion quand le CPU burst se termine avant 50% du quantum

Processus courts et interactifs augmente de priorit ´e D ´emotion quand le quantum se termine avant le CPU burst

Processus longs diminuent de priorit ´e Promotion r ´eguli `ere de tous les processus

Evite la famine: temps maximum garanti´

(17)

Ordonnancement de threads

Distinction entre threads user-level et kernel-level

Si possible, ordonnancement par thread plut ˆot que par processus Proportion du CPU peut ˆetre par thread ou par processus

SCS (system contention scope): comp ´etition entre tous les threads

PCS (process contention scope): comp ´etition entre thread siblings

Plus g ´en ´eralement, une hi ´erarchie

(18)

Ordonnancement multi-processeurs

Ordonnancement plus complexe Syst `emes homog `enes

Multiprocesseur sym ´etrique: chaque processeur s’ordonnance

Multiprocesseur asym ´etrique: un processeur se charge des autres Affinit ´e `a un processeur: pr ´ef ´erence pour b ´en ´eficier de la localit ´e

Affinit ´e hard: un processus reste dans son processeur

Affinit ´e soft: un processus peut migrer occasionnellement

Processeurs (et affinit ´es) regroup ´es hi ´erarchiquement

(19)

Equilibrage de charge ´

load balancing: tenter de maintenir les processeurs ´egalement occup ´es

Migration push: t ˆache p ´eriodique de r ´e ´equilibrage

Migration pull: processeur idle va chercher du travail ailleurs On peut utiliser les deux `a la fois

La migration s’oppose `a l’affinit ´e

Exemple classique: 3 processus sur 2 CPUs

Pr ´ef ´erable de maintenir un processeur occasionnellement idle

Références

Documents relatifs

Un processus est une instance d’exécution d’un programme plusieurs exécutions de programmes.. plusieurs exécutions d’un

Introduction Cas d’une exécution statique (H1) sans communication (H4) Exécution statique (H1) avec communication (Non-H4) Cas d’une exécution sans information préalable

• Mettre en œuvre un algorithme permettant d'obtenir les niveaux dans un graphe sans circuit.. • Représenter géométriquement un graphe en l’ordonnant par

 Arborescence de processus avec un rapport père - fils entre processus créateur et processus crée. Processus pid 15 Processus

)périodiques relatives : contraintes temporelles molles qui peuvent être non respectées de temps à autre (sans échéance) )périodiques à échéance sur requête (délai critique

Dans cette classe, le processeur est donné au processus de plus haute priorité pour un quantum de temps égal à.

Vous distinguerez les états des processus: Prêt, Actif et Bloqué et vous indiquerez le contenu des files d’attente des processus (attente processeur et attente du disque

C- Dans le cas d'un système en multiprogrammation, qu'est-ce qui empêche d'utiliser cette fonction pour aider à optimiser la durée d'exécution d'un