This project is a web-based visualizer for CPU scheduling algorithms. It provides an interactive interface for understanding and analyzing various CPU scheduling methods. The visualizer supports six scheduling algorithms:
- First Come First Serve (FCFS)
- Shortest Job First (SJF) - Preemptive
- Shortest Job First (SJF) - Non-Preemptive
- Round Robin (RR)
- Priority Scheduling - Preemptive
- Priority Scheduling - Non-Preemptive
The project uses several external libraries and frameworks:
- Bootstrap 5.0.0 - For responsive design and UI components.
- jQuery 3.6.0 - For simplifying JavaScript operations.
- Google Fonts - For custom fonts.
- Font Awesome - For icons.
- Add, Edit, Remove Processes: Allows you to manage the list of processes including their arrival times, burst times, priorities, and other relevant parameters.
- Select Algorithms: Choose one or multiple scheduling algorithms to evaluate the performance.
- Visualize Scheduling: Visualize the execution of processes using Gantt charts and other visual aids.
- Adjustable Time Quantum: For Round Robin scheduling, you can specify the time quantum.
- Detailed Output: Displays ready queue, CPU execution, waiting queue, and other intermediate steps.
- Web Browser (Google Chrome, Mozilla Firefox, etc.)
- Internet Connection (for loading external resources like Bootstrap and jQuery)
- Clone the repository or download the ZIP file and extract it.
- Open
index.html
in your preferred web browser.
- Open the Application: Open
index.html
in a web browser. - Add Processes: Click on the "Add Process" button to input process details such as arrival time, burst time, and priority.
- Edit/Remove Processes: Use the "Edit Process" and "Remove Process" buttons to modify or delete existing processes.
- Select Algorithms: Use the dropdown menu to select which algorithms to evaluate.
- Set Time Quantum: If using the Round Robin algorithm, specify the time quantum.
- Evaluate: Click the "Evaluate" button to start the scheduling simulation.
- Visualize: Click the "Visualize" button to see the Gantt chart and other visual outputs.
index.html
- The main HTML file that contains the structure of the application.css/style.css
- The CSS file for styling the application.js/main.js
- The JavaScript file for handling the main functionality of the application.js/algorithm.js
- The JavaScript file containing the logic for different scheduling algorithms.images/image3.png
- The favicon of the application.