La sélection du processus qui recevra ensuite le temps CPU est une décision complexe prise par le planificateur du système d'exploitation. Plusieurs propriétés des processus influencent cette décision, et l’importance relative de ces propriétés varie en fonction de l’algorithme d’ordonnancement utilisé. Voici quelques propriétés clés :
* Priorité : Chaque processus se voit souvent attribuer un niveau de priorité. Les processus de priorité plus élevée obtiennent généralement du temps CPU avant ceux de priorité inférieure. Les priorités peuvent être attribuées de manière statique (par exemple, en fonction du type de processus) ou de manière dynamique (par exemple, en fonction de l'utilisation des ressources ou du temps d'attente).
* Durée de rafale du processeur (ou durée de rafale estimée) : Les processus de courte durée sont souvent privilégiés pour minimiser le temps d'attente moyen (comme le montre la planification du travail le plus court en premier). Cependant, prédire avec précision le temps de rafale peut s’avérer difficile.
* Heure d'arrivée : Le moment où un processus est prêt à être exécuté influence les décisions de planification. Certains algorithmes donnent la priorité aux processus qui attendent le plus longtemps (par exemple, premier arrivé, premier servi).
* Mémoire requise : Les processus nécessitant beaucoup de mémoire peuvent être pénalisés si la mémoire est rare, car leur donner le processeur pourrait entraîner un échange ou une pagination excessifs, ralentissant l'ensemble du système.
* Lié aux E/S par rapport au processeur : Les processus liés aux E/S attendent fréquemment les opérations d'E/S (accès au disque, communication réseau), tandis que les processus liés au CPU utilisent constamment le CPU. Les planificateurs privilégient souvent les processus liés aux E/S pour améliorer la réactivité globale du système, car ils libèrent fréquemment le processeur.
* Vieillissement : Le temps d'attente d'un processus peut augmenter sa priorité au fil du temps. Ce « vieillissement » empêche les processus de mourir de faim indéfiniment.
* État du processus : Seuls les processus à l'état « prêt » sont éligibles à l'allocation de CPU. Les processus bloqués sur des E/S ou d'autres événements ne sont pas pris en compte.
* Utilisation des ressources (y compris l'utilisation du processeur) : Certains planificateurs prennent en compte l'historique d'utilisation du processeur d'un processus. Les processus qui ont monopolisé le processeur peuvent être temporairement dépriorisés pour garantir l'équité.
* Contraintes en temps réel : Pour les systèmes d’exploitation en temps réel, les délais sont cruciaux. Les processus dont les délais sont imminents se voient accorder une priorité plus élevée, même si cela implique de préempter d’autres processus.
La combinaison spécifique de ces propriétés et leur pondération détermine le comportement de l'algorithme d'ordonnancement. Différents algorithmes, tels que Round Robin, Shortest Job First, Priority Scheduling, Multilevel Queue Scheduling et autres, hiérarchisent ces propriétés différemment pour atteindre différents objectifs (par exemple, maximiser le débit, minimiser le temps d'attente, garantir l'équité, respecter les délais).
|