AccueilInformatique distribuée et parallèleOrdonnancement du CPU — FCFS, SJF, Round Robin

🖥️ Ordonnancement du CPU — FCFS, SJF, Round Robin

Ordonnancez des processus sur un CPU avec les politiques FCFS, SJF, priorité et round-robin. Un diagramme de Gantt animé montre les changements de contexte pendant que les temps d'attente et de rotation moyens se mettent à jour en direct.

Informatique distribuée et parallèle3DModéré60 FPS
cpu-scheduling ↗ Ouvrir en autonome

À propos de l'ordonnancement du CPU

Cette simulation modélise la façon dont un système d'exploitation partage un seul CPU entre plusieurs processus concurrents. Chaque processus possède un temps d'arrivée, une durée de burst CPU et une priorité. L'ordonnanceur calcule une chronologie d'exécution complète, une unité de temps à la fois, selon la politique choisie, puis la rend sous forme de diagramme de Gantt animé. À partir de cette chronologie, il déduit pour chaque processus les temps d'achèvement, de rotation et d'attente en utilisant les relations standard rotation = achèvement − arrivée et attente = rotation − burst.

Le sélecteur de politique bascule entre FCFS, SJF, SRTF, Priorité non préemptive et Round Robin, et le curseur Quantum (1–6) définit la tranche de temps utilisée par Round Robin. Le curseur Nombre (2–7) définit combien de processus sont générés, Randomiser retire au sort leurs valeurs d'arrivée, de burst et de priorité, et Vitesse contrôle la lecture pendant qu'Étape avance d'une unité. L'ordonnancement du CPU est fondamental pour les systèmes d'exploitation : les mêmes compromis entre débit, équité et temps de réponse régissent les ordonnanceurs réels de Linux, Windows et des noyaux temps réel embarqués.

Questions fréquentes

Que calcule réellement cette simulation d'ordonnancement du CPU ?

Elle construit une chronologie d'exécution complète en sélectionnant un processus par unité de temps selon la politique choisie. À partir des temps de fin, elle calcule pour chaque processus l'achèvement, la rotation (achèvement moins arrivée) et l'attente (rotation moins burst), et compte chaque changement de contexte où le processus en cours change.

Quelles politiques d'ordonnancement puis-je choisir ?

Cinq politiques sont disponibles : FCFS (premier arrivé, premier servi), SJF (le plus court d'abord, non préemptif), SRTF (temps restant le plus court, préemptif), Priorité (non préemptif, un nombre plus petit signifie une priorité plus élevée) et Round Robin. Sélectionner une politique recalcule immédiatement la chronologie sur le même ensemble de processus afin de pouvoir les comparer.

Que font les contrôles Quantum, Nombre et Vitesse ?

Quantum (1 à 6) est la tranche de temps fixe que chaque processus reçoit en Round Robin avant d'être préempté ; il n'a aucun effet sur les autres politiques. Nombre (2 à 7) définit combien de processus sont générés, et Vitesse ajuste la cadence de lecture de l'animation sans changer le résultat.

Quelle est la différence entre SJF et SRTF ?

SJF est non préemptif : une fois qu'un processus commence, il s'exécute jusqu'à la fin, et l'ordonnanceur ne choisit à nouveau que lorsque le CPU est libre. SRTF est la forme préemptive : à chaque unité, il choisit le processus disponible avec le temps restant le plus court, de sorte qu'une tâche plus courte nouvellement arrivée peut interrompre celle en cours.

Comment les temps de rotation et d'attente sont-ils calculés ?

Pour chaque processus, le temps de rotation est égal au temps d'achèvement moins le temps d'arrivée, et le temps d'attente est égal au temps de rotation moins le temps de burst. Les moyennes affichées se mettent à jour en direct à mesure que le curseur révèle les processus terminés, ce qui permet d'observer les chiffres se stabiliser au fur et à mesure que le diagramme de Gantt se remplit.

Pourquoi Round Robin produit-il autant de changements de contexte ?

Round Robin préempte le processus en cours chaque fois que son quantum expire et l'envoie à la fin d'une file circulaire. Avec un petit quantum, le CPU change de processus fréquemment, ce qui améliore le temps de réponse et l'équité pour les charges de travail interactives, mais augmente le nombre de changements de contexte, chacun entraînant un coût réel dans un système véritable.

Qu'est-ce que l'effet de convoi et comment puis-je l'observer ici ?

L'effet de convoi se produit sous FCFS lorsqu'un long processus gourmand en CPU arrive en premier et que plusieurs processus courts s'alignent derrière lui, gonflant leurs temps d'attente. Randomisez jusqu'à ce qu'une longue tâche arrive tôt, exécutez FCFS, puis passez à SJF sur le même ensemble : le temps d'attente moyen chute généralement fortement.

La simulation modélise-t-elle la préemption et les temps d'inactivité du CPU ?

Oui. SRTF et Round Robin sont véritablement préemptifs dans le modèle, et lorsqu'aucun processus n'est encore arrivé, la chronologie enregistre une unité d'inactivité affichée comme un bloc estompé. Ces intervalles d'inactivité sont tout de même comptés dans le temps total, de sorte qu'ils retardent correctement l'achèvement et la rotation des processus suivants.

Comment la politique de priorité décide-t-elle ce qui s'exécute ?

Chaque processus se voit attribuer un numéro de priorité, et l'ordonnanceur exécute le processus disponible avec le numéro le plus bas, considéré comme la priorité la plus élevée. Elle est non préemptive ici, donc un processus choisi se termine avant la décision suivante. Sans vieillissement, ce système peut laisser un processus de faible priorité mourir de faim si des tâches de priorité plus élevée continuent d'arriver.

S'agit-il d'un modèle fidèle d'un véritable ordonnanceur de système d'exploitation ?

Les algorithmes correspondent aux définitions académiques enseignées dans les cours de systèmes d'exploitation, avec des unités de temps entières et des durées de burst connues. Les ordonnanceurs réels ajoutent des complications telles que des bursts futurs inconnus, le blocage d'E/S, plusieurs cœurs, le vieillissement des priorités et le coût de chaque changement de contexte ; il s'agit donc d'un modèle pédagogique fidèle plutôt que d'une reproduction exacte d'un noyau de production.

⚙ Sous le capot

Ordonnancez des processus sur un CPU avec les politiques FCFS, SJF, priorité et round-robin. Un diagramme de Gantt animé montre les changements de contexte pendant que les temps d'attente et de rotation moyens se mettent à jour en direct.

CPU schedulinground robinSJFGantt chartCanvas 2D

3D · Moteur de rendu Three.js / WebGL · Cible 60 FPS · fonctionne entièrement côté client, sans installation

Qu'avez-vous trouvé ?

Ajouter les étapes de reproduction (facultatif)