A collection of essential Operating System algorithms with a clean UI and Swagger-powered API.
Version: [1.0.0]
In this repository, I’ve implemented most of the key Operating System algorithms, including CPU scheduling, memory management, page replacement, and the Banker’s algorithm. All implementations follow Clean Code principles and come with a simple UI. Additionally, Swagger is provided for those who want to interact with the API.
CPU Scheduling 🖥️
- FCFS – First Come First Serve
- SJF – Shortest Job First
- LJF – Longest Job First
- RR – Round Robin
- SRTF – Shortest Remaining Time First
- LRTF – Longest Remaining Time First
- HRRN – Highest Response Ratio Next
- Non-Preemptive – Priority
- Preemptive – Priority
Memory Allocation 🧠
- First Fit
- Best Fit
- Next Fit
- Worst Fit
Page Replacement 📄
- FIFO – First In First Out
- LIFO – Last In First Out
- LRU – Last Recently Used
- MRU – Most Recently Used
- LFU – Last Frequently Used
- MFU – Most Frequently Used
- Random Page Replacement
- Optimal Page Replacement
Banker’s Algorithm 💰
git clone https://github.com/Nima8FT/Algorithm_OS.git
cd Algorithm_OS/API
composer install
composer update
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan serve
After installation, open one of the HTML files in your browser to start the application. You can also visit api/documentation to access and use the Swagger API.
- Open one of the HTML files in your browser to use the web interface.
- Access API routes via Postman or any API client.
- Alternatively, visit api/documentation to explore and test the API using Swagger.
- All core OS algorithms (CPU scheduling, memory allocation, page replacement, Banker’s algorithm) can be tested through the UI or API.
- Fork this repository.
- Create a branch:
git checkout -b my-feature
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin my-feature
. - Submit a pull request.
This project is open-sourced software