Scheduler (ordonanceur)
Page 1
• L’ordonnanceur est un algorithme qui propose au processeur une liste de
tâches à exécuter suivant un ordre spécifique.
• Le processeur alloue un temps d’exécution fixe à chaque tâche.
 Si la tâche dépasse le temps alloué elle est préempté jusqu’à son tour
suivant dans la liste et la tâche suivante commence son exécution.
• Une unité de temps minimale donnée à une tâche s’appelle quantum.
• Un quantum peut varier de 1μs à quelques millisecondes suivant le type de
processeur utilisé.
Page 2
J1,1
time
J1,2 J1,3 J1,4
FIFO J1,5
Exemple: comparaison entre deux algorithms d’ordonncement:
• On définie Ji,k avec i:numéro de la tâche et k: le nombre de fois où elle s’est
exécuté.
J1,1 J2,1 J1,2 J1,3 J1,4
EDF J2,4
J2,1 J2,2 J2,3 J2,4
J2,2 J2,3 J2,5
Shedular
name
Scheduler
• L’ordonnacement d’une liste de tâche depend de plusieurs paramètres.
EDF: Earliest Deadline First
J2,5
J1,5
• Les paramètres d’une tâche sont définis comme suit:
 Wake-up time (wi): l’instant où le processeur permet à la tâche de commencer son exécution.
 Start/End of task execution (si: start of task i /ei: end of task i): wi ≤ si <ei .
 Durée de l’exécution (Ci): intervalle temporel de si jusqu’à ei.
 Deadline (Di): c’est l’intervalle temporel que l’exécution de la tâche ne doit pas dépassé (Ci ≤
Di), avec wi ≤ Di ≤ di.
 Laxity (Li): temps restant après exécution entre ei et di.
 Latency (Lti): temps restant après exécution entre wi et si.
Page 3
Scheduler
Di
wi si ei di
Task i(k)
Ci
time
Ti
Li
Pi
wi
Task i(k+1)
wi
Lti
 Temps de réponse (Ti): c’est l’interval temporel entre wi et ei.
 La période (Pi) : c’est l’intervalle temporel entre le moment où la tâche obtient la permission
d’exécution wi jusqu’à l’instant de sa prochaine permission. C’est un intervalle fixe et
périodique (Di ≤ Pi).
Page 4
Scheduler
Di
wi si ei di
Task i(k)
Ci
time
Ti
Li
Pi
wi
Task i(k+1)
wi
k
k
k
k k+1 k+2
k
k
k k
Ltk
Ordonnancement réalisable c’est la capabilité d’une liste de tâche à satisfaire son
deadline.
Une condition satisfaisante de réalisabilité est : U = ∑ Ci/Di < n (21/n - 1)
 U facteur d’occupation du processeur lors du traitement de n taches.
 ui = Ci/Di rapport de durée de l’execution d’une tâche sur son deadline Di.
Le temps processeur libre est définie par: Tfree= (1-U) . H
 H le plus petit commun multiple (Least Common Multiplier) : H = LCM (Pi)i ∈ {1,n}
Page 5
Schedulability
i=1
n
Di
wi si ei di
Task i(k)
Ci
Pi
wi
Example:
 Detrminez H1=LCM (60,168) et H2=LCM (30,45)
Page 6
Schedulability
• 60 = 22×3×5
• 168 = 23×3×7
H1= 23×3×7×5=840
• Décomposons-les en produits de facteurs premiers.
• On multiplie seulement les nombres avec leurs plus grandes puissance.
• 30 = 2×3×5
• 45= 32×5
H2= 2×32×5=90
Page 7
Schedulability
(in quantum)
Les tâches sont classifiées suivant leurs occurrence:
• Time-Driven Tasks: Tâches démarrées par signal d’horloge. Ce sont les
taches périodiques.
• Event-Driven Task: Tâches démarrées par un évenement externe (signales
externe ou des interruptions du processeur…).
Il y a deux types:
 Tâches apériodiques
 Tâches spériodiques
Page 8
Task execution models
STA'2008
Page 9
Gantt diagram
Deadline
Periode Pi
Planned start time wi Planned start time
duration of the execution Ci
Laxity Li
Time-Driven
Page 10
Ci
Deadline
Li
event arriving time
Event-Driven
Gantt diagram
 Soit deux taches ayant les paramètres suivants: D1=P1, D2=P2, s1
0=0 and
s2
0=1.
On suppose que la liste des taches planifiées est réalisable avec les paramètres:
Page 11
 Trouvez le problème dans l’ordre de la liste suivante et proposer une solution
convenable avec T2 ayant une faible priorité et l’exécution de toute la liste ne
dépassant pas H.
C1
C2
s2 < w2
Exemple d’application: cas tâche périodique
Exemple
Algorithmes d’ordonnancement
Algorithmes Classiques pour tâches apériodiques (pas adaptés au STR):
• FIFO (First in First out): exécute les tâches suivant leurs ordre d’arrivée. Son temps
de réponse est trop long.
• Round Robin: tout tâche prête prend un quantum. N’est pas adapté pour le
traitement des processus manipulant des entrées/sorties.
Algorithmes pour tâches périodiques adaptés au STR:
• Algorithmes à priorité fixe :
 Rate monotonic  La priorité est donnée aux tâches ayant une plus faible période Pi.
 Dead line monotonic  La priorité est donnée aux tâches ayant un plus faible
Deadline Di.
• Algorithmes à priorité variable:  N’est pas adapté pour le traitement des processus
manipulant des entrées/sorties.
 Earliest Deadline First.
 Minimum Laxity.
Page 12
Algorithmes d’ordonnancement à priorité
variable
• Earliest Deadline First
 La priorité augmente si Di,k (t) diminue
 à chaque instant t la tâche i change son deadline suivant la formule suivante:
Di,k (t) = wi,k + Di – t = di,k - t
Di est cte et t est l’instant d’exécution de la tâche.
• Minimum Laxity
 La priorité augmente si Li,k (t) diminue
 à chaque instant t la tâche i change sa laxité suivant la formule suivante:
Li,k (t) = di,k - t - Ci = Di(t) - Ci
Page 13
Scheduling algorithms under Linux
Classic algorithms (the priority is not taken into account sched_priority = 0):
• SCHED_OTHER: round robin algorithm used by default. Possibility of increasing the
quantum allocated to a task by modifying nice ().
• SCHED_BATCH: same as SCHED_OTHER but with lower priority
• SCHED_IDLE: Scheduling very low priority jobs
RTS algorithms : (super-user rights ‘#’).
• Priority is higher than classic algorithms
• Changes the priority of a thread using sched_priority.
 SCHED_DEADLINE: based on « Earliest Deadline First » algorithm.
 sched_run‐ time, sched_deadline, and sched_period must be specified in a structure
of type pthread_attr_t before execution.
pthread_attr_t is the second argument of pthread_create as follows:
int pthread_create(pthread_t *task_name, const pthread_attr_t *attr, void *(*task_action)
(void*),void *arg )
Page 14
Algorithmes d’ordonnancement sous Linux
Algorithmes à priorités fixes:
Priorité spécifiée dans sched_priority={1,…,99}, valeur prio faible< valeur prio élevée.
La tâche interrompu est remis au bout de sa fil de priorité
SHED_FIFO: type FIFO, la tâche au bout de sa file de priorité est exécuté entièrement.
SHED_RR :type round robin, un quantum maximum est alloué au tâches, si il est
dépassé la tâche en cours est mis à l’arrière de sa fil de priorité.
Les tâches ayant une même
priorité sont mis dans une même
file.
Les files ayant la plus grande
priorité sont exécutés les
premiers.
les tâches de priorité lvl 0 sont
traitées pendant les temps libres
du processeur
Page 15
Page 16
Ʈ
Exécuté
en FIFO
Traitement des tâches apériodiques en arrière
plan
Page 17
Traitement des tâches apériodiques par serveur
périodique:
• Il est possible d’utiliser une ou plusieurs tâches périodiques appelées serveurs
pour exécuter les tâches apériodiques.
• Le serveur est une tâche à priorité fixe qui est inclue dans la liste des tâches.
• Il y a trois types:
 Serveur à scrutation.
 Serveur ajournable.
 Serveur sporadique
Serveur à scrutation:
• Il traite les tâches apériodiques qu'il trouve en attente lors de son activation.
• s'il n'y a pas de tâches en attente, il se suspend et attend sa prochaine d'activation.
Page 18
Il n’y a pas
de tâche
Serveur ajournable:
• C’est la tâche la plus prioritaire.
• S'il n'y a pas de tâches apériodique en attente, il reste active jusqu’à son deadline durant
lequel les tâches périodiques peuvent s’exécuter.
• S’il y a une tâche apériodique qui arrive avant son deadline elle sera servie le temps jusqu’au
deadline du serveur et le reste durant la prochaine activation du serveur.
• La tâche apériodique consomme le temps d’exécution du serveur, s’il prend fin la tâche
contenu son exécution lors de la prochaine activation du serveur.
• Le temps d’exécution Csa est alimenté à chaque période Psa.
• Une courbe est utilisée dans le diagramme de gantt décrivant la variation de Csa.
Page 19
τpériodique
C=2, P=5
Csa=2, Psa=4
Serveur sporadique:
• C’est la tâche la plus prioritaire.
• Le serveur dispose d’une capacité Css et d’une période Pss
• Css ne sera pas alimenté automatiquement comme le serveur ajournable
• Le temps tCi consommé à servir une tâche i sera ajouté à la capacité Css à l’instant tai
• tak = Pss + sss
k avec sss
k : instant du kième démarrage de l’exécution du serveur
• Si Css=0 il n’y aura pas d’exécution jusqu’à son alimentation.
Page 20
τ1
C=6, P=20
τ2
C=4, P=10
e1 (arrivée=7,C=3)
e2 (arrivée=11,C=4)
Css=2, Pss=8
2
1
s1=7
tC1 =2 ta1 =8+s1
Css= Css + tC1
ta2 =8+s2
Css= Css + tC2
s2=15 s3=23 s4=31
ta3 =8+s3
Css= Css + tC3
ta4 =8+s4
Css= Css + tC4
tC4 =1

ordonnancement_temps_reel_cours-français.pdf

  • 1.
    Scheduler (ordonanceur) Page 1 •L’ordonnanceur est un algorithme qui propose au processeur une liste de tâches à exécuter suivant un ordre spécifique. • Le processeur alloue un temps d’exécution fixe à chaque tâche.  Si la tâche dépasse le temps alloué elle est préempté jusqu’à son tour suivant dans la liste et la tâche suivante commence son exécution. • Une unité de temps minimale donnée à une tâche s’appelle quantum. • Un quantum peut varier de 1μs à quelques millisecondes suivant le type de processeur utilisé.
  • 2.
    Page 2 J1,1 time J1,2 J1,3J1,4 FIFO J1,5 Exemple: comparaison entre deux algorithms d’ordonncement: • On définie Ji,k avec i:numéro de la tâche et k: le nombre de fois où elle s’est exécuté. J1,1 J2,1 J1,2 J1,3 J1,4 EDF J2,4 J2,1 J2,2 J2,3 J2,4 J2,2 J2,3 J2,5 Shedular name Scheduler • L’ordonnacement d’une liste de tâche depend de plusieurs paramètres. EDF: Earliest Deadline First J2,5 J1,5
  • 3.
    • Les paramètresd’une tâche sont définis comme suit:  Wake-up time (wi): l’instant où le processeur permet à la tâche de commencer son exécution.  Start/End of task execution (si: start of task i /ei: end of task i): wi ≤ si <ei .  Durée de l’exécution (Ci): intervalle temporel de si jusqu’à ei.  Deadline (Di): c’est l’intervalle temporel que l’exécution de la tâche ne doit pas dépassé (Ci ≤ Di), avec wi ≤ Di ≤ di.  Laxity (Li): temps restant après exécution entre ei et di.  Latency (Lti): temps restant après exécution entre wi et si. Page 3 Scheduler Di wi si ei di Task i(k) Ci time Ti Li Pi wi Task i(k+1) wi Lti
  • 4.
     Temps deréponse (Ti): c’est l’interval temporel entre wi et ei.  La période (Pi) : c’est l’intervalle temporel entre le moment où la tâche obtient la permission d’exécution wi jusqu’à l’instant de sa prochaine permission. C’est un intervalle fixe et périodique (Di ≤ Pi). Page 4 Scheduler Di wi si ei di Task i(k) Ci time Ti Li Pi wi Task i(k+1) wi k k k k k+1 k+2 k k k k Ltk
  • 5.
    Ordonnancement réalisable c’estla capabilité d’une liste de tâche à satisfaire son deadline. Une condition satisfaisante de réalisabilité est : U = ∑ Ci/Di < n (21/n - 1)  U facteur d’occupation du processeur lors du traitement de n taches.  ui = Ci/Di rapport de durée de l’execution d’une tâche sur son deadline Di. Le temps processeur libre est définie par: Tfree= (1-U) . H  H le plus petit commun multiple (Least Common Multiplier) : H = LCM (Pi)i ∈ {1,n} Page 5 Schedulability i=1 n Di wi si ei di Task i(k) Ci Pi wi
  • 6.
    Example:  Detrminez H1=LCM(60,168) et H2=LCM (30,45) Page 6 Schedulability • 60 = 22×3×5 • 168 = 23×3×7 H1= 23×3×7×5=840 • Décomposons-les en produits de facteurs premiers. • On multiplie seulement les nombres avec leurs plus grandes puissance. • 30 = 2×3×5 • 45= 32×5 H2= 2×32×5=90
  • 7.
  • 8.
    Les tâches sontclassifiées suivant leurs occurrence: • Time-Driven Tasks: Tâches démarrées par signal d’horloge. Ce sont les taches périodiques. • Event-Driven Task: Tâches démarrées par un évenement externe (signales externe ou des interruptions du processeur…). Il y a deux types:  Tâches apériodiques  Tâches spériodiques Page 8 Task execution models
  • 9.
    STA'2008 Page 9 Gantt diagram Deadline PeriodePi Planned start time wi Planned start time duration of the execution Ci Laxity Li Time-Driven
  • 10.
    Page 10 Ci Deadline Li event arrivingtime Event-Driven Gantt diagram
  • 11.
     Soit deuxtaches ayant les paramètres suivants: D1=P1, D2=P2, s1 0=0 and s2 0=1. On suppose que la liste des taches planifiées est réalisable avec les paramètres: Page 11  Trouvez le problème dans l’ordre de la liste suivante et proposer une solution convenable avec T2 ayant une faible priorité et l’exécution de toute la liste ne dépassant pas H. C1 C2 s2 < w2 Exemple d’application: cas tâche périodique Exemple
  • 12.
    Algorithmes d’ordonnancement Algorithmes Classiquespour tâches apériodiques (pas adaptés au STR): • FIFO (First in First out): exécute les tâches suivant leurs ordre d’arrivée. Son temps de réponse est trop long. • Round Robin: tout tâche prête prend un quantum. N’est pas adapté pour le traitement des processus manipulant des entrées/sorties. Algorithmes pour tâches périodiques adaptés au STR: • Algorithmes à priorité fixe :  Rate monotonic  La priorité est donnée aux tâches ayant une plus faible période Pi.  Dead line monotonic  La priorité est donnée aux tâches ayant un plus faible Deadline Di. • Algorithmes à priorité variable:  N’est pas adapté pour le traitement des processus manipulant des entrées/sorties.  Earliest Deadline First.  Minimum Laxity. Page 12
  • 13.
    Algorithmes d’ordonnancement àpriorité variable • Earliest Deadline First  La priorité augmente si Di,k (t) diminue  à chaque instant t la tâche i change son deadline suivant la formule suivante: Di,k (t) = wi,k + Di – t = di,k - t Di est cte et t est l’instant d’exécution de la tâche. • Minimum Laxity  La priorité augmente si Li,k (t) diminue  à chaque instant t la tâche i change sa laxité suivant la formule suivante: Li,k (t) = di,k - t - Ci = Di(t) - Ci Page 13
  • 14.
    Scheduling algorithms underLinux Classic algorithms (the priority is not taken into account sched_priority = 0): • SCHED_OTHER: round robin algorithm used by default. Possibility of increasing the quantum allocated to a task by modifying nice (). • SCHED_BATCH: same as SCHED_OTHER but with lower priority • SCHED_IDLE: Scheduling very low priority jobs RTS algorithms : (super-user rights ‘#’). • Priority is higher than classic algorithms • Changes the priority of a thread using sched_priority.  SCHED_DEADLINE: based on « Earliest Deadline First » algorithm.  sched_run‐ time, sched_deadline, and sched_period must be specified in a structure of type pthread_attr_t before execution. pthread_attr_t is the second argument of pthread_create as follows: int pthread_create(pthread_t *task_name, const pthread_attr_t *attr, void *(*task_action) (void*),void *arg ) Page 14
  • 15.
    Algorithmes d’ordonnancement sousLinux Algorithmes à priorités fixes: Priorité spécifiée dans sched_priority={1,…,99}, valeur prio faible< valeur prio élevée. La tâche interrompu est remis au bout de sa fil de priorité SHED_FIFO: type FIFO, la tâche au bout de sa file de priorité est exécuté entièrement. SHED_RR :type round robin, un quantum maximum est alloué au tâches, si il est dépassé la tâche en cours est mis à l’arrière de sa fil de priorité. Les tâches ayant une même priorité sont mis dans une même file. Les files ayant la plus grande priorité sont exécutés les premiers. les tâches de priorité lvl 0 sont traitées pendant les temps libres du processeur Page 15
  • 16.
    Page 16 Ʈ Exécuté en FIFO Traitementdes tâches apériodiques en arrière plan
  • 17.
    Page 17 Traitement destâches apériodiques par serveur périodique: • Il est possible d’utiliser une ou plusieurs tâches périodiques appelées serveurs pour exécuter les tâches apériodiques. • Le serveur est une tâche à priorité fixe qui est inclue dans la liste des tâches. • Il y a trois types:  Serveur à scrutation.  Serveur ajournable.  Serveur sporadique
  • 18.
    Serveur à scrutation: •Il traite les tâches apériodiques qu'il trouve en attente lors de son activation. • s'il n'y a pas de tâches en attente, il se suspend et attend sa prochaine d'activation. Page 18 Il n’y a pas de tâche
  • 19.
    Serveur ajournable: • C’estla tâche la plus prioritaire. • S'il n'y a pas de tâches apériodique en attente, il reste active jusqu’à son deadline durant lequel les tâches périodiques peuvent s’exécuter. • S’il y a une tâche apériodique qui arrive avant son deadline elle sera servie le temps jusqu’au deadline du serveur et le reste durant la prochaine activation du serveur. • La tâche apériodique consomme le temps d’exécution du serveur, s’il prend fin la tâche contenu son exécution lors de la prochaine activation du serveur. • Le temps d’exécution Csa est alimenté à chaque période Psa. • Une courbe est utilisée dans le diagramme de gantt décrivant la variation de Csa. Page 19 τpériodique C=2, P=5 Csa=2, Psa=4
  • 20.
    Serveur sporadique: • C’estla tâche la plus prioritaire. • Le serveur dispose d’une capacité Css et d’une période Pss • Css ne sera pas alimenté automatiquement comme le serveur ajournable • Le temps tCi consommé à servir une tâche i sera ajouté à la capacité Css à l’instant tai • tak = Pss + sss k avec sss k : instant du kième démarrage de l’exécution du serveur • Si Css=0 il n’y aura pas d’exécution jusqu’à son alimentation. Page 20 τ1 C=6, P=20 τ2 C=4, P=10 e1 (arrivée=7,C=3) e2 (arrivée=11,C=4) Css=2, Pss=8 2 1 s1=7 tC1 =2 ta1 =8+s1 Css= Css + tC1 ta2 =8+s2 Css= Css + tC2 s2=15 s3=23 s4=31 ta3 =8+s3 Css= Css + tC3 ta4 =8+s4 Css= Css + tC4 tC4 =1