Faculté des Sciences Appliquées Année 2006-2007 MATH 213 : Systèmes d Exploitation I TP : Séance 2 Partie II : Gestion des processus Thème 1 : Quelques définitions 1 Quels sont les différents états dans lesquels peuvent se retrouver des processus d un point de vue général? Comment cet état évolue-t-il dans le temps? Toutes les transitions d états sontelles possibles? 2 Sur un système doté de n CPU, quel est le nombre maximum de processus pouvant se trouver dans les états prêt, exécution et bloqué? 3 De manière générale, de quels attributs principaux sont composés les processus (en tant qu entité d exécution)? 4 Qu est ce qu un thread de manière générale? Quelle est la motivation sous-jacente à leur définition? Qu en est-il dans le contexte de Windows 2000? 5 Sous Windows 2000, Un thread a-t-il accès à toutes les ressources présentes sur la machine physique? 6 Lorsqu on regarde le serveur web multithreads. Si la seule manière de lire un fichier est d employer l appel système de lecture normal (bloquant), faut-il utiliser des threads utilisateur ou des threads noyau pour le serveur Web. Pourquoi? Thème 2 : Ordonnancement 1 Quels sont les différents algorithmes d ordonnancement des entités d exécution? Donnezen les définitions et citez parmi ceux-ci lesquels sont préemptifs? 2 Un algorithme d ordonnancement d exécution détermine un ordre d exécution des processus qu il ordonnance. Si n processus doivent être ordonnancés sur une unité centrale, combien d ordonnancements différents peut-on avoir? Donnez une formule en fonction de n. 1
3 A quel degré les algorithmes suivants favorisent-ils les processus courts? - FCFS - SJF - SJF (avec préemption) - RR 4 Quel est l'effet d'une augmentation du quantum de temps de traitement sur l'algorithme RR? 5 Dans quelle mesure peut-on affirmer que l ordonnancement du travail le plus court d abord est une forme particulière de l ordonnancement avec priorité? 6 Quel est l avantage d avoir des durées de quantums de temps différentes sur les différents niveaux d un système à files d attente multiniveau? 7 Supposez qu un algorithme d ordonnancement (au niveau de l ordonnancement d exécution à court terme) favorise les processus qui ont le moins utilisé le temps d unité centrale dans un passé récent. Pourquoi cet algorithme favorise-t-il des programmes tributaires des entrées/sorties et ne laissera cependant pas les programmes tributaires de l unité centrale en permanence sans ressources? 8 Soient les différents processus suivants : Processus Date d arrivée Temps de traitement A 0 3 B 1.001 6 C 4.001 4 D 6.001 2 Donnez le diagramme de Gantt pour l exécution de ces différents processus en utilisant successivement les algorithmes FCFS, SJF (sans préemption), SJF (avec préemption), l algorithme à tourniquet (quantum = 2 unités de temps et quantum = 1 unité de temps). Pour chaque cas étudié, calculez : - Temps de rotation de chaque processus et le temps de rotation moyen - Temps d'attente de chaque processus et le temps d'attente moyen - Rendement (throughput) 9 Pour les processus du tableau suivant, dessinez un schéma illustrant leur exécution, en utilisant l ordonnancement avec priorités. Un nombre de priorité élevé correspond à une 2
priorité plus importante. Réalisez l exercice dans une approche avec préemption et sans préemption. Calculez ensuite le temps de rotation de chaque processus. Processus Date Cycle Priorité A 0 5 4 B 2.001 4 2 C 2.001 2 6 D 4.001 4 3 10 Sur un système utilisant l ordonnancement à tourniquet, s représente le temps nécessaire pour réaliser une commutation de processus, q, le quantum de temps à tourniquet, et r, le temps moyen d exécution d un processus. Donnez une formule pour connaître l efficacité du CPU en fonction de ce qui suit : - q = - q > r - s < q < r - s = q < r - q est proche de 0 11 (examen août 2005) Cinq jobs sont en attente d exécution. Leurs délais d exécution sont respectivement de 9, 6, 3, 5 et x minutes. Dans quel ordre faut-il les exécuter pour réduire le temps de réponse moyen? Votre réponse dépendra de x. 3
Faculté des Sciences Appliquées Année 2006-2007 MATH 213 : Systèmes d Exploitation I TP : Séance 2 (Corrigés) Partie II : Gestion des Processus Thème I : Quelques définitions 2 Sur un système doté de n CPU, quel est le nombre maximum de processus pouvant se trouver dans les états prêt, exécution et bloqué? Le nombre de processus pouvant se trouver dans les états prêt et bloqué est illimité (dans la pratique, les limites de gestion de la mémoire donnent une finitude à ce nombre). En revanche, n processus tout au plus, peuvent se trouver en état d exécution puisqu un processus dans un tel état doit être attribué à un CPU et qu il n existe que n CPU. 4 Sous Windows 2000, un thread a-t-il accès à toutes les ressources présentes sur la machine physique? Non. Un thread n existe qu au sein d un processus : il est toujours attaché à un processus particulier, à un contexte particulier. Il n a pas de sens en dehors d un processus. Il n aura donc accès qu'aux ressources présentes et allouées au processus parent. Il aura accès aux ressources définies dans le contexte auquel il appartient. Les threads ne sont qu'une manière de redéfinir et de partager le travail normalement associé à un processus. 6 Un thread worker se bloque lorsqu il doit lire une page Web sur le disque. Si l on fait appel aux threads utilisateur, cette action bloque tout le processus, détruisant l intérêt du multithreading. Il est donc essentiel d exploiter les threads noyau pour permettre à certains threads de se bloquer sans affecter les autres. Thème 2 : Ordonnancement A quel degré les algorithmes suivants favorisent-ils les processus courts? (FCFS, SJF, SJF (avec préemption), RR) - L algorithme FCFS est relativement peu adapté aux travaux courts. Ces derniers, quand ils suivent de longs travaux, doivent attendre que les longs travaux libèrent le CPU. - Cet algorithme favorise clairement les travaux courts par rapport aux travaux longs. D ailleurs on pourrait voir apparaître le phénomène de famine. - Il favorise les travaux courts par rapport au travail en cours, puisqu il interrompt un travail plus long en cours d exécution sur le CPU. - Cet algorithme est neutre vis-à-vis des travaux courts, car il traite tous les travaux de la même manière. 1
Quel est l'effet d'augmentation du quantum de temps de traitement sur l'algorithme RR? Influence sur les temps d'attente moyens, (pouvoir expliquer) + cas extrêmes. Dans quelle mesure peut-on affirmer que l ordonnancement du travail le plus court d abord est une forme particulière de l ordonnancement avec priorité? Le travail le plus court d abord est un ordonnancement avec priorités où le temps de prochain traitement est défini comme numéro de priorité. En l occurrence, le processus au numéro de priorité le plus petit a la priorité la plus élevée. Soient les différents processus ci-dessous. Donnez le diagramme de Gantt pour l exécution de ces différents processus en utilisant successivement les algorithmes FCFS, SJF (sans préemption), SJF (avec préemption), l algorithme à tourniquet (quantum = 2 unités de temps et quantum = 1 unité de temps). Pour chaque cas étudié, calculez : Temps de rotation de chaque processus et le temps de rotation moyen ; Temps d'attente de chaque processus et le temps d'attente moyen ; Rendement (throughput) Processus Date d arrivée Temps de traitement A 0 3 B 1.001 6 C 4.001 4 D 6.001 2 N.B. Les valeurs sont exprimées en unités de temps Algorithme FCFS Temps moyen de rotation : 7.25 unités de temps A : 0 unité B : 2 unités C : 5 unités D : 9 unités Agorithme SJF, sans préemption Temps moyen de rotation : 6.75 unités de temps A : 0 unité B : 2 unités C : 7 unités D : 3 unités A B C D A B D C 2
Algorithme SJF, avec préemption avec hypothèse de FCFS en cas d ex-aequo pour le choix Temps moyen de rotation : 6.25 unités de temps A : 0 unité B : 2+6 = 8 unités C : 0 unité A B C D B D : 2 unités Algorithme à tourniquet (2 unités de temps) Temps moyen de rotation : 8.25 unités de temps A : 0+2 = 2 unités B : 1+1+4 = 6 unités C : 3+4 = 7 unités D : 3 unités A B A B C D B C Attention : un processus arrivé se place en fin de la liste qui permet de connaître l ordre de traitement. Il faut bien maintenir sa liste et son pointeur pour connaître le suivant. Algorithme à tourniquet (1 unité de temps) Temps moyen de rotation : 8.50 unités de temps A : 0+1 = 1 unité B : 1+1+1+2+2+1 = 8 unités C : 1+2+2+1 = 6 unités D : 1+2 = 3 unités A B A B C B C D B C D B C B Sur un système utilisant l ordonnancement à tourniquet, s représente le temps nécessaire pour réaliser une commutation de processus, q, le quantum de temps à tourniquet, et r, le temps moyen d exécution d un processus. Donnez une formule pour connaître l efficacité du CPU en fonction de ce qui suit : - q = - q > r - s < q < r - s = q < r - q est proche de 0 3
- L algorithme correspond en réalité à l algorithme FCFS. Le système traite en moyenne 1 processus en r unités de temps auxquelles il faut rajouter s unités de temps de commutation, soit une efficacité : r / (r+s). - En moyenne, chaque processus aura terminé son exécution avant la fin d un quanta de temps. L efficacité reste donc r / (r+s). - Le nombre de commutations requises est r/q, chacune prenant s unités de temps. Le système traite donc en moyenne 1 processus en r unités de temps auxquelles il faut rajouter s x r/q unités de temps de commutation, soit une efficaicté : r / (r+s x r/q ). - On voit donc dans se cas que l efficacité est de ½. - En utilisant la même équation, on trouve que l efficacité est de 0. Cinq jobs sont en attente d exécution. Leurs délais d exécution sont respectivement de 9, 6, 3, 5 et x minutes. Dans quel ordre faut-il les exécuter pour réduire le temps de réponse moyen? Votre réponse dépendra de X : En commençant toujours par le job le plus court pour minimiser le temps de réponse moyen : 0 < X 3 : X, 3, 5, 6, 9. 3 < X 5 : 3, X, 5, 6, 9. 5 < X 6 : 3, 5, X, 6, 9. 6 < X 9 : 3, 5, 6, X, 9. X > 9 : 3, 5, 6, 9, X. 4