TD2 Rappelordonnancement
TD2 Rappelordonnancement
TD2 Rappelordonnancement
Des processus
TD1 : Rappel sur l’ordonnancement des processus 1
Exercice 1 : Généralités
1. Qu’est-ce qu’un processus ?
Le processus est un concept fondamental de tout système d’exploitation. Un processus est l’unité système qui permet
l’exécution d’un programme.
Un processus est un programme en exécution. Il définit un objet dynamique tandis que le programme est un objet
statique.
Un processus est caractérisé par son pointeur de pile, ses instructions et ses données,… Ces attributs définissent le
contexte d’un processus.
2. Qu’est-ce qu’un PCB ?
Chaque processus est représenté dans le système d’exploitation par une structure de données contenant toute
information décrivant le contexte du processus appelé bloc de contrôle (Process Control Bloc: PCB).
– PID et PPID,
– État,
– Priorité,
– Compteur ordinal,
– Fichiers ouverts,
– Pointeurs: seg. code, seg. données, seg. Pile,
– Temps d’exécution.
6. Quels sont les différents états d’un processus ? Quelles sont les transitions entre ces états ?
Lorsqu’un processus s’exécute; il change d’état. Il peut se trouver dans l’un des trois états principaux suivants:
• Prêt (Ready) : le processus attend son tour pour s’exécuter Nouveau Terminé
• Élu (Running) : les instructions sont en cours d’exécution.
Prêt Élu
• Bloqué (Sleep) : le processus bloqué en attente d’événement:
signal, E/S, …
Transitions :
Bloqué
(1) Création du processus
(3) Fin du temps alloué sur le processeur, l’exécution du processus n’est pas terminée
L’ordonnanceur choisit un processus parmi les processus prêts et lui alloue le processeur.
10. Comment juger de l’efficacité d’un algorithme d’ordonnancement ?
11. Discuter les différents algorithmes (FCFS, SJF) et leur mise en œuvre pratique.
o Mauvaise utilisation des ressources s’il y a apport continu de processus aux cycles longs (v. effet
d’accumulation)
o Famine possible des processus ‘longs’ s’il y a apport continu de processus aux cycles courts
Le tourniquet, RR :
o Le temps processeur est divisé en intervalles de temps appelés Quantum Q, chaque processus s’exécutera
exactement pendant son quantum.
Le processus élu ait fini son exécution avant la fin de son quantum,
A B C D E
0 10 16 18 22 30
C D B E A
0 2 6 12 20 30
A B C D E A B E A
0 4 8 10 14 18 22 24 28 30
TD1 : Rappel sur l’ordonnancement des processus 6
La diminution du quantum entraîne la dégradation des performances de l'algorithme RR, car le temps de
commutation/changement de contexte augmente. L’augmentation du quantum entraîne le manque
d’efficacité de l’algorithme devient FCFS.
2. Les algorithmes d’ordonnancement basés sur des priorités peuvent engendrer la famine (non exécution) des
processus à faible priorité. Comment peut-on éviter ce problème ?
On utilise un autre algorithme: tourniquet ou priorité dynamique.
3. 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. L’ordonnancement est circulaire (RR ou Tourniquet) avec un
quantum de Q secondes. Donnez une interprétation pour chacun des cas suivants :
Q>T et Q tend vers l’infini : RR tend vers FiFo / C<Q<T : cas raisonnable / Q=C et Q tend vers 0 : dégradation
de l’efficacité d’exploitation du processeur.
A- On suppose qu’on utilise un algorithme d’ordonnancement basé sur la priorité. Donnez le diagramme de
Gantt pour les processus donnés.
TD1 : Rappel sur l’ordonnancement des processus 7
B- On voudrait que la priorité des processus soit dynamique au cours du temps. Ainsi, pour calculer la
priorité d’un processus, on utilise la formule suivante :
𝑇𝑒𝑚𝑝𝑠 𝑑!𝑎𝑡𝑡𝑒𝑛𝑡𝑒 + 𝑇𝑒𝑚𝑝𝑠 𝐶𝑃𝑈 𝑟𝑒𝑠𝑡𝑎𝑛𝑡
𝑃𝑟𝑖𝑜𝑟𝑖𝑡é =
𝑇𝑒𝑚𝑝𝑠 𝐶𝑃𝑈
Remarque : Lors des calculs, on arrondira suivant l’exemple suivant : 3.5 ou 3.6 -> 4 ; 3.1 ou 3.4 -> 3.
1. Donnez le diagramme de Gantt sachant que la priorité est recalculée toutes les 5 minutes.
Hypothèses :
Au démarrage, les priorités des processus sont égales à leurs priorités statiques (indiquées dans le
tableau).
TD1 : Rappel sur l’ordonnancement des processus 8
Les priorités ne sont calculées que toutes les 5mn. Pour les autres temps, on prend la priorité
précédente.
Le temps d’attente d’un processus est son temps d’attente depuis sa dernière exécution.
Si on a le choix entre deux processus de même priorité, on choisit celui qui attend depuis le plus
longtemps.
Le temps de rotation pour l’ordonnancement à priorité dynamique est plus grand, mais l’algorithme est plus
équitable.