CPU Burst Time Calculator
Estimate average CPU burst time between I/O waits from process execution samples.
Inputs
Average CPU Burst Time (ms)
80.000
Scheduling Pattern
Long bursts — CPU-bound process pattern; scheduling fairness (vruntime accrual) matters more than burst-to-burst switching overhead.
Low Estimate (ms)
56.000
High Estimate (ms)
104.000
Step by step
Values used
Total CPU Time Used (ms) = 4,000; Number of I/O Wait Events (context switches to I/O) = 50; Burst Time Variance (%, for range estimate) = 30
Average burst time
avg_burst = total_cpu_time / io_wait_events
Average CPU Burst Time (ms)
= 80.000
Scheduling Pattern
= Long bursts — CPU-bound process pattern; scheduling fairness (vruntime accrual) matters more than burst-to-burst switching overhead.
Low Estimate (ms)
= 56.000
High Estimate (ms)
= 104.000
How it works
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.
Formula
Average burst time
avg_burst = total_cpu_time / io_wait_events
- T_{cpu}
- total CPU time used
- N_{io}
- number of I/O wait events
Frequently Asked Questions
Why does burst time matter for scheduling if Linux doesn't use SJF?
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.
How can I observe a process's actual burst pattern on Linux?
`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.
What's a 'typical' CPU burst time?
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.