Démonstration par exemples: Ordonnancement des processus Transitions d’un processus Algorithmes d'ordonnancement sans réquisition Premier Arrivé Premier Servi (FCFS ou FIFO) •L’algorithme d’ordonnancement FCFS possède l’avantage d’être simple a réaliser. •Les processus prêt sont stockés dans une file d'attente FIFO et servis par ordre d’arrivée. •Dès que le processeur est libre, il est alloué au processus en tête de la file d'attente. •Une fois le processeur est alloué à un processus, celui-ci le garde jusqu'à la fin du processus ou suite à la demande d'une entrée/sortie. •Néanmoins, le temps d'attente pour l'allocation du processeur au processus n'est pas optimal puisque les processus en tête de la file peuvent être les processus les plus longs à exécuter. Exemple 1 Premier Arrivé Premier Servi (FCFS ou FIFO) Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 0 0 P4 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 1 P4 0 P3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 2 P4 0 P3 P1 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 3 P4 0 3 P3 P1 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 3 P4 0 3 P3 P1 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 4 P4 0 P1 P5 P3 3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 5 P4 0 P1 P5 P2 P3 3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 6 P4 0 P1 P5 P2 P3 3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 7 P3 P4 0 P1 P5 P2 3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 8 P4 0 P1 P5 P2 P3 3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 9 P4 0 P1 P5 P2 P3 3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 10 P3 P4 0 P1 P5 P2 3 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 11 P4 0 P1 P5 P2 P3 3 11 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 11 P4 0 P1 P5 P2 P3 3 11 processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 17 P4 0 P5 P2 P3 3 P1 11 17 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 17 P4 0 P5 P2 P3 3 P1 11 17 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 21 P4 0 P2 P3 3 P1 11 P5 17 21 process Burst time Arrival time P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 21 P4 0 P2 P3 3 P1 11 P5 17 21 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 23 P4 0 P3 3 P1 11 P5 17 P2 21 23 Processus Durée d’execution Temps d’arrivé P1 6 2 P2 2 5 P3 8 1 P4 3 0 P5 4 4 23 P4 0 P3 3 P1 11 P5 17 P2 21 23 P4 0 P3 3 P1 11 P5 17 P2 21 Temps d’attente : p4=0, p3=3, p1=11, p5=17, p2=21 Temps moyenne d’attente : (0+3+11+17+21)/5=10.4 Temps de rotation = p4=3, p3=8, p1=6, p5=4, p2=2 23 Exemple 2: L'ordonnancement avec priorité (Sans réquisition) : •Le principe de cet algorithme consiste à attribuer à chaque processus une valeur qui indique sa priorité Le processeur est alloué au processus de plus haute priorité. •Unix considère les petites chiffres dénotent des hautes priorité •Windows fait l’inverse, il donne la plus haute priorité aux plus grands chiffres. •Le processeur est donné au processus prêt avec la plus haute priorité •Que faire avec les processus de même priorité -First in First out Processus Priorité Durée d’exécution Temps d’arrivé P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 0 0 P1 P2 Les Deux p1 et p2 arrive à t= 0 Process Priority Burst Time Arrival Time P1 1 4/3 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 1 P1 0 P2 Process Priority Burst Time Arrival Time P1 1 4/2 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 2 P1 0 P2 Process Priority Burst Time Arrival Time P1 1 4/1 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 3 P1 0 P2 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 4 P2 P1 0 4 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/2 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 5 P1 0 P2 4 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 A l’instant 6 p3 arrive Temps 6 P3 P1 0 P2 4 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 7 P3 P1 0 P2 4 7 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 8 P1 0 P3 P2 4 7 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 9 P1 0 P3 P2 4 7 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 10 P1 0 P3 P2 4 7 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 11 P1 0 P4 P3 P2 4 7 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 12 P1 0 P4 P3 P2 4 7 P5 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 13 P1 0 P4 P3 P2 4 7 P5 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 14 P1 0 P4 P3 P2 4 P5 7 14 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 15 P1 0 P4 P3 P2 4 7 P5 14 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 16 P1 0 P4 P3 P2 4 7 P5 14 16 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 17 P1 0 P3 P2 4 7 P5 14 P4 16 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 20 P1 0 P3 P2 4 7 P5 14 P4 16 20 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 P1 0 P3 P2 4 7 P5 14 P4 16 20 Temps d’attente : p1=0, p2=4, p3=7, p5=14, p4=16 Temps moyenne d’attente : (0+4+7+14+16)/5 =8.2 Temps de rotation : p1=4, p2=3, p3=7, p5=2, p4=4 Le plus court d'abord (SJF) o Shortest Job First : Le plus petit en premier ; o Algorithme d’ordonnancement sans réquisition (sans interruption); o Optimal pour le temps d’attente moyen ; >> Problème de Famine. Remarque : o Dans une file d’attente, si plusieurs processus ayant la même durée, la solution est d’appliquer le FCFS ( First Come First Served ). o Le premier processus à exécuter est non pas celui qui a la durée la plus minimale, mais c’est le premier arrivé à la file d’attente. Principe de l’algorithme SJF File d’attente : P5 P1 P2 P4 P6 P3 Processus Temps d’arrivée Temps d’exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms Question : Quel est le premier processus à exécuter ? À l’instant T = 0 File d’attente : Temps d’arrivée Temps exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms P5 CPU : Processus P5 À l’instant T = 4 File d’attente : P5 CPU : Processus Temps d’arrivée Temps exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms P1 P2 P4 P5 À l’instant T = 5 File d’attente : Processus Temps d’arrivée Temps exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms P5 P1 P2 P4 P5 CPU : P1 À l’instant T = 6 P2 P4 P6 P1 CPU : Temps d’arrivée Temps exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms File d’attente : P1 Processus P6 À l’instant T = 8 Processus Temps d’arrivée Temps exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms File d’attente : P2 P4 P6 P6 CPU : P2 P3 À l’instant T = 11 P4 P3 P2 CPU : Temps d’arrivée Temps exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms File d’attente : P2 Processus P4 À l’instant T = 14 P3 P4 CPU : Temps d’arrivée Temps exécution P1 1 1 P2 3 3 P3 8 4 P4 4 3 P5 0 5 P6 6 2 Temps en ms File d’attente : P4 Processus P3 Algorithmes d'ordonnancement avec réquisition Ordonnencement avec priorité (avec requisition) Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 0 0 P1 P2 Process Priority Burst Time Arrival Time P1 1 4/3 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 1 P1 0 P2 Process Priority Burst Time Arrival Time P1 1 4/2 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 2 P2 P1 0 Baljit Singh Saini Process Priority Burst Time Arrival Time P1 1 4/1 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Temps 3 P2 P1 0 Baljit Singh Saini Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Le processeur est alloué au proceesus p2 maintenant Timer 4 P2 P1 0 4 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/2 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Timer 5 P1 0 P2 4 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 A l’instant 6 , p3 arrive Timer 6 P3 P1 0 P2 4 6 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7 6 P4 3 4 11 p5 2 2 12 Timer 6 P2 P1 0 P2 4 P3 6 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/6 6 P4 3 4 11 p5 2 2 12 Temps 7 P2 P1 0 P2 4 P3 6 Baljit Singh Saini Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/5 6 P4 3 4 11 p5 2 2 12 Temps 8 P2 P1 0 P2 4 P3 6 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/4 6 P4 3 4 11 p5 2 2 12 Timer 9 P2 P1 0 P2 4 P3 6 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/3 6 P4 3 4 11 p5 2 2 12 Timer 10 P1 0 P2 P2 4 P3 6 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/2 6 P4 3 4 11 p5 2 2 12 Timer 11 P1 0 P2 P2 4 P3 6 P4 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/2 7/1 6 P4 3 4 11 p5 2 2 12 Timer 12 P1 0 P2 P2 4 P4 P3 6 P5 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/2 7/0 6 P4 3 4 11 p5 2 2 12 Temps 13 P1 0 P2 P2 4 P4 P5 P3 6 13 Baljit Singh Saini Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 0 P3 1 7/2 7 6 P4 3 4 11 p5 2 2 12 Temps 13 P1 0 P4 P2 4 P5 P3 6 P2 13 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3/0 0 P3 1 7/2 7 6 P4 3 4 11 p5 2 2 12 Temps 14 P1 0 P4 P2 4 P5 P3 6 P2 13 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 11 p5 2 2 12 Temps 14 P1 0 P4 P2 4 P5 P3 6 P2 13 14 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 11 p5 2 2 2/1 12 Temps 15 P1 0 P4 P2 4 P3 6 P2 13 P5 14 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 11 p5 2 2 2/0 12 Temps 16 P1 0 P4 P2 4 P3 6 P2 13 P5 14 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 11 p5 2 2 12 Timer 16 P 1 0 P4 P 2 4 P 3 6 P 2 13 P 5 14 16 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 4/3 11 p5 2 2 12 Temps 17 P1 0 P2 4 P3 6 P2 13 Baljit Singh Saini P5 14 P4 16 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 4/2 11 p5 2 2 12 Temps 18 P1 0 P2 4 P3 6 P2 13 P5 14 P4 16 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 4/1 11 p5 2 2 12 Temps 19 P1 0 P2 4 P3 6 P2 13 P5 14 P4 16 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 4/0 11 p5 2 2 12 Temps 20 P1 0 P2 4 P3 6 P2 13 P5 14 P4 16 20 Process Priority Burst Time Arrival Time P1 1 4 0 P2 2 3/1 3 0 P3 1 7/2 7 6 P4 3 4 11 p5 2 2 12 Temps 20 P1 0 P2 4 P3 6 P2 13 P5 14 P4 16 20 Le plus court temps restant (SRTF) • Shortest Remaining Time First : le plus court temps d’exécution restant en premier ; • algorithme d’ordonnancement avec réquisition. • Version préemptive de SJF. Principe : si le processus arrivé à la file d’attente a le temps d’exécution inférieure à celle de processus en train d’exécution interruption. À l’instant T = 1 Processus Temps d’arrivée Temps exécution P1 1 1 P2 4 3 P3 7 4 P4 5 4 P5 0 7 Diagramme d’ordonnancement : P1 P5 0 1 2 Temps restant (P5) = 6 File d’attente : P5 À l’instant T = 4 Processus Temps d’arrivée Temps exécution File d’attente : P1 1 1 P5 P2 4 3 P3 7 4 P4 5 4 P5 0 7 Diagramme d’ordonnancement : P1 P5 0 1 P2 P5 2 4 5 • Temps restant (P5) = 4 -------------------------------------------• Temps restant (P2) = 2 P4 À l’instant T = 7 Processus Temps d’arrivée Temps exécution File d’attente : P1 1 1 P5 P2 4 3 P3 7 4 P4 5 4 P5 0 7 Diagramme d’ordonnancement : P1 P5 0 1 P2 P5 2 4 • Temps restant (P5) = 2 -------------------------------------------• Temps restant (P2) = 1 7 P4 P3 À l’instant T = 8 Processus Temps d’arrivée Temps exécution File d’attente : P1 1 1 P4 P2 4 3 P3 P3 7 4 P4 5 4 P5 0 7 Diagramme d’ordonnancement : P1 P5 0 1 P2 P5 2 4 P5 8 • Entre P3 et P4 == FCFS P4 10 P3 14 18 Shortest Job First • Algorithme non préemptif • Plus court temps d’exécution Shortest Remaining Time First • Algorithme préemptif • Plus court temps d’exécution restant L'algorithme tourniquet (Round Robin : RR) • Le principe de cet algorithme consiste à définir un intervalle de temps appelé quantum. Le processeur est alloué aux processus à tour de rôle pendant la durée du quantum. Dans la pratique la durée d'un quantum varie entre 10 et 100 ms. • La performance de l'algorithme de Round Robin dépend du choix de la taille du quantum: Un quantum trop court provoque trop de commutations de contexte et abaisse l'efficacité du processeur. Un quantum trop long augmente le temps d'attente. Il faut trouver un juste équilibre afin d'obtenir un temps d'attente convenable.