AlgoSphere is an interactive web application meticulously crafted to simulate and visualize fundamental Operating System algorithms. Our focus lies in providing an intuitive understanding of Page Replacement Algorithms and CPU Scheduling Algorithms, making complex concepts accessible to students and professionals alike through engaging, hands-on interaction.
Built with the power of Streamlit, the versatility of Python, and the visualization prowess of Matplotlib, AlgoSphere delivers dynamic experiences and real-time feedback.
- FIFO (First In First Out): Understand the simplicity of the first-come, first-served approach.
- LRU (Least Recently Used): Explore how keeping track of recent usage impacts page faults.
- Optimal: Witness the theoretical best-case scenario in page replacement.
- FCFS (First Come First Serve): Grasp the basics of non-preemptive scheduling.
- SJF (Shortest Job First): Analyze how prioritizing shorter tasks can improve throughput.
- RR (Round Robin): Observe fair resource allocation through time slicing.
- Priority Scheduling: Learn how assigning priorities influences process execution.
- Gantt Charts: Visualize the timeline of CPU allocation for scheduling algorithms.
- Pie Charts: Gain insights into the efficiency of page replacement algorithms through hit/miss ratios.
- Step-by-Step Execution: Follow the logic of each algorithm in a clear, sequential manner.
Dive straight into the action! Explore the live deployment of AlgoSphere on Render.
Ready to run AlgoSphere on your own machine? Follow these simple steps:
-
Clone the Repository:
git clone [https://github.com/yourusername/AlgoSphere.git](https://github.com/yourusername/AlgoSphere.git)
-
Navigate to the Project Directory:
cd AlgoSphere -
Create a Virtual Environment (Recommended):
python3 -m venv venv source venv/bin/activate # For Windows: venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Run the Streamlit App:
streamlit run app.py
-
Open in Your Browser:
Visit the app at
http://localhost:8501(or the port specified in your terminal).
- Python: The backbone of our algorithm implementations.
- Streamlit: For creating the interactive and user-friendly web interface.
- Matplotlib: Generating dynamic and informative visualizations.
- Pandas & NumPy: Powering data manipulation and algorithm support.
- GitHub: For seamless version control and collaborative development.
We warmly welcome contributions! Feel free to fork this repository, implement exciting impro