The CPU Scheduling Algorithms Visualizer is a C++ based tool that showcases the internal workings of various CPU scheduling algorithms. This tool helps in understanding and visualizing how different scheduling algorithms manage processes in an operating system. The supported algorithms include:
- First-Come, First-Served (FCFS)
- Round Robin (RR)
- Shortest Process Next (SPN)
- Shortest Remaining Time (SRT)
- Highest Response Ratio Next (HRRN)
- Feedback (FB)
- Feedback with Varying Quantum (FBV)
- Aging
-
Algorithm Visualization: Detailed visualization of various CPU scheduling algorithms.
-
Interactive Interface: User-friendly interface to interact with and observe the scheduling process.
-
Comparative Analysis: Compare the performance and efficiency of different scheduling algorithms.
-
Educational Tool: Ideal for students and professionals to learn and understand CPU scheduling.
Ensure you have the following installed on your system:
- C++ compiler (e.g., g++)
- Git
git clone https://github.com/Mr-Ajay-Rathod/CPUSchedulingVisualizer.git
cd CPUSchedulingVisualizer
g++ main.cpp -o CPUSchedulingVisualizer
bash
./CPUSchedulingVisualizer
- At the start of the program, you will be prompted to choose an algorithm from the list.
- Enter the details of the processes (e.g., arrival time, burst time) as prompted.
- The tool will display the scheduling process, allowing you to observe the behavior and performance of the chosen algorithm.
Here is an example of how to use the tool for visualizing the FCFS algorithm:
#include <iostream>
#include "CPUSchedulingVisualizer.h"
int main() {
CPUSchedulingVisualizer visualizer;
visualizer.chooseAlgorithm("FCFS");
visualizer.addProcess(1, 0, 5); // Process 1, Arrival Time: 0, Burst Time: 5
visualizer.addProcess(2, 2, 3); // Process 2, Arrival Time: 2, Burst Time: 3
visualizer.run();
return 0;
}
For detailed documentation and advanced usage examples, please refer to the CPU Scheduling Algorithms Visualizer Documentation.
We welcome contributions from the community! If you have suggestions for improvements or new features, please submit an issue or a pull request.
- Fork the repository.
- Create a new branch (git checkout -b feature-branch).
- Make your changes.
- Commit your changes (git commit -am 'Add new feature').
- Push to the branch (git push origin feature-branch).
- Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
Thanks to the open-source community for their invaluable contributions and support. Feel free to reach out if you have any questions or need further assistance!
Contact: ajayrathod.workplace@gmail.com
GitHub Repository: CPU Scheduling Algorithms Visualizer