Partie II : Gestion des processus Thème 1

Transcription

Partie II : Gestion des processus Thème 1
Faculté des Sciences Appliquées
MATH 213 : Systèmes d’Exploitation I
Année 2006-2007
TP : Séance 2
Partie II : Gestion des processus
Thème 1 : Quelques définitions
Question 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 ?
Question 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é ?
Question 3
De manière générale, de quels attributs principaux sont composés les processus (en tant
qu’entité d’exécution) ?
Question 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 ?
Question 5
Sous Windows 2000, Un thread a-t-il accès à toutes les ressources présentes sur la machine
physique ?
Question 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
Question 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 ?
Question 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
Question 3
A quel degré les algorithmes suivants favorisent-ils les processus courts ?
- FCFS
- SJF
- SJF (avec préemption)
- RR
Question 4
Quel est l'effet d'une augmentation du quantum de temps de traitement sur l'algorithme RR ?
Question 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é ?
Question 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 ?
Question 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 ?
Question 8
Soient les différents processus suivants :
Processus
Date d’arrivée
Temps de traitement
A
B
C
D
0
1.001
4.001
6.001
3
6
4
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)
Question 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
A
B
C
D
Date
0
2.001
2.001
4.001
Cycle
5
4
2
4
Priorité
4
2
6
3
Question 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
Question 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
MATH 213 : Systèmes d’Exploitation I
Année 2006-2007
TP : Séance 2 (Corrigés)
Partie II : Gestion des Processus
Thème I : Quelques définitions
Question 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é ?
Réponse
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.
Question 4
Sous Windows 2000, un thread a-t-il accès à toutes les ressources présentes sur la machine
physique?
Réponse
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.
Question 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
Question
A quel degré les algorithmes suivants favorisent-ils les processus courts ?
(FCFS, SJF, SJF (avec préemption), RR)
Réponse
- 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
Question
Quel est l'effet d'augmentation du quantum de temps de traitement sur l'algorithme RR ?
Réponse
Influence sur les temps d'attente moyens,… (pouvoir expliquer) + cas extrêmes.
Question
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é ?
Réponse
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.
Question
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
A
B
C
D
0
1.001
4.001
6.001
Temps de traitement
3
6
4
2
N.B. Les valeurs sont exprimées en unités de temps
Réponse
Algorithme FCFS
Temps moyen de rotation : 7.25 unités de temps
Temps d’attente :
A : 0 unité
B : 2 unités
C : 5 unités
D : 9 unités
Débit : 3.75 unités de temps par travail.
Agorithme SJF, sans préemption
Temps moyen de rotation : 6.75 unités de temps
Temps d’attente :
A : 0 unité
B : 2 unités
C : 7 unités
D : 3 unités
A
0
1
B
2
3
4
5
A
0
1
6
C
7
8
B
2
3
4
5
6
9 10 11 12 13 14 15
D
7
8
D
C
9 10 11 12 13 14 15
2
Débit : 3.75 unités de temps par travail.
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
Temps d’attente :
A : 0 unité
B : 2+6 = 8 unités
D
A
B
C
B
C : 0 unité
D : 2 unités
0 1 2 3 4 5 6 7 8 9 10 11 12 13
Débit : 3.75 unités de temps par travail.
Algorithme à tourniquet (2 unités de temps)
Temps moyen de rotation : 8.25 unités de temps
Temps d’attente :
A : 0+2 = 2 unités
B : 1+1+4 = 6 unités
C : 3+4 = 7 unités
D : 3 unités
Débit : 3.75 unités de temps par travail.
A
0
1
B
2
3
A
4
B
5
6
C
7
8
D
B
14 15
C
9 10 11 12 13 14 15
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
Temps d’attente :
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
Débit : 3.75 unités de temps par travail.
A
0
1
B A B C B C D B C D B C B
2
3
4
5
6
7
8
9 10 11 12 13 14 15
Question
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
Réponse
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.
Question
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

Documents pareils