TD 3 1 Politiques d`ordonnancement 2 Efficacité avec la politique
Transcription
TD 3 1 Politiques d`ordonnancement 2 Efficacité avec la politique
Institut Galilée Licence 2 Systèmes d’exploitation et Réseaux TD 3 Ordonnancement 1 Politiques d’ordonnancement L’objectif de l’exercice est de comparer 4 politiques d’ordonnancement différentes : FIFO (First In-First Out), SJF (ou PCTE, Shortest Job First), SRTF (ou PCTER, Shortest Remaining Time First) et RR (ou Tourniquet, Round Robin). Afin de comparer ces différentes politiques, nous utiliserons tout au long de l’exercice la même description de processus s’exécutant sur le système (cf. tableau ci-dessous). Précisions : Ces processus ne font pas d’entrées-sorties et leur priorité ne change pas en cours d’exécution. On ne tiendra pas compte du temps de commutation des processus. Les processus sont exécutés sur le même processeur. Numéro de processus 1 2 3 4 5 Date de début d’exécution 0 2 5 6 7 Durée supposée d’exécution 8 2 5 3 1 Pour chacune des politiques FIFO, SJF, SRTF, RR (avec un quantum de 2 unités de temps) : 1. Donnez le diagramme de Gantt de l’exécution des processus. 2. Calculez le temps moyen de traitement et le temps moyen d’attente de cette politique. 3. Calculez le temps moyen de réponse. Que constatez-vous ? 4. Que se passe-t-il lorsque 2 processeurs sont disponibles ? et avec 3 ? 2 Efficacité avec la politique RR Le rendement d’un processeur est défini comme le rapport entre le temps pendant lequel l’unité centrale exécute les processus et le temps total de traitement. Soit un système sur lequel les processus s’exécutent en moyenne pendant un temps de T secondes. La commutation de processus nécessite C secondes. Pour un ordonnancement RR avec un quantum de Q secondes, donnez la formule qui donne le rendement R du processeur quand : 1. Q > T 2. C < Q < T 3. Q = C 4. Q tend vers +1 (et donnez une interprétation) 5. Q tend vers 0 (et donnez une interprétation) 3 Politique multiple L’ordonnancement dans les systèmes actuels combine plusieurs classes d’ordonnancement utilisées selon le type de processus qui s’exécute : — politique FIFO pour les tâches très prioritaires et fortement contraintes (temps réel). — politique RR pour les tâches système. — politique RR à multiniveaux pour les tâches utilisateur. 1 3.1 Round Robin à multiniveaux On trouvera ci-dessous un algorithme pour la politique RR à multiniveaux. On suppose n files notées F0 , F1 , . . ., Fn où les processus sont rangés (un processus n’apparaı̂t que dans une seule file). Pour chaque processus P , P.f ile est le numéro de la file où se trouve P . Pour chaque file Fi , P op(Fi ) retourne le premier processus de la file Fi et l’enlève de la file. L’expression Fi ← P met en queue de file Fi le processus P . Ces files ont des priorités décroissantes (i.e. on exécute les processus présents dans la file F0 avant ceux de la file F1 , etc.). La fonction Schedule renvoie le processus élu (0 s’il n’y a pas de processus en attente). En cas de changement de processus (à cause d’une demande d’entrée-sortie ou d’une fin de quantum), si le processus stoppé n’a pas terminé ou si un nouveau processus est créé, la procédure Insert est appelée. procedure Insert(P) if P is new then F0 ← P P.f ile ← 0 else q ← P.f ile j ← min(n − 1, q + 1) Fj ← P P.f ile ← j end if end procedure function Schedule i←0 while i < n do if Size(Fi ) > 0 then elu ← P op(Fi ) return elu end if i←i+1 end while return 0 end function 1. Montrer par un exemple que cet algorithme peut créer une situation de famine. 2. Modifier l’algorithme pour éviter le problème de famine. 3.2 Exemple avec politique mixte On considère maintenant le système complet d’ordonnancement avec une file temps réel (RT, mode FIFO), une file de processus système (Sys, méthode RR avec quantum 3), une file de processus utilisateur (User, méthode RR avec quantum 2). L’élection d’un processus suit un protocole simple. Pour chaque élection, l’ordonnanceur consulte la file RT. Si des processus sont en attente dans cette file, il les exécute tous en tenant compte de la politique de la file. Si aucun processus n’est en attente dans cette file, l’ordonnanceur passe à la file Sys et effectue le même traitement. Si aucun processus n’est présent dans la file Sys, il effectue le même traitement avec la file User. Cette opération s’effectue à chaque élection. Processus 1 2 3 4 5 6 7 8 9 10 Type RT Sys User RT RT Sys Sys User RT Sys Date de début d’exécution 0 0 2 3 4 9 10 15 20 22 Durée supposée d’exécution 2 3 6 1 2 4 3 5 3 3 Donnez le diagramme de Gantt de l’exécution des processus en utilisant cette politique mixte. 2