Simulation des algorithmes de planification du système d'exploitation pour les processus, par exemple, planification prioritaire, planification multi-niveaux, ...


Ce référentiel exposé ici est en fait un projet universitaire du operating system du cours
Et implémenté avec la langue Java .
L'affichage de hiérarchie des classes est démontré ici:
---- cpuscheduler
----------- |
----------- SRC
------------------ |
------------------ Processus // Données de chaque processus, par exemple, heure de début, heure d'éclatement, ...
------------------ CPU // CPU pour la simulation du calendrier
------------------ Scheduler // Classe abstraite pour les méthodes et champs primitifs
------------------ SCH_FCFS // First Come First Serve Scheduler
------------------ SCH_SJF // Le plus court emploi du travail (peut être préemptif)
------------------ SCH_PRIORITY // PRINCIPALER PRIORITÉ (peut être préemptif)
------------------ SCH_RR // Round Robin Scheduler
------------------ sch_lottery // planificateur de loterie
------------------ SCH_MULTILEVEL // Planificateur multi-niveaux (peut être préemptif)
------------------ FXMLDocumentController // Contrôleur pour l'interface graphique principale
------------------ SIMULATION Controller // Contrôleur pour GUI de simulation
---- /
Processus: Soit un processus exécute ou attend ces 2 états sont gérés:
CPU:
Planificateur:
Notes
Notez que l'unité de temps de simulation est de 0,1, donc le temps d'éclatement ou le temps de retard doit être multiple de 0,1
Notez que l'ordre de chaque ligne spécifie l'arrivée de l'ordre de processus
Notez que le format d'entrée est comme celui-ci pour chaque ligne (temps de rafale, temps de retard, priorité, niveau)
Notez que la durée minimale du commutateur de contexte dans cette simulation est de 0,4
Notez que la durée minimale de quantum pour le planificateur de Round Robbin dans cette simulation est de 0,2 car l'unité temporelle est de 0,1 et quantum ne peut pas être inférieure à l'unité de temps
Tabel d'entrée:
| Nom de processus | Heure d'arrivée | Exécuter le temps | Niveau |
|---|---|---|---|
| 1 | 0 | 5 | 1 |
| 2 | 1 | 8 | 2 |
| 3 | 3 | 7 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 5 | 3 | 1 |
| 6 | 8 | 11 | 2 |
| 7 | 15 | 3 | 1 |
| 8 | 25 | 4 | 1 |
Par exemple, nous planifions le processus dans le multi-niveaux non préemptif (L1: FCFS, L2 FCFS) ci-dessous (fichier input.txt)

Nous entrons d'abord les informations du processus et choisissons la planification de l'alghorithme puis appuyez sur le bouton Exécuter

Attendez que la simulation se termine

Maintenant, vous pouvez voir les résultats

Ce projet est autorisé en vertu de la licence MIT - voir le fichier de licence pour plus de détails