4. FCFS, SJF, SRT et Round Robin
4.1 FCFS : l’ordre d’arrivée peut dominer la moyenne
First-Come, First-Served emploie une file. La tête reçoit le CPU jusqu’à sa fin ou son blocage; une tâche qui se débloque rejoint la queue. Une arrivée ne préempte pas. Cette simplicité limite les commutations et évite la famine sous les hypothèses d’une file dont les tâches finissent ou se bloquent. En revanche, une longue tâche devant des courtes détériore leur réponse; une tâche E/S remise en queue à chaque retour peut aussi être pénalisée.
Premier exemple : besoins P1=24, P2=3, P3=3. Les minuscules arrivées 0/0,0001/0,0002 établissent l’ordre P1, P2, P3; le cours les néglige dans les calculs arrondis.
Code (text) · sélectionner pour copier
P1[0,24] → P2[24,27] → P3[27,30]
| Tâche | CPU | Fin | Traitement arrondi | Attente arrondie |
|---|---|---|---|---|
| P1 | 24 | 24 | 24 | 0 |
| P2 | 3 | 27 | 27 | 24 |
| P3 | 3 | 30 | 30 | 27 |
| Total | 30 | — | 81 | 51 |
| Moyenne | 10 | — | 27 | 17 |
Avec les décalages exacts, les attentes sont 0/23,9999/26,9998; les moyennes T/W deviennent 26,9999/16,9999. L’arrondi ne change pas la conclusion.
Le même travail présenté dans l’ordre P2, P3, P1 donne P2[0,3] P3[3,6] P1[6,30]. Dans l’ordre P1, P2, P3, les traitements sont 30/3/6 et les attentes 6/0/3 : totaux 39 et 9, moyennes 13 et 3. Le CPU total reste 30, mais l’attente moyenne passe de 17 à 3. FCFS n’optimise donc pas cette moyenne; il suit un ordre de file.
4.2 SJF : choisir le plus court parmi les prêts
Shortest Job First, parfois mal abrégé SJB dans les diapositives, choisit la plus courte durée prévue au moment où un choix devient possible. Sa forme étudiée ici est non préemptive. Elle suppose connaître ou prévoir les besoins CPU, donnée rarement connue exactement dans un système réel. Les longues tâches peuvent être fortement désavantagées.
Avec les quatre arrivées à 0 et les besoins P1=6, P2=8, P3=7, P4=3 :
Code (text) · sélectionner pour copier
P4[0,3] → P1[3,9] → P3[9,16] → P2[16,24]
| Tâche | Fin=T | Attente=T−CPU |
|---|---|---|
| P1 | 9 | 3 |
| P2 | 24 | 16 |
| P3 | 16 | 9 |
| P4 | 3 | 0 |
| Total | 52 | 28 |
| Moyenne | 13 | 7 |
Pourquoi cet ordre réduit-il l’attente moyenne lorsque tout arrive ensemble? Si une durée x précède y avec x>y, inverser les deux remplace l’attente x du court par y pour le long. Les tâches suivantes commencent au même instant car x+y ne change pas. Supprimer les inversions conduit aux durées croissantes et diminue l’attente totale. Cela n’offre pas la meilleure attente à chacun : P2 attend encore 16.
Deuxième scénario : seul P4 arrive maintenant à 3. À 0, les prêts sont P1/P2/P3; P1 est le plus court et démarre. À 3, P4 arrive, mais n’interrompt pas P1. À 6, P1 termine; P4 passe de 6 à 9, P3 de 9 à 16, P2 de 16 à 24. P4 a donc T=9−3=6 et W=6−3=3. Lui donner le CPU à 3 appliquerait une autre politique. Le diagramme final et la règle priment sur les états intermédiaires d’animation.
4.3 SRT : comparer le reste, pas le besoin initial
Shortest Remaining Time, aussi SRTF, est la variante préemptive. Une arrivée strictement plus courte que le reste courant peut prendre le CPU. Après une fin, on choisit le plus petit reste parmi les prêts. Si des courtes tâches arrivent continuellement, les longues risquent la famine.
| Tâche | Arrivée | CPU |
|---|---|---|
| P1 | 0 | 8 |
| P2 | 1 | 4 |
| P3 | 2 | 9 |
| P4 | 3 | 5 |
À 0, P1 démarre. À 1, son reste est 7; P2 avec 4 le préempte. À 2, P3 avec 9 n’interrompt pas P2 qui n’a plus que 3. À 3, P4 avec 5 ne remplace pas P2 qui n’a plus que 2. À 5, P2 termine : parmi P1 reste 7/P3 reste 9/P4 reste 5, P4 passe jusqu’à 10. P1 reprend ses 7 unités jusqu’à 17, puis P3 ses 9 jusqu’à 26.
Code (text) · sélectionner pour copier
P1[0,1] → P2[1,5] → P4[5,10] → P1[10,17] → P3[17,26]
| Tâche | Fin | T=F−A | CPU | W=T−CPU |
|---|---|---|---|---|
| P1 | 17 | 17 | 8 | 9 |
| P2 | 5 | 4 | 4 | 0 |
| P3 | 26 | 24 | 9 | 15 |
| P4 | 10 | 7 | 5 | 2 |
| Total | — | 52 | 26 | 26 |
| Moyenne | — | 13 | 6,5 | 6,5 |
On retrouve l’attente de P1 entre 1 et 10, P3 entre 2 et 17, P4 entre 3 et 5. Une ancienne graduation 20 sur des figures intermédiaires n’est pas la fin de P1 : les étapes finales donnent bien 17.
4.4 Round Robin : une file avec une durée maximale par tour
RR est préemptif. La tête s’exécute au plus pendant q. Si elle finit ou se bloque plus tôt, le CPU passe immédiatement au suivant. Si elle reste prête à l’expiration, elle rejoint la queue avec son reste. Une tâche terminée ne revient pas. Une tâche seule peut recevoir plusieurs tranches adjacentes : l’alternance ne crée pas de faux concurrent.
Exemple du support : toutes les arrivées à 0 dans l’ordre P1, P2, P3; besoins 20/3/7; q=4.
| Intervalle | Tâche et reste après passage | File prête suivante |
|---|---|---|
| 0–4 | P1 reste 16 | P2, P3, P1 |
| 4–7 | P2 termine | P3, P1 |
| 7–11 | P3 reste 3 | P1, P3 |
| 11–15 | P1 reste 12 | P3, P1 |
| 15–18 | P3 termine | P1 |
| 18–22 | P1 reste 8 | P1 |
| 22–26 | P1 reste 4 | P1 |
| 26–30 | P1 termine | Vide |
P2 ne consomme que 3 : ne pas attendre 8 pour lancer P3. P1 reçoit cinq fois 4 unités; P3 reçoit 4 puis 3. Les fins/T dans l’ordre P1/P2/P3 sont 30/7/18, les attentes 10/4/11. Moyennes T=55/3≈18,33 et W=25/3≈8,33. Vérification de P1 : attentes 4–11 et 15–18, soit 7+3=10. P3 attend 0–7 puis 11–15, soit 11. La réponse initiale de P1 est 0 malgré T=30 et W=10.
4.5 Choisir le quantum et comprendre le compromis
Un petit quantum améliore les occasions de réponse et l’impression de simultanéité. Il multiplie les commutations, donc la part de CPU consacrée à la gestion. Un grand quantum réduit cette gestion et favorise le débit, mais peut laisser une courte tâche longtemps derrière les tranches des autres. Le support illustre 1 ms, une plage intermédiaire 20–50 ms, puis 500 ms : aucun optimum universel n’en découle.
Une tâche E/S qui se réveille rejoint une file. Si les autres gardent chacune longtemps le CPU, elle peut attendre beaucoup avant une très courte rafale qui relancerait pourtant son E/S. Réduire q peut améliorer cette réaction; une tâche bloquée ne consomme pas sa tranche pendant son attente. Le corrigé suggère d’adapter la durée aux phases calcul/E/S, sans définir de loi adaptative chiffrée. Pour du calcul avec peu d’E/S, les deux tailles peuvent convenir selon le critère.
Dans le modèle de simples demandes CPU sans blocage, si q dépasse chaque besoin, RR revient à FCFS. Ce fait n’autorise pas à confondre le partage continu idéal d’un autre exercice avec un tourniquet discret; §8.3 développe cette différence.
4.6 Comparer les règles
| Politique | Décision | Préemption | Donnée nécessaire | Limite principale |
|---|---|---|---|---|
| FCFS | Tête de file | Non | Arrivées | Courtes derrière une longue |
| SJF | Plus courte durée prête | Non | Besoin prévu | Connaissance du futur; longues pénalisées |
| SRT | Plus petit reste prêt | Oui | Reste prévu | Famine des longues possible |
| RR | Tête pendant au plus q | Oui | File et quantum | Réponse contre coût de commutation |
Une moyenne faible, une bonne première réponse, une part régulière et une priorité respectée sont des propriétés différentes. Choisir la bonne politique sur papier exige d’abord de reconnaître celle demandée, puis de suivre ses événements; on ne sélectionne pas après coup la règle qui donne le chiffre préféré.