Architecture des Ordinateurs et Systèmes d'Exploitation Ex 1. Algorithmes d'ordonnancement sans réquisition 1.a "Premier arrivé, premier servi" (FIFO) Processus Temps n° d'exécution 1 30 2 3 3 6 4 4 Les processus arrivent dans l'ordre 2, 3, 4, 1. Le diagramme de Gantt est : 3 P2 9 13 P3 P4 43 P1 et tme = 1/4 [ te(P2) + te(P3) + te (P4) + te(P1) ] = 1/4 (3+9+13+43) = 17 1.b "Plus court temps d'exécution d'abord" (PCTE) Ordre PCTE = 2,4,3,1 3 P2 7 P4 13 P3 43 P1 et tme = 1/4 [ te(P2) + te(P4) + te (P3) + te(P1) ] = 1/4 (3+7+13+43) = 16,25 Cet algorithme est optimal si les processus arrivent tous à t=0. Donnez un exemple où l'algorithme n'est plus optimal. Processus n° Date de soumission Temps d'exécution 1 0 5 2 0 6 3 6 2 En utilisant PCTE, à t=0, il faut choisir P1, à t=5 il reste juste P2 et ensuite on exécute P3 5 11 13 P1 P2 P3 et tme = 1/3 [ te(P1) + te(P2) + te(P3) ] = 1/3 (5+11+(13-6)) = 7,6 On voit bien que P3 a attendu un certain temps avant de s'exécuter, ce qui ne serait pas arrivé si P2 avait été choisi en premier : P2, P3, P1 : 6 P2 8 P3 13 P1 et tme = 1/3 [ te(P2) + te(P3) + te(P1) ] = 1/3 (6+(8-6)+13) = 7 < 7,6 ! Ex 2. Algorithmes d'ordonnancement avec réquisition 2.a PTCE avec réquisition (PTCER) Lorsque un processus arrive dans la file d'attente, on exécute celui qui se terminera le plus vite (en remettant éventuellement en attente celui qui était entrain de s'exécuter) Exemple : Processus n° Date de Temps d'exécution soumission 1 0 8 2 1 6 3 2 9 4 3 2 Donner le diagramme de Gantt et le tme pour le tableau ci-dessus. 1 P1 3 5 P2 9 P4 16 P2 25 P1 P3 et tme = 1/4 [ te(P1) + te(P2) + te(P3) + te(P4) ] = 1/4 [ 16 + (9-1) + (25-2) + (5-3)] = 12,25 2.a Le tourniquet Chaque processus reçoit un temps de calcul (quantum) dans l'ordre des demandes. Tout nouveau processus demandeur entre en fin de liste d'attente. Tout processus qui a épuisé son quantum se retrouve aussi en fin de liste. Donner le diagramme de Gantt et le tme en utilisant l'algorithme du tourniquet (quantum=2) avec l'ex. 2a. 2 P1 4 P2 6 P3 8 P1 10 P4 12 P2 14 P3 16 P1 18 P2 20 P3 22 P1 24 25 P3 P3 et tme = 1/4 [ te(P1) + te(P2) + te(P3) + te(P4) ] = 1/4 [ 22 + (18-1) + (25-2) + (10-3)] = 17,25 2.b Tourniquet + priorités Chaque processus reçoit un niveau de priorité. On construit autant de tourniquets que de niveaux de difficulté. Donner(et comparer) le diagramme de Gantt et le tme en utilisant l'algorithme du tourniquet (quantum=1) puis l'algorithme du tourniquet (priorités 60%, 30%, 10%) avec priorité pour le problème suivant : Processus n° Date de Temps soumission Priorité d'exécution 1 0 7 0 2 0 4 2 3 1 6 1 4 1 1 2 5 1 2 0 6 2 4 1 7 2 1 1 Table d'allocation CPU : 0 X X 1 2 X X X X X X X X Ordre de passage : 1 5 3 1 5 6 1 1 7 2 1 1 3 1 6 3 4 6 3 6 2 3 3 2 2 et tme = 1/7 [ 14 + 25 + (23-1) + (17-1) + (5-1) + (20-2) + (9-2)] = 15,2