Le planificateur doit distinguer les programmes liés aux E/S des programmes liés au CPU, car ils ont des besoins et des comportements en ressources fondamentalement différents, et les traiter de la même manière conduit à une utilisation inefficace du système. Voici pourquoi :
* Utilisation des ressources : Les programmes liés au processeur consomment constamment des cycles de processeur. Les programmes liés aux E/S, en revanche, passent une partie importante de leur temps à attendre la fin des opérations d'E/S (par exemple, accès au disque, requêtes réseau). Si le planificateur ne fait pas de différence, il peut allouer un temps égal aux deux, entraînant une sous-utilisation du processeur pendant que le programme lié aux E/S attend. Un planificateur intelligent peut basculer vers un autre programme lié au processeur pendant le temps d'attente d'E/S, maximisant ainsi l'utilisation du processeur.
* Réactivité et équité : Un système avec uniquement des programmes liés au processeur en cours d'exécution peut ne plus répondre car aucun autre programme n'a la possibilité de s'exécuter. Si un programme lié aux E/S a une priorité similaire, il peut monopoliser le processeur en attendant les E/S, ce qui aura un impact sur la réactivité globale du système. La distinction permet une planification plus équitable, garantissant que les programmes liés aux E/S ont la possibilité de terminer leurs opérations d'E/S sans retarder indûment les autres programmes.
* Débit : En reconnaissant les temps d'attente d'E/S, le planificateur peut améliorer considérablement le débit global du système. Au lieu de laisser un cœur de processeur inactif pendant qu'un processus lié aux E/S attend, le planificateur peut basculer en contexte vers un autre processus prêt, en particulier un processus lié au processeur. Cela maximise le nombre de tâches terminées par unité de temps.
* Prévisibilité et performances : Connaître la nature d'un processus (lié aux E/S ou au CPU) permet d'utiliser des algorithmes de planification plus sophistiqués. Par exemple, un planificateur peut utiliser un quantum de temps plus court pour les tâches liées au processeur afin de les empêcher de monopoliser le processeur, tout en autorisant des quanta plus longs pour les tâches liées aux E/S afin d'éviter une surcharge excessive de changement de contexte. Cela conduit à des performances plus prévisibles et cohérentes.
En bref, la distinction entre les programmes liés aux E/S et ceux liés au CPU permet au planificateur d'optimiser l'allocation des ressources, d'améliorer la réactivité du système, d'améliorer le débit et d'obtenir de meilleures performances globales du système. Sans cette distinction, le système serait bien moins efficace et potentiellement insensible.
|