This project is a parallel job scheduler with multiple levels of multiple queues i.e. A two-level job Scheduler with complete locking, synchronization & load balancing addressed in C++ with a hybrid scheduling algorithm and variety of generated tasks.
- Multiple Queues: The system utilizes multiple sub-queues to distribute jobs.
- Combination of Round-Robin Scheduling and Priority based Scheduling: Jobs within a sub-queue are processed in a round-robin or priority fashion depening on task characteristics.
- Synchronization: : Synchronization between initial 1st level queues, middleware routing queue and task scheduling queues.
- Thread Management: The code utilizes multiple threads for concurrent job processing and queue management.
- Random Task Generation: Task are generated randomly with varying lengths and priorities.
-
Clone the repository
-
Compile: Use a C++ compiler (like g++) to compile the code. For Example:
g++ Multilevel.cpp -o job_scheduler
-
Run: Execute the compiled program:
./job_scheduler
- C++11 or later standard
- A C++ compiler (e.g., g++)