Cette application de console est basée sur le premier arrivé, premier-service (FCFS), le travail le plus court First (SJF) et les algorithmes de planification du temps restant le plus court en premier). Il est actuellement en cours de développement pour inclure plus d'algorithmes, et une fonction de graphique Gantt n'a pas encore été implémentée.
La logique principale de l'algorithme FCFS est simple. Le premier processus a toujours un temps d'attente de 0. Le temps d'attente d'un processus est calculé en fonction du temps d'éclatement du processus précédent et du temps d'attente du processus précédent. L'ordonnance d'exécution suit l'ordre d'arrivée.
L'algorithme SJF repose sur une condition basée sur des conditions pour trier les processus entrants tandis que d'autres processus sont toujours en cours d'exécution. Il garantit que l'heure d'éclatement d'un processus devient nulle, indiquant son achèvement, avant de passer au processus suivant. L'algorithme hiérarchise les temps d'éclatement plus courts, visant à minimiser les temps d'attente.
L'algorithme SRTF est une version préemptive de l'algorithme SJF. Il sélectionne le processus avec le temps restant le plus court pour l'exécution. Si un nouveau processus arrive avec une période d'éclatement plus courte que le processus en cours d'exécution, l'algorithme SRTF préemptera le processus actuel et passera au nouveau processus plus court.
Le programme a été conçu en utilisant une approche orientée objet pour améliorer la réutilisabilité et la simplicité. Les classes clés incluent:
Classe Process :
AvgWTTAT statique pour calculer et afficher le temps d'attente moyen et le délai d'exécution pour un tableau de processus.Classes d'algorithme de planification:
Schedule statique.Process , appliquent l'algorithme de planification respectif et mettent à jour les temps d'attente et de revirement pour chaque processus.Pour utiliser le programme de planification de processus:
N'hésitez pas à explorer le code, à le modifier et à implémenter des algorithmes de planification supplémentaires ou des fonctionnalités conformément à vos besoins.