3.27 ALLOCATION DU CPU Critères : Ne permet pas de choisir un processus
3.27 Critères : Critères utilisés dans les algorithmes
Critères : Utiliser valeur moyenne minimun / maximum variation
3.29 Modèle simplifié CPU phase de calcul (burst time) ( temps d'exécution ou temps CPU) idéal temps connu diagramme de Gantt
TEMPS DE TRAITEMENT & TEMPS D'ATTENTE 3.30 TEMPS DE TRAITEMENT & TEMPS D'ATTENTE
TEMPS DE TRAITEMENT & TEMPS D'ATTENTE temps de traitement = temps de fin - temps d'arrivée temps d'attente = temps de traitement - temps d'exécution (temps CPU)
Avec ou sans préemption 3.31 Avec ou sans préemption Remise en question de la décision, du choix de processus Sélection d'un processus lorsque un processus termine (toujours) un processus arrive (préemption) un signal de l'horloge (préemption au quantum)
FCFS - First-Come, First-Served PREMIER ARRIVÉ, PREMIER SERVI FCFS - First-Come, First-Served processus temps d'arrivée temps CPU P1 24 P2 3 P3 CPU P3 P2 P1
processus temps d'arrivée temps CPU P1 24 P2 3 P3 temps = 0 CPU P3 P2 P1
processus temps d'arrivée temps CPU P1 24 P2 3 P3 temps = 24 CPU P3 P2
processus temps d'arrivée temps CPU P1 24 P2 3 P3 temps = 27 CPU P3
processus temps d'arrivée temps CPU P1 24 P2 3 P3 temps = 30 CPU
temps CPU (d'exécution) processus temps de traitement temps CPU (d'exécution) temps d'attente P1 24 - 24 = 0 P2 27 - 3 = 24 P3 30 = 27 total 81 - 30 = 51 moyenne(3) - 10 = 17 Fonction de l'ordre d'arrivée Effet convoi
temps CPU (d'exécution) ordre P2, P3 et P1 processus temps de traitement temps CPU (d'exécution) temps d'attente P1 30 - 24 = 6 P2 3 - 3 = 0 P3 6 = 3 total 39 - 30 = 9 moyenne(3) 13 - 10 FCFS n'est pas optimum
SPN - Shortest Process Next (SJF -- Shortest Job First ) 3.33 PROCESSUS LE PLUS COURT EN PREMIER SPN - Shortest Process Next (SJF -- Shortest Job First ) processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court CPU P4 P3 P2 P1
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 0 CPU P4 P3 P2 P1 P4
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 3 CPU P3 P2 P1 P1
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 9 CPU P3 P2 P3
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 16 CPU P2 P2
temps CPU (d'exécution) processus temps de traitement temps CPU (d'exécution) temps d'attente P1 9 - 6 = 3 P2 24 - 8 = 16 P3 16 - 7 = 9 P4 3 - 3 = 0 total 52 - 24 = 28 moyenne(4) 13 = 7 OPTIMUM (sans préemption) Possibilité d'attente indéfinie des processus longs
On modifie le temps d'arrivée de P4 processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court CPU P3 P2 P1
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 0 CPU P3 P2 P1 P1
? processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 6 P2 8 P3 7 P4 3 sans préemption temps = 3 CPU P4 P3 P2 P1 P1 ? La sélection du prochain processus se fait seulement à la fin de l'exécution d'un processus
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 sans préemption temps = 3 CPU P4 P3 P2 P1 P1
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 6 CPU P4 P3 P2 P4
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 9 CPU P3 P2 P3
processus temps d'arrivée temps CPU P1 6 P2 8 P3 7 P4 3 plus court temps = 16 CPU P2 P2
temps CPU (d'exécution) processus temps de traitement temps CPU (d'exécution) temps d'attente P1 6 - 6 = 0 P2 24 - 8 = 16 P3 16 - 7 = 9 P4 - 3 = 3 total 52 - 24 = 28 moyenne(4) 13 = 7
3.34 PROCESSUS LE PLUS COURT EN PREMIER SPN - Shortest Process Next est l'algorithme optimum les temps d'exécution sont connus sans préemption
PROCESSUS LE PLUS COURT EN PREMIER SPN - Shortest Process Next est l'algorithme optimum les temps d'exécution sont connus sans préemption AVEC PRÉEMPTION SRT, temps restant le plus court ( en premier) meilleur que sans préemption
ESTIMATION DU TEMPS D'EXÉCUTION 3.35 ESTIMATION DU TEMPS D'EXÉCUTION Les résultats sont fonction de la qualité de l'estimé i.e., de la variation des valeurs réelles Moyenne avec pondération exponentielle
SRT - Shortest Remaining Time ( First ) 3.36 TEMPS RESTANT LE PLUS COURT (EN PREMIER) SRT - Shortest Remaining Time ( First ) avec préemption processus temps d'arrivée temps CPU P1 8 P2 1 4 P3 2 9 P4 3 5 plus court CPU P4 P3 P2 P1
P1 8 P2 1 4 P3 2 9 P4 3 5 plus court temps = 0 CPU P1 P1 processus temps d'arrivée temps CPU temps restant P1 8 P2 1 4 P3 2 9 P4 3 5 plus court temps = 0 CPU P1 P1
P1 8 -1 = 7 P2 1 4 P3 2 9 P4 3 5 plus court temps = 1 CPU P2 P1 P2 processus temps d'arrivée temps CPU temps restant P1 8 -1 = 7 P2 1 4 P3 2 9 P4 3 5 plus court temps = 1 CPU P2 P1 P2
P1 8 -1 = 7 P2 1 4 -1 = 3 P3 2 9 P4 3 5 plus court temps = 2 CPU processus temps d'arrivée temps CPU temps restant P1 8 -1 = 7 P2 1 4 -1 = 3 P3 2 9 P4 3 5 plus court temps = 2 CPU P3 P2 P1 P2
P1 8 -1 = 7 P2 1 4 -2 = 2 P3 2 9 P4 3 5 plus court temps = 3 CPU processus temps d'arrivée temps CPU temps restant P1 8 -1 = 7 P2 1 4 -2 = 2 P3 2 9 P4 3 5 plus court temps = 3 CPU P4 P3 P2 P1 P2
P1 8 -1 = 7 P2 1 4 -4 = 0 P3 2 9 P4 3 5 plus court temps = 5 CPU processus temps d'arrivée temps CPU temps restant P1 8 -1 = 7 P2 1 4 -4 = 0 P3 2 9 P4 3 5 plus court temps = 5 CPU P4 P3 P1 P4 À partir du temps 5, il n'y a plus de préemption, car tous les processus sont arrivés.
P1 8 -1 = 7 P2 1 4 -4 = 0 P3 2 9 P4 3 5 -5 = 0 plus court temps = 10 processus temps d'arrivée temps CPU temps restant P1 8 -1 = 7 P2 1 4 -4 = 0 P3 2 9 P4 3 5 -5 = 0 plus court temps = 10 CPU P3 P1 P1
P1 8 -8 = 0 P2 1 4 -4 = 0 P3 2 9 P4 3 5 -5 = 0 plus court temps = 17 processus temps d'arrivée temps CPU temps restant P1 8 -8 = 0 P2 1 4 -4 = 0 P3 2 9 P4 3 5 -5 = 0 plus court temps = 17 CPU P1 P3
temps CPU (d'exécution) processus temps de traitement temps CPU (d'exécution) temps d'attente P1 17-0 - 8 = 9 P2 5-1 - 4 = 0 P3 26-2 - 9 = 15 P4 10-3 - 5 = 2 total 52 - 26 = 26 moyenne(4) 13 - 6.5 = 6.5
ROUND ROBIN OU TOURNIQUET 3.37 ROUND ROBIN OU TOURNIQUET pour système à temps partagé ou interactif processus temps d'arrivée temps CPU P1 20 P2 3 P3 7 quantum = 4 ut CPU P3 P2 P1 retourne à la fin de la file après un quantum
P1 20 P2 3 P3 7 quantum = 4 ut temps = 0 CPU P3 P2 P1 processus temps d'arrivée temps CPU temps restant P1 20 P2 3 P3 7 quantum = 4 ut temps = 0 CPU P3 P2 P1
P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 4 P1 CPU P3 P2 P1 processus temps d'arrivée temps CPU temps restant P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 4 P1 CPU P3 P2 P1
P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 4 CPU P1 P3 P2 processus temps d'arrivée temps CPU temps restant P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 4 CPU P1 P3 P2
X P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 7 CPU P1 P3 P2 fin processus temps d'arrivée temps CPU temps restant P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 7 CPU X P1 P3 P2 fin
P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 7 CPU P1 P3 processus temps d'arrivée temps CPU temps restant P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 7 CPU P1 P3
P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 11 P3 CPU P1 P3 processus temps d'arrivée temps CPU temps restant P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 11 P3 CPU P1 P3
P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 11 CPU P3 P1 processus temps d'arrivée temps CPU temps restant P1 20 16 P2 3 P3 7 quantum = 4 ut temps = 11 CPU P3 P1
P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 15 P1 CPU P3 P1 processus temps d'arrivée temps CPU temps restant P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 15 P1 CPU P3 P1
P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 15 CPU P1 P3 processus temps d'arrivée temps CPU temps restant P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 15 CPU P1 P3
X P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 18 CPU P1 P3 fin processus temps d'arrivée temps CPU temps restant P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 18 CPU X P1 P3 fin
P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 18 CPU P1 processus temps d'arrivée temps CPU temps restant P1 20 12 P2 3 P3 7 quantum = 4 ut temps = 18 CPU P1
P1 20 8 P2 3 P3 7 quantum = 4 ut temps = 22 CPU P1 processus temps d'arrivée temps CPU temps restant P1 20 8 P2 3 P3 7 quantum = 4 ut temps = 22 CPU P1
P1 20 4 P2 3 P3 7 quantum = 4 ut temps = 26 CPU P1 processus temps d'arrivée temps CPU temps restant P1 20 4 P2 3 P3 7 quantum = 4 ut temps = 26 CPU P1
temps CPU (d'exécution) processus temps de traitement temps CPU (d'exécution) temps d'attente P1 30 - 20 = 10 P2 7 - 3 = 4 P3 18 - 7 = 11 total 55 - 30 = 25 moyenne(3) 18.33 - 10 = 8.33
avec préemption ou sans préemption 3.39 AVEC PRIORITÉ avec préemption ou sans préemption processus temps d'arrivée temps CPU priorité P1 10 3 P2 1 1* P3 2 P4 4 P5 5 1 est la plus forte priorité plus prioritaire CPU P5 P4 P3 P2 P1
1 est la plus forte priorité temps = 0 CPU P5 P4 P3 P2 P1 P2 processus temps d'arrivée temps CPU priorité P1 10 3 P2 1 1* P3 2 P4 4 P5 5 1 est la plus forte priorité plus prioritaire temps = 0 CPU P5 P4 P3 P2 P1 P2
1 est la plus forte priorité temps = 1 CPU P5 P4 P3 P1 P5 processus temps d'arrivée temps CPU priorité P1 10 3 P2 1 1* P3 2 P4 4 P5 5 1 est la plus forte priorité plus prioritaire temps = 1 CPU P5 P4 P3 P1 P5
1 est la plus forte priorité temps = 6 CPU P4 P3 P1 P1 processus temps d'arrivée temps CPU priorité P1 10 3 P2 1 1* P3 2 P4 4 P5 5 1 est la plus forte priorité plus prioritaire temps = 6 CPU P4 P3 P1 P1
1 est la plus forte priorité temps = 16 CPU P4 P3 P3 processus temps d'arrivée temps CPU priorité P1 10 3 P2 1 1* P3 2 P4 4 P5 5 1 est la plus forte priorité plus prioritaire temps = 16 CPU P4 P3 P3
1 est la plus forte priorité temps = 18 CPU P4 P4 processus temps d'arrivée temps CPU priorité P1 10 3 P2 1 1* P3 2 P4 4 P5 5 1 est la plus forte priorité plus prioritaire temps = 18 CPU P4 P4
temps CPU (d'exécution) processus temps de traitement temps CPU (d'exécution) temps d'attente P1 16 - 10 = 6 P2 1 - 1 = 0 P3 18 - 2 = 16 P4 19 = 18 P5 6 - 5 = 1 total 60 - 19 = 41 moyenne(5) 12 - 3.8 = 8.2
3.40 QUEUES MULTIPLES peuvent être utilisées dans une allocation avec priorité Processor Event occurs Blocked Queue Event Wait Preemption Admit RQn RQ1 RQ0 Dispatch Release .
QUEUES MULTIPLES Pour distribuer le temps CPU entre différentes classes d'utilisateurs. classe étudiant (interactif, 50% du CPU) classe administration (par lot, 50% du CPU)
3.41 FEEDBACK Priorités entre les queues Quantum de plus en plus long Release RQ0 Admit Processor RQ1 * RQ n Priorités entre les queues Quantum de plus en plus long Pour aider les processus avec beaucoup d'E/S Exemple: IBM/VM
La queue auxiliaire a priorité I/O 1 Wait I/O 2 Wait I/O n Wait Dispatch Time-out Release Ready Queue Admit Processor I/O 1 Queue Auxiliary Queue I/O 1 Occurs I/O 2 I/O 2 Queue Queue * Stallings, page 408 Figure 9.7 Queuing Diagram for Virtual Round-Robin Scheduler La queue auxiliaire a priorité Termine le temps restant du quantum
COMPARAISON DES ALGORITHMES 3.42 COMPARAISON DES ALGORITHMES Processus intensifs en E/S Processus intensifs en calcul Processus courts Processus longs
FCFS premier arrivé, premier servi pas de préemption pénalise les processus courts pénalise les processus avec E/S SPN processus le plus court pas de préemption pénalise les processus longs ou avec beaucoup de temps CPU (famine) SRT temps restant le plus court avec préemption pénalise les processus longs (plus sévère) ou avec beaucoup de temps CPU (famine) Round Robin tourniquet préemption (au quantum) équitable ( long vs court ) équitable ( CPU vs E/S ) Feedback queues multiples préemption (au quantum) équitable favorise les processus avec E/S Priorité ?