Exercice 1 : Rate Monotonic et ordonnancement à priorité fixe 1) Le jeu de tâches est ordonnançable car le taux d'utilisation est inférieur à la borne n.(2^(1/n)-1) (cf. formule page 15 du cours). => cf. fichier exo1.jpg U = 7/29 + 1/5 + 2/10 = 0,64 B = n.(2^(1/n)-1) = 3.(2^(1/3)-1) = 0,779 ; on peut aussi prendre B=0,69 (quand n tends vers +inf) U <= B donc ordonnançable cf. fichier exo1_taux_occupation.jpg 2) cf. fichier exo1.jpg pour la version préemptive. cf. fichier exo1_non_preemptif.jpg pour la version non préemptive. Un ordonnancement non préemptif de ce jeu de tâche implique que des échéances soient manquées : un ordonnancement non préemptif est généralement moins efficace qu'un ordonnancement préemptif. 3) Le taux d'utilisation est égal à 1 mais les tâches sont harmoniques : le jeu de tâches est donc faisable dans ce cas. Pour l'ordonnancement : cf. fichier exo1_harmonique.jpg Attention : le test sur le taux d'utilisation avec RM est une condition suffisante mais non nécessaire. 4) On applique la formule page 17 du cours : TR1=30 ; TR2=3 ; TR3=5 Les temps de réponse doivent pouvoir se lire sur l'ordonnancement généré (cf. fichier exo1_harmonique.jpg) W_2_0 = C2 = 3 = Temps de réponse de T2 W_3_0 = C3 = 2 W_3_1 = C3 + plafond(W_3_0/P2)*C2 = 2 + plafond(2/5)*3 = 2 + 3 = 5 W_3_2 = C3 + plafond(W_3_1/P2)*C2 = 2 + plafond(5/5)*3 = 2 + 3 = 5 = Temps de réponse de T3 W_1_0 = C1 = 6 W_1_1 = C1 + plafond(W_1_0/P2)*C2 + plafond(W_1_0/P3)*C3 = 6 + plafond(6/5)*3 + plafond(6/10)*2 = 6 + 6 + 2 = 14 W_1_2 = C1 + plafond(W_1_1/P2)*C2 + plafond(W_1_1/P3)*C3 = 6 + plafond(14/5)*3 + plafond(14/10)*2 = 6 + 9 + 4 = 19 W_1_3 = C1 + plafond(W_1_2/P2)*C2 + plafond(W_1_2/P3)*C3 = 6 + plafond(19/5)*3 + plafond(19/10)*2 = 6 + 12 + 4 = 22 W_1_4 = C1 + plafond(W_1_3/P2)*C2 + plafond(W_1_3/P3)*C3 = 6 + plafond(22/5)*3 + plafond(22/10)*2 = 6 + 15 + 6 = 27 W_1_5 = C1 + plafond(W_1_4/P2)*C2 + plafond(W_1_4/P3)*C3 = 6 + plafond(27/5)*3 + plafond(27/10)*2 = 6 + 18 + 6 = 30 W_1_6 = C1 + plafond(W_1_5/P2)*C2 + plafond(W_1_5/P3)*C3 = 6 + plafond(30/5)*3 + plafond(30/10)*2 = 6 + 18 + 6 = 30 W_1_6 = W_1_5 => 30 = Temps de réponse de T1 Pour information, vous avez ci-dessous le détail du calcul pour l'exemple du transparent du cours en page 16 pour le jeu de taches composé comme suit : P1=7 ; C1=3; P2=12 ; C2=2 ; P3=20 ; C3=5 Tache T1: W_0_1 = C1 = 3 => temps de réponse de T1 Tache T2: W_0_2 = C2 = 2 W_1_2 = C2 + plafond (w_0_2 / P1 ) * C1 = 2 + plafond (2/7) * 3 = 5 = 5 W_2_2 = C2 + plafond (w_1_2 / P1 ) * C1 = 2 + plafond (5/7) * 3 = 5 on a W_1_2 = W_2_2 => temps de réponse T2 = 5 Tache T3: W_0_3 = C3 = 5 W_1_3 = C3 + plafond (w_0_3 / P1 ) * C1 + plafond (w_0_3 / P2 ) * C2 = 5 + plafond (5 / 7 ) * 3 + plafond (5 / 12 ) * 2 = 10 W_2_3 = C3 + plafond (w_1_3 / P1 ) * C1 + plafond (w_1_3 / P2 ) * C2 = 5 + plafond (10 / 7 ) * 3 + plafond (10 / 12 ) * 2 = 13 W_3_3 = C3 + plafond (w_2_3 / P1 ) * C1 + plafond (w_2_3 / P2 ) * C2 = 5 + plafond (13 / 7 ) * 3 + plafond (13 / 12 ) * 2 = 15 W_4_3 = C3 + plafond (w_3_3 / P1 ) * C1 + plafond (w_3_3 / P2 ) * C2 = 5 + plafond (15 / 7 ) * 3 + plafond (15 / 12 ) * 2 = 18 W_5_3 = C3 + plafond (w_4_3 / P1 ) * C1 + plafond (w_4_3 / P2 ) * C2 = 5 + plafond (18 / 7 ) * 3 + plafond (18 / 12 ) * 2 = 18 on a W_4_3 = W_5_3 => temps de réponse T3 = 18