SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Série d’exercices #6
Solution
20 février 2019
Série d’exercices #6 20 février 2019 1 / 8
6.1 Prémption
Explique la différence entre ordonnancement prémptif et non-préemptif.
Série d’exercices #6 20 février 2019 2 / 8
6.1 Prémption (Solution)
Explique la différence entre ordonnancement prémptif et non-préemptif.
Solution
Dans un ordonnancement préemptif, le système a toujours le contrôle et
peut arrêter «à tout moment» un processus pour donner du temps à un
autre processus alors que dans un système non-préemptif, il doit espérer le
bon comportement des programmes qui doivent redonner le contrôle au
moment qui leur semble oppurtun.
Les systèmes préemptif sont utiles dans les systêmes mult-usagers et
interractifs.
Les ordonnanceurs non prémptifs se voient particulièrement utilisés dans
les systêmes temps réels où les contraintes de temps de réponses ne
peuvent pas être assurées par un ordonnanceur préemptif.
Série d’exercices #6 20 février 2019 2 / 8
6.2 Simulation
Soit les tache suivante :
Tâche Burst time Priorité
P1 2 2
P2 1 1
P3 8 4
P4 4 2
P5 5 3
Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué.
- Illustrer dans des tableaux de Gantt l’exécution qui en découle dans le
cas d’un ordonnancement de type RR, SJF, FCFS, et priorité
non-préemptif.
- Pour chacun des cas, calculer le waiting time moyen et le turnaround
time moyen.
Série d’exercices #6 20 février 2019 3 / 8
6.2 Simulation (Solution)
Soit les tache suivante :
Tâche Burst time Priorité
P1 2 2
P2 1 1
P3 8 4
P4 4 2
P5 5 3
Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué.
Solution
RR (quantum=3)
P1 P2 P3 P4 P5 P3 P4 P5 P3
Série d’exercices #6 20 février 2019 3 / 8
6.2 Simulation (Solution)
Soit les tache suivante :
Tâche Burst time Priorité
P1 2 2
P2 1 1
P3 8 4
P4 4 2
P5 5 3
Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué.
Solution
SJF
P2 P1 P4 P5 P3
Série d’exercices #6 20 février 2019 3 / 8
6.2 Simulation (Solution)
Soit les tache suivante :
Tâche Burst time Priorité
P1 2 2
P2 1 1
P3 8 4
P4 4 2
P5 5 3
Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué.
Solution
FCFS
P1 P2 P3 P4 P5
Série d’exercices #6 20 février 2019 3 / 8
6.2 Simulation (Solution)
Soit les tache suivante :
Tâche Burst time Priorité
P1 2 2
P2 1 1
P3 8 4
P4 4 2
P5 5 3
Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué.
Solution
Priorité non-préemptive
P2 P1 P4 P5 P3
Série d’exercices #6 20 février 2019 3 / 8
6.3 Durée du quantum
Donner les avantages et inconvénients d’avoir un quantum plus court ou
plus long. Expliquer quel est l’avantage d’avoir des quantums différents
pour les différentes queues d’un ordonnanceur à plusieurs niveaux.
Série d’exercices #6 20 février 2019 4 / 8
6.3 Durée du quantum (Solution)
Donner les avantages et inconvénients d’avoir un quantum plus court ou
plus long. Expliquer quel est l’avantage d’avoir des quantums différents
pour les différentes queues d’un ordonnanceur à plusieurs niveaux.
Solution
Plus court : Pratique pour les applications interactive qui n’utilise
généralement pas complètement leur quantum (petit burst). Entraine
beaucoup de changement de contexte.
Plus long : Pour les application demandant beaucoup de temps
processeur sans interruption. Un quantum plus long permet d’éviter des
changements de contexte. Tend vers FCFS pour les processus qui prennent
moins de temps que le quantum.
Série d’exercices #6 20 février 2019 4 / 8
6.4 RR multiple
Soit une variante de RR dans laquelle les entrées dans la queue des
processus prêts à l’exécution sont des pointeurs vers des PCBs :
1 Quel serait l’effet de placer deux pointers vers le même PCB dans la
queue ?
2 Quels seraient les avantages et les incovénients de cet usage ?
3 Comment modifier l’algorithme du RR de base de manière à obtenir le
même résultat sans avoir à placer plusieurs copie du même pointeur.
Série d’exercices #6 20 février 2019 5 / 8
6.4 RR multiple (Solution)
Soit une variante de RR dans laquelle les entrées dans la queue des
processus prêts à l’exécution sont des pointeurs vers des PCBs :
1 Quel serait l’effet de placer deux pointers vers le même PCB dans la
queue ?
On double l’exécution du processus, ce qui revient à augmenter la
priorité du processus.
2 Quels seraient les avantages et les incovénients de cet usage ?
3 Comment modifier l’algorithme du RR de base de manière à obtenir le
même résultat sans avoir à placer plusieurs copie du même pointeur.
Série d’exercices #6 20 février 2019 5 / 8
6.4 RR multiple (Solution)
Soit une variante de RR dans laquelle les entrées dans la queue des
processus prêts à l’exécution sont des pointeurs vers des PCBs :
1 Quel serait l’effet de placer deux pointers vers le même PCB dans la
queue ?
On double l’exécution du processus, ce qui revient à augmenter la
priorité du processus.
2 Quels seraient les avantages et les incovénients de cet usage ?
Certains processus peuvent alors obtenir plus de temps selon leur
priorité. Affecte négativement les processus moins prioritaire.
L’ordonnanceur n’est plus strictement «fair» (Mais bon, c’est
peut-être l’effet désiré).
3 Comment modifier l’algorithme du RR de base de manière à obtenir le
même résultat sans avoir à placer plusieurs copie du même pointeur.
Série d’exercices #6 20 février 2019 5 / 8
6.4 RR multiple (Solution)
Soit une variante de RR dans laquelle les entrées dans la queue des
processus prêts à l’exécution sont des pointeurs vers des PCBs :
1 Quel serait l’effet de placer deux pointers vers le même PCB dans la
queue ?
On double l’exécution du processus, ce qui revient à augmenter la
priorité du processus.
2 Quels seraient les avantages et les incovénients de cet usage ?
Certains processus peuvent alors obtenir plus de temps selon leur
priorité. Affecte négativement les processus moins prioritaire.
L’ordonnanceur n’est plus strictement «fair» (Mais bon, c’est
peut-être l’effet désiré).
3 Comment modifier l’algorithme du RR de base de manière à obtenir le
même résultat sans avoir à placer plusieurs copie du même pointeur.
Allouer un temps de quantum en fonction de la priorité et donc
permettre plusieurs temps de quantum pour un RR.
Série d’exercices #6 20 février 2019 5 / 8
6.5 Quantums
Soit un système avec 10 tâches I/O-bound et une tâche qui n’utilise pas le
périphériques (et donc CPU-bound). Chaque tâche I/O-bound lance une
opération d’entrée sortie après chaque milliseconde de calcul qui prend
10ms pour se terminer. Soit un coùt de 0.1ms pour chaque pour chaque
changement de contexte. Si on présume que toutes les tâches s’exécutent
indéfiniment, décrire l’utilisation du CPU dans le cas d’un ordonnancement
de type round-robin :
1 Avec un quantum de 1ms.
2 Avec un quantum de 10ms.
Série d’exercices #6 20 février 2019 6 / 8
6.5 Quantums (Solution)
Soit un système avec 10 tâches I/O-bound et une tâche qui n’utilise pas le
périphériques (et donc CPU-bound). Chaque tâche I/O-bound lance une
opération d’entrée sortie après chaque milliseconde de calcul qui prend
10ms pour se terminer. Soit un coùt de 0.1ms pour chaque pour chaque
changement de contexte. Si on présume que toutes les tâches s’exécutent
indéfiniment, décrire l’utilisation du CPU dans le cas d’un ordonnancement
de type round-robin :
1 Avec un quantum de 1ms. Il y a 11 tâches qui vont tous maximiser un
quantum de temps.
1/1.1 ∗ 100 = 91
2 Avec un quantum de 10ms.
Série d’exercices #6 20 février 2019 6 / 8
6.5 Quantums (Solution)
Soit un système avec 10 tâches I/O-bound et une tâche qui n’utilise pas le
périphériques (et donc CPU-bound). Chaque tâche I/O-bound lance une
opération d’entrée sortie après chaque milliseconde de calcul qui prend
10ms pour se terminer. Soit un coùt de 0.1ms pour chaque pour chaque
changement de contexte. Si on présume que toutes les tâches s’exécutent
indéfiniment, décrire l’utilisation du CPU dans le cas d’un ordonnancement
de type round-robin :
1 Avec un quantum de 1ms. Il y a 11 tâches qui vont tous maximiser un
quantum de temps.
1/1.1 ∗ 100 = 91
2 Avec un quantum de 10ms. Il y a 10 I/O-bound qui arrêtent après 1
ms et une tâches CPU-bound qui utilise tout le quantum de temps.
10 ∗ 1 + 10
10 ∗ 1.1 + 10.1
∗ 100 = 94
Série d’exercices #6 20 février 2019 6 / 8
6.6 Multiple niveaux
Soit un algorithme de queues à niveaux multiples, où un processus passe à
la queue de priorié supérieure s’il relâche le CPU avant la fin de sont
quantum et passe dans la queue de priorité inférieure dans le cas inverse.
Quels genre de comportement peut-on attendre d’un tel algorithme, en
présence de processus variés, certains utilise beaucoup le CPU d’autres
seulement les périphériques, d’autres un mélange des deux ?
Série d’exercices #6 20 février 2019 7 / 8
6.6 Multiple niveaux (Solution)
Soit un algorithme de queues à niveaux multiples, où un processus passe à
la queue de priorié supérieure s’il relâche le CPU avant la fin de sont
quantum et passe dans la queue de priorité inférieure dans le cas inverse.
Quels genre de comportement peut-on attendre d’un tel algorithme, en
présence de processus variés, certains utilise beaucoup le CPU d’autres
seulement les périphériques, d’autres un mélange des deux ?
Solution
Les processus CPU-bound auront tendances à se retrouver dans les files de
basse priorité alors que ceux I/O-bound se retrouverons dans les files de
priorité élevée. Les autres processus se retrouveront dans les files de
priorité moyenne.
Série d’exercices #6 20 février 2019 7 / 8
6.7 Priorités dynamiques
Soit un algorithme d’ordonnancement préemptif basé sur des priorités
dynamiques. Quand un processus est en attente du CPU, sa priorité
augmente à un rythme α ; quand il est en cours d’exécution, sa priorité
augmente à un rythme β. Tous les processus commencent avec une
priorité de 0. Les paramètres α et β peuvent être choisis pour obtenir
différents résultats.
1 Quel algorithme obtient-on si β > α > 0 ?
2 Quel algorithme obtient-on si α < β < 0 ?
Série d’exercices #6 20 février 2019 8 / 8
6.7 Priorités dynamiques (Solution)
Soit un algorithme d’ordonnancement préemptif basé sur des priorités
dynamiques. Quand un processus est en attente du CPU, sa priorité
augmente à un rythme α ; quand il est en cours d’exécution, sa priorité
augmente à un rythme β. Tous les processus commencent avec une
priorité de 0. Les paramètres α et β peuvent être choisis pour obtenir
différents résultats.
1 Quel algorithme obtient-on si β > α > 0 ? FCFS
2 Quel algorithme obtient-on si α < β < 0 ?
Série d’exercices #6 20 février 2019 8 / 8
6.7 Priorités dynamiques (Solution)
Soit un algorithme d’ordonnancement préemptif basé sur des priorités
dynamiques. Quand un processus est en attente du CPU, sa priorité
augmente à un rythme α ; quand il est en cours d’exécution, sa priorité
augmente à un rythme β. Tous les processus commencent avec une
priorité de 0. Les paramètres α et β peuvent être choisis pour obtenir
différents résultats.
1 Quel algorithme obtient-on si β > α > 0 ? FCFS
2 Quel algorithme obtient-on si α < β < 0 ? LIFO
Série d’exercices #6 20 février 2019 8 / 8

Contenu connexe

Similaire à ex6_solution.pdf

ch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdfch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdfFadouaBouafifSamoud
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfSoumayaMabrouk2
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreelyoussef essakhi
 
cours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFA
cours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFAcours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFA
cours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFAmelianikholoud
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfInes Ben Hassine
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - IntroductionOlivier ETIENNE
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Elapse Technologies
 
Guide tests fonctionnels
Guide tests fonctionnelsGuide tests fonctionnels
Guide tests fonctionnelscvcby
 
ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0Bruno Boucard
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1Christophe Rochefolle
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc Bojoly
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfMbarkiIsraa
 
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?Benoit Fillon
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSECAM Brussels Engineering School
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
rt-intro.pdf
rt-intro.pdfrt-intro.pdf
rt-intro.pdfSaid Ech
 

Similaire à ex6_solution.pdf (20)

ch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdfch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdf
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 
cours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFA
cours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFAcours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFA
cours3 - Daa.pptx F6ESQGHYQTDFTYAFYTFTYZFA
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
 
STR-2.pdf
STR-2.pdfSTR-2.pdf
STR-2.pdf
 
Cours s epart2
Cours s epart2Cours s epart2
Cours s epart2
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29
 
Guide tests fonctionnels
Guide tests fonctionnelsGuide tests fonctionnels
Guide tests fonctionnels
 
ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
 
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
 
Gpao 6 - Ordonnancement
Gpao 6 - OrdonnancementGpao 6 - Ordonnancement
Gpao 6 - Ordonnancement
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Ladder
LadderLadder
Ladder
 
rt-intro.pdf
rt-intro.pdfrt-intro.pdf
rt-intro.pdf
 

ex6_solution.pdf

  • 1. Série d’exercices #6 Solution 20 février 2019 Série d’exercices #6 20 février 2019 1 / 8
  • 2. 6.1 Prémption Explique la différence entre ordonnancement prémptif et non-préemptif. Série d’exercices #6 20 février 2019 2 / 8
  • 3. 6.1 Prémption (Solution) Explique la différence entre ordonnancement prémptif et non-préemptif. Solution Dans un ordonnancement préemptif, le système a toujours le contrôle et peut arrêter «à tout moment» un processus pour donner du temps à un autre processus alors que dans un système non-préemptif, il doit espérer le bon comportement des programmes qui doivent redonner le contrôle au moment qui leur semble oppurtun. Les systèmes préemptif sont utiles dans les systêmes mult-usagers et interractifs. Les ordonnanceurs non prémptifs se voient particulièrement utilisés dans les systêmes temps réels où les contraintes de temps de réponses ne peuvent pas être assurées par un ordonnanceur préemptif. Série d’exercices #6 20 février 2019 2 / 8
  • 4. 6.2 Simulation Soit les tache suivante : Tâche Burst time Priorité P1 2 2 P2 1 1 P3 8 4 P4 4 2 P5 5 3 Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué. - Illustrer dans des tableaux de Gantt l’exécution qui en découle dans le cas d’un ordonnancement de type RR, SJF, FCFS, et priorité non-préemptif. - Pour chacun des cas, calculer le waiting time moyen et le turnaround time moyen. Série d’exercices #6 20 février 2019 3 / 8
  • 5. 6.2 Simulation (Solution) Soit les tache suivante : Tâche Burst time Priorité P1 2 2 P2 1 1 P3 8 4 P4 4 2 P5 5 3 Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué. Solution RR (quantum=3) P1 P2 P3 P4 P5 P3 P4 P5 P3 Série d’exercices #6 20 février 2019 3 / 8
  • 6. 6.2 Simulation (Solution) Soit les tache suivante : Tâche Burst time Priorité P1 2 2 P2 1 1 P3 8 4 P4 4 2 P5 5 3 Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué. Solution SJF P2 P1 P4 P5 P3 Série d’exercices #6 20 février 2019 3 / 8
  • 7. 6.2 Simulation (Solution) Soit les tache suivante : Tâche Burst time Priorité P1 2 2 P2 1 1 P3 8 4 P4 4 2 P5 5 3 Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué. Solution FCFS P1 P2 P3 P4 P5 Série d’exercices #6 20 février 2019 3 / 8
  • 8. 6.2 Simulation (Solution) Soit les tache suivante : Tâche Burst time Priorité P1 2 2 P2 1 1 P3 8 4 P4 4 2 P5 5 3 Présumer qu’elles sont toutes arrivées au temps 0, donc l’ordre indiqué. Solution Priorité non-préemptive P2 P1 P4 P5 P3 Série d’exercices #6 20 février 2019 3 / 8
  • 9. 6.3 Durée du quantum Donner les avantages et inconvénients d’avoir un quantum plus court ou plus long. Expliquer quel est l’avantage d’avoir des quantums différents pour les différentes queues d’un ordonnanceur à plusieurs niveaux. Série d’exercices #6 20 février 2019 4 / 8
  • 10. 6.3 Durée du quantum (Solution) Donner les avantages et inconvénients d’avoir un quantum plus court ou plus long. Expliquer quel est l’avantage d’avoir des quantums différents pour les différentes queues d’un ordonnanceur à plusieurs niveaux. Solution Plus court : Pratique pour les applications interactive qui n’utilise généralement pas complètement leur quantum (petit burst). Entraine beaucoup de changement de contexte. Plus long : Pour les application demandant beaucoup de temps processeur sans interruption. Un quantum plus long permet d’éviter des changements de contexte. Tend vers FCFS pour les processus qui prennent moins de temps que le quantum. Série d’exercices #6 20 février 2019 4 / 8
  • 11. 6.4 RR multiple Soit une variante de RR dans laquelle les entrées dans la queue des processus prêts à l’exécution sont des pointeurs vers des PCBs : 1 Quel serait l’effet de placer deux pointers vers le même PCB dans la queue ? 2 Quels seraient les avantages et les incovénients de cet usage ? 3 Comment modifier l’algorithme du RR de base de manière à obtenir le même résultat sans avoir à placer plusieurs copie du même pointeur. Série d’exercices #6 20 février 2019 5 / 8
  • 12. 6.4 RR multiple (Solution) Soit une variante de RR dans laquelle les entrées dans la queue des processus prêts à l’exécution sont des pointeurs vers des PCBs : 1 Quel serait l’effet de placer deux pointers vers le même PCB dans la queue ? On double l’exécution du processus, ce qui revient à augmenter la priorité du processus. 2 Quels seraient les avantages et les incovénients de cet usage ? 3 Comment modifier l’algorithme du RR de base de manière à obtenir le même résultat sans avoir à placer plusieurs copie du même pointeur. Série d’exercices #6 20 février 2019 5 / 8
  • 13. 6.4 RR multiple (Solution) Soit une variante de RR dans laquelle les entrées dans la queue des processus prêts à l’exécution sont des pointeurs vers des PCBs : 1 Quel serait l’effet de placer deux pointers vers le même PCB dans la queue ? On double l’exécution du processus, ce qui revient à augmenter la priorité du processus. 2 Quels seraient les avantages et les incovénients de cet usage ? Certains processus peuvent alors obtenir plus de temps selon leur priorité. Affecte négativement les processus moins prioritaire. L’ordonnanceur n’est plus strictement «fair» (Mais bon, c’est peut-être l’effet désiré). 3 Comment modifier l’algorithme du RR de base de manière à obtenir le même résultat sans avoir à placer plusieurs copie du même pointeur. Série d’exercices #6 20 février 2019 5 / 8
  • 14. 6.4 RR multiple (Solution) Soit une variante de RR dans laquelle les entrées dans la queue des processus prêts à l’exécution sont des pointeurs vers des PCBs : 1 Quel serait l’effet de placer deux pointers vers le même PCB dans la queue ? On double l’exécution du processus, ce qui revient à augmenter la priorité du processus. 2 Quels seraient les avantages et les incovénients de cet usage ? Certains processus peuvent alors obtenir plus de temps selon leur priorité. Affecte négativement les processus moins prioritaire. L’ordonnanceur n’est plus strictement «fair» (Mais bon, c’est peut-être l’effet désiré). 3 Comment modifier l’algorithme du RR de base de manière à obtenir le même résultat sans avoir à placer plusieurs copie du même pointeur. Allouer un temps de quantum en fonction de la priorité et donc permettre plusieurs temps de quantum pour un RR. Série d’exercices #6 20 février 2019 5 / 8
  • 15. 6.5 Quantums Soit un système avec 10 tâches I/O-bound et une tâche qui n’utilise pas le périphériques (et donc CPU-bound). Chaque tâche I/O-bound lance une opération d’entrée sortie après chaque milliseconde de calcul qui prend 10ms pour se terminer. Soit un coùt de 0.1ms pour chaque pour chaque changement de contexte. Si on présume que toutes les tâches s’exécutent indéfiniment, décrire l’utilisation du CPU dans le cas d’un ordonnancement de type round-robin : 1 Avec un quantum de 1ms. 2 Avec un quantum de 10ms. Série d’exercices #6 20 février 2019 6 / 8
  • 16. 6.5 Quantums (Solution) Soit un système avec 10 tâches I/O-bound et une tâche qui n’utilise pas le périphériques (et donc CPU-bound). Chaque tâche I/O-bound lance une opération d’entrée sortie après chaque milliseconde de calcul qui prend 10ms pour se terminer. Soit un coùt de 0.1ms pour chaque pour chaque changement de contexte. Si on présume que toutes les tâches s’exécutent indéfiniment, décrire l’utilisation du CPU dans le cas d’un ordonnancement de type round-robin : 1 Avec un quantum de 1ms. Il y a 11 tâches qui vont tous maximiser un quantum de temps. 1/1.1 ∗ 100 = 91 2 Avec un quantum de 10ms. Série d’exercices #6 20 février 2019 6 / 8
  • 17. 6.5 Quantums (Solution) Soit un système avec 10 tâches I/O-bound et une tâche qui n’utilise pas le périphériques (et donc CPU-bound). Chaque tâche I/O-bound lance une opération d’entrée sortie après chaque milliseconde de calcul qui prend 10ms pour se terminer. Soit un coùt de 0.1ms pour chaque pour chaque changement de contexte. Si on présume que toutes les tâches s’exécutent indéfiniment, décrire l’utilisation du CPU dans le cas d’un ordonnancement de type round-robin : 1 Avec un quantum de 1ms. Il y a 11 tâches qui vont tous maximiser un quantum de temps. 1/1.1 ∗ 100 = 91 2 Avec un quantum de 10ms. Il y a 10 I/O-bound qui arrêtent après 1 ms et une tâches CPU-bound qui utilise tout le quantum de temps. 10 ∗ 1 + 10 10 ∗ 1.1 + 10.1 ∗ 100 = 94 Série d’exercices #6 20 février 2019 6 / 8
  • 18. 6.6 Multiple niveaux Soit un algorithme de queues à niveaux multiples, où un processus passe à la queue de priorié supérieure s’il relâche le CPU avant la fin de sont quantum et passe dans la queue de priorité inférieure dans le cas inverse. Quels genre de comportement peut-on attendre d’un tel algorithme, en présence de processus variés, certains utilise beaucoup le CPU d’autres seulement les périphériques, d’autres un mélange des deux ? Série d’exercices #6 20 février 2019 7 / 8
  • 19. 6.6 Multiple niveaux (Solution) Soit un algorithme de queues à niveaux multiples, où un processus passe à la queue de priorié supérieure s’il relâche le CPU avant la fin de sont quantum et passe dans la queue de priorité inférieure dans le cas inverse. Quels genre de comportement peut-on attendre d’un tel algorithme, en présence de processus variés, certains utilise beaucoup le CPU d’autres seulement les périphériques, d’autres un mélange des deux ? Solution Les processus CPU-bound auront tendances à se retrouver dans les files de basse priorité alors que ceux I/O-bound se retrouverons dans les files de priorité élevée. Les autres processus se retrouveront dans les files de priorité moyenne. Série d’exercices #6 20 février 2019 7 / 8
  • 20. 6.7 Priorités dynamiques Soit un algorithme d’ordonnancement préemptif basé sur des priorités dynamiques. Quand un processus est en attente du CPU, sa priorité augmente à un rythme α ; quand il est en cours d’exécution, sa priorité augmente à un rythme β. Tous les processus commencent avec une priorité de 0. Les paramètres α et β peuvent être choisis pour obtenir différents résultats. 1 Quel algorithme obtient-on si β > α > 0 ? 2 Quel algorithme obtient-on si α < β < 0 ? Série d’exercices #6 20 février 2019 8 / 8
  • 21. 6.7 Priorités dynamiques (Solution) Soit un algorithme d’ordonnancement préemptif basé sur des priorités dynamiques. Quand un processus est en attente du CPU, sa priorité augmente à un rythme α ; quand il est en cours d’exécution, sa priorité augmente à un rythme β. Tous les processus commencent avec une priorité de 0. Les paramètres α et β peuvent être choisis pour obtenir différents résultats. 1 Quel algorithme obtient-on si β > α > 0 ? FCFS 2 Quel algorithme obtient-on si α < β < 0 ? Série d’exercices #6 20 février 2019 8 / 8
  • 22. 6.7 Priorités dynamiques (Solution) Soit un algorithme d’ordonnancement préemptif basé sur des priorités dynamiques. Quand un processus est en attente du CPU, sa priorité augmente à un rythme α ; quand il est en cours d’exécution, sa priorité augmente à un rythme β. Tous les processus commencent avec une priorité de 0. Les paramètres α et β peuvent être choisis pour obtenir différents résultats. 1 Quel algorithme obtient-on si β > α > 0 ? FCFS 2 Quel algorithme obtient-on si α < β < 0 ? LIFO Série d’exercices #6 20 février 2019 8 / 8