Calculate CPU burst time and turnaround time for scheduling algorithm analysis.
CPU burst time is the length of a single uninterrupted stretch of CPU execution between a process's I/O waits — a core concept in classical CPU scheduling theory (used by algorithms like SJF and priority scheduling) and still relevant for understanding whether a workload is CPU-bound (long bursts) or I/O-bound (short, frequent bursts). Dividing total CPU time by the number of I/O wait events approximates the average burst length; CFS on Linux doesn't use burst prediction directly, but interactive/I/O-bound processes with short bursts naturally get scheduled promptly because they accrue vruntime slowly relative to time elapsed, similar in effect to older burst-aware scheduling heuristics.
Average burst time
avg_burst = total_cpu_time / io_wait_events
While CFS doesn't explicitly predict burst length like Shortest-Job-First scheduling, processes with naturally short bursts (frequent I/O waits) accumulate vruntime more slowly relative to wall-clock time than CPU-bound processes, which has a similar practical effect: interactive/I/O-bound workloads tend to get responsive scheduling without needing an explicit burst-prediction algorithm.
`strace -c -f <command>` shows syscall time breakdown including time blocked in I/O calls, and tools like `perf sched record`/`perf sched latency` can show actual scheduling event timing per task, from which burst-to-wait patterns can be reconstructed.
There's no universal number — interactive processes (shells, GUI apps) commonly show bursts well under 10ms between I/O/input waits, while CPU-bound batch or compute workloads can run for tens or hundreds of milliseconds (or far longer, until preempted) between any I/O activity at all.