Skip to content

Simulateur d'ordonnancement multitâche (C/GTK3). Implémentation modulaire des politiques CPU (FIFO, RR, Priorité, MLQ) avec chargement dynamique et visualisation graphique de l'exécution.

License

Notifications You must be signed in to change notification settings

os-scheduler-2025/OS-Scheduling-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Ordonnanceur Multi-Tâche - Simulateur d'Ordonnancement de Processus Linux


🎯 Équipe Scrum

  • 🏆 Wiem Hamzaoui — Scrum Master (SM)
  • 🎨 Nour Chaker — Product Owner (PO)
  • 🔍 Mazen Khoualdi — QA & Test Engineer

👨‍💻 Équipe de Développement (DEV)

Membres : Mazen Khoualdi, Wiem Hamzaoui, Nour Chaker


👨‍🏫 Encadrement

Professeur de Systèmes d'exploitation — Yousra Najar


📋 Aperçu du Projet

📁 Structure du Projet

ordonnanceur/

    ├── src/ # Code source principal
    
    ├── policies/ # Implémentations des politiques d'ordonnancement
    
    ├── include/ # Fichiers d'en-tête
    
    ├── config/ # Fichiers de configuration
    
    ├── Makefile # Fichier de construction
    
    ├── Licence # Fichier de droits
    
    ├── README.md # Ce fichier

Ce projet simule l'ordonnancement multitâche de processus sous Linux en implémentant plusieurs politiques d'ordonnancement.
Il vise à illustrer les concepts fondamentaux de l’ordonnancement tout en offrant une simulation réaliste et interactive.


✨ Caractéristiques principales

  • ✨ Simulation textuelle avec diagrammes de Gantt
  • 🔧 Politiques d'ordonnancement : FIFO, Round-Robin, Priorité
  • 🎯 Interface graphique pour visualiser les simulations
  • 🏗️ Architecture modulaire (politiques dynamiques)
  • 📊 Métriques : temps d'attente moyen, temps de rotation

🎯 Fonctionnalités

✅ Fonctionnalités Minimales

🔄 Politiques d'Ordonnancement supportées

  • 🎪 FIFO — Ordonnancement non préemptif basé sur l’ordre d’arrivée
  • 🔄 Round-Robin — Préemptif avec quantum configurable (défaut : 2)
  • Priorité Préemptive — Basé sur des priorités statiques

🔧 Autres fonctionnalités

  • 🔨 Makefile automatisé (génération des bibliothèques partagées)
  • 📝 Fichier de configuration flexible (lecture de .txt)
  • 📊 Affichage console des Gantt + métriques

🚀 Fonctionnalités Avancées

  • 🏗️ Multi-Level Queue (MLQ) statique + dynamique
  • 🔼 Mécanisme d’Aging contre la famine
  • ⚡ Préemption par file (Round-Robin interne)
  • 📈 Affichage graphique des résultats
  • 🖥️ IHM graphique complète

🛠️ Installation & Guide d'Utilisation

📋 Prérequis

Le simulateur nécessite :

  • 🐧 Linux natif ou WSL
  • 🔧 GCC ou Clang
  • 🛠️ make
  • 💻 Un terminal Linux

📥 Téléchargement du Projet

Option 1 — Avec Git 🐙

git clone https://github.com/os-scheduler-2025/OS-Scheduling-Engine cd OS-Scheduling-Engine

Option 2 — Sans Git 📦

*Téléchargez l'archive ZIP depuis GitHub/GitLab

*Extrayez le dossier dans votre espace utilisateur

Aucune installation système n'est requise. ✅


🔧 Compilation du Projet:

Depuis le dossier du projet, exécutez simplement :

make

Cette commande va :

✅ Compiler tous les fichiers source

📚 Compiler les politiques d'ordonnancement

🏗️ Générer l'exécutable ordonnanceur

Si make n'est pas installé :

- Si vous avez les droits sudo :sudo apt install make

- Sinon, utilisez WSL ou installez manuellement 

📝 Format du Fichier de Configuration:

Le fichier de configuration liste les processus à simuler.

Exemple (processes.txt) : name arrival_time burst_time priority

Proc_A 0 12 1

Proc_B 1 6 3

Proc_C 2 8 2

Proc_D 4 3 4

Caractéristiques :

💬 Les lignes commençant par # sont des commentaires

📄 Les lignes vides sont ignorées

🔢 Le nombre de processus est libre


🚀 Exécution du Simulateur:

Pour lancer le programme :

./ordonnanceur

Visualiser les résultats :

📊 Diagramme de Gantt dans le terminal

📈 Métriques de performance calculées automatiquement


🗑️ Désinstallation:

Aucune désinstallation particulière n'est nécessaire. Il suffit simplement de supprimer le dossier :

rm -rf OS-Scheduling-Engine/


📄 Licence:

Ce projet est sous licence MIT.
Vous êtes libre d'utiliser, modifier et distribuer ce logiciel.

Voir le fichier LICENSE pour plus de détails.


⭐ N'hésitez pas à donner une étoile au projet si vous le trouvez utile ,cela nous motive énormément! ⭐

About

Simulateur d'ordonnancement multitâche (C/GTK3). Implémentation modulaire des politiques CPU (FIFO, RR, Priorité, MLQ) avec chargement dynamique et visualisation graphique de l'exécution.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •