Shortest Job First

Shortest Job First (SJF) is provably optimal for minimizing average turnaround time. Why isn't it used in practice for general-purpose OS scheduling?

A

SJF was replaced by CFS because Linux doesn't support priority-based scheduling

B

SJF causes too many context switches, making it slower than Round Robin

C

The OS cannot know in advance how long a process will run, and SJF needs that knowledge

D

SJF only works with single-core systems and can't scale to multiprocessors