The project works by first asking the user to input details about the processes that will be simulated. This includes the number of tasks, the arrival time, burst time, and priority for each task. Then the user selects which scheduling algorithm they would like to simulate from the provided options.
Based on the algorithm selected, the appropriate class is called to simulate the scheduling process. Once completed, the results are displayed in a data frame that includes the waiting time, turn around time, and other process details. Additionally, a bar chart is generated to visualize the scheduling process.
The FCFS algorithm simply schedules tasks in the order in which they arrive. The priority algorithm schedules tasks based on priority level, with higher priority tasks being executed first. The Round Robin algorithm schedules tasks in a cyclic manner, executing each task for a specified amount of time (time quantum) before moving on to the next task.
Future Aspects
The project can be expanded in several ways. Firstly, additional scheduling algorithms can be added, allowing for more diverse comparisons between different algorithms. Secondly, more options can be added to the user interface, allowing for more control over the simulation parameters.
An Algorithm must be seen to be believed.by: Donald Knuth
Finally, the project can be extended to include more detailed visualizations of the scheduling process, allowing for a more in-depth analysis of system performance.
Summary
The "Operating System Scheduling Algorithms" project is a simulation tool designed to help computer science students and professionals understand how different scheduling algorithms impact computer system performance. The project uses Streamlit, Pandas, and Matplotlib libraries to create a user interface, manipulate data, and visualize results.
Three different scheduling algorithms are included in the project, FCFS, Priority, and Round Robin. The project is divided into three classes, one for each algorithm, each returning a data frame that includes the average waiting time and average turn around time for the simulated processes. The project can be expanded to include more algorithms, options, and visualizations in the future. Overall, the project is a valuable tool for learning about operating system scheduling algorithms and their impact on system performance.
Try it out!