Consider the following set of processes, with the length of the CPU burst given in milliseconds:
$$
\begin{array}{|c|c|c|}
\hline \text { Process } & \text { Burst Time } & \text { Priority } \\
\hline P_1 & 10 & 3 \\
\hline P_2 & 1 & 1 \\
\hline P_3 & 2 & 3 \\
\hline P_4 & 1 & 4 \\
\hline P_5 & 5 & 2 \\
\hline
\end{array}
$$
The processes are assumed to have arrived in the order $P_1, P_2, P_3, P_4, P_5$, all at time 0 .
a. Draw four Gantt charts that illustrate the execution of these processes using the following scheduling algorithms: FCFS, SJF, nonpreemptive priority (a smaller priority number implies a higher priority), and RR (quantum = 1).
b. What is the turnaround time of each process for each of the scheduling algorithms in part a?
c. What is the waiting time of each process for each of these scheduling algorithms?
d. Which of the algorithms results in the minimum average waiting time (over all processes)?