Ordonnancement de processus§

Systèmes d’exploitation

auteur:Pierre-Antoine Champin
adresse:Département Informatique - IUT - Lyon1
licence:Ce travail est sous license Creative Commons Attribution-ShareAlike 3.0 France
1

Introduction§

2

Rappel§

Rôle de l’ordonnanceur: choisir, parmi tous les processus élibibles, lequel va devenir élu → politique d’ordonnancement

_images/ps_states.png

États d’un processus

3

Stratégies typiques§

4

FIFO sans préemption§

Note

L’appel système yield sert au processus à céder le processeur aux autres.

5

FIFO sans préemption: inconvénients§

  • temps de réponse dépend du processus qui a la main
    • tant qu’il ne rend pas la main, les autres doivent attendre
  • pénalise les processus courts
    • proportion temps d’attente / temps d’exécution
6

FIFO sans préemption: avantages§

  • simple
  • surcoût faible
  • équitable

Adapté dans les contextes suivants

  • nombreux cœurs de calcul
  • processus très fréquemment bloqués (gestions E/S)
  • machine peu puissante, ou le surcoût doit être minimisé
7

FIFO sans préemption (3)§

Utilisations :

8

Tourniquet§

_images/roundrobin.png
9

Tourniquet (2)§

_images/roundrobin.png
10

Tourniquet (3)§

_images/roundrobin_inequity.png

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

11

Shortest Job Next§

12

Highest Response Ratio Next§

13

Multilevel Feedback§

_images/multilevel_feedback.png
14

Multilevel Feedback (variantes)§

_images/multilevel_feedback.png
15

Autres critères§

16

Notion de priorité§

17

Notion de priorité (2)§

18

Partage équitable (fair share)§

19

Temps réel§

20

Exemples réels§

21

Linux§

Trois classes de priorité, chacune comportant plusieurs niveaux de priorité

22

Windows§

32 niveaux de priorité, divisés en deux classes

23

Windows (suite)§

Sur un système à N processeurs

24

Conclusion§

25

À retenir§

26

Ordonnanceur « applicatif »§

Exemple : serveur HTTP, gérant de nombreuses connexions simultanées:

27