Ordonnanceur - PowerPoint PPT Presentation

About This Presentation
Title:

Ordonnanceur

Description:

... Exemple avec des threads usagers Processus avec quantum de 50-msec Chaque threads s'ex cute 5 msec par rafale de processeur * Ordonnancement des threads (2) ... – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 27
Provided by: SteveAr2
Category:

less

Transcript and Presenter's Notes

Title: Ordonnanceur


1
Ordonnanceur
  • Partie du système dexploitation qui sélectionne
    le prochain processus à sexécuter
  • Permet daméliorer les performance
  • Systèmes de traitement par lots (batch)
  • Systèmes interractifs
  • Systèmes en temps réel
  • Sassurer (entre autres) de lusage efficace du
    CPU
  • Il ne faut pas basculer dun processus à lautre
    trop fréquemment.

2
Comportement des processus
  • Les rafales d'utilisation du processeur alternent
    avec les périodes d'attente des E/S
  • (a) Processus borné processeur
  • (b) Processus borné E/S

3
Quand ordonnancer?
  • À quels moments l'ordonnanceur doit-il être
    exécuté?
  • Quand un processus est créé
  • Quand un processus se termine
  • Quand un processus bloque
  • Quand il y a une interruption (E/S ou horloge)
  • Deux catégories d'algorithmes d'ordonnancement
  • non préhemptif On laisse le processus
    s'exécuter jusqu'à ce qu'il bloque ou libère le
    processeur.
  • préhemptif On arrête le processus après un laps
    de temps donné (quantum). Une horloge est
    nécessaire.

4
Objectifs des algorithmes d'ordonnancements
Tout les systèmes Équité Donner à des
processus comparables un temps processeur
équitable Respect de la politique La politique
établie doit être respectée Équilibre Tenir
occupé toutes les parties du système Systèmes de
traitement par lots Débit maximiser le nombre
de tâches par heure Temps de traitement
Minimiser le temps entre soumission et
terminaison Utilisation processeur Tenir le CPU
occupé en tout temps Systèmes interactifs (temps
partagé et serveur) Temps de réponse Réponse
rapide aux requêtes Proportionnalité Rencontrer
les attentes des usagers Systèmes à temps
réel Respect des échéances Éviter de perdre
des données Prévisibilité Éviter une
dégradation de la qualité (systèmes multimédia)
5
Ordonnancement des systèmes de traitement par
lots (1)
  • Premier arrivé, premier servi
  • Une seule file dattente
  • Facile à programmer et à comprendre
  • Inconvénient pour les processus bornés E/S
  • Exemple
  • Un processus A utilise le CPU en rafales
    dune seconde.
  • 10 autres processus utilisent peu le CPU mais
    font 1000 accès disque.
  • Si A arrive en premier alors les 10 autres
    processus devront attendre 1000 secondes pour
    terminer.

6
Ordonnancement des systèmes de traitement par
lots (2)
  • Autres algorithmes
  • Plus court en premier
  • Temps restant le plus court (préhemptif)
  • Un exemple d'ordonnancement par tâche la plus
    courte en premier

7
Trois niveau d'ordonnancement
8
Ordonnancement des systèmes interactifs (1)
  • Ordonnancement de type tourniquet (Round-Robin)
  • liste des processus exécutables
  • liste des processus exécutables après que B ait
    utilisé son quantum
  • Préhemptif
  • Petit quantum temps CPU perdu
  • Grand quantum temps de réponse élevé

9
Ordonnancement des systèmes interactifs (2)
  • Ordonnancement par priorités
  • Tous les processus nont pas la même priorité.
  • La priorité peut être donnée dynamiquement par le
    système
  • Ex. Si le système réalise quun processus est
    borné E/S
  • On peut regrouper les processus en catégorie de
    priorité
  • On doit alors revoir périodiquement les priorités
    pour ne pas affamer les processus de faible
    priorité

10
Ordonnancement des systèmes interactifs (3)
  • Files dattentes multiples
  • Ordonnancement du système CTSS (1961)
  • Catégories de priorités
  • On donne 1 quantum aux processus de la catégorie
    supérieure, 2 quanta aux processus de la
    catégorie suivante, puis 4, 8 ,etc.
  • Lorsquun processu a épuisé tous ses quanta, il
    descend dune catégorie.
  • Permet de réduire le nombre de changement
  • Ex. Un processus nécessitant 100 quanta.
  • 1 2 4 8 16 32 64 127
  • Note Rendu à la 7ième catégorie, le
    processus naura pas besoin de tout ses 64
    quanta.

11
Ordonnancement des systèmes interactifs (4)
  • Exécuter le processus suivant le plus court
  • On tente de minimiser le temps de réponse
  • Comment déterminer le processus le plus court?
  • Estimation fondé sur les comportements antérieurs
  • Ex. Supposons que lestimation du temps restant
    dune commande est T0 et que la prochaine
    exécution nécessite un temps T1
  • Alors on peut estimer le temps de la
    prochaine exécution de cette cammande à
  • aT0 (1-a)T1
  • Selon la valeur de a notre estimation
    possède plus ou moins de mémoire.

12
Ordonnancement des systèmes interactifs (4)
  • Ordonnancement par tirage au sort
  • Chaque processus se voit attribué un certain
    nombre de billets de lotterie
  • Lordonnanceur choisit au hasard un billet pour
    déterminer quel sera le prochain processus à être
    exécuté.
  • Plus un processus est prioritaire, plus il
    possède de billets de loterie
  • Des processus coopératifs peuvent échanger des
    billets sils le désirent.
  • Aucun processus ne peut être affamé. Chacun
    possède une chance non nulle dêtre choisi.
  • Permet de mieux controler le taux dutilisation
    du CPU par les différents processus.

13
Systèmes à temps réel (1)
  • Exemples
  • Lecteur de disques compacts
  • Monitoring dans les services de soins intensifs
  • Pilote automatique dun avion
  • Automates des chaînes de fabrication
  • Le programme est divisé en un certain nombre de
    processus très court dont le comportement est
    prévisible et connu à lavance.
  • Deux catégories de systèmes
  • Temps réel à tolérance zéro (hard real time)
  • Temps réel avec tolérance (soft real time)
  • Deux catégories dévénements
  • Périodiques
  • Apériodiques

14
Systèmes à temps réel (2)
  • Étant donné
  • m événements périodiques
  • événement i se produit périodiquement à fréquence
    Pi et requiert Ci secondes
  • La charge de travail est réalisable seulement si
  • Exemple 3 événements avec des périodes de 100,
    200 et 500ms ayant besoin de 50, 30 et 100ms
    respectivement.
  • 0,5 0,15 0.2 0,85 lt 1
  • Un événement de période 1000 peut être
    ajouté tant quil requiert pas plus 150ms

15
Politique versus Mécanisme
  • Distinguer entre ce qui doit être fait
    (politique) et la façon de le faire (mécanisme)
  • Chaque processus sait quels sont ses threads
    enfants qui sont les plus prioritaires.
  • Algorithme d'ordonnancement paramétré
  • L'ordonnancement est effectué par le noyau en
    fonction de la priorité des chaque thread.
  • Paramètres fournis par les processus
  • Selon sa politique, un processus attribut des
    priorités à ses enfants.

16
Ordonnancement des threads (1)
  • Exemple avec des threads usagers
  • Processus avec quantum de 50-msec
  • Chaque threads s'exécute 5 msec par rafale de
    processeur

17
Ordonnancement des threads (2)
  • Exemple avec des threads noyaux
  • Processus avec quantum de 50-msec
  • Chaque threads s'exécute 5 msec par rafale de
    processeur

18
Windows XP (1)
Z
  • 32 niveaux de priorité pour les threads

19
Windows XP (2)
20
Windows XP (3)
  • DWORD WINAPI GetPriorityClass( __in HANDLE
    hProcess)
  • BOOL WINAPI SetPriorityClass( __in HANDLE
    hProcess,

  • __in DWORD dwPriorityClass)
  • int WINAPI GetThreadPriority( __in HANDLE
    hThread)
  • BOOL WINAPI SetThreadPriority( __in HANDLE
    hThread,

  • __in int nPriority)

21
Windows XP (4)
  • Inversion de priorité

22
Solaris (1)
  • Plusieurs classes d'ordonnancement qui
    définisssent les
  • politiques d'ordonnancement
  • Niveau de priorité
  • Algorithme d'ordonnancement utilisé
  • Sur Solaris 9
  • Real Time
  • System
  • Time Sharing
  • Interactive
  • Fixed
  • Fair Share

23
Solaris (2)
59
0
59
0
24
Solaris (3)
25
Solaris (4)
int pthread_getschedparam(pthread_t thread,

int restrict policy,
struct sched_param
restrict param) int
pthread_setschedparam(pthread_t thread,
int
policy,
const struct sched_param param) Le
paramètre policy peut être
SCHED_FIFO, SCHED_RR ou SCHED_OTHER
26
Solaris (5)
Exemple int set_my_thread_priority(int
priority) struct sched_param sp
memset(sp, 0, sizeof(struct sched_param))
sp.sched_prioritypriority if
(pthread_setschedparam(pthread_self(), SCHED_RR,
sp) -1) printf(  Impossible de
changer la priorité.\n") return -1
return 0
Write a Comment
User Comments (0)
About PowerShow.com