ordonnancement uniprocesseur - Mathieu Delalandre`s Home Page
Transcription
ordonnancement uniprocesseur - Mathieu Delalandre`s Home Page
TD systèmes d’exploitation ORDONNANCEMENT UNIPROCESSEUR Il est recommandé d’utiliser un tableur pour réaliser les différents calculs. On rappelle que les supports sont disponibles à http://mathieu.delalandre.free.fr/teachings/operating1.html 1. Paramètre des processus et exécution Soit le diagramme d’occupation du processeur suivant, décrivant l’exécution du processus P. Les créneaux hauts correspondent aux cycles actifs (i.e. ou P est exécuté par le CPU). Considérant une date de réveil w0 = 1, indiquez les paramètres: capacité du processus, date de démarrage, date de fin, temps d’attente et temps de réponse. Donnez également sur l’intervalle de temps considéré (i.e. pour tout t) les valeurs de la capacité résiduelle C(t), du temps d’exécution T(t), du temps CPU ouvert E(t) et du temps d’attente WT(t). Indiquez finalement les différents « CPU Burst » sur ce chronogramme d’exécution en précisant leur nombre, positions, et durées. On considéra ici tout changement de contexte comme due à des interruptions ordonnanceur. 2. Algorithmes à base de priorités et optimaux 2.1. Algorithmes à priorités statiques / non-préemptifs Soit le tableau de tâches suivant: A B C D E r0 0 0 0 0 0 C 60 100 40 20 80 P 3 2 4 1 5 Donnez les diagrammes d’occupation du processeur pour les algorithmes d’ordonnancement FCFS, SJF non-préemptif (i.e. SPN) et « Priority Scheduling » non-préemptif. Dans le cas du FCFS, on considéra les id processus (A à E) comme ordre des processus dans la queue d’exploitation. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen pour chacun des algorithmes. 2.2. Algorithmes à priorités statiques / préemptifs Soit le tableau de tâches suivant: A B C r0 0 3 4 C 4 6 3 P 4 3 2 D E 8 9 5 2 5 1 Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement « Priority Scheduling » préemptif sur l’intervalle t [0-20]. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen. 2.3. Algorithmes à priorités dynamiques / non-préemptifs Soit le tableau de tâches suivant: r0 0 2 1 6 3 A B C D E C 4 2 6 2 3 Donner le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement HRRN sur l’intervalle t [0-17]. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen sur l’intervalle considéré. 2.4. Algorithmes à priorités dynamiques / préemptifs A partir du tableau de tâche donné précédemment en 2.2., donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement SJF préemptif (i.e SRT) sur l’intervalle t [0-20]. En cas d’égalité du critère d’ordonnancement, vous départagerez en appliquant la règle suivante: le processus en cours garde la main. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen. Soit le tableau de tâches suivant: A B C D r0 0 3 4 8 C ∝ ∝ ∝ ∝ P 3 5 4 2 Donner le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement « Dynamic Priority Scheduling » sur l’intervalle t [0-20]. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen sur l’intervalle considéré. 2.5. Prédiction temporelle On considère deux processus A, B au sein d’un système interactif, ou l’ordonnancement des tâches est géré par technique de prédiction temporelle via l’algorithme SRT (Shortest Remaining Time). Soit le tableau suivant des durées d’exécution CPU (i.e. burst time) relevées entre chaque changement de contexte pour A, B. Burst A B 0 1 2 3 15 21 26 24 21 15 13 26 Définissez les résultats de prédiction temporelle pour ces deux processus, sur les « burst » 0 à 3, considérant les paramètres suivants: T0 = 17 pour A, T0 = 18 pour B et α = 0.3 pour A, B. Considérant ensuite le tableau d’événements suivant, ou chaque événement correspond à une (ou des) transition(s) de processus de l’état « blocked » vers « ready/running » (i.e. le (ou les) processus concerné(s) quitte(nt) la queue de blocage vers la queue d’exploitation), définissez la séquence d’exécution en précisant les informations suivantes: états des queues de blocage et d’exploitation, processus en cours d’exécution, valeur(s) de prédiction des processus en état « ready/running ». Pour l’établissement de cette séquence vous appliquerez la règle suivante: à chaque événement, les processus sont concurrents pour l’accès CPU (e.g. si B relâché, A est en cours d’exécution et vice-et-versa). 1 Evénements B 2 A 3 B 4 5 6 A A, B A 7 B 3. Algorithmes de gestion de temps partagé 3.1. Cas sans combinaison de priorités Soit le tableau de tâches suivant: A B C D r0 0 0 0 0 C 170 80 50 200 Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement « Round Robin » avec un quantum q = 40. On considéra ici l’ordre initial du tourniquet comme A>B>C>D. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen. Soit le tableau de tâches suivant: A B C D r0 2 0 3 6 C 4 4 1 2 Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement « Guaranteed scheduling » sur l’intervalle t = [0-11]. En cas d’égalité du critère d’ordonnancement, vous départagerez en appliquant la règle suivante: les id des processus départagent avec A>B>C>D. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen. 3.2. Cas avec combinaison de priorités Soit le tableau de tâches suivant: A r0 0 C ∝ g 1 P 30 B C D 0 0 0 ∝ ∝ ∝ 2 1 1 45 30 30 Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement « Fair-share scheduling », considérant un quantum q = 40 pour une durée de 7 intervalles t = [0-280]. Pour cet ordonnancement, on considéra des poids égaux pour les groupes 1 et 2, w1= w2=0.5. Au sein du groupe 1, à priorités égales vous ordonnancerez les tâches selon leur id avec A>C>D. En cas d’égalité du critère d’ordonnancement entre tâches des groupes 1 et 2, vous départagerez en appliquant la règle suivante: le plus petit GCPU(t) départage. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen. Soit le tableau de tâches suivant: A B C D r0 44 22 0 76 C 40 96 36 28 On considère le cas d’un ordonnancement de type « Multilevel feedback queue scheduling », tel que le quantum de « feedback » soit défini en 24+i, avec i le niveau de la queue d’exploitation. Ce quantum est ici est relevé de la valeur 24 de manière à optimiser les performances globales du système et réduire les changements de contexte intempestifs. On adapte ainsi les valeurs de quantum aux capacités observées des processus. Donnez le diagramme d’occupation du processeur sur l’intervalle t = [0-200]. Vous pourrez dans un premier temps préciser les valeurs d’exécution maximums sur chacun des niveaux, et le nombre de niveaux nécessaires pour dérouler cet exemple. Indiquez ensuite sur l’intervalle t = [0-200] les processus en court d’exécution sur chaque cycle, les durées des cycles d’exécution entre chaque préemption et les états des queues d’exploitation sur chacun des niveaux à chacun de ces cycles.