<strong>EDF</strong>, comme <strong>RM</strong>S, ne prend pas en compte le coefficient C pour calculer les priorités.<strong>1.1</strong>.1.2 Ordonnancement <strong>EDF</strong> (1)La décision d’ordonnancement est prise à chaque activation de tâche.Schéma d’ordonnancement en appliquant <strong>EDF</strong> :Date 1 2 3 4 5 6 7 8 9 10 11 12T1T2T3Commentaires :Au <strong>temps</strong> 3, deux tâches ont leur échéance pour la date 6 :- T1, qui a besoin d’une unité de <strong>temps</strong> pour sa deuxième période,- T3, qui a besoin d’une seconde unité de <strong>temps</strong> pour sa première période.On peut choisir :- T1, parce qu’elle est la première dans l’ordre de la numérotation (sa période est plus courte),- T3, pour éviter de faire un changement de contexte,Ici, on choisit T1.T3 est réordonnancée en 5 pour sa seconde unité de <strong>temps</strong>.Au <strong>temps</strong> 9, deux tâches ont leur échéance pour la date 12 :- T2, qui a besoin d’une unité de <strong>temps</strong> pour sa deuxième période,- T3, qui a besoin d’une seconde unité de <strong>temps</strong> pour sa deuxième période.Comme précédemment, on peut choisir :- T2, parce qu’elle est la première dans l’ordre de la numérotation (sa période est plus courte),- T3, pour éviter de faire un changement de contexte,Ici, on choisit T2.T1 s’insère alors, puis T3 consomme sa seconde unité de <strong>temps</strong>.Il reste un créneau libre en 11 : aucune tâche n’a été réactivée, la prochaine date d’activation est 12pour toutes les tâches.<strong>1.1</strong>.1.3 Ordonnancement <strong>EDF</strong> (2)Reprenons le scénario, en choisissant maintenant de toujours réduire le nombre de changements decontexte :Date 1 2 3 4 5 6 7 8 9 10 11 12T1T2T3Au <strong>temps</strong> 4, on choisit T3.Au <strong>temps</strong> 7, on peut choisir T1 ou T3, on choisit T1Au <strong>temps</strong> 9, on peut choisir T2 ou T3, on choisit T3 qui est déjà active, pour éviter le changement decontexte.Il reste un créneau libre en 11 : aucune tâche n’a été réactivée, la prochaine date d’activation est 12pour toutes les tâches.Remarque :3 <strong>TD</strong> Temps réel (1) Corrigé<strong>1.1</strong>.1.4 Ordonnancement <strong>LLF</strong>On donne maintenant un schéma d’ordonnancement en appliquant l’algorithme <strong>LLF</strong> (Least LaxityFirst), algorithme qui prend en compte la capacité C demandée par une tâche à chacune de sesactivations.Rappel :La tâche qui sera ordonnancée est celle dont la « laxité », ou marge, est la plus petite, sachant que :marge = échéance – <strong>temps</strong> de calcul restant – date courante.Le calcul d’ordonnancement peut être fait à chaque incrément d’horloge (uniquement pour les tâchesactives), ou bien à chaque activation de tâche. Dans le premier cas il y a plus de changements decontexte.Date 0 1 2 3 4 5 6 7 8 9 10 11T1 2 2 2 2T2 2 2 3T3 2 1 3 1Pour chaque date, on visualise les calculs pour toutes les tâches actives :dateTâche 1 marge échéance C restantTâche 2 marge échéance C restantTâche 3 marge échéance C restantCe qui donne :Dat 0 1 2 3 4 5 6eT1 2 3 1 2 6 1 2 9 1T2 3 4 1 2 4 1 3 8 1 2 8 1T3 4 6 2 3 6 2 2 6 2 2 6 1 1 6 1 4 12 2En 3, on peut choisir T1 ou T3, on choisit T1 qui vient de se réveiller et qui est la plus prioritairechoisir T3 entraînerait moins de changements de contexte. On pourrait introduire la notion de critcité.Dat 7 8 9 10 11eT1 2 12 1T2 3 12 1T3 3 12 2 3 12 1 2 12 1 1 12 1En 8, on peut choisir T2 ou T3, on choisit T2 qui vient de se réveiller et qui est la plus prioritaire,choisir T3 entraînerait moins de changements de contexte.De même, on choisit T1 en 9. T3 est de plus en plus retardée…Il reste un créneau libre en 11 : aucune tâche n’a été réactivée, la prochaine date d’activation est 12pour toutes les tâches.4 <strong>TD</strong> Temps réel (1) Corrigé
2 Théorème de la zone critiqueTrois tâches, prêtes à t = 0 :T1 : (C=25, D=P=100)T2 : (C=50, D=P=200)T3 : (C=100, D=P=300)2.1 Calcul de UCalcul de U :U = 25/100 +50/200 + 100/300 = 0,25 + 0,25 + 0,33 = 0, 83.U est donc > 0,78, on ne peut rien dire pour <strong>RM</strong>S.2.2 Théorème de la zone critiqueRappel de la formule :W i (t) = ! (j=1) i C j *!t/T j "- W i (t) est alors la consommation de <strong>temps</strong> cpu demandée à la date t par les i premiers processus,ceux-ci étant numéroté par ordre de priorité croissante : priorité(Pn) > priorité(Pn+1)- !t/T j " donne le nombre d’activations de la tâche j, de période T j, dans la fenêtre de <strong>temps</strong> detaille t,- !t/T j " *C j, est donc le <strong>temps</strong> cpu consommé par T j dans cette fenêtre,- ! (j=1) (i-1) C j *!t/T j " est le retard imposé à la tâche T i par les tâches d’indices inférieurs,donc plusprioritaires.Notions corrélées : période d’activitéOn va chercher si on peut trouver W i (t) = tOn initialise avec W i (0) = ! (j=1) i C j , c’est à dire t0 = "Calcul pour i = 1 :W 1 (0) = 25W 1 (25) = 25!25/100" = 25 # OKCalcul pour i = 2 :W 2 (0) = 25 + 50 = 75W 2 (75) = 25 !75/100" + 50 !75/200" = 75 # OKCalcul pour i = 3 :W 3 (0) = 25 + 50 + 100 = 175W 3 (175) = 25 !175/100" + 50!175/200"+ 100 !175/300" = 25*2 = 50 *1 + 100 *1 = 200W 3 (200) = 25 !200/100"+ 50 !200/200"+ 100 !200/300" = 25*2 = 50 *1 + 100 *1 = 200 # OK3 Rate monotonic ou Earliest deadline3.1 Question 13.<strong>1.1</strong>.1 Liste des tâchesListe des tâches :T1 : (C=10, T =40)T2 : (C=20, T =60)T3 : (C=20, T =80)U = 1/4 + 2/6 + 2/8 = 0,25 + 0,33 + 0,25 = 0, 83U est donc supérieur à 0, 78 : on ne peut rien dire pour <strong>RM</strong>, l’ordonnancement <strong>EDF</strong> est possible.PPCM = 2403.<strong>1.1</strong>.2 Diagramme <strong>RM</strong>SDiagramme d’ordonnancement obtenu en appliquant <strong>RM</strong>S (par 10 unités de <strong>temps</strong>) :Date 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24T1T2T33.<strong>1.1</strong>.3 Diagramme <strong>EDF</strong>Diagramme d’ordonnancement obtenu en appliquant <strong>EDF</strong> :Date 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24T1T2T33.2 Question 2Tâche nettoyage T4 : (C =10, T=60)Calcul de la nouvelle valeur de U, en prenant en compte T4:U = (1/4 + 2/6 + 2/8) + 1/6 = 0,83 + 0,16 = 0,99La prise en compte de l’arrosage dans ces conditions est possible avec <strong>EDF</strong>.Elle n’est pas possible avec <strong>RM</strong>S, en effet les seuls créneaux libres en <strong>RM</strong>S sont :[11,12], [15,16] et [19,20].3.3 Question 3Début en 90, il faut donc finir avant 150, ce n’est pas possible : un seul créneau libre avant 150, c’estle 120 pendant 10 unités de <strong>temps</strong>.Début en 90, il faut donc finir avant 190, c’est possible parce qu’en 120 et 160 il y a des créneaux de10.5 <strong>TD</strong> Temps réel (1) Corrigé6 <strong>TD</strong> Temps réel (1) Corrigé