SCHED_FIFO
also: FIFO scheduling, real-time FIFO
A real-time Linux process scheduling class that uses fixed priority preemption with a first-in-first-out queue, guaranteeing that higher-priority tasks always run before lower-priority ones.
SCHED_FIFO is a real-time scheduling policy in the Linux kernel where processes at the same priority level execute in the order they became runnable (first-in-first-out). A SCHED_FIFO process runs until it blocks, yields voluntarily, or is preempted by a higher-priority process.
Unlike the default SCHED_OTHER scheduler which uses time slices, SCHED_FIFO processes are not interrupted by the kernel's timeslice mechanism—they keep the CPU until they explicitly release it. This makes it ideal for time-critical applications that need predictable, low-latency behavior.
Example: A real-time audio processing task set to SCHED_FIFO priority 80 will always execute before a SCHED_FIFO priority 50 task, and will not be preempted by time-sharing processes. Set scheduling policy with chrt -f -p 80 <pid>.
Note: Only privileged users (root or CAP_SYS_NICE capability) can set SCHED_FIFO, as misconfigured real-time processes can starve the system of CPU resources.