Shortest-Job-First — SJF

Process with the next smallest CPU burst enters running state, or FCFS to resolve ties. This gives an optimal average waiting time for a set of processes.

The Shortest-Remaining-Time — SRT version of this algorithm is preemptive.

Length of next CPU burst $\tau_{n+1}$ is estimated using previous burst lengths with Exponential Averaging.

\begin{indisplay}\begin{split}
&t_n=\textrm{Actual length of burst }n \\
&\alpha\in[0,1] \\
&\tau_{n+1}=\alpha t_n+(1-\alpha)\tau_n
\end{split}\end{indisplay} (3)