A Kivy-based application to simulate the Round Robin CPU Scheduling Algorithm. This app allows users to input the number of processes, their arrival times, burst times, and the time quantum, and then calculates the scheduling order, average waiting time, average turnaround time, and context switches.
- Dynamic Process Input: Users can specify the number of processes dynamically.
- Interactive UI: Built with Kivy, providing an intuitive and responsive user interface.
- Round Robin Scheduling: Implements the Round Robin algorithm to calculate:
- Scheduling order
- Average waiting time
- Average turnaround time
- Number of context switches
- Validation: Ensures all inputs are valid before proceeding to the next step.
- Visualization: Displays the scheduling order in a clear and visually appealing format.
To run this application locally, follow these steps:
-
Clone the Repository:
git clone https://github.com/Poyamohamadi/Round_Robin.git cd Round_Robin -
Run the Application:
python main.py
-
Enter the Number of Processes:
- On the first screen, input the number of processes you want to simulate.
-
Input Arrival Times:
- Enter the arrival times for each process.
-
Input Burst Times:
- Specify the burst times for each process.
-
Set the Time Quantum:
- Provide the time quantum value for the Round Robin algorithm.
-
View Results:
- The app will display the scheduling order, average waiting time, average turnaround time, and the number of context switches.
The application is organized into the following classes and screens:
- ManagerScreen: Manages transitions between different screens.
- NumProcesses: Allows users to input the number of processes.
- Processes: Collects arrival times for each process.
- RequestTimes: Collects burst times for each process.
- Quantum: Accepts the time quantum value and displays results.
- Result: Displays the final output of the Round Robin algorithm.
The round_robin function implements the core logic of the Round Robin scheduling algorithm.
- Python 3.8+: The application is written in Python and requires version 3.8 or higher.
- Kivy: A Python framework for developing multitouch applications.
Contributions are welcome! If you'd like to improve this project, feel free to:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and push them to your fork.
- Submit a pull request detailing your changes.
Please ensure your code adheres to the existing style and includes appropriate documentation.
This project is licensed under the MIT License. See the LICENSE file for details.
- Kivy Framework: Thanks to the Kivy team for providing an excellent framework for building cross-platform applications.
- Python Community: Special thanks to the Python community for their support and resources.
For questions or feedback, feel free to reach out:
- GitHub: Poyamohamadi
Thank you for using Round Robin Scheduling App! 😊
