ScheduLumos is a web application designed to simulate and visualize various CPU scheduling algorithms. The application allows users to input parameters such as arrival time, burst time, and priority to understand how different algorithms schedule processes. This tool is particularly useful for students and educators in computer science to learn and demonstrate the behavior of CPU scheduling algorithms.
-
Multiple Algorithms: Supports various CPU scheduling algorithms including:
-
First-Come, First-Served (FCFS)
-
Shortest Job First (SJF) - Preemptive and Non-Preemptive
-
Priority Scheduling
-
Round Robin (RR)
-
Interactive Input: Users can input process details like arrival time, burst time, and priority through an intuitive UI.
-
Exception Handling: It is also packed with error handling capabilities. for example, provokes non-numeric input, uneven arrival and burst time, and such.
-
Results Visualization: The site displays the execution order of processes along with average waiting time, turnaround time, and other relevant metrics.
-
Download Results: Users can download the scheduling results as a
.txt
file for further analysis. -
Responsive Design: The interface is responsive and works well on both desktop and mobile devices.
-
Frontend:
-
HTML5
-
CSS3 (with Google Fonts integration)
-
JavaScript (for interactive features)
-
Backend:
-
Python
-
Flask (web framework)
-
Deployment:
-
Render (for hosting the application)
-
GitHub (for version control and continuous deployment)
-
Python 3.x
-
Git (for cloning the repository)
-
A modern web browser
- Clone the repository:
git clone https://github.com/kausaraahmed/scheduLumos.git
cd scheduLumos
- Install dependencies:
It's recommended to use a virtual environment:
python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
- Run the application locally:
flask run
The application will be accessible at http://127.0.0.1:5000/
.
The application is deployed on Render. To deploy your own version, push your changes to GitHub, and Render will automatically build and deploy the application.
-
Access the application: Open the deployed site or run it locally as described above.
-
Navigate through scheduling options: From the main menu, select the scheduling algorithm you want to simulate.
-
Input process details: Provide the necessary inputs like arrival time, burst time, and priority (if applicable).
-
Run the algorithm: Click on the "Run Algorithm" button to view the scheduling results.
-
Download results: After the results are displayed, click the download icon in the top right corner to save the results as a
.txt
file.
The application is live and accessible at: https://schedulumos.vercel.app
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please fork the repository and create a pull request with your changes. Ensure that your code follows the existing style and conventions.